diff options
author | Tim Janik <timj@src.gnome.org> | 1998-01-16 00:49:51 +0000 |
---|---|---|
committer | Tim Janik <timj@src.gnome.org> | 1998-01-16 00:49:51 +0000 |
commit | dd77b5db5a14ff3707a65e1ae3326b9a013ac9b5 (patch) | |
tree | aa2c09fe62e8dbde0b16c33bceb7cc64ebad7c03 /gtk/gtkwindow.c | |
parent | 18681dc653519b6ac515e48752e7c70dba80c81c (diff) | |
download | gtk+-dd77b5db5a14ff3707a65e1ae3326b9a013ac9b5.tar.gz |
main part for GtkArgSetFunc/GtkArgGetFunc implementation.
-timj
Diffstat (limited to 'gtk/gtkwindow.c')
-rw-r--r-- | gtk/gtkwindow.c | 58 |
1 files changed, 34 insertions, 24 deletions
diff --git a/gtk/gtkwindow.c b/gtk/gtkwindow.c index f7ed03ed70..163ade09a4 100644 --- a/gtk/gtkwindow.c +++ b/gtk/gtkwindow.c @@ -28,7 +28,14 @@ enum { SET_FOCUS, LAST_SIGNAL }; - +enum { + ARG_0, + ARG_TYPE, + ARG_TITLE, + ARG_AUTO_SHRINK, + ARG_ALLOW_SHRINK, + ARG_ALLOW_GROW +}; typedef gint (*GtkWindowSignal1) (GtkObject *object, gpointer arg1, @@ -50,8 +57,9 @@ static void gtk_window_marshal_signal_2 (GtkObject *object, GtkArg *args); static void gtk_window_class_init (GtkWindowClass *klass); static void gtk_window_init (GtkWindow *window); -static void gtk_window_arg (GtkWindow *window, - GtkArg *arg); +static void gtk_window_set_arg (GtkWindow *window, + GtkArg *arg, + guint arg_id); static void gtk_window_destroy (GtkObject *object); static void gtk_window_show (GtkWidget *widget); static void gtk_window_hide (GtkWidget *widget); @@ -114,7 +122,8 @@ gtk_window_get_type () sizeof (GtkWindowClass), (GtkClassInitFunc) gtk_window_class_init, (GtkObjectInitFunc) gtk_window_init, - (GtkArgFunc) gtk_window_arg, + (GtkArgSetFunc) gtk_window_set_arg, + (GtkArgGetFunc) NULL, }; window_type = gtk_type_unique (gtk_bin_get_type (), &window_info); @@ -136,11 +145,11 @@ gtk_window_class_init (GtkWindowClass *klass) parent_class = gtk_type_class (gtk_bin_get_type ()); - gtk_object_add_arg_type ("GtkWindow::type", GTK_TYPE_WINDOW_TYPE); - gtk_object_add_arg_type ("GtkWindow::title", GTK_TYPE_STRING); - gtk_object_add_arg_type ("GtkWindow::auto_shrink", GTK_TYPE_BOOL); - gtk_object_add_arg_type ("GtkWindow::allow_shrink", GTK_TYPE_BOOL); - gtk_object_add_arg_type ("GtkWindow::allow_grow", GTK_TYPE_BOOL); + gtk_object_add_arg_type ("GtkWindow::type", GTK_TYPE_WINDOW_TYPE, ARG_TYPE); + gtk_object_add_arg_type ("GtkWindow::title", GTK_TYPE_STRING, ARG_TITLE); + gtk_object_add_arg_type ("GtkWindow::auto_shrink", GTK_TYPE_BOOL, ARG_AUTO_SHRINK); + gtk_object_add_arg_type ("GtkWindow::allow_shrink", GTK_TYPE_BOOL, ARG_ALLOW_SHRINK); + gtk_object_add_arg_type ("GtkWindow::allow_grow", GTK_TYPE_BOOL, ARG_ALLOW_GROW); window_signals[MOVE_RESIZE] = gtk_signal_new ("move_resize", @@ -212,28 +221,29 @@ gtk_window_init (GtkWindow *window) } static void -gtk_window_arg (GtkWindow *window, - GtkArg *arg) +gtk_window_set_arg (GtkWindow *window, + GtkArg *arg, + guint arg_id) { - if (strcmp (arg->name, "type") == 0) + switch (arg_id) { + case ARG_TYPE: window->type = GTK_VALUE_ENUM(*arg); - } - else if (strcmp (arg->name, "title") == 0) - { + break; + case ARG_TITLE: gtk_window_set_title (window, GTK_VALUE_STRING(*arg)); - } - else if (strcmp (arg->name, "auto_shrink") == 0) - { + break; + case ARG_AUTO_SHRINK: window->auto_shrink = (GTK_VALUE_BOOL(*arg) != FALSE); - } - else if (strcmp (arg->name, "allow_shrink") == 0) - { + break; + case ARG_ALLOW_SHRINK: window->allow_shrink = (GTK_VALUE_BOOL(*arg) != FALSE); - } - else if (strcmp (arg->name, "allow_grow") == 0) - { + break; + case ARG_ALLOW_GROW: window->allow_grow = (GTK_VALUE_BOOL(*arg) != FALSE); + break; + default: + g_assert_not_reached (); } } |