+ GObjectClass *object_class = G_OBJECT_CLASS (class);
+ GtkButtonClass *button_class = GTK_BUTTON_CLASS (class);
+ GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (class);
+ GParamSpec *orientation_spec =
+ g_param_spec_enum ("orientation",
+ "Orientation",
+ "Where the selector is relative to its subjects",
+ PSPPIRE_TYPE_SELECTOR_ORIENTATION,
+ PSPPIRE_SELECT_SOURCE_BEFORE_DEST /* default value */,
+ G_PARAM_CONSTRUCT_ONLY |G_PARAM_READWRITE);
+
+
+ /* Meaningfull only if more than one selector shares this selectors source */
+ GParamSpec *primary_spec =
+ g_param_spec_boolean ("primary",
+ "Primary",
+ "Whether this selector should be the primary selector for the source",
+ FALSE,
+ G_PARAM_READWRITE);
+
+ GParamSpec *source_widget_spec =
+ g_param_spec_object ("source-widget",
+ "Source Widget",
+ "The widget to be used as the source for this selector",
+ GTK_TYPE_WIDGET,
+ G_PARAM_READWRITE);
+
+ GParamSpec *dest_widget_spec =
+ g_param_spec_object ("dest-widget",
+ "Destination Widget",
+ "The widget to be used as the destination for this selector",
+ GTK_TYPE_WIDGET,
+ G_PARAM_READWRITE);
+
+
+ button_class->clicked = on_click;
+ widget_class->realize = on_realize;
+
+
+ object_class->set_property = psppire_selector_set_property;
+ object_class->get_property = psppire_selector_get_property;
+
+ g_object_class_install_property (object_class,
+ PROP_ORIENTATION,
+ orientation_spec);
+
+ g_object_class_install_property (object_class,
+ PROP_PRIMARY,
+ primary_spec);
+
+ g_object_class_install_property (object_class,
+ PROP_SOURCE_WIDGET,
+ source_widget_spec);
+
+ g_object_class_install_property (object_class,
+ PROP_DEST_WIDGET,
+ dest_widget_spec);
+
+ parent_class = g_type_class_peek_parent (class);
+