summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gtk/gtkadjustment.c3
-rw-r--r--gtk/gtkalignment.c3
-rw-r--r--gtk/gtkarrow.c3
-rw-r--r--gtk/gtkaspectframe.c3
-rw-r--r--gtk/gtkbbox.c3
-rw-r--r--gtk/gtkbin.c3
-rw-r--r--gtk/gtkbox.c3
-rw-r--r--gtk/gtkbutton.c36
-rw-r--r--gtk/gtkcheckbutton.c3
-rw-r--r--gtk/gtkcheckmenuitem.c3
-rw-r--r--gtk/gtkclist.c3
-rw-r--r--gtk/gtkcombobox.c3
-rw-r--r--gtk/gtkcontainer.c49
-rw-r--r--gtk/gtkcurve.c3
-rw-r--r--gtk/gtkdata.c3
-rw-r--r--gtk/gtkdialog.c3
-rw-r--r--gtk/gtkdrawingarea.c3
-rw-r--r--gtk/gtkentry.c3
-rw-r--r--gtk/gtkeventbox.c3
-rw-r--r--gtk/gtkfilesel.c3
-rw-r--r--gtk/gtkfixed.c3
-rw-r--r--gtk/gtkframe.c3
-rw-r--r--gtk/gtkgamma.c3
-rw-r--r--gtk/gtkhandlebox.c3
-rw-r--r--gtk/gtkhbbox.c3
-rw-r--r--gtk/gtkhbox.c3
-rw-r--r--gtk/gtkhpaned.c3
-rw-r--r--gtk/gtkhruler.c3
-rw-r--r--gtk/gtkhscale.c3
-rw-r--r--gtk/gtkhscrollbar.c3
-rw-r--r--gtk/gtkhseparator.c3
-rw-r--r--gtk/gtkimage.c3
-rw-r--r--gtk/gtkinputdialog.c3
-rw-r--r--gtk/gtkitem.c3
-rw-r--r--gtk/gtklabel.c3
-rw-r--r--gtk/gtklist.c3
-rw-r--r--gtk/gtklistitem.c3
-rw-r--r--gtk/gtkmenu.c3
-rw-r--r--gtk/gtkmenubar.c3
-rw-r--r--gtk/gtkmenuitem.c3
-rw-r--r--gtk/gtkmenushell.c3
-rw-r--r--gtk/gtkmisc.c3
-rw-r--r--gtk/gtknotebook.c3
-rw-r--r--gtk/gtkobject.c112
-rw-r--r--gtk/gtkobject.h3
-rw-r--r--gtk/gtkoptionmenu.c3
-rw-r--r--gtk/gtkpaned.c3
-rw-r--r--gtk/gtkpixmap.c3
-rw-r--r--gtk/gtkpreview.c3
-rw-r--r--gtk/gtkprogressbar.c3
-rw-r--r--gtk/gtkradiobutton.c3
-rw-r--r--gtk/gtkradiomenuitem.c3
-rw-r--r--gtk/gtkrange.c3
-rw-r--r--gtk/gtkruler.c3
-rw-r--r--gtk/gtkscale.c3
-rw-r--r--gtk/gtkscrollbar.c3
-rw-r--r--gtk/gtkscrolledwindow.c3
-rw-r--r--gtk/gtkseparator.c3
-rw-r--r--gtk/gtktable.c3
-rw-r--r--gtk/gtktext.c3
-rw-r--r--gtk/gtktogglebutton.c3
-rw-r--r--gtk/gtktoolbar.c3
-rw-r--r--gtk/gtktree.c3
-rw-r--r--gtk/gtktreeitem.c3
-rw-r--r--gtk/gtktypeutils.c12
-rw-r--r--gtk/gtktypeutils.h11
-rw-r--r--gtk/gtkvbbox.c3
-rw-r--r--gtk/gtkvbox.c3
-rw-r--r--gtk/gtkviewport.c3
-rw-r--r--gtk/gtkvpaned.c3
-rw-r--r--gtk/gtkvruler.c3
-rw-r--r--gtk/gtkvscale.c3
-rw-r--r--gtk/gtkvscrollbar.c3
-rw-r--r--gtk/gtkvseparator.c3
-rw-r--r--gtk/gtkwidget.c108
-rw-r--r--gtk/gtkwindow.c58
76 files changed, 380 insertions, 213 deletions
diff --git a/gtk/gtkadjustment.c b/gtk/gtkadjustment.c
index ab6e63d21..47d422bc5 100644
--- a/gtk/gtkadjustment.c
+++ b/gtk/gtkadjustment.c
@@ -47,7 +47,8 @@ gtk_adjustment_get_type ()
sizeof (GtkAdjustmentClass),
(GtkClassInitFunc) gtk_adjustment_class_init,
(GtkObjectInitFunc) gtk_adjustment_init,
- (GtkArgFunc) NULL,
+ (GtkArgSetFunc) NULL,
+ (GtkArgGetFunc) NULL,
};
adjustment_type = gtk_type_unique (gtk_data_get_type (), &adjustment_info);
diff --git a/gtk/gtkalignment.c b/gtk/gtkalignment.c
index b562cff77..2ea50ed58 100644
--- a/gtk/gtkalignment.c
+++ b/gtk/gtkalignment.c
@@ -40,7 +40,8 @@ gtk_alignment_get_type ()
sizeof (GtkAlignmentClass),
(GtkClassInitFunc) gtk_alignment_class_init,
(GtkObjectInitFunc) gtk_alignment_init,
- (GtkArgFunc) NULL,
+ (GtkArgSetFunc) NULL,
+ (GtkArgGetFunc) NULL,
};
alignment_type = gtk_type_unique (gtk_bin_get_type (), &alignment_info);
diff --git a/gtk/gtkarrow.c b/gtk/gtkarrow.c
index b8bc2143e..5fb53f5e7 100644
--- a/gtk/gtkarrow.c
+++ b/gtk/gtkarrow.c
@@ -41,7 +41,8 @@ gtk_arrow_get_type ()
sizeof (GtkArrowClass),
(GtkClassInitFunc) gtk_arrow_class_init,
(GtkObjectInitFunc) gtk_arrow_init,
- (GtkArgFunc) NULL,
+ (GtkArgSetFunc) NULL,
+ (GtkArgGetFunc) NULL,
};
arrow_type = gtk_type_unique (gtk_misc_get_type (), &arrow_info);
diff --git a/gtk/gtkaspectframe.c b/gtk/gtkaspectframe.c
index 870c0b2f5..16d60b0ec 100644
--- a/gtk/gtkaspectframe.c
+++ b/gtk/gtkaspectframe.c
@@ -50,7 +50,8 @@ gtk_aspect_frame_get_type ()
sizeof (GtkAspectFrameClass),
(GtkClassInitFunc) gtk_aspect_frame_class_init,
(GtkObjectInitFunc) gtk_aspect_frame_init,
- (GtkArgFunc) NULL,
+ (GtkArgSetFunc) NULL,
+ (GtkArgGetFunc) NULL,
};
aspect_frame_type = gtk_type_unique (gtk_frame_get_type (), &aspect_frame_info);
diff --git a/gtk/gtkbbox.c b/gtk/gtkbbox.c
index 818493f9a..ed42cc129 100644
--- a/gtk/gtkbbox.c
+++ b/gtk/gtkbbox.c
@@ -42,7 +42,8 @@ gtk_button_box_get_type ()
sizeof (GtkButtonBoxClass),
(GtkClassInitFunc) gtk_button_box_class_init,
(GtkObjectInitFunc) gtk_button_box_init,
- (GtkArgFunc) NULL,
+ (GtkArgSetFunc) NULL,
+ (GtkArgGetFunc) NULL,
};
button_box_type = gtk_type_unique (gtk_box_get_type (), &button_box_info);
diff --git a/gtk/gtkbin.c b/gtk/gtkbin.c
index 4cb7efcc1..3e60b5976 100644
--- a/gtk/gtkbin.c
+++ b/gtk/gtkbin.c
@@ -53,7 +53,8 @@ gtk_bin_get_type ()
sizeof (GtkBinClass),
(GtkClassInitFunc) gtk_bin_class_init,
(GtkObjectInitFunc) gtk_bin_init,
- (GtkArgFunc) NULL,
+ (GtkArgSetFunc) NULL,
+ (GtkArgGetFunc) NULL,
};
bin_type = gtk_type_unique (gtk_container_get_type (), &bin_info);
diff --git a/gtk/gtkbox.c b/gtk/gtkbox.c
index dfb2fed08..cda636429 100644
--- a/gtk/gtkbox.c
+++ b/gtk/gtkbox.c
@@ -53,7 +53,8 @@ gtk_box_get_type ()
sizeof (GtkBoxClass),
(GtkClassInitFunc) gtk_box_class_init,
(GtkObjectInitFunc) gtk_box_init,
- (GtkArgFunc) NULL,
+ (GtkArgSetFunc) NULL,
+ (GtkArgGetFunc) NULL,
};
box_type = gtk_type_unique (gtk_container_get_type (), &box_info);
diff --git a/gtk/gtkbutton.c b/gtk/gtkbutton.c
index 39fc468b7..f85ddf0fb 100644
--- a/gtk/gtkbutton.c
+++ b/gtk/gtkbutton.c
@@ -36,12 +36,18 @@ enum {
LEAVE,
LAST_SIGNAL
};
+enum {
+ ARG_0,
+ ARG_LABEL
+};
+
static void gtk_button_class_init (GtkButtonClass *klass);
static void gtk_button_init (GtkButton *button);
-static void gtk_button_arg (GtkButton *button,
- GtkArg *arg);
+static void gtk_button_set_arg (GtkButton *button,
+ GtkArg *arg,
+ guint arg_id);
static void gtk_button_destroy (GtkObject *object);
static void gtk_button_map (GtkWidget *widget);
static void gtk_button_unmap (GtkWidget *widget);
@@ -101,7 +107,8 @@ gtk_button_get_type ()
sizeof (GtkButtonClass),
(GtkClassInitFunc) gtk_button_class_init,
(GtkObjectInitFunc) gtk_button_init,
- (GtkArgFunc) gtk_button_arg,
+ (GtkArgSetFunc) gtk_button_set_arg,
+ (GtkArgGetFunc) NULL,
};
button_type = gtk_type_unique (gtk_container_get_type (), &button_info);
@@ -123,7 +130,7 @@ gtk_button_class_init (GtkButtonClass *klass)
parent_class = gtk_type_class (gtk_container_get_type ());
- gtk_object_add_arg_type ("GtkButton::label", GTK_TYPE_STRING);
+ gtk_object_add_arg_type ("GtkButton::label", GTK_TYPE_STRING, ARG_LABEL);
button_signals[PRESSED] =
gtk_signal_new ("pressed",
@@ -204,23 +211,28 @@ gtk_button_init (GtkButton *button)
}
static void
-gtk_button_arg (GtkButton *button,
- GtkArg *arg)
+gtk_button_set_arg (GtkButton *button,
+ GtkArg *arg,
+ guint arg_id)
{
- if (strcmp (arg->name, "label") == 0)
- {
- GtkWidget *label;
+ GtkWidget *label;
+ switch (arg_id)
+ {
+ case ARG_LABEL:
gtk_container_disable_resize (GTK_CONTAINER (button));
-
+
if (button->child)
gtk_widget_destroy (button->child);
-
+
label = gtk_label_new (GTK_VALUE_STRING(*arg));
gtk_widget_show (label);
-
+
gtk_container_add (GTK_CONTAINER (button), label);
gtk_container_enable_resize (GTK_CONTAINER (button));
+ break;
+ default:
+ g_assert_not_reached ();
}
}
diff --git a/gtk/gtkcheckbutton.c b/gtk/gtkcheckbutton.c
index d7f72ce1c..926612017 100644
--- a/gtk/gtkcheckbutton.c
+++ b/gtk/gtkcheckbutton.c
@@ -59,7 +59,8 @@ gtk_check_button_get_type ()
sizeof (GtkCheckButtonClass),
(GtkClassInitFunc) gtk_check_button_class_init,
(GtkObjectInitFunc) gtk_check_button_init,
- (GtkArgFunc) NULL,
+ (GtkArgSetFunc) NULL,
+ (GtkArgGetFunc) NULL,
};
check_button_type = gtk_type_unique (gtk_toggle_button_get_type (), &check_button_info);
diff --git a/gtk/gtkcheckmenuitem.c b/gtk/gtkcheckmenuitem.c
index bf5aa04c1..5319884d8 100644
--- a/gtk/gtkcheckmenuitem.c
+++ b/gtk/gtkcheckmenuitem.c
@@ -60,7 +60,8 @@ gtk_check_menu_item_get_type ()
sizeof (GtkCheckMenuItemClass),
(GtkClassInitFunc) gtk_check_menu_item_class_init,
(GtkObjectInitFunc) gtk_check_menu_item_init,
- (GtkArgFunc) NULL,
+ (GtkArgSetFunc) NULL,
+ (GtkArgGetFunc) NULL,
};
check_menu_item_type = gtk_type_unique (gtk_menu_item_get_type (), &check_menu_item_info);
diff --git a/gtk/gtkclist.c b/gtk/gtkclist.c
index 8bfe13f6f..3b6595ea3 100644
--- a/gtk/gtkclist.c
+++ b/gtk/gtkclist.c
@@ -252,7 +252,8 @@ gtk_clist_get_type ()
sizeof (GtkCListClass),
(GtkClassInitFunc) gtk_clist_class_init,
(GtkObjectInitFunc) gtk_clist_init,
- (GtkArgFunc) NULL,
+ (GtkArgSetFunc) NULL,
+ (GtkArgGetFunc) NULL,
};
clist_type = gtk_type_unique (gtk_container_get_type (), &clist_info);
diff --git a/gtk/gtkcombobox.c b/gtk/gtkcombobox.c
index d7e34e179..35ec14f50 100644
--- a/gtk/gtkcombobox.c
+++ b/gtk/gtkcombobox.c
@@ -82,7 +82,8 @@ gtk_combo_box_get_type ()
sizeof (GtkComboBoxClass),
(GtkClassInitFunc) gtk_combo_box_class_init,
(GtkObjectInitFunc) gtk_combo_box_init,
- (GtkArgFunc) NULL,
+ (GtkArgSetFunc) NULL,
+ (GtkArgGetFunc) NULL,
};
combo_box_type = gtk_type_unique (gtk_entry_get_type (), &combo_box_info);
diff --git a/gtk/gtkcontainer.c b/gtk/gtkcontainer.c
index 0e6672289..77bee5964 100644
--- a/gtk/gtkcontainer.c
+++ b/gtk/gtkcontainer.c
@@ -28,6 +28,13 @@ enum {
FOCUS,
LAST_SIGNAL
};
+enum {
+ ARG_0,
+ ARG_BORDER_WIDTH,
+ ARG_AUTO_RESIZE,
+ ARG_BLOCK_RESIZE,
+ ARG_CHILD
+};
typedef void (*GtkContainerSignal1) (GtkObject *object,
@@ -64,8 +71,9 @@ static void gtk_container_marshal_signal_4 (GtkObject *object,
static void gtk_container_class_init (GtkContainerClass *klass);
static void gtk_container_init (GtkContainer *container);
-static void gtk_container_arg (GtkContainer *container,
- GtkArg *arg);
+static void gtk_container_set_arg (GtkContainer *container,
+ GtkArg *arg,
+ guint arg_id);
static gint gtk_real_container_need_resize (GtkContainer *container);
static gint gtk_real_container_focus (GtkContainer *container,
GtkDirectionType direction);
@@ -105,7 +113,8 @@ gtk_container_get_type ()
sizeof (GtkContainerClass),
(GtkClassInitFunc) gtk_container_class_init,
(GtkObjectInitFunc) gtk_container_init,
- (GtkArgFunc) gtk_container_arg,
+ (GtkArgSetFunc) gtk_container_set_arg,
+ (GtkArgGetFunc) NULL,
};
container_type = gtk_type_unique (gtk_widget_get_type (), &container_info);
@@ -123,10 +132,10 @@ gtk_container_class_init (GtkContainerClass *class)
object_class = (GtkObjectClass*) class;
widget_class = (GtkWidgetClass*) class;
- gtk_object_add_arg_type ("GtkContainer::border_width", GTK_TYPE_LONG);
- gtk_object_add_arg_type ("GtkContainer::auto_resize", GTK_TYPE_BOOL);
- gtk_object_add_arg_type ("GtkContainer::block_resize", GTK_TYPE_BOOL);
- gtk_object_add_arg_type ("GtkContainer::child", GTK_TYPE_WIDGET);
+ gtk_object_add_arg_type ("GtkContainer::border_width", GTK_TYPE_LONG, ARG_BORDER_WIDTH);
+ gtk_object_add_arg_type ("GtkContainer::auto_resize", GTK_TYPE_BOOL, ARG_AUTO_RESIZE);
+ gtk_object_add_arg_type ("GtkContainer::block_resize", GTK_TYPE_BOOL, ARG_BLOCK_RESIZE);
+ gtk_object_add_arg_type ("GtkContainer::child", GTK_TYPE_WIDGET, ARG_CHILD);
container_signals[ADD] =
gtk_signal_new ("add",
@@ -193,30 +202,32 @@ gtk_container_init (GtkContainer *container)
}
static void
-gtk_container_arg (GtkContainer *container,
- GtkArg *arg)
+gtk_container_set_arg (GtkContainer *container,
+ GtkArg *arg,
+ guint arg_id)
{
- if (strcmp (arg->name, "border_width") == 0)
+ switch (arg_id)
{
+ case ARG_BORDER_WIDTH:
gtk_container_border_width (container, GTK_VALUE_LONG (*arg));
- }
- else if (strcmp (arg->name, "auto_resize") == 0)
- {
+ break;
+ case ARG_AUTO_RESIZE:
if (GTK_VALUE_BOOL (*arg))
gtk_container_enable_resize (container);
else
gtk_container_disable_resize (container);
- }
- else if (strcmp (arg->name, "block_resize") == 0)
- {
+ break;
+ case ARG_BLOCK_RESIZE:
if (GTK_VALUE_BOOL (*arg))
gtk_container_block_resize (container);
else
gtk_container_unblock_resize (container);
- }
- else if (strcmp (arg->name, "child") == 0)
- {
+ break;
+ case ARG_CHILD:
gtk_container_add (container, GTK_WIDGET (GTK_VALUE_OBJECT (*arg)));
+ break;
+ default:
+ g_assert_not_reached ();
}
}
diff --git a/gtk/gtkcurve.c b/gtk/gtkcurve.c
index e71785c5a..a606dbd80 100644
--- a/gtk/gtkcurve.c
+++ b/gtk/gtkcurve.c
@@ -62,7 +62,8 @@ gtk_curve_get_type (void)
sizeof (GtkCurveClass),
(GtkClassInitFunc) gtk_curve_class_init,
(GtkObjectInitFunc) gtk_curve_init,
- (GtkArgFunc) NULL,
+ (GtkArgSetFunc) NULL,
+ (GtkArgGetFunc) NULL,
};
curve_type = gtk_type_unique (gtk_drawing_area_get_type (), &curve_info);
diff --git a/gtk/gtkdata.c b/gtk/gtkdata.c
index 63add29f3..512e62067 100644
--- a/gtk/gtkdata.c
+++ b/gtk/gtkdata.c
@@ -45,7 +45,8 @@ gtk_data_get_type ()
sizeof (GtkDataClass),
(GtkClassInitFunc) gtk_data_class_init,
(GtkObjectInitFunc) NULL,
- (GtkArgFunc) NULL,
+ (GtkArgSetFunc) NULL,
+ (GtkArgGetFunc) NULL,
};
data_type = gtk_type_unique (gtk_object_get_type (), &data_info);
diff --git a/gtk/gtkdialog.c b/gtk/gtkdialog.c
index 55da2d137..693611cf2 100644
--- a/gtk/gtkdialog.c
+++ b/gtk/gtkdialog.c
@@ -40,7 +40,8 @@ gtk_dialog_get_type ()
sizeof (GtkDialogClass),
(GtkClassInitFunc) gtk_dialog_class_init,
(GtkObjectInitFunc) gtk_dialog_init,
- (GtkArgFunc) NULL,
+ (GtkArgSetFunc) NULL,
+ (GtkArgGetFunc) NULL,
};
dialog_type = gtk_type_unique (gtk_window_get_type (), &dialog_info);
diff --git a/gtk/gtkdrawingarea.c b/gtk/gtkdrawingarea.c
index 3220446a5..8be0bc078 100644
--- a/gtk/gtkdrawingarea.c
+++ b/gtk/gtkdrawingarea.c
@@ -39,7 +39,8 @@ gtk_drawing_area_get_type ()
sizeof (GtkDrawingAreaClass),
(GtkClassInitFunc) gtk_drawing_area_class_init,
(GtkObjectInitFunc) gtk_drawing_area_init,
- (GtkArgFunc) NULL,
+ (GtkArgSetFunc) NULL,
+ (GtkArgGetFunc) NULL,
};
drawing_area_type = gtk_type_unique (gtk_widget_get_type (), &drawing_area_info);
diff --git a/gtk/gtkentry.c b/gtk/gtkentry.c
index b84cc06eb..55492090e 100644
--- a/gtk/gtkentry.c
+++ b/gtk/gtkentry.c
@@ -227,7 +227,8 @@ gtk_entry_get_type ()
sizeof (GtkEntryClass),
(GtkClassInitFunc) gtk_entry_class_init,
(GtkObjectInitFunc) gtk_entry_init,
- (GtkArgFunc) NULL,
+ (GtkArgSetFunc) NULL,
+ (GtkArgGetFunc) NULL,
};
entry_type = gtk_type_unique (gtk_widget_get_type (), &entry_info);
diff --git a/gtk/gtkeventbox.c b/gtk/gtkeventbox.c
index 44a0d7a9a..daec6c226 100644
--- a/gtk/gtkeventbox.c
+++ b/gtk/gtkeventbox.c
@@ -46,7 +46,8 @@ gtk_event_box_get_type ()
sizeof (GtkEventBoxClass),
(GtkClassInitFunc) gtk_event_box_class_init,
(GtkObjectInitFunc) gtk_event_box_init,
- (GtkArgFunc) NULL,
+ (GtkArgSetFunc) NULL,
+ (GtkArgGetFunc) NULL,
};
event_box_type = gtk_type_unique (gtk_bin_get_type (), &event_box_info);
diff --git a/gtk/gtkfilesel.c b/gtk/gtkfilesel.c
index e5abad837..f0853cccd 100644
--- a/gtk/gtkfilesel.c
+++ b/gtk/gtkfilesel.c
@@ -308,7 +308,8 @@ gtk_file_selection_get_type ()
sizeof (GtkFileSelectionClass),
(GtkClassInitFunc) gtk_file_selection_class_init,
(GtkObjectInitFunc) gtk_file_selection_init,
- (GtkArgFunc) NULL,
+ (GtkArgSetFunc) NULL,
+ (GtkArgGetFunc) NULL,
};
file_selection_type = gtk_type_unique (gtk_window_get_type (), &filesel_info);
diff --git a/gtk/gtkfixed.c b/gtk/gtkfixed.c
index 59eba1f46..467b15b6a 100644
--- a/gtk/gtkfixed.c
+++ b/gtk/gtkfixed.c
@@ -61,7 +61,8 @@ gtk_fixed_get_type ()
sizeof (GtkFixedClass),
(GtkClassInitFunc) gtk_fixed_class_init,
(GtkObjectInitFunc) gtk_fixed_init,
- (GtkArgFunc) NULL,
+ (GtkArgSetFunc) NULL,
+ (GtkArgGetFunc) NULL,
};
fixed_type = gtk_type_unique (gtk_container_get_type (), &fixed_info);
diff --git a/gtk/gtkframe.c b/gtk/gtkframe.c
index ad01a879f..5f834cfa7 100644
--- a/gtk/gtkframe.c
+++ b/gtk/gtkframe.c
@@ -51,7 +51,8 @@ gtk_frame_get_type ()
sizeof (GtkFrameClass),
(GtkClassInitFunc) gtk_frame_class_init,
(GtkObjectInitFunc) gtk_frame_init,
- (GtkArgFunc) NULL,
+ (GtkArgSetFunc) NULL,
+ (GtkArgGetFunc) NULL,
};
frame_type = gtk_type_unique (gtk_bin_get_type (), &frame_info);
diff --git a/gtk/gtkgamma.c b/gtk/gtkgamma.c
index 977aabe67..5812ec858 100644
--- a/gtk/gtkgamma.c
+++ b/gtk/gtkgamma.c
@@ -210,7 +210,8 @@ gtk_gamma_curve_get_type (void)
sizeof (GtkGammaCurveClass),
(GtkClassInitFunc) gtk_gamma_curve_class_init,
(GtkObjectInitFunc) gtk_gamma_curve_init,
- (GtkArgFunc) NULL,
+ (GtkArgSetFunc) NULL,
+ (GtkArgGetFunc) NULL,
};
gamma_curve_type =
diff --git a/gtk/gtkhandlebox.c b/gtk/gtkhandlebox.c
index 394529210..b91de2873 100644
--- a/gtk/gtkhandlebox.c
+++ b/gtk/gtkhandlebox.c
@@ -61,7 +61,8 @@ gtk_handle_box_get_type ()
sizeof (GtkHandleBoxClass),
(GtkClassInitFunc) gtk_handle_box_class_init,
(GtkObjectInitFunc) gtk_handle_box_init,
- (GtkArgFunc) NULL,
+ (GtkArgSetFunc) NULL,
+ (GtkArgGetFunc) NULL,
};
handle_box_type = gtk_type_unique (gtk_event_box_get_type (), &handle_box_info);
diff --git a/gtk/gtkhbbox.c b/gtk/gtkhbbox.c
index 9d86c010e..40efc51af 100644
--- a/gtk/gtkhbbox.c
+++ b/gtk/gtkhbbox.c
@@ -43,7 +43,8 @@ gtk_hbutton_box_get_type ()
sizeof (GtkHButtonBoxClass),
(GtkClassInitFunc) gtk_hbutton_box_class_init,
(GtkObjectInitFunc) gtk_hbutton_box_init,
- (GtkArgFunc) NULL,
+ (GtkArgSetFunc) NULL,
+ (GtkArgGetFunc) NULL,
};
hbutton_box_type = gtk_type_unique (gtk_button_box_get_type (), &hbutton_box_info);
diff --git a/gtk/gtkhbox.c b/gtk/gtkhbox.c
index 4cdc926cd..f8f8848ac 100644
--- a/gtk/gtkhbox.c
+++ b/gtk/gtkhbox.c
@@ -40,7 +40,8 @@ gtk_hbox_get_type ()
sizeof (GtkHBoxClass),
(GtkClassInitFunc) gtk_hbox_class_init,
(GtkObjectInitFunc) gtk_hbox_init,
- (GtkArgFunc) NULL,
+ (GtkArgSetFunc) NULL,
+ (GtkArgGetFunc) NULL,
};
hbox_type = gtk_type_unique (gtk_box_get_type (), &hbox_info);
diff --git a/gtk/gtkhpaned.c b/gtk/gtkhpaned.c
index 23c50961e..bf132e992 100644
--- a/gtk/gtkhpaned.c
+++ b/gtk/gtkhpaned.c
@@ -49,7 +49,8 @@ gtk_hpaned_get_type ()
sizeof (GtkHPanedClass),
(GtkClassInitFunc) gtk_hpaned_class_init,
(GtkObjectInitFunc) gtk_hpaned_init,
- (GtkArgFunc) NULL,
+ (GtkArgSetFunc) NULL,
+ (GtkArgGetFunc) NULL,
};
hpaned_type = gtk_type_unique (gtk_paned_get_type (), &hpaned_info);
diff --git a/gtk/gtkhruler.c b/gtk/gtkhruler.c
index 83f1c7a6e..990627d6e 100644
--- a/gtk/gtkhruler.c
+++ b/gtk/gtkhruler.c
@@ -51,7 +51,8 @@ gtk_hruler_get_type ()
sizeof (GtkHRulerClass),
(GtkClassInitFunc) gtk_hruler_class_init,
(GtkObjectInitFunc) gtk_hruler_init,
- (GtkArgFunc) NULL,
+ (GtkArgSetFunc) NULL,
+ (GtkArgGetFunc) NULL,
};
hruler_type = gtk_type_unique (gtk_ruler_get_type (), &hruler_info);
diff --git a/gtk/gtkhscale.c b/gtk/gtkhscale.c
index 3bebd30fc..4771c2e1f 100644
--- a/gtk/gtkhscale.c
+++ b/gtk/gtkhscale.c
@@ -58,7 +58,8 @@ gtk_hscale_get_type ()
sizeof (GtkHScaleClass),
(GtkClassInitFunc) gtk_hscale_class_init,
(GtkObjectInitFunc) gtk_hscale_init,
- (GtkArgFunc) NULL,
+ (GtkArgSetFunc) NULL,
+ (GtkArgGetFunc) NULL,
};
hscale_type = gtk_type_unique (gtk_scale_get_type (), &hscale_info);
diff --git a/gtk/gtkhscrollbar.c b/gtk/gtkhscrollbar.c
index 3b52a7a79..dcc056c8a 100644
--- a/gtk/gtkhscrollbar.c
+++ b/gtk/gtkhscrollbar.c
@@ -54,7 +54,8 @@ gtk_hscrollbar_get_type ()
sizeof (GtkHScrollbarClass),
(GtkClassInitFunc) gtk_hscrollbar_class_init,
(GtkObjectInitFunc) gtk_hscrollbar_init,
- (GtkArgFunc) NULL,
+ (GtkArgSetFunc) NULL,
+ (GtkArgGetFunc) NULL,
};
hscrollbar_type = gtk_type_unique (gtk_scrollbar_get_type (), &hscrollbar_info);
diff --git a/gtk/gtkhseparator.c b/gtk/gtkhseparator.c
index 5f3a38c20..d0de76e47 100644
--- a/gtk/gtkhseparator.c
+++ b/gtk/gtkhseparator.c
@@ -38,7 +38,8 @@ gtk_hseparator_get_type ()
sizeof (GtkHSeparatorClass),
(GtkClassInitFunc) gtk_hseparator_class_init,
(GtkObjectInitFunc) gtk_hseparator_init,
- (GtkArgFunc) NULL,
+ (GtkArgSetFunc) NULL,
+ (GtkArgGetFunc) NULL,
};
hseparator_type = gtk_type_unique (gtk_separator_get_type (), &hseparator_info);
diff --git a/gtk/gtkimage.c b/gtk/gtkimage.c
index 98059a64f..caa5a188c 100644
--- a/gtk/gtkimage.c
+++ b/gtk/gtkimage.c
@@ -39,7 +39,8 @@ gtk_image_get_type ()
sizeof (GtkImageClass),
(GtkClassInitFunc) gtk_image_class_init,
(GtkObjectInitFunc) gtk_image_init,
- (GtkArgFunc) NULL,
+ (GtkArgSetFunc) NULL,
+ (GtkArgGetFunc) NULL,
};
image_type = gtk_type_unique (gtk_misc_get_type (), &image_info);
diff --git a/gtk/gtkinputdialog.c b/gtk/gtkinputdialog.c
index d197fc8e0..709eb00c3 100644
--- a/gtk/gtkinputdialog.c
+++ b/gtk/gtkinputdialog.c
@@ -140,7 +140,8 @@ gtk_input_dialog_get_type ()
sizeof (GtkInputDialogClass),
(GtkClassInitFunc) gtk_input_dialog_class_init,
(GtkObjectInitFunc) gtk_input_dialog_init,
- (GtkArgFunc) NULL,
+ (GtkArgSetFunc) NULL,
+ (GtkArgGetFunc) NULL,
};
input_dialog_type = gtk_type_unique (gtk_dialog_get_type (),
diff --git a/gtk/gtkitem.c b/gtk/gtkitem.c
index 6dd0ec8dd..ebf7a3756 100644
--- a/gtk/gtkitem.c
+++ b/gtk/gtkitem.c
@@ -51,7 +51,8 @@ gtk_item_get_type ()
sizeof (GtkItemClass),
(GtkClassInitFunc) gtk_item_class_init,
(GtkObjectInitFunc) gtk_item_init,
- (GtkArgFunc) NULL,
+ (GtkArgSetFunc) NULL,
+ (GtkArgGetFunc) NULL,
};
item_type = gtk_type_unique (gtk_bin_get_type (), &item_info);
diff --git a/gtk/gtklabel.c b/gtk/gtklabel.c
index 9fcdcc3e8..5d1213bfd 100644
--- a/gtk/gtklabel.c
+++ b/gtk/gtklabel.c
@@ -45,7 +45,8 @@ gtk_label_get_type ()
sizeof (GtkLabelClass),
(GtkClassInitFunc) gtk_label_class_init,
(GtkObjectInitFunc) gtk_label_init,
- (GtkArgFunc) NULL,
+ (GtkArgSetFunc) NULL,
+ (GtkArgGetFunc) NULL,
};
label_type = gtk_type_unique (gtk_misc_get_type (), &label_info);
diff --git a/gtk/gtklist.c b/gtk/gtklist.c
index 7d7d4a66d..fc5aea67f 100644
--- a/gtk/gtklist.c
+++ b/gtk/gtklist.c
@@ -91,7 +91,8 @@ gtk_list_get_type ()
sizeof (GtkListClass),
(GtkClassInitFunc) gtk_list_class_init,
(GtkObjectInitFunc) gtk_list_init,
- (GtkArgFunc) NULL,
+ (GtkArgSetFunc) NULL,
+ (GtkArgGetFunc) NULL,
};
list_type = gtk_type_unique (gtk_container_get_type (), &list_info);
diff --git a/gtk/gtklistitem.c b/gtk/gtklistitem.c
index 642027025..4e618f94b 100644
--- a/gtk/gtklistitem.c
+++ b/gtk/gtklistitem.c
@@ -59,7 +59,8 @@ gtk_list_item_get_type ()
sizeof (GtkListItemClass),
(GtkClassInitFunc) gtk_list_item_class_init,
(GtkObjectInitFunc) gtk_list_item_init,
- (GtkArgFunc) NULL,
+ (GtkArgSetFunc) NULL,
+ (GtkArgGetFunc) NULL,
};
list_item_type = gtk_type_unique (gtk_item_get_type (), &list_item_info);
diff --git a/gtk/gtkmenu.c b/gtk/gtkmenu.c
index decf1e784..8a83154ca 100644
--- a/gtk/gtkmenu.c
+++ b/gtk/gtkmenu.c
@@ -65,7 +65,8 @@ gtk_menu_get_type ()
sizeof (GtkMenuClass),
(GtkClassInitFunc) gtk_menu_class_init,
(GtkObjectInitFunc) gtk_menu_init,
- (GtkArgFunc) NULL,
+ (GtkArgSetFunc) NULL,
+ (GtkArgGetFunc) NULL,
};
menu_type = gtk_type_unique (gtk_menu_shell_get_type (), &menu_info);
diff --git a/gtk/gtkmenubar.c b/gtk/gtkmenubar.c
index 19f0aa3e7..49c7ec628 100644
--- a/gtk/gtkmenubar.c
+++ b/gtk/gtkmenubar.c
@@ -51,7 +51,8 @@ gtk_menu_bar_get_type ()
sizeof (GtkMenuBarClass),
(GtkClassInitFunc) gtk_menu_bar_class_init,
(GtkObjectInitFunc) gtk_menu_bar_init,
- (GtkArgFunc) NULL,
+ (GtkArgSetFunc) NULL,
+ (GtkArgGetFunc) NULL,
};
menu_bar_type = gtk_type_unique (gtk_menu_shell_get_type (), &menu_bar_info);
diff --git a/gtk/gtkmenuitem.c b/gtk/gtkmenuitem.c
index 9c0993fdb..d48693968 100644
--- a/gtk/gtkmenuitem.c
+++ b/gtk/gtkmenuitem.c
@@ -86,7 +86,8 @@ gtk_menu_item_get_type ()
sizeof (GtkMenuItemClass),
(GtkClassInitFunc) gtk_menu_item_class_init,
(GtkObjectInitFunc) gtk_menu_item_init,
- (GtkArgFunc) NULL,
+ (GtkArgSetFunc) NULL,
+ (GtkArgGetFunc) NULL,
};
menu_item_type = gtk_type_unique (gtk_item_get_type (), &menu_item_info);
diff --git a/gtk/gtkmenushell.c b/gtk/gtkmenushell.c
index 6d3de5a7f..cf801afec 100644
--- a/gtk/gtkmenushell.c
+++ b/gtk/gtkmenushell.c
@@ -74,7 +74,8 @@ gtk_menu_shell_get_type ()
sizeof (GtkMenuShellClass),
(GtkClassInitFunc) gtk_menu_shell_class_init,
(GtkObjectInitFunc) gtk_menu_shell_init,
- (GtkArgFunc) NULL,
+ (GtkArgSetFunc) NULL,
+ (GtkArgGetFunc) NULL,
};
menu_shell_type = gtk_type_unique (gtk_container_get_type (), &menu_shell_info);
diff --git a/gtk/gtkmisc.c b/gtk/gtkmisc.c
index 0ef8f0731..92ab64a49 100644
--- a/gtk/gtkmisc.c
+++ b/gtk/gtkmisc.c
@@ -38,7 +38,8 @@ gtk_misc_get_type ()
sizeof (GtkMiscClass),
(GtkClassInitFunc) gtk_misc_class_init,
(GtkObjectInitFunc) gtk_misc_init,
- (GtkArgFunc) NULL,
+ (GtkArgSetFunc) NULL,
+ (GtkArgGetFunc) NULL,
};
misc_type = gtk_type_unique (gtk_widget_get_type (), &misc_info);
diff --git a/gtk/gtknotebook.c b/gtk/gtknotebook.c
index db6adce54..258d484f6 100644
--- a/gtk/gtknotebook.c
+++ b/gtk/gtknotebook.c
@@ -95,7 +95,8 @@ gtk_notebook_get_type ()
sizeof (GtkNotebookClass),
(GtkClassInitFunc) gtk_notebook_class_init,
(GtkObjectInitFunc) gtk_notebook_init,
- (GtkArgFunc) NULL,
+ (GtkArgSetFunc) NULL,
+ (GtkArgGetFunc) NULL,
};
notebook_type = gtk_type_unique (gtk_container_get_type (), &notebook_info);
diff --git a/gtk/gtkobject.c b/gtk/gtkobject.c
index 38257b9b4..d61a73ede 100644
--- a/gtk/gtkobject.c
+++ b/gtk/gtkobject.c
@@ -28,6 +28,11 @@ enum {
DESTROY,
LAST_SIGNAL
};
+enum {
+ ARG_0,
+ ARG_USER_DATA,
+ ARG_SIGNAL
+};
typedef struct _GtkObjectData GtkObjectData;
@@ -44,13 +49,16 @@ struct _GtkArgInfo
{
char *name;
GtkType type;
+ GtkType class_type;
+ guint arg_id;
};
static void gtk_object_class_init (GtkObjectClass *klass);
static void gtk_object_init (GtkObject *object);
-static void gtk_object_arg (GtkObject *object,
- GtkArg *arg);
+static void gtk_object_set_arg (GtkObject *object,
+ GtkArg *arg,
+ guint arg_id);
static void gtk_real_object_destroy (GtkObject *object);
static void gtk_object_data_init (void);
static GtkObjectData* gtk_object_data_new (void);
@@ -95,7 +103,8 @@ gtk_object_init_type ()
sizeof (GtkObjectClass),
(GtkClassInitFunc) gtk_object_class_init,
(GtkObjectInitFunc) gtk_object_init,
- (GtkArgFunc) gtk_object_arg,
+ gtk_object_set_arg,
+ NULL,
};
object_type = gtk_type_unique (0, &object_info);
@@ -122,8 +131,8 @@ gtk_object_class_init (GtkObjectClass *class)
class->signals = NULL;
class->nsignals = 0;
- gtk_object_add_arg_type ("GtkObject::user_data", GTK_TYPE_POINTER);
- gtk_object_add_arg_type ("GtkObject::signal", GTK_TYPE_SIGNAL);
+ gtk_object_add_arg_type ("GtkObject::user_data", GTK_TYPE_POINTER, ARG_USER_DATA);
+ gtk_object_add_arg_type ("GtkObject::signal", GTK_TYPE_SIGNAL, ARG_SIGNAL);
object_signals[DESTROY] =
gtk_signal_new ("destroy",
@@ -163,24 +172,27 @@ gtk_object_init (GtkObject *object)
*****************************************/
static void
-gtk_object_arg (GtkObject *object,
- GtkArg *arg)
+gtk_object_set_arg (GtkObject *object,
+ GtkArg *arg,
+ guint arg_id)
{
- if (strcmp (arg->name, "user_data") == 0)
+ switch (arg_id)
{
+ case ARG_USER_DATA:
gtk_object_set_user_data (object, GTK_VALUE_POINTER (*arg));
- }
- else if (strncmp (arg->name, "signal", 6) == 0)
- {
- if ((arg->name[6] != ':') || (arg->name[7] != ':'))
+ break;
+ case ARG_SIGNAL:
+ if ((arg->name[11 + 6] != ':') || (arg->name[11 + 7] != ':'))
{
g_print ("invalid signal argument: \"%s\"\n", arg->name);
return;
}
-
- gtk_signal_connect (object, arg->name + 8,
+ gtk_signal_connect (object, arg->name + 11 + 8,
(GtkSignalFunc) GTK_VALUE_SIGNAL (*arg).f,
GTK_VALUE_SIGNAL (*arg).d);
+ break;
+ default:
+ g_assert_not_reached ();
}
}
@@ -344,29 +356,40 @@ gtk_object_setv (GtkObject *obj,
gint nargs,
GtkArg *args)
{
- guint class_type;
- char class_name[1024];
- char *arg_name;
int i;
g_return_if_fail (obj != NULL);
+ if (!arg_info_ht)
+ return;
+
for (i = 0; i < nargs; i++)
{
- arg_name = strchr (args[i].name, ':');
- if (!arg_name || (arg_name[0] != ':') || (arg_name[1] != ':'))
+ GtkArgInfo *info;
+ gchar *lookup_name;
+ gchar *d;
+
+ lookup_name = g_strdup (args[i].name);
+ d = strchr (lookup_name, ':');
+ if (d && d[1] == ':')
{
- g_print ("invalid arg name: \"%s\"\n", args[i].name);
- continue;
- }
+ d = strchr (d + 2, ':');
+ if (d)
+ *d = 0;
- strncpy (class_name, args[i].name, (long) (arg_name - args[i].name));
- class_name[(long) (arg_name - args[i].name)] = '\0';
+ info = g_hash_table_lookup (arg_info_ht, lookup_name);
+ }
+ else
+ info = NULL;
- args[i].name = arg_name + 2;
+ if (!info)
+ {
+ g_warning ("invalid arg name: \"%s\"\n", lookup_name);
+ continue;
+ }
+ g_free (lookup_name);
- class_type = gtk_type_from_name (class_name);
- gtk_type_set_arg (obj, class_type, &args[i]);
+ gtk_type_set_arg (obj, info->class_type, &args[i], info->arg_id);
}
}
@@ -380,13 +403,38 @@ gtk_object_setv (GtkObject *obj,
void
gtk_object_add_arg_type (const char *arg_name,
- GtkType arg_type)
+ GtkType arg_type,
+ guint arg_id)
{
GtkArgInfo *info;
+ gchar class_part[1024];
+ gchar *arg_part;
+ GtkType class_type;
+
+ g_return_if_fail (arg_id > 0);
+
+ arg_part = strchr (arg_name, ':');
+ if (!arg_part || (arg_part[0] != ':') || (arg_part[1] != ':'))
+ {
+ g_warning ("invalid arg name: \"%s\"\n", arg_name);
+ return;
+ }
+
+ strncpy (class_part, arg_name, (glong) (arg_part - arg_name));
+ class_part[(glong) (arg_part - arg_name)] = '\0';
+
+ class_type = gtk_type_from_name (class_part);
+ if (!class_type)
+ {
+ g_warning ("invalid class name in arg: \"%s\"\n", arg_name);
+ return;
+ }
info = g_new (GtkArgInfo, 1);
- info->name = g_strdup(arg_name);
+ info->name = g_strdup (arg_name);
info->type = arg_type;
+ info->class_type = class_type;
+ info->arg_id = arg_id;
if (!arg_info_ht)
arg_info_ht = g_hash_table_new (g_string_hash, g_string_equal);
@@ -415,7 +463,7 @@ gtk_object_get_arg_type (const char *arg_name)
t = strchr (arg_name, ':');
if (!t || (t[0] != ':') || (t[1] != ':'))
{
- g_print ("invalid arg name: \"%s\"\n", arg_name);
+ g_warning ("invalid arg name: \"%s\"\n", arg_name);
return GTK_TYPE_INVALID;
}
@@ -801,7 +849,7 @@ gtk_object_data_id_alloc ()
}
/*****************************************
- * gtk_object_data_id_alloc:
+ * gtk_object_collect_args:
*
* arguments:
*
@@ -836,7 +884,7 @@ gtk_object_collect_args (gint *nargs,
switch (GTK_FUNDAMENTAL_TYPE (type))
{
case GTK_TYPE_INVALID:
- g_print ("invalid arg name: \"%s\" %x\n", name, type);
+ g_warning ("invalid arg name: \"%s\" %x\n", name, type);
(void) va_arg (args1, long);
continue;
case GTK_TYPE_NONE:
diff --git a/gtk/gtkobject.h b/gtk/gtkobject.h
index f258e2f3b..16bcafa87 100644
--- a/gtk/gtkobject.h
+++ b/gtk/gtkobject.h
@@ -186,7 +186,8 @@ void gtk_object_setv (GtkObject *obj,
GtkArg *args);
void gtk_object_add_arg_type (const char *arg_name,
- GtkType arg_type);
+ GtkType arg_type,
+ guint arg_id);
GtkType gtk_object_get_arg_type (const char *arg_name);
diff --git a/gtk/gtkoptionmenu.c b/gtk/gtkoptionmenu.c
index 0b0f5cc73..c598f5e05 100644
--- a/gtk/gtkoptionmenu.c
+++ b/gtk/gtkoptionmenu.c
@@ -75,7 +75,8 @@ gtk_option_menu_get_type ()
sizeof (GtkOptionMenuClass),
(GtkClassInitFunc) gtk_option_menu_class_init,
(GtkObjectInitFunc) gtk_option_menu_init,
- (GtkArgFunc) NULL,
+ (GtkArgSetFunc) NULL,
+ (GtkArgGetFunc) NULL,
};
option_menu_type = gtk_type_unique (gtk_button_get_type (), &option_menu_info);
diff --git a/gtk/gtkpaned.c b/gtk/gtkpaned.c
index c3ee553fc..e9a587e33 100644
--- a/gtk/gtkpaned.c
+++ b/gtk/gtkpaned.c
@@ -53,7 +53,8 @@ gtk_paned_get_type ()
sizeof (GtkPanedClass),
(GtkClassInitFunc) gtk_paned_class_init,
(GtkObjectInitFunc) gtk_paned_init,
- (GtkArgFunc) NULL,
+ (GtkArgSetFunc) NULL,
+ (GtkArgGetFunc) NULL,
};
paned_type = gtk_type_unique (gtk_container_get_type (), &paned_info);
diff --git a/gtk/gtkpixmap.c b/gtk/gtkpixmap.c
index 66ef1538c..9505f598f 100644
--- a/gtk/gtkpixmap.c
+++ b/gtk/gtkpixmap.c
@@ -41,7 +41,8 @@ gtk_pixmap_get_type ()
sizeof (GtkPixmapClass),
(GtkClassInitFunc) gtk_pixmap_class_init,
(GtkObjectInitFunc) gtk_pixmap_init,
- (GtkArgFunc) NULL,
+ (GtkArgSetFunc) NULL,
+ (GtkArgGetFunc) NULL,
};
pixmap_type = gtk_type_unique (gtk_misc_get_type (), &pixmap_info);
diff --git a/gtk/gtkpreview.c b/gtk/gtkpreview.c
index 4246a321a..3080541e6 100644
--- a/gtk/gtkpreview.c
+++ b/gtk/gtkpreview.c
@@ -140,7 +140,8 @@ gtk_preview_get_type ()
sizeof (GtkPreviewClass),
(GtkClassInitFunc) gtk_preview_class_init,
(GtkObjectInitFunc) gtk_preview_init,
- (GtkArgFunc) NULL,
+ (GtkArgSetFunc) NULL,
+ (GtkArgGetFunc) NULL,
};
preview_type = gtk_type_unique (gtk_widget_get_type (), &preview_info);
diff --git a/gtk/gtkprogressbar.c b/gtk/gtkprogressbar.c
index 620e5eed6..ae15aa7b1 100644
--- a/gtk/gtkprogressbar.c
+++ b/gtk/gtkprogressbar.c
@@ -47,7 +47,8 @@ gtk_progress_bar_get_type ()
sizeof (GtkProgressBarClass),
(GtkClassInitFunc) gtk_progress_bar_class_init,
(GtkObjectInitFunc) gtk_progress_bar_init,
- (GtkArgFunc) NULL,
+ (GtkArgSetFunc) NULL,
+ (GtkArgGetFunc) NULL,
};
progress_bar_type = gtk_type_unique (gtk_widget_get_type (), &progress_bar_info);
diff --git a/gtk/gtkradiobutton.c b/gtk/gtkradiobutton.c
index 0c52836e9..1e9a36886 100644
--- a/gtk/gtkradiobutton.c
+++ b/gtk/gtkradiobutton.c
@@ -48,7 +48,8 @@ gtk_radio_button_get_type ()
sizeof (GtkRadioButtonClass),
(GtkClassInitFunc) gtk_radio_button_class_init,
(GtkObjectInitFunc) gtk_radio_button_init,
- (GtkArgFunc) NULL,
+ (GtkArgSetFunc) NULL,
+ (GtkArgGetFunc) NULL,
};
radio_button_type = gtk_type_unique (gtk_check_button_get_type (), &radio_button_info);
diff --git a/gtk/gtkradiomenuitem.c b/gtk/gtkradiomenuitem.c
index edb8d63e7..eb9c0c976 100644
--- a/gtk/gtkradiomenuitem.c
+++ b/gtk/gtkradiomenuitem.c
@@ -40,7 +40,8 @@ gtk_radio_menu_item_get_type ()
sizeof (GtkRadioMenuItemClass),
(GtkClassInitFunc) gtk_radio_menu_item_class_init,
(GtkObjectInitFunc) gtk_radio_menu_item_init,
- (GtkArgFunc) NULL,
+ (GtkArgSetFunc) NULL,
+ (GtkArgGetFunc) NULL,
};
radio_menu_item_type = gtk_type_unique (gtk_check_menu_item_get_type (), &radio_menu_item_info);
diff --git a/gtk/gtkrange.c b/gtk/gtkrange.c
index 58c41e43f..82d3c9783 100644
--- a/gtk/gtkrange.c
+++ b/gtk/gtkrange.c
@@ -90,7 +90,8 @@ gtk_range_get_type ()
sizeof (GtkRangeClass),
(GtkClassInitFunc) gtk_range_class_init,
(GtkObjectInitFunc) gtk_range_init,
- (GtkArgFunc) NULL,
+ (GtkArgSetFunc) NULL,
+ (GtkArgGetFunc) NULL,
};
range_type = gtk_type_unique (gtk_widget_get_type (), &range_info);
diff --git a/gtk/gtkruler.c b/gtk/gtkruler.c
index e8a9b0710..849d5eadf 100644
--- a/gtk/gtkruler.c
+++ b/gtk/gtkruler.c
@@ -51,7 +51,8 @@ gtk_ruler_get_type ()
sizeof (GtkRulerClass),
(GtkClassInitFunc) gtk_ruler_class_init,
(GtkObjectInitFunc) gtk_ruler_init,
- (GtkArgFunc) NULL,
+ (GtkArgSetFunc) NULL,
+ (GtkArgGetFunc) NULL,
};
ruler_type = gtk_type_unique (gtk_widget_get_type (), &ruler_info);
diff --git a/gtk/gtkscale.c b/gtk/gtkscale.c
index ba2f18616..073b6ef2a 100644
--- a/gtk/gtkscale.c
+++ b/gtk/gtkscale.c
@@ -46,7 +46,8 @@ gtk_scale_get_type ()
sizeof (GtkScaleClass),
(GtkClassInitFunc) gtk_scale_class_init,
(GtkObjectInitFunc) gtk_scale_init,
- (GtkArgFunc) NULL,
+ (GtkArgSetFunc) NULL,
+ (GtkArgGetFunc) NULL,
};
scale_type = gtk_type_unique (gtk_range_get_type (), &scale_info);
diff --git a/gtk/gtkscrollbar.c b/gtk/gtkscrollbar.c
index 3f5088b44..4c0d4b204 100644
--- a/gtk/gtkscrollbar.c
+++ b/gtk/gtkscrollbar.c
@@ -34,7 +34,8 @@ gtk_scrollbar_get_type ()
sizeof (GtkScrollbarClass),
(GtkClassInitFunc) gtk_scrollbar_class_init,
(GtkObjectInitFunc) gtk_scrollbar_init,
- (GtkArgFunc) NULL,
+ (GtkArgSetFunc) NULL,
+ (GtkArgGetFunc) NULL,
};
scrollbar_type = gtk_type_unique (gtk_range_get_type (), &scrollbar_info);
diff --git a/gtk/gtkscrolledwindow.c b/gtk/gtkscrolledwindow.c
index 320692710..d637ce25e 100644
--- a/gtk/gtkscrolledwindow.c
+++ b/gtk/gtkscrolledwindow.c
@@ -63,7 +63,8 @@ gtk_scrolled_window_get_type ()
sizeof (GtkScrolledWindowClass),
(GtkClassInitFunc) gtk_scrolled_window_class_init,
(GtkObjectInitFunc) gtk_scrolled_window_init,
- (GtkArgFunc) NULL,
+ (GtkArgSetFunc) NULL,
+ (GtkArgGetFunc) NULL,
};
scrolled_window_type = gtk_type_unique (gtk_container_get_type (), &scrolled_window_info);
diff --git a/gtk/gtkseparator.c b/gtk/gtkseparator.c
index 6ad41ad5b..1e14c737b 100644
--- a/gtk/gtkseparator.c
+++ b/gtk/gtkseparator.c
@@ -36,7 +36,8 @@ gtk_separator_get_type ()
sizeof (GtkSeparatorClass),
(GtkClassInitFunc) gtk_separator_class_init,
(GtkObjectInitFunc) gtk_separator_init,
- (GtkArgFunc) NULL,
+ (GtkArgSetFunc) NULL,
+ (GtkArgGetFunc) NULL,
};
separator_type = gtk_type_unique (gtk_widget_get_type (), &separator_info);
diff --git a/gtk/gtktable.c b/gtk/gtktable.c
index 7711524de..623c2c210 100644
--- a/gtk/gtktable.c
+++ b/gtk/gtktable.c
@@ -66,7 +66,8 @@ gtk_table_get_type ()
sizeof (GtkTableClass),
(GtkClassInitFunc) gtk_table_class_init,
(GtkObjectInitFunc) gtk_table_init,
- (GtkArgFunc) NULL,
+ (GtkArgSetFunc) NULL,
+ (GtkArgGetFunc) NULL,
};
table_type = gtk_type_unique (gtk_container_get_type (), &table_info);
diff --git a/gtk/gtktext.c b/gtk/gtktext.c
index fdd133eb5..44ac63ba6 100644
--- a/gtk/gtktext.c
+++ b/gtk/gtktext.c
@@ -325,7 +325,8 @@ gtk_text_get_type ()
sizeof (GtkTextClass),
(GtkClassInitFunc) gtk_text_class_init,
(GtkObjectInitFunc) gtk_text_init,
- (GtkArgFunc) NULL,
+ (GtkArgSetFunc) NULL,
+ (GtkArgGetFunc) NULL,
};
text_type = gtk_type_unique (gtk_widget_get_type (), &text_info);
diff --git a/gtk/gtktogglebutton.c b/gtk/gtktogglebutton.c
index eabcb1b26..be39f8b1f 100644
--- a/gtk/gtktogglebutton.c
+++ b/gtk/gtktogglebutton.c
@@ -58,7 +58,8 @@ gtk_toggle_button_get_type ()
sizeof (GtkToggleButtonClass),
(GtkClassInitFunc) gtk_toggle_button_class_init,
(GtkObjectInitFunc) gtk_toggle_button_init,
- (GtkArgFunc) NULL,
+ (GtkArgSetFunc) NULL,
+ (GtkArgGetFunc) NULL,
};
toggle_button_type = gtk_type_unique (gtk_button_get_type (), &toggle_button_info);
diff --git a/gtk/gtktoolbar.c b/gtk/gtktoolbar.c
index 3bc43591c..59c88633c 100644
--- a/gtk/gtktoolbar.c
+++ b/gtk/gtktoolbar.c
@@ -104,7 +104,8 @@ gtk_toolbar_get_type (void)
sizeof (GtkToolbarClass),
(GtkClassInitFunc) gtk_toolbar_class_init,
(GtkObjectInitFunc) gtk_toolbar_init,
- (GtkArgFunc) NULL
+ (GtkArgSetFunc) NULL,
+ (GtkArgGetFunc) NULL,
};
toolbar_type = gtk_type_unique (gtk_container_get_type (), &toolbar_info);
diff --git a/gtk/gtktree.c b/gtk/gtktree.c
index 512d4a491..c81e3d774 100644
--- a/gtk/gtktree.c
+++ b/gtk/gtktree.c
@@ -88,7 +88,8 @@ gtk_tree_get_type ()
sizeof (GtkTreeClass),
(GtkClassInitFunc) gtk_tree_class_init,
(GtkObjectInitFunc) gtk_tree_init,
- (GtkArgFunc) NULL,
+ (GtkArgSetFunc) NULL,
+ (GtkArgGetFunc) NULL,
};
tree_type = gtk_type_unique (gtk_container_get_type (), &tree_info);
diff --git a/gtk/gtktreeitem.c b/gtk/gtktreeitem.c
index 199966664..71f833d37 100644
--- a/gtk/gtktreeitem.c
+++ b/gtk/gtktreeitem.c
@@ -99,7 +99,8 @@ gtk_tree_item_get_type ()
sizeof (GtkTreeItemClass),
(GtkClassInitFunc) gtk_tree_item_class_init,
(GtkObjectInitFunc) gtk_tree_item_init,
- (GtkArgFunc) NULL,
+ (GtkArgSetFunc) NULL,
+ (GtkArgGetFunc) NULL,
};
tree_item_type = gtk_type_unique (gtk_item_get_type (), &tree_item_info);
diff --git a/gtk/gtktypeutils.c b/gtk/gtktypeutils.c
index ffde61647..79e049156 100644
--- a/gtk/gtktypeutils.c
+++ b/gtk/gtktypeutils.c
@@ -271,8 +271,9 @@ gtk_type_is_a (GtkType type,
void
gtk_type_set_arg (GtkObject *object,
- GtkType type,
- GtkArg *arg)
+ GtkType type,
+ GtkArg *arg,
+ guint arg_id)
{
GtkTypeNode *node;
@@ -281,8 +282,8 @@ gtk_type_set_arg (GtkObject *object,
node = g_hash_table_lookup (type_hash_table, &type);
- if (node->type_info.arg_func)
- (* node->type_info.arg_func) (object, arg);
+ if (node && node->type_info.arg_set_func)
+ (* node->type_info.arg_set_func) (object, arg, arg_id);
}
static void
@@ -390,7 +391,8 @@ gtk_type_register_builtin (char *name,
info.object_size = info.class_size = 0;
info.class_init_func = NULL;
info.object_init_func = NULL;
- info.arg_func = NULL;
+ info.arg_set_func = NULL;
+ info.arg_get_func = NULL;
return gtk_type_unique (parent, &info);
}
diff --git a/gtk/gtktypeutils.h b/gtk/gtktypeutils.h
index 911885be9..d6e398f0e 100644
--- a/gtk/gtktypeutils.h
+++ b/gtk/gtktypeutils.h
@@ -77,7 +77,8 @@ typedef struct _GtkTypeInfo GtkTypeInfo;
typedef void (*GtkClassInitFunc) (gpointer klass);
typedef void (*GtkObjectInitFunc) (gpointer object);
-typedef void (*GtkArgFunc) (GtkObject *object, GtkArg *arg);
+typedef void (*GtkArgGetFunc) (GtkObject *object, GtkArg *arg, guint arg_id);
+typedef void (*GtkArgSetFunc) (GtkObject *object, GtkArg *arg, guint arg_id);
typedef gint (*GtkFunction) (gpointer data);
typedef void (*GtkRemoveFunction) (gpointer data);
typedef void (*GtkCallbackMarshal) (GtkObject *object,
@@ -89,7 +90,7 @@ typedef void (*GtkDestroyNotify) (gpointer data);
struct _GtkArg
{
GtkType type;
- char *name;
+ gchar *name;
union {
gchar char_data;
@@ -166,7 +167,8 @@ struct _GtkTypeInfo
guint class_size;
GtkClassInitFunc class_init_func;
GtkObjectInitFunc object_init_func;
- GtkArgFunc arg_func;
+ GtkArgSetFunc arg_set_func;
+ GtkArgGetFunc arg_get_func;
};
@@ -185,7 +187,8 @@ gint gtk_type_is_a (GtkType type,
GtkType is_a_type);
void gtk_type_set_arg (GtkObject *object,
GtkType type,
- GtkArg *arg);
+ GtkArg *arg,
+ guint arg_id);
#ifdef __cplusplus
diff --git a/gtk/gtkvbbox.c b/gtk/gtkvbbox.c
index 4fc867fdf..3210f82dc 100644
--- a/gtk/gtkvbbox.c
+++ b/gtk/gtkvbbox.c
@@ -42,7 +42,8 @@ gtk_vbutton_box_get_type ()
sizeof (GtkVButtonBoxClass),
(GtkClassInitFunc) gtk_vbutton_box_class_init,
(GtkObjectInitFunc) gtk_vbutton_box_init,
- (GtkArgFunc) NULL,
+ (GtkArgSetFunc) NULL,
+ (GtkArgGetFunc) NULL,
};
vbutton_box_type = gtk_type_unique (gtk_button_box_get_type (), &vbutton_box_info);
diff --git a/gtk/gtkvbox.c b/gtk/gtkvbox.c
index 585e99b87..a26f33ebc 100644
--- a/gtk/gtkvbox.c
+++ b/gtk/gtkvbox.c
@@ -40,7 +40,8 @@ gtk_vbox_get_type ()
sizeof (GtkVBoxClass),
(GtkClassInitFunc) gtk_vbox_class_init,
(GtkObjectInitFunc) gtk_vbox_init,
- (GtkArgFunc) NULL,
+ (GtkArgSetFunc) NULL,
+ (GtkArgGetFunc) NULL,
};
vbox_type = gtk_type_unique (gtk_box_get_type (), &vbox_info);
diff --git a/gtk/gtkviewport.c b/gtk/gtkviewport.c
index 46fd1d3c4..b39ca31ef 100644
--- a/gtk/gtkviewport.c
+++ b/gtk/gtkviewport.c
@@ -56,7 +56,8 @@ gtk_viewport_get_type ()
sizeof (GtkViewportClass),
(GtkClassInitFunc) gtk_viewport_class_init,
(GtkObjectInitFunc) gtk_viewport_init,
- (GtkArgFunc) NULL,
+ (GtkArgSetFunc) NULL,
+ (GtkArgGetFunc) NULL,
};
viewport_type = gtk_type_unique (gtk_bin_get_type (), &viewport_info);
diff --git a/gtk/gtkvpaned.c b/gtk/gtkvpaned.c
index 2dae03209..9b0c0b2e0 100644
--- a/gtk/gtkvpaned.c
+++ b/gtk/gtkvpaned.c
@@ -49,7 +49,8 @@ gtk_vpaned_get_type ()
sizeof (GtkVPanedClass),
(GtkClassInitFunc) gtk_vpaned_class_init,
(GtkObjectInitFunc) gtk_vpaned_init,
- (GtkArgFunc) NULL,
+ (GtkArgSetFunc) NULL,
+ (GtkArgGetFunc) NULL,
};
vpaned_type = gtk_type_unique (gtk_paned_get_type (), &vpaned_info);
diff --git a/gtk/gtkvruler.c b/gtk/gtkvruler.c
index 5de5099a5..80c97a61f 100644
--- a/gtk/gtkvruler.c
+++ b/gtk/gtkvruler.c
@@ -51,7 +51,8 @@ gtk_vruler_get_type ()
sizeof (GtkVRulerClass),
(GtkClassInitFunc) gtk_vruler_class_init,
(GtkObjectInitFunc) gtk_vruler_init,
- (GtkArgFunc) NULL,
+ (GtkArgSetFunc) NULL,
+ (GtkArgGetFunc) NULL,
};
vruler_type = gtk_type_unique (gtk_ruler_get_type (), &vruler_info);
diff --git a/gtk/gtkvscale.c b/gtk/gtkvscale.c
index 9c2e3058f..20de97401 100644
--- a/gtk/gtkvscale.c
+++ b/gtk/gtkvscale.c
@@ -59,7 +59,8 @@ gtk_vscale_get_type ()
sizeof (GtkVScaleClass),
(GtkClassInitFunc) gtk_vscale_class_init,
(GtkObjectInitFunc) gtk_vscale_init,
- (GtkArgFunc) NULL,
+ (GtkArgSetFunc) NULL,
+ (GtkArgGetFunc) NULL,
};
vscale_type = gtk_type_unique (gtk_scale_get_type (), &vscale_info);
diff --git a/gtk/gtkvscrollbar.c b/gtk/gtkvscrollbar.c
index 053131e65..f83fef1e8 100644
--- a/gtk/gtkvscrollbar.c
+++ b/gtk/gtkvscrollbar.c
@@ -53,7 +53,8 @@ gtk_vscrollbar_get_type ()
sizeof (GtkVScrollbarClass),
(GtkClassInitFunc) gtk_vscrollbar_class_init,
(GtkObjectInitFunc) gtk_vscrollbar_init,
- (GtkArgFunc) NULL,
+ (GtkArgSetFunc) NULL,
+ (GtkArgGetFunc) NULL,
};
vscrollbar_type = gtk_type_unique (gtk_scrollbar_get_type (), &vscrollbar_info);
diff --git a/gtk/gtkvseparator.c b/gtk/gtkvseparator.c
index fbbba19ff..9e9b6d885 100644
--- a/gtk/gtkvseparator.c
+++ b/gtk/gtkvseparator.c
@@ -38,7 +38,8 @@ gtk_vseparator_get_type ()
sizeof (GtkVSeparatorClass),
(GtkClassInitFunc) gtk_vseparator_class_init,
(GtkObjectInitFunc) gtk_vseparator_init,
- (GtkArgFunc) NULL,
+ (GtkArgSetFunc) NULL,
+ (GtkArgGetFunc) NULL,
};
vseparator_type = gtk_type_unique (gtk_separator_get_type (), &vseparator_info);
diff --git a/gtk/gtkwidget.c b/gtk/gtkwidget.c
index c0f0d22b0..9dbde0d43 100644
--- a/gtk/gtkwidget.c
+++ b/gtk/gtkwidget.c
@@ -80,6 +80,21 @@ enum {
LAST_SIGNAL
};
+enum {
+ ARG_0,
+ ARG_X,
+ ARG_Y,
+ ARG_WIDTH,
+ ARG_HEIGHT,
+ ARG_VISIBLE,
+ ARG_SENSITIVE,
+ ARG_EVENTS,
+ ARG_EXTENSION_EVENTS,
+ ARG_NAME,
+ ARG_STYLE,
+ ARG_PARENT
+};
+
typedef void (*GtkWidgetSignal1) (GtkObject *object,
gpointer arg1,
@@ -116,8 +131,9 @@ static void gtk_widget_marshal_signal_4 (GtkObject *object,
static void gtk_widget_class_init (GtkWidgetClass *klass);
static void gtk_widget_init (GtkWidget *widget);
-static void gtk_widget_arg (GtkWidget *widget,
- GtkArg *arg);
+static void gtk_widget_set_arg (GtkWidget *widget,
+ GtkArg *arg,
+ guint arg_id);
static void gtk_real_widget_destroy (GtkObject *object);
static void gtk_real_widget_show (GtkWidget *widget);
static void gtk_real_widget_hide (GtkWidget *widget);
@@ -205,7 +221,8 @@ gtk_widget_get_type ()
sizeof (GtkWidgetClass),
(GtkClassInitFunc) gtk_widget_class_init,
(GtkObjectInitFunc) gtk_widget_init,
- (GtkArgFunc) gtk_widget_arg,
+ (GtkArgSetFunc) gtk_widget_set_arg,
+ (GtkArgGetFunc) NULL,
};
widget_type = gtk_type_unique (gtk_object_get_type (), &widget_info);
@@ -231,17 +248,17 @@ gtk_widget_class_init (GtkWidgetClass *klass)
parent_class = gtk_type_class (gtk_object_get_type ());
- gtk_object_add_arg_type ("GtkWidget::x", GTK_TYPE_INT);
- gtk_object_add_arg_type ("GtkWidget::y", GTK_TYPE_INT);
- gtk_object_add_arg_type ("GtkWidget::width", GTK_TYPE_INT);
- gtk_object_add_arg_type ("GtkWidget::height", GTK_TYPE_INT);
- gtk_object_add_arg_type ("GtkWidget::visible", GTK_TYPE_BOOL);
- gtk_object_add_arg_type ("GtkWidget::sensitive", GTK_TYPE_BOOL);
- gtk_object_add_arg_type ("GtkWidget::events", GTK_TYPE_GDK_EVENT_MASK);
- gtk_object_add_arg_type ("GtkWidget::extension_events", GTK_TYPE_GDK_EVENT_MASK);
- gtk_object_add_arg_type ("GtkWidget::name", GTK_TYPE_STRING);
- gtk_object_add_arg_type ("GtkWidget::style", GTK_TYPE_STYLE);
- gtk_object_add_arg_type ("GtkWidget::parent", GTK_TYPE_CONTAINER);
+ gtk_object_add_arg_type ("GtkWidget::x", GTK_TYPE_INT, ARG_X);
+ gtk_object_add_arg_type ("GtkWidget::y", GTK_TYPE_INT, ARG_Y);
+ gtk_object_add_arg_type ("GtkWidget::width", GTK_TYPE_INT, ARG_WIDTH);
+ gtk_object_add_arg_type ("GtkWidget::height", GTK_TYPE_INT, ARG_HEIGHT);
+ gtk_object_add_arg_type ("GtkWidget::visible", GTK_TYPE_BOOL, ARG_VISIBLE);
+ gtk_object_add_arg_type ("GtkWidget::sensitive", GTK_TYPE_BOOL, ARG_SENSITIVE);
+ gtk_object_add_arg_type ("GtkWidget::events", GTK_TYPE_GDK_EVENT_MASK, ARG_EVENTS);
+ gtk_object_add_arg_type ("GtkWidget::extension_events", GTK_TYPE_GDK_EVENT_MASK, ARG_EXTENSION_EVENTS);
+ gtk_object_add_arg_type ("GtkWidget::name", GTK_TYPE_STRING, ARG_NAME);
+ gtk_object_add_arg_type ("GtkWidget::style", GTK_TYPE_STYLE, ARG_STYLE);
+ gtk_object_add_arg_type ("GtkWidget::parent", GTK_TYPE_CONTAINER, ARG_PARENT);
widget_signals[SHOW] =
gtk_signal_new ("show",
@@ -651,7 +668,7 @@ gtk_widget_class_init (GtkWidgetClass *klass)
}
/*****************************************
- * gtk_widget_arg:
+ * gtk_widget_set_arg:
*
* arguments:
*
@@ -659,55 +676,50 @@ gtk_widget_class_init (GtkWidgetClass *klass)
*****************************************/
static void
-gtk_widget_arg (GtkWidget *widget,
- GtkArg *arg)
+gtk_widget_set_arg (GtkWidget *widget,
+ GtkArg *arg,
+ guint arg_id)
{
- if (strcmp (arg->name, "x") == 0)
+ switch (arg_id)
{
+ case ARG_X:
gtk_widget_set_uposition (widget, GTK_VALUE_INT(*arg), -2);
- }
- else if (strcmp (arg->name, "y") == 0)
- {
+ break;
+ case ARG_Y:
gtk_widget_set_uposition (widget, -2, GTK_VALUE_INT(*arg));
- }
- else if (strcmp (arg->name, "width") == 0)
- {
+ break;
+ case ARG_WIDTH:
gtk_widget_set_usize (widget, GTK_VALUE_INT(*arg), -1);
- }
- else if (strcmp (arg->name, "height") == 0)
- {
+ break;
+ case ARG_HEIGHT:
gtk_widget_set_usize (widget, -1, GTK_VALUE_INT(*arg));
- }
- else if (strcmp (arg->name, "visible") == 0)
- {
+ break;
+ case ARG_VISIBLE:
if (GTK_VALUE_BOOL(*arg))
gtk_widget_show (widget);
else
gtk_widget_hide (widget);
- }
- else if (strcmp (arg->name, "sensitive") == 0)
- {
+ break;
+ case ARG_SENSITIVE:
gtk_widget_set_sensitive (widget, GTK_VALUE_BOOL(*arg));
- }
- else if (strcmp (arg->name, "events") == 0)
- {
+ break;
+ case ARG_EVENTS:
gtk_widget_set_events (widget, GTK_VALUE_FLAGS(*arg));
- }
- else if (strcmp (arg->name, "extension_events") == 0)
- {
+ break;
+ case ARG_EXTENSION_EVENTS:
gtk_widget_set_extension_events (widget, GTK_VALUE_FLAGS(*arg));
- }
- else if (strcmp (arg->name, "name") == 0)
- {
+ break;
+ case ARG_NAME:
gtk_widget_set_name (widget, GTK_VALUE_STRING(*arg));
- }
- else if (strcmp (arg->name, "style") == 0)
- {
+ break;
+ case ARG_STYLE:
gtk_widget_set_style (widget, (GtkStyle*)GTK_VALUE_BOXED(*arg));
- }
- else if (strcmp (arg->name, "parent") == 0)
- {
+ break;
+ case ARG_PARENT:
gtk_container_add (GTK_CONTAINER (GTK_VALUE_OBJECT(*arg)), widget);
+ break;
+ default:
+ g_assert_not_reached ();
}
}
diff --git a/gtk/gtkwindow.c b/gtk/gtkwindow.c
index f7ed03ed7..163ade09a 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 ();
}
}