+
+/* Properties */
+enum
+{
+ PROP_0,
+ PROP_ORIENTATION
+};
+
+
+static void
+psppire_dialog_get_property (GObject *object,
+ guint prop_id,
+ GValue *value,
+ GParamSpec *pspec)
+{
+ PsppireDialog *dialog = PSPPIRE_DIALOG (object);
+
+ switch (prop_id)
+ {
+ case PROP_ORIENTATION:
+ {
+ if ( GTK_IS_VBOX (dialog->box) )
+ g_value_set_enum (value, PSPPIRE_VERTICAL);
+ else if ( GTK_IS_HBOX (dialog->box))
+ g_value_set_enum (value, PSPPIRE_HORIZONTAL);
+ }
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ break;
+ };
+}
+
+
+static void
+dialog_set_orientation (PsppireDialog *dialog, const GValue *orval)
+{
+ PsppireOrientation orientation = g_value_get_enum (orval);
+
+ if ( dialog->box != NULL)
+ {
+ gtk_container_remove (GTK_CONTAINER (dialog), dialog->box);
+ }
+
+ if ( orientation == PSPPIRE_HORIZONTAL)
+ {
+ dialog->box = gtk_hbox_new (FALSE, 5);
+ }
+ else
+ {
+ dialog->box = gtk_vbox_new (FALSE, 5);
+ }
+
+ gtk_container_add (GTK_CONTAINER (dialog), dialog->box);
+}
+
+
+static void
+psppire_dialog_set_property (GObject *object,
+ guint prop_id,
+ const GValue *value,
+ GParamSpec *pspec)
+
+{
+ PsppireDialog *dialog = PSPPIRE_DIALOG (object);
+
+ switch (prop_id)
+ {
+ case PROP_ORIENTATION:
+ dialog_set_orientation (dialog, value);
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ break;
+ };
+}
+
+
+static GParamSpec *orientation_spec ;
+