X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fui%2Fgui%2Fpsppire-buttonbox.c;h=68a147f74ca1322777fb681bab993a2423f15e0b;hb=e85b9209febb65cb4a59635507fba948325607cd;hp=087c105587f7e2c83b7c237208bd01a8bd8ad0fa;hpb=e27e251c89f7d685deae647d6583caa3c4f80d69;p=pspp diff --git a/src/ui/gui/psppire-buttonbox.c b/src/ui/gui/psppire-buttonbox.c index 087c105587..68a147f74c 100644 --- a/src/ui/gui/psppire-buttonbox.c +++ b/src/ui/gui/psppire-buttonbox.c @@ -31,37 +31,7 @@ GType psppire_button_flags_get_type (void); - -static void psppire_button_box_class_init (PsppireButtonboxClass *); -static void psppire_button_box_init (PsppireButtonbox *); - - -GType -psppire_buttonbox_get_type (void) -{ - static GType button_box_type = 0; - - if (!button_box_type) - { - static const GTypeInfo button_box_info = - { - sizeof (PsppireButtonboxClass), - NULL, /* base_init */ - NULL, /* base_finalize */ - (GClassInitFunc) psppire_button_box_class_init, - NULL, /* class_finalize */ - NULL, /* class_data */ - sizeof (PsppireButtonbox), - 0, - (GInstanceInitFunc) psppire_button_box_init, - }; - - button_box_type = g_type_register_static (GTK_TYPE_BUTTON_BOX, - "PsppireButtonbox", &button_box_info, 0); - } - - return button_box_type; -} +G_DEFINE_TYPE (PsppireButtonBox, psppire_button_box, GTK_TYPE_BUTTON_BOX) enum { PROP_BUTTONS = 1, @@ -69,11 +39,11 @@ enum { }; static void -set_default (PsppireButtonbox *bb) +set_default (PsppireButtonBox *bb) { int i; - for (i = 0 ; i < n_PsppireButtonboxButtons ; ++i ) + for (i = 0 ; i < n_PsppireButtonBoxButtons ; ++i) if (bb->def == (1 << i)) { gtk_widget_set_can_default (bb->button[i], TRUE); @@ -89,13 +59,13 @@ psppire_buttonbox_set_property (GObject *object, { gint i; guint flags; - PsppireButtonbox *bb = PSPPIRE_BUTTONBOX (object); + PsppireButtonBox *bb = PSPPIRE_BUTTON_BOX (object); switch (prop_id) { case PROP_BUTTONS: flags = g_value_get_flags (value); - for (i = 0 ; i < n_PsppireButtonboxButtons ; ++i ) + for (i = 0 ; i < n_PsppireButtonBoxButtons ; ++i) g_object_set (bb->button[i], "visible", 0x01 & (flags >> i) , NULL); break; @@ -119,17 +89,17 @@ psppire_buttonbox_get_property (GObject *object, guint flags = 0; gint i; - PsppireButtonbox *bb = PSPPIRE_BUTTONBOX (object); + PsppireButtonBox *bb = PSPPIRE_BUTTON_BOX (object); switch (prop_id) { case PROP_BUTTONS: - for (i = 0 ; i < n_PsppireButtonboxButtons ; ++i ) + for (i = 0 ; i < n_PsppireButtonBoxButtons ; ++i) { gboolean visibility; g_object_get (bb->button[i], "visible", &visibility, NULL); - if ( visibility ) + if (visibility) flags |= (0x01 << i); } @@ -138,6 +108,7 @@ psppire_buttonbox_get_property (GObject *object, case PROP_DEFAULT: g_value_set_flags (value, bb->def); + break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); @@ -146,23 +117,11 @@ psppire_buttonbox_get_property (GObject *object, } -typedef enum - { - PSPPIRE_BUTTON_OK_MASK = (1 << PSPPIRE_BUTTON_OK), - PSPPIRE_BUTTON_GOTO_MASK = (1 << PSPPIRE_BUTTON_GOTO), - PSPPIRE_BUTTON_CONTINUE_MASK = (1 << PSPPIRE_BUTTON_CONTINUE), - PSPPIRE_BUTTON_CANCEL_MASK = (1 << PSPPIRE_BUTTON_CANCEL), - PSPPIRE_BUTTON_CLOSE_MASK = (1 << PSPPIRE_BUTTON_CLOSE), - PSPPIRE_BUTTON_HELP_MASK = (1 << PSPPIRE_BUTTON_HELP), - PSPPIRE_BUTTON_RESET_MASK = (1 << PSPPIRE_BUTTON_RESET), - PSPPIRE_BUTTON_PASTE_MASK = (1 << PSPPIRE_BUTTON_PASTE) - } PsppireButtonMask; - static GParamSpec *button_flags; static GParamSpec *default_flags; static void -psppire_button_box_class_init (PsppireButtonboxClass *class) +psppire_button_box_class_init (PsppireButtonBoxClass *class) { GObjectClass *object_class = G_OBJECT_CLASS (class); @@ -205,7 +164,7 @@ close_and_respond (GtkWidget *w, gint response) /* If we're not in a psppire dialog (for example when in glade) then do nothing */ - if ( ! PSPPIRE_IS_DIALOG (toplevel)) + if (! PSPPIRE_IS_DIALOG (toplevel)) return; dialog = PSPPIRE_DIALOG (toplevel); @@ -267,7 +226,7 @@ refresh_clicked (GtkWidget *w, gpointer data) GtkWidget *toplevel = gtk_widget_get_toplevel (w); PsppireDialog *dialog; - if ( ! PSPPIRE_IS_DIALOG (toplevel)) + if (! PSPPIRE_IS_DIALOG (toplevel)) return; dialog = PSPPIRE_DIALOG (toplevel); @@ -281,7 +240,7 @@ help_clicked (GtkWidget *w, gpointer data) GtkWidget *toplevel = gtk_widget_get_toplevel (w); PsppireDialog *dialog; - if ( ! PSPPIRE_IS_DIALOG (toplevel)) + if (! PSPPIRE_IS_DIALOG (toplevel)) return; dialog = PSPPIRE_DIALOG (toplevel); @@ -292,7 +251,7 @@ help_clicked (GtkWidget *w, gpointer data) static void on_validity_change (GtkWidget *toplevel, gboolean valid, gpointer data) { - PsppireButtonbox *bb = data; + PsppireButtonBox *bb = data; /* Set the sensitivity of all the 'executive order' buttons */ gtk_widget_set_sensitive (GTK_WIDGET (bb->button[PSPPIRE_BUTTON_OK]), valid); @@ -304,7 +263,7 @@ on_validity_change (GtkWidget *toplevel, gboolean valid, gpointer data) static gboolean on_key_press (GtkWidget *w, GdkEventKey *e, gpointer ud) { - PsppireButtonbox *bb = PSPPIRE_BUTTONBOX (ud); + PsppireButtonBox *bb = PSPPIRE_BUTTON_BOX (ud); if (e->keyval == GDK_KEY_Escape) { g_signal_emit_by_name (bb->button[PSPPIRE_BUTTON_CANCEL], "activate"); @@ -328,12 +287,12 @@ on_realize (GtkWidget *buttonbox, gpointer data) G_CALLBACK (on_key_press), buttonbox); } - set_default (PSPPIRE_BUTTONBOX (buttonbox)); + set_default (PSPPIRE_BUTTON_BOX (buttonbox)); } static void -psppire_button_box_init (PsppireButtonbox *bb) +psppire_button_box_init (PsppireButtonBox *bb) { bb->def = PSPPIRE_BUTTON_CONTINUE; @@ -409,7 +368,7 @@ psppire_button_box_init (PsppireButtonbox *bb) flags = g_value_get_flags (&value); - for (i = 0 ; i < n_PsppireButtonboxButtons ; ++i ) + for (i = 0 ; i < n_PsppireButtonBoxButtons ; ++i) g_object_set (bb->button[i], "visible", 0x01 & (flags >> i) , NULL); g_value_unset (&value); @@ -445,3 +404,8 @@ psppire_button_flags_get_type (void) return ftype; } +GtkWidget* +psppire_button_box_new (void) +{ + return GTK_WIDGET (g_object_new (psppire_button_box_get_type (), NULL)); +}