From fc7c7f466f10d58d59426fa24fbc8741e0ec61ff Mon Sep 17 00:00:00 2001 From: Tim Janik Date: Mon, 27 Jul 1998 01:50:16 +0000 Subject: [PATCH] fixup, so that enum values are looked up. Mon Jul 27 03:11:20 1998 Tim Janik * gtk/gtkbindings.c (binding_compose_params): fixup, so that enum values are looked up. * gtk/gtktypeutils.h: * gtk/gtktypeutils.c: new functions gtk_type_flags_find_value and gtk_type_enums_find_value to lookup enum values. * gtk/gtkctree.h: * gtk/gtkctree.c: change enum name from GtkCTreeExpansion to GtkCTreeExpansionType. fixed signal creations to pass the enum types not just the base type GTK_TYPE_ENUM. * gtk/gtkclist.h: * gtk/gtkclist.c: fixed signal creations to pass the real enum types not just the base type GTK_TYPE_ENUM. --- ChangeLog | 18 ++++++++++++++++++ ChangeLog.pre-2-0 | 18 ++++++++++++++++++ ChangeLog.pre-2-10 | 18 ++++++++++++++++++ ChangeLog.pre-2-2 | 18 ++++++++++++++++++ ChangeLog.pre-2-4 | 18 ++++++++++++++++++ ChangeLog.pre-2-6 | 18 ++++++++++++++++++ ChangeLog.pre-2-8 | 18 ++++++++++++++++++ gtk/gtk.defs | 2 +- gtk/gtkbindings.c | 9 +++++++-- gtk/gtkclist.c | 6 +++--- gtk/gtkctree.c | 8 ++++---- gtk/gtkctree.h | 4 ++-- gtk/gtktypebuiltins.h | 2 +- gtk/gtktypebuiltins_evals.c | 2 +- gtk/gtktypebuiltins_ids.c | 4 ++-- gtk/gtktypebuiltins_vars.c | 2 +- gtk/gtktypeutils.c | 38 ++++++++++++++++++++++++++++++++++++- gtk/gtktypeutils.h | 9 ++++++--- gtk/testgtkrc | 12 ++++++++++++ tests/testgtkrc | 12 ++++++++++++ 20 files changed, 215 insertions(+), 21 deletions(-) diff --git a/ChangeLog b/ChangeLog index e05754948e..592f5679cf 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,21 @@ +Mon Jul 27 03:11:20 1998 Tim Janik + + * gtk/gtkbindings.c (binding_compose_params): fixup, so that enum + values are looked up. + + * gtk/gtktypeutils.h: + * gtk/gtktypeutils.c: new functions gtk_type_flags_find_value and + gtk_type_enums_find_value to lookup enum values. + + * gtk/gtkctree.h: + * gtk/gtkctree.c: change enum name from GtkCTreeExpansion to + GtkCTreeExpansionType. fixed signal creations to pass the enum + types not just the base type GTK_TYPE_ENUM. + + * gtk/gtkclist.h: + * gtk/gtkclist.c: fixed signal creations to pass the real enum + types not just the base type GTK_TYPE_ENUM. + Sun Jul 26 14:50:07 1998 Stefan Jeske * gtk/testgtk.c : diff --git a/ChangeLog.pre-2-0 b/ChangeLog.pre-2-0 index e05754948e..592f5679cf 100644 --- a/ChangeLog.pre-2-0 +++ b/ChangeLog.pre-2-0 @@ -1,3 +1,21 @@ +Mon Jul 27 03:11:20 1998 Tim Janik + + * gtk/gtkbindings.c (binding_compose_params): fixup, so that enum + values are looked up. + + * gtk/gtktypeutils.h: + * gtk/gtktypeutils.c: new functions gtk_type_flags_find_value and + gtk_type_enums_find_value to lookup enum values. + + * gtk/gtkctree.h: + * gtk/gtkctree.c: change enum name from GtkCTreeExpansion to + GtkCTreeExpansionType. fixed signal creations to pass the enum + types not just the base type GTK_TYPE_ENUM. + + * gtk/gtkclist.h: + * gtk/gtkclist.c: fixed signal creations to pass the real enum + types not just the base type GTK_TYPE_ENUM. + Sun Jul 26 14:50:07 1998 Stefan Jeske * gtk/testgtk.c : diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10 index e05754948e..592f5679cf 100644 --- a/ChangeLog.pre-2-10 +++ b/ChangeLog.pre-2-10 @@ -1,3 +1,21 @@ +Mon Jul 27 03:11:20 1998 Tim Janik + + * gtk/gtkbindings.c (binding_compose_params): fixup, so that enum + values are looked up. + + * gtk/gtktypeutils.h: + * gtk/gtktypeutils.c: new functions gtk_type_flags_find_value and + gtk_type_enums_find_value to lookup enum values. + + * gtk/gtkctree.h: + * gtk/gtkctree.c: change enum name from GtkCTreeExpansion to + GtkCTreeExpansionType. fixed signal creations to pass the enum + types not just the base type GTK_TYPE_ENUM. + + * gtk/gtkclist.h: + * gtk/gtkclist.c: fixed signal creations to pass the real enum + types not just the base type GTK_TYPE_ENUM. + Sun Jul 26 14:50:07 1998 Stefan Jeske * gtk/testgtk.c : diff --git a/ChangeLog.pre-2-2 b/ChangeLog.pre-2-2 index e05754948e..592f5679cf 100644 --- a/ChangeLog.pre-2-2 +++ b/ChangeLog.pre-2-2 @@ -1,3 +1,21 @@ +Mon Jul 27 03:11:20 1998 Tim Janik + + * gtk/gtkbindings.c (binding_compose_params): fixup, so that enum + values are looked up. + + * gtk/gtktypeutils.h: + * gtk/gtktypeutils.c: new functions gtk_type_flags_find_value and + gtk_type_enums_find_value to lookup enum values. + + * gtk/gtkctree.h: + * gtk/gtkctree.c: change enum name from GtkCTreeExpansion to + GtkCTreeExpansionType. fixed signal creations to pass the enum + types not just the base type GTK_TYPE_ENUM. + + * gtk/gtkclist.h: + * gtk/gtkclist.c: fixed signal creations to pass the real enum + types not just the base type GTK_TYPE_ENUM. + Sun Jul 26 14:50:07 1998 Stefan Jeske * gtk/testgtk.c : diff --git a/ChangeLog.pre-2-4 b/ChangeLog.pre-2-4 index e05754948e..592f5679cf 100644 --- a/ChangeLog.pre-2-4 +++ b/ChangeLog.pre-2-4 @@ -1,3 +1,21 @@ +Mon Jul 27 03:11:20 1998 Tim Janik + + * gtk/gtkbindings.c (binding_compose_params): fixup, so that enum + values are looked up. + + * gtk/gtktypeutils.h: + * gtk/gtktypeutils.c: new functions gtk_type_flags_find_value and + gtk_type_enums_find_value to lookup enum values. + + * gtk/gtkctree.h: + * gtk/gtkctree.c: change enum name from GtkCTreeExpansion to + GtkCTreeExpansionType. fixed signal creations to pass the enum + types not just the base type GTK_TYPE_ENUM. + + * gtk/gtkclist.h: + * gtk/gtkclist.c: fixed signal creations to pass the real enum + types not just the base type GTK_TYPE_ENUM. + Sun Jul 26 14:50:07 1998 Stefan Jeske * gtk/testgtk.c : diff --git a/ChangeLog.pre-2-6 b/ChangeLog.pre-2-6 index e05754948e..592f5679cf 100644 --- a/ChangeLog.pre-2-6 +++ b/ChangeLog.pre-2-6 @@ -1,3 +1,21 @@ +Mon Jul 27 03:11:20 1998 Tim Janik + + * gtk/gtkbindings.c (binding_compose_params): fixup, so that enum + values are looked up. + + * gtk/gtktypeutils.h: + * gtk/gtktypeutils.c: new functions gtk_type_flags_find_value and + gtk_type_enums_find_value to lookup enum values. + + * gtk/gtkctree.h: + * gtk/gtkctree.c: change enum name from GtkCTreeExpansion to + GtkCTreeExpansionType. fixed signal creations to pass the enum + types not just the base type GTK_TYPE_ENUM. + + * gtk/gtkclist.h: + * gtk/gtkclist.c: fixed signal creations to pass the real enum + types not just the base type GTK_TYPE_ENUM. + Sun Jul 26 14:50:07 1998 Stefan Jeske * gtk/testgtk.c : diff --git a/ChangeLog.pre-2-8 b/ChangeLog.pre-2-8 index e05754948e..592f5679cf 100644 --- a/ChangeLog.pre-2-8 +++ b/ChangeLog.pre-2-8 @@ -1,3 +1,21 @@ +Mon Jul 27 03:11:20 1998 Tim Janik + + * gtk/gtkbindings.c (binding_compose_params): fixup, so that enum + values are looked up. + + * gtk/gtktypeutils.h: + * gtk/gtktypeutils.c: new functions gtk_type_flags_find_value and + gtk_type_enums_find_value to lookup enum values. + + * gtk/gtkctree.h: + * gtk/gtkctree.c: change enum name from GtkCTreeExpansion to + GtkCTreeExpansionType. fixed signal creations to pass the enum + types not just the base type GTK_TYPE_ENUM. + + * gtk/gtkclist.h: + * gtk/gtkclist.c: fixed signal creations to pass the real enum + types not just the base type GTK_TYPE_ENUM. + Sun Jul 26 14:50:07 1998 Stefan Jeske * gtk/testgtk.c : diff --git a/gtk/gtk.defs b/gtk/gtk.defs index 7542308569..af47587c40 100644 --- a/gtk/gtk.defs +++ b/gtk/gtk.defs @@ -23,7 +23,7 @@ (tabbed GTK_CTREE_LINES_TABBED) (none GTK_CTREE_LINES_NONE)) -(define-enum GtkCTreeExpansion +(define-enum GtkCTreeExpansionType (expand GTK_CTREE_EXPANSION_EXPAND) (expand-recursive GTK_CTREE_EXPANSION_EXPAND_RECURSIVE) (collapse GTK_CTREE_EXPANSION_COLLAPSE) diff --git a/gtk/gtkbindings.c b/gtk/gtkbindings.c index b991ca85c3..15097f346a 100644 --- a/gtk/gtkbindings.c +++ b/gtk/gtkbindings.c @@ -310,8 +310,13 @@ binding_compose_params (GtkBindingArg *args, (param_ftype == GTK_TYPE_ENUM || param_ftype == GTK_TYPE_FLAGS)) { - /* FIXME: we need identifier lookups here */ - valid = FALSE; + GtkEnumValue *value; + + value = gtk_type_enum_find_value (params->type, args->d.string_data); + if (value) + GTK_VALUE_ENUM (*params) = value->value; + else + valid = FALSE; } else valid = FALSE; diff --git a/gtk/gtkclist.c b/gtk/gtkclist.c index cf428a0b6b..1e748ed930 100644 --- a/gtk/gtkclist.c +++ b/gtk/gtkclist.c @@ -477,21 +477,21 @@ gtk_clist_class_init (GtkCListClass * klass) GTK_SIGNAL_OFFSET (GtkCListClass, extend_selection), gtk_marshal_NONE__ENUM_FLOAT_BOOL, GTK_TYPE_NONE, 3, - GTK_TYPE_ENUM, GTK_TYPE_FLOAT, GTK_TYPE_BOOL); + GTK_TYPE_SCROLL_TYPE, GTK_TYPE_FLOAT, GTK_TYPE_BOOL); clist_signals[SCROLL_VERTICAL] = gtk_signal_new ("scroll_vertical", GTK_RUN_LAST | GTK_RUN_ACTION, object_class->type, GTK_SIGNAL_OFFSET (GtkCListClass, scroll_vertical), gtk_marshal_NONE__ENUM_FLOAT, - GTK_TYPE_NONE, 2, GTK_TYPE_ENUM, GTK_TYPE_FLOAT); + GTK_TYPE_NONE, 2, GTK_TYPE_SCROLL_TYPE, GTK_TYPE_FLOAT); clist_signals[SCROLL_HORIZONTAL] = gtk_signal_new ("scroll_horizontal", GTK_RUN_LAST | GTK_RUN_ACTION, object_class->type, GTK_SIGNAL_OFFSET (GtkCListClass, scroll_horizontal), gtk_marshal_NONE__ENUM_FLOAT, - GTK_TYPE_NONE, 2, GTK_TYPE_ENUM, GTK_TYPE_FLOAT); + GTK_TYPE_NONE, 2, GTK_TYPE_SCROLL_TYPE, GTK_TYPE_FLOAT); clist_signals[ABORT_COLUMN_RESIZE] = gtk_signal_new ("abort_column_resize", GTK_RUN_LAST | GTK_RUN_ACTION, diff --git a/gtk/gtkctree.c b/gtk/gtkctree.c index c04c34e3be..0010bf43d7 100644 --- a/gtk/gtkctree.c +++ b/gtk/gtkctree.c @@ -133,7 +133,7 @@ static void tree_toggle_expansion (GtkCTree *ctree, GList *node, gpointer data); static void change_focus_row_expansion (GtkCTree *ctree, - GtkCTreeExpansion expansion); + GtkCTreeExpansionType expansion); static void real_select_row (GtkCList *clist, gint row, gint column, @@ -225,7 +225,7 @@ typedef void (*GtkCTreeSignal3) (GtkObject *object, gpointer data); typedef void (*GtkCTreeSignal4) (GtkObject *object, - GtkCTreeExpansion arg1, + GtkCTreeExpansionType arg1, gpointer data); @@ -317,7 +317,7 @@ gtk_ctree_class_init (GtkCTreeClass *klass) GTK_SIGNAL_OFFSET (GtkCTreeClass, change_focus_row_expansion), gtk_marshal_NONE__ENUM, - GTK_TYPE_NONE, 1, GTK_TYPE_ENUM); + GTK_TYPE_NONE, 1, GTK_TYPE_C_TREE_EXPANSION_TYPE); gtk_object_class_add_signals (object_class, ctree_signals, LAST_SIGNAL); @@ -2774,7 +2774,7 @@ real_tree_move (GtkCTree *ctree, static void change_focus_row_expansion (GtkCTree *ctree, - GtkCTreeExpansion action) + GtkCTreeExpansionType action) { GtkCList *clist; GList *node; diff --git a/gtk/gtkctree.h b/gtk/gtkctree.h index cd6153c7af..e430a19dd5 100644 --- a/gtk/gtkctree.h +++ b/gtk/gtkctree.h @@ -66,7 +66,7 @@ typedef enum GTK_CTREE_EXPANSION_COLLAPSE_RECURSIVE, GTK_CTREE_EXPANSION_TOGGLE, GTK_CTREE_EXPANSION_TOGGLE_RECURSIVE -} GtkCTreeExpansion; +} GtkCTreeExpansionType; typedef struct _GtkCTree GtkCTree; typedef struct _GtkCTreeClass GtkCTreeClass; @@ -125,7 +125,7 @@ struct _GtkCTreeClass GList *new_parent, GList *new_sibling); void (*change_focus_row_expansion) (GtkCTree *ctree, - GtkCTreeExpansion action); + GtkCTreeExpansionType action); }; struct _GtkCTreeRow diff --git a/gtk/gtktypebuiltins.h b/gtk/gtktypebuiltins.h index 9decd303bb..45ab8471b6 100644 --- a/gtk/gtktypebuiltins.h +++ b/gtk/gtktypebuiltins.h @@ -3,7 +3,7 @@ extern GtkType GTK_TYPE_CELL_TYPE; extern GtkType GTK_TYPE_C_TREE_POS; extern GtkType GTK_TYPE_C_TREE_LINE_STYLE; -extern GtkType GTK_TYPE_C_TREE_EXPANSION; +extern GtkType GTK_TYPE_C_TREE_EXPANSION_TYPE; extern GtkType GTK_TYPE_DEBUG_FLAG; extern GtkType GTK_TYPE_ACCEL_FLAGS; extern GtkType GTK_TYPE_ARROW_TYPE; diff --git a/gtk/gtktypebuiltins_evals.c b/gtk/gtktypebuiltins_evals.c index 08d5328d08..0c2ee779eb 100644 --- a/gtk/gtktypebuiltins_evals.c +++ b/gtk/gtktypebuiltins_evals.c @@ -21,7 +21,7 @@ static GtkEnumValue _gtk_c_tree_line_style_values[] = { { GTK_CTREE_LINES_NONE, "GTK_CTREE_LINES_NONE", "none" }, { 0, NULL, NULL } }; -static GtkEnumValue _gtk_c_tree_expansion_values[] = { +static GtkEnumValue _gtk_c_tree_expansion_type_values[] = { { GTK_CTREE_EXPANSION_EXPAND, "GTK_CTREE_EXPANSION_EXPAND", "expand" }, { GTK_CTREE_EXPANSION_EXPAND_RECURSIVE, "GTK_CTREE_EXPANSION_EXPAND_RECURSIVE", "expand-recursive" }, { GTK_CTREE_EXPANSION_COLLAPSE, "GTK_CTREE_EXPANSION_COLLAPSE", "collapse" }, diff --git a/gtk/gtktypebuiltins_ids.c b/gtk/gtktypebuiltins_ids.c index 2d1ee74f2b..0ee573bb04 100644 --- a/gtk/gtktypebuiltins_ids.c +++ b/gtk/gtktypebuiltins_ids.c @@ -6,8 +6,8 @@ GTK_TYPE_ENUM, _gtk_c_tree_pos_values }, { "GtkCTreeLineStyle", >K_TYPE_C_TREE_LINE_STYLE, GTK_TYPE_ENUM, _gtk_c_tree_line_style_values }, - { "GtkCTreeExpansion", >K_TYPE_C_TREE_EXPANSION, - GTK_TYPE_ENUM, _gtk_c_tree_expansion_values }, + { "GtkCTreeExpansionType", >K_TYPE_C_TREE_EXPANSION_TYPE, + GTK_TYPE_ENUM, _gtk_c_tree_expansion_type_values }, { "GtkDebugFlag", >K_TYPE_DEBUG_FLAG, GTK_TYPE_FLAGS, _gtk_debug_flag_values }, { "GtkAccelFlags", >K_TYPE_ACCEL_FLAGS, diff --git a/gtk/gtktypebuiltins_vars.c b/gtk/gtktypebuiltins_vars.c index bf7ae60e05..e6721248bb 100644 --- a/gtk/gtktypebuiltins_vars.c +++ b/gtk/gtktypebuiltins_vars.c @@ -3,7 +3,7 @@ GtkType GTK_TYPE_CELL_TYPE = 0; GtkType GTK_TYPE_C_TREE_POS = 0; GtkType GTK_TYPE_C_TREE_LINE_STYLE = 0; -GtkType GTK_TYPE_C_TREE_EXPANSION = 0; +GtkType GTK_TYPE_C_TREE_EXPANSION_TYPE = 0; GtkType GTK_TYPE_DEBUG_FLAG = 0; GtkType GTK_TYPE_ACCEL_FLAGS = 0; GtkType GTK_TYPE_ARROW_TYPE = 0; diff --git a/gtk/gtktypeutils.c b/gtk/gtktypeutils.c index 9e577a20e1..a876a7d884 100644 --- a/gtk/gtktypeutils.c +++ b/gtk/gtktypeutils.c @@ -553,7 +553,7 @@ gtk_type_enum_get_values (GtkType enum_type) return (GtkEnumValue*) node->type_info.reserved_1; } - g_warning ("gtk_type_enum_get_values(): type `%s' is not derived from `enum' or `flags'", + g_warning ("gtk_type_enum_get_values(): type `%s' is not derived from `GtkEnum' or `GtkFlags'", gtk_type_name (enum_type)); return NULL; @@ -565,6 +565,42 @@ gtk_type_flags_get_values (GtkType flags_type) return gtk_type_enum_get_values (flags_type); } +GtkEnumValue* +gtk_type_enum_find_value (GtkType enum_type, + const gchar *value_name) +{ + g_return_val_if_fail (value_name != NULL, NULL); + + if (GTK_FUNDAMENTAL_TYPE (enum_type) == GTK_TYPE_ENUM || + GTK_FUNDAMENTAL_TYPE (enum_type) == GTK_TYPE_FLAGS) + { + GtkEnumValue *vals; + + vals = gtk_type_enum_get_values (enum_type); + while (vals) + { + if (strcmp (vals->value_name, value_name) == 0 || + strcmp (vals->value_nick, value_name) == 0) + return vals; + vals++; + } + } + else + g_warning ("gtk_type_enum_find_value(): type `%s' is not derived from `GtkEnum' or `GtkFlags'", + gtk_type_name (enum_type)); + + return NULL; +} + +GtkFlagValue* +gtk_type_flags_find_value (GtkType flag_type, + const gchar *value_name) +{ + g_return_val_if_fail (value_name != NULL, NULL); + + return gtk_type_enum_find_value (flag_type, value_name); +} + static inline GtkType gtk_type_register_intern (gchar *name, GtkType parent, diff --git a/gtk/gtktypeutils.h b/gtk/gtktypeutils.h index af66787b2f..c2b3668b96 100644 --- a/gtk/gtktypeutils.h +++ b/gtk/gtktypeutils.h @@ -263,9 +263,12 @@ GtkType gtk_type_register_enum (const gchar *type_name, GtkEnumValue *values); GtkType gtk_type_register_flags (const gchar *type_name, GtkFlagValue *values); -GtkEnumValue* gtk_type_enum_get_values (GtkType enum_type); -GtkFlagValue* gtk_type_flags_get_values (GtkType flags_type); - +GtkEnumValue* gtk_type_enum_get_values (GtkType enum_type); +GtkFlagValue* gtk_type_flags_get_values (GtkType flags_type); +GtkEnumValue* gtk_type_enum_find_value (GtkType enum_type, + const gchar *value_name); +GtkFlagValue* gtk_type_flags_find_value (GtkType flag_type, + const gchar *value_name); #ifdef __cplusplus } diff --git a/gtk/testgtkrc b/gtk/testgtkrc index 779a090e2c..3427c0a876 100644 --- a/gtk/testgtkrc +++ b/gtk/testgtkrc @@ -125,3 +125,15 @@ binding "test2" class "GtkButton" binding "test1" # implicit : rc class "GtkButton" binding : highest "test2" # override "rc" priority +binding "clist-test" +{ + bind "j" { + "scroll-vertical" (step-backward, 0.0) + } + bind "k" { + "scroll-vertical" (step-forward, 0.0) + } +} + +class "GtkCList" binding "clist-test" + diff --git a/tests/testgtkrc b/tests/testgtkrc index 779a090e2c..3427c0a876 100644 --- a/tests/testgtkrc +++ b/tests/testgtkrc @@ -125,3 +125,15 @@ binding "test2" class "GtkButton" binding "test1" # implicit : rc class "GtkButton" binding : highest "test2" # override "rc" priority +binding "clist-test" +{ + bind "j" { + "scroll-vertical" (step-backward, 0.0) + } + bind "k" { + "scroll-vertical" (step-forward, 0.0) + } +} + +class "GtkCList" binding "clist-test" +