summaryrefslogtreecommitdiff
path: root/gtk/gtktoolbar.c
diff options
context:
space:
mode:
authorAlexander Larsson <alla@lysator.liu.se>2001-05-17 16:22:06 +0000
committerAlexander Larsson <alexl@src.gnome.org>2001-05-17 16:22:06 +0000
commit6ee1ae13adafbb6a0ac5a75a948f0a9bc8f0e751 (patch)
treebd9689851eabea933a0ef00c0ad9c97c376b62cd /gtk/gtktoolbar.c
parentbe277ae41303b9d5ba92a911360e66f197c82eba (diff)
downloadgtk+-6ee1ae13adafbb6a0ac5a75a948f0a9bc8f0e751.tar.gz
Add properties, based on patch by Lee Mallabone.GTK_MULTIHEAD_MERGE1
2001-05-17 Alexander Larsson <alla@lysator.liu.se> * gtk/gtkbbox.c: Add properties, based on patch by Lee Mallabone. * gtk/gtknotebook.c: * gtk/gtktoolbar.c: Convert from GtkArg to GParam, based on patch by John Margaglione. * gtk/gtkhscale.c: * gtk/gtkvscale.c: * gtk/gtkhscrollbar.c: * gtk/gtkvscrollbar.c: * gtk/gtkrange.c: Move adjustment property to GtkRange. * gtk/gtklabel.c: Setup mnemonics on property changes * gtk/gtkwidget.c (gtk_widget_get_property): GdkExtensionMode is an enum, not a flag. Set it with g_value_set_enum (). * tests/prop-editor.c: Better propery editor. * tests/testgtk.c: Add new property test. Pass zero to the property editor to get properties from all derived types.
Diffstat (limited to 'gtk/gtktoolbar.c')
-rw-r--r--gtk/gtktoolbar.c91
1 files changed, 55 insertions, 36 deletions
diff --git a/gtk/gtktoolbar.c b/gtk/gtktoolbar.c
index 3ba23cbc49..ed8fb0b3b4 100644
--- a/gtk/gtktoolbar.c
+++ b/gtk/gtktoolbar.c
@@ -48,12 +48,9 @@
#define SPACE_LINE_END 7
enum {
- ARG_0,
- ARG_ORIENTATION,
- ARG_TOOLBAR_STYLE,
- ARG_SPACE_SIZE,
- ARG_SPACE_STYLE,
- ARG_RELIEF
+ PROP_0,
+ PROP_ORIENTATION,
+ PROP_TOOLBAR_STYLE,
};
enum {
@@ -72,12 +69,14 @@ struct _GtkToolbarChildSpace
static void gtk_toolbar_class_init (GtkToolbarClass *class);
static void gtk_toolbar_init (GtkToolbar *toolbar);
-static void gtk_toolbar_set_arg (GtkObject *object,
- GtkArg *arg,
- guint arg_id);
-static void gtk_toolbar_get_arg (GtkObject *object,
- GtkArg *arg,
- guint arg_id);
+static void gtk_toolbar_set_property (GObject *object,
+ guint prop_id,
+ const GValue *value,
+ GParamSpec *pspec);
+static void gtk_toolbar_get_property (GObject *object,
+ guint prop_id,
+ GValue *value,
+ GParamSpec *pspec);
static void gtk_toolbar_destroy (GtkObject *object);
static void gtk_toolbar_map (GtkWidget *widget);
static void gtk_toolbar_unmap (GtkWidget *widget);
@@ -164,10 +163,12 @@ gtk_toolbar_get_type (void)
static void
gtk_toolbar_class_init (GtkToolbarClass *class)
{
+ GObjectClass *gobject_class;
GtkObjectClass *object_class;
GtkWidgetClass *widget_class;
GtkContainerClass *container_class;
+ gobject_class = G_OBJECT_CLASS (class);
object_class = (GtkObjectClass *) class;
widget_class = (GtkWidgetClass *) class;
container_class = (GtkContainerClass *) class;
@@ -175,8 +176,8 @@ gtk_toolbar_class_init (GtkToolbarClass *class)
parent_class = gtk_type_class (gtk_container_get_type ());
object_class->destroy = gtk_toolbar_destroy;
- object_class->set_arg = gtk_toolbar_set_arg;
- object_class->get_arg = gtk_toolbar_get_arg;
+ gobject_class->set_property = gtk_toolbar_set_property;
+ gobject_class->get_property = gtk_toolbar_get_property;
widget_class->map = gtk_toolbar_map;
widget_class->unmap = gtk_toolbar_unmap;
@@ -210,10 +211,24 @@ gtk_toolbar_class_init (GtkToolbarClass *class)
GTK_TYPE_NONE, 1,
GTK_TYPE_INT);
- gtk_object_add_arg_type ("GtkToolbar::orientation", GTK_TYPE_ORIENTATION,
- GTK_ARG_READWRITE, ARG_ORIENTATION);
- gtk_object_add_arg_type ("GtkToolbar::toolbar_style", GTK_TYPE_TOOLBAR_STYLE,
- GTK_ARG_READWRITE, ARG_TOOLBAR_STYLE);
+ g_object_class_install_property (gobject_class,
+ PROP_ORIENTATION,
+ g_param_spec_enum ("orientation",
+ _("Orientation"),
+ _("The orientation of the toolbar"),
+ GTK_TYPE_ORIENTATION,
+ GTK_ORIENTATION_HORIZONTAL,
+ G_PARAM_READWRITE));
+
+ g_object_class_install_property (gobject_class,
+ PROP_TOOLBAR_STYLE,
+ g_param_spec_enum ("toolbar_style",
+ _("Toolbar Style"),
+ _("How to draw the toolbar"),
+ GTK_TYPE_TOOLBAR_STYLE,
+ GTK_TOOLBAR_ICONS,
+ G_PARAM_READWRITE));
+
gtk_widget_class_install_style_property (widget_class,
g_param_spec_int ("space_size",
@@ -258,40 +273,42 @@ gtk_toolbar_init (GtkToolbar *toolbar)
}
static void
-gtk_toolbar_set_arg (GtkObject *object,
- GtkArg *arg,
- guint arg_id)
+gtk_toolbar_set_property (GObject *object,
+ guint prop_id,
+ const GValue *value,
+ GParamSpec *pspec)
{
GtkToolbar *toolbar = GTK_TOOLBAR (object);
- switch (arg_id)
+ switch (prop_id)
{
- case ARG_ORIENTATION:
- gtk_toolbar_set_orientation (toolbar, GTK_VALUE_ENUM (*arg));
+ case PROP_ORIENTATION:
+ gtk_toolbar_set_orientation (toolbar, g_value_get_enum (value));
break;
- case ARG_TOOLBAR_STYLE:
- gtk_toolbar_set_style (toolbar, GTK_VALUE_ENUM (*arg));
+ case PROP_TOOLBAR_STYLE:
+ gtk_toolbar_set_style (toolbar, g_value_get_enum (value));
break;
}
}
static void
-gtk_toolbar_get_arg (GtkObject *object,
- GtkArg *arg,
- guint arg_id)
+gtk_toolbar_get_property (GObject *object,
+ guint prop_id,
+ GValue *value,
+ GParamSpec *pspec)
{
GtkToolbar *toolbar = GTK_TOOLBAR (object);
- switch (arg_id)
+ switch (prop_id)
{
- case ARG_ORIENTATION:
- GTK_VALUE_ENUM (*arg) = toolbar->orientation;
+ case PROP_ORIENTATION:
+ g_value_set_enum (value, toolbar->orientation);
break;
- case ARG_TOOLBAR_STYLE:
- GTK_VALUE_ENUM (*arg) = toolbar->style;
+ case PROP_TOOLBAR_STYLE:
+ g_value_set_enum (value, toolbar->style);
break;
default:
- arg->type = GTK_TYPE_INVALID;
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
}
}
@@ -1262,6 +1279,7 @@ gtk_real_toolbar_orientation_changed (GtkToolbar *toolbar,
{
toolbar->orientation = orientation;
gtk_widget_queue_resize (GTK_WIDGET (toolbar));
+ g_object_notify (G_OBJECT (toolbar), "orientation");
}
}
@@ -1400,8 +1418,9 @@ gtk_real_toolbar_style_changed (GtkToolbar *toolbar,
g_assert_not_reached ();
}
}
-
+
gtk_widget_queue_resize (GTK_WIDGET (toolbar));
+ g_object_notify (G_OBJECT (toolbar), "toolbar_style");
}
}