summaryrefslogtreecommitdiff
path: root/gtk/gtkbox.c
diff options
context:
space:
mode:
authorTim Janik <timj@src.gnome.org>1998-01-17 07:52:38 +0000
committerTim Janik <timj@src.gnome.org>1998-01-17 07:52:38 +0000
commit8d721e5b7571526e498a275fa53179f8741e9abd (patch)
tree7e062bfe95304f4f76d7f1b61d240f39de416297 /gtk/gtkbox.c
parent8dc9cd53ff0ecdfe983155327b636b6db59ccb56 (diff)
downloadgtk+-8d721e5b7571526e498a275fa53179f8741e9abd.tar.gz
more *_get_arg/*_set_arg implementations
-timj
Diffstat (limited to 'gtk/gtkbox.c')
-rw-r--r--gtk/gtkbox.c53
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,