fixup, so that enum values are looked up.

Mon Jul 27 03:11:20 1998  Tim Janik  <timj@gtk.org>

        * 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.
This commit is contained in:
Tim Janik 1998-07-27 01:50:16 +00:00 committed by Tim Janik
parent 656061cb2b
commit fc7c7f466f
20 changed files with 215 additions and 21 deletions

View File

@ -1,3 +1,21 @@
Mon Jul 27 03:11:20 1998 Tim Janik <timj@gtk.org>
* 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 <stefan@gtk.org>
* gtk/testgtk.c :

View File

@ -1,3 +1,21 @@
Mon Jul 27 03:11:20 1998 Tim Janik <timj@gtk.org>
* 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 <stefan@gtk.org>
* gtk/testgtk.c :

View File

@ -1,3 +1,21 @@
Mon Jul 27 03:11:20 1998 Tim Janik <timj@gtk.org>
* 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 <stefan@gtk.org>
* gtk/testgtk.c :

View File

@ -1,3 +1,21 @@
Mon Jul 27 03:11:20 1998 Tim Janik <timj@gtk.org>
* 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 <stefan@gtk.org>
* gtk/testgtk.c :

View File

@ -1,3 +1,21 @@
Mon Jul 27 03:11:20 1998 Tim Janik <timj@gtk.org>
* 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 <stefan@gtk.org>
* gtk/testgtk.c :

View File

@ -1,3 +1,21 @@
Mon Jul 27 03:11:20 1998 Tim Janik <timj@gtk.org>
* 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 <stefan@gtk.org>
* gtk/testgtk.c :

View File

@ -1,3 +1,21 @@
Mon Jul 27 03:11:20 1998 Tim Janik <timj@gtk.org>
* 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 <stefan@gtk.org>
* gtk/testgtk.c :

View File

@ -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)

View File

@ -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;

View File

@ -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,

View File

@ -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;

View File

@ -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

View File

@ -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;

View File

@ -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" },

View File

@ -6,8 +6,8 @@
GTK_TYPE_ENUM, _gtk_c_tree_pos_values },
{ "GtkCTreeLineStyle", &GTK_TYPE_C_TREE_LINE_STYLE,
GTK_TYPE_ENUM, _gtk_c_tree_line_style_values },
{ "GtkCTreeExpansion", &GTK_TYPE_C_TREE_EXPANSION,
GTK_TYPE_ENUM, _gtk_c_tree_expansion_values },
{ "GtkCTreeExpansionType", &GTK_TYPE_C_TREE_EXPANSION_TYPE,
GTK_TYPE_ENUM, _gtk_c_tree_expansion_type_values },
{ "GtkDebugFlag", &GTK_TYPE_DEBUG_FLAG,
GTK_TYPE_FLAGS, _gtk_debug_flag_values },
{ "GtkAccelFlags", &GTK_TYPE_ACCEL_FLAGS,

View File

@ -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;

View File

@ -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,

View File

@ -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
}

View File

@ -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"

View File

@ -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"