diff options
author | Tim Janik <timj@src.gnome.org> | 1998-01-17 07:52:38 +0000 |
---|---|---|
committer | Tim Janik <timj@src.gnome.org> | 1998-01-17 07:52:38 +0000 |
commit | 8d721e5b7571526e498a275fa53179f8741e9abd (patch) | |
tree | 7e062bfe95304f4f76d7f1b61d240f39de416297 /gtk/gtkbox.c | |
parent | 8dc9cd53ff0ecdfe983155327b636b6db59ccb56 (diff) | |
download | gtk+-8d721e5b7571526e498a275fa53179f8741e9abd.tar.gz |
more *_get_arg/*_set_arg implementations
-timj
Diffstat (limited to 'gtk/gtkbox.c')
-rw-r--r-- | gtk/gtkbox.c | 53 |
1 files changed, 51 insertions, 2 deletions
diff --git a/gtk/gtkbox.c b/gtk/gtkbox.c index cda636429d..a0a5aa5a3b 100644 --- a/gtk/gtkbox.c +++ b/gtk/gtkbox.c @@ -17,9 +17,20 @@ */ #include "gtkbox.h" +enum { + ARG_0, + ARG_SPACING, + ARG_HOMOGENEOUS +}; static void gtk_box_class_init (GtkBoxClass *klass); static void gtk_box_init (GtkBox *box); +static void gtk_box_get_arg (GtkBox *box, + GtkArg *arg, + guint arg_id); +static void gtk_box_set_arg (GtkBox *box, + GtkArg *arg, + guint arg_id); static void gtk_box_destroy (GtkObject *object); static void gtk_box_map (GtkWidget *widget); static void gtk_box_unmap (GtkWidget *widget); @@ -53,8 +64,8 @@ gtk_box_get_type () sizeof (GtkBoxClass), (GtkClassInitFunc) gtk_box_class_init, (GtkObjectInitFunc) gtk_box_init, - (GtkArgSetFunc) NULL, - (GtkArgGetFunc) NULL, + (GtkArgSetFunc) gtk_box_set_arg, + (GtkArgGetFunc) gtk_box_get_arg, }; box_type = gtk_type_unique (gtk_container_get_type (), &box_info); @@ -76,6 +87,9 @@ gtk_box_class_init (GtkBoxClass *class) parent_class = gtk_type_class (gtk_container_get_type ()); + gtk_object_add_arg_type ("GtkBox::spacing", GTK_TYPE_INT, ARG_SPACING); + gtk_object_add_arg_type ("GtkBox::homogeneous", GTK_TYPE_BOOL, ARG_HOMOGENEOUS); + object_class->destroy = gtk_box_destroy; widget_class->map = gtk_box_map; @@ -98,6 +112,41 @@ gtk_box_init (GtkBox *box) box->homogeneous = FALSE; } +static void +gtk_box_set_arg (GtkBox *box, + GtkArg *arg, + guint arg_id) +{ + switch (arg_id) + { + case ARG_SPACING: + gtk_box_set_spacing (box, GTK_VALUE_INT (*arg)); + break; + case ARG_HOMOGENEOUS: + gtk_box_set_homogeneous (box, GTK_VALUE_BOOL (*arg)); + break; + } +} + +static void +gtk_box_get_arg (GtkBox *box, + GtkArg *arg, + guint arg_id) +{ + switch (arg_id) + { + case ARG_SPACING: + GTK_VALUE_INT (*arg) = box->spacing; + break; + case ARG_HOMOGENEOUS: + GTK_VALUE_BOOL (*arg) = box->homogeneous; + break; + default: + arg->type = GTK_TYPE_INVALID; + break; + } +} + void gtk_box_pack_start (GtkBox *box, GtkWidget *child, |