summaryrefslogtreecommitdiff
path: root/gtk/gtkbindings.c
diff options
context:
space:
mode:
authorTim Janik <timj@gtk.org>1998-07-09 23:00:34 +0000
committerTim Janik <timj@src.gnome.org>1998-07-09 23:00:34 +0000
commit347efc33b8007f5d2fe625d7c0e6a51fbb3a3438 (patch)
treeb1a1837fb5431bd39c05edc94f792cf96dca8f04 /gtk/gtkbindings.c
parent9b4d90465ef16ba56272cb91857dab0b2347d93c (diff)
downloadgdk-pixbuf-347efc33b8007f5d2fe625d7c0e6a51fbb3a3438.tar.gz
deleted most of the argument handling code, since that is now implemented
Fri Jul 10 00:02:04 1998 Tim Janik <timj@gtk.org> * gtk/gtkcontainer.h: * gtk/gtkcontainer.c: deleted most of the argument handling code, since that is now implemented in gtkarg.c. similar to gtk_object_args_collect, we now export a new function gtk_container_child_args_collect(). for consistency with the object arguments, a few functions got renamed: gtk_container_child_arg_get -> gtk_container_child_get, gtk_container_child_arg_set -> gtk_container_child_set, gtk_container_child_arg_getv -> gtk_container_child_getv, gtk_container_child_arg_setv -> gtk_container_child_setv, gtk_container_add_with_argv -> gtk_container_addv. note, gtk_container_add_with_args() remained, because its equivalent would be gtk_container_add(,, ...) which would break all existing code. (gtk_container_add_child_arg_type): similar to gtk_object_add_arg_type, we expect the `arg_name' argument to be a const static string now. (gtk_container_get_child_arg_type): function removed. Thu Jul 9 07:03:04 1998 Tim Janik <timj@gtk.org> * gtk/gtkargcollector.c: new file which holds gtk_arg_collect_value(). this is a static inline function that collects command line arguments from a va_list. this file can just be included in all places that need this functionality. * gtk/gtkarg.h: * gtk/gtkarg.c: new files which implement most of the argument handling stuff from gtkobject.c. also collected a few more gtk_arg_* utility functions from else places. * gtk/gtkobject.h: * gtk/gtkobject.c: moved most of the argument handling code into gtkarg.c. we now export gtk_object_args_collect() as a non-public method with a blind va_list pointer. (gtk_object_add_arg_type): the `arg_name' argument is required to be a const static string now. (gtk_object_get_arg_type): function got removed. * gtk/gtkwidget.c: (gtk_widget_set): (gtk_widget_new): adaptions for gtk_object_args_collect(). * gtk/gtktypeutils.c (gtk_type_init_builtin_types): changed the internal fundamental type name so as to have a valid prefix, e.g. "bool"-> "gboolean", "string"->"GtkString" and somesuch, left "void" as is, though that should probably be something like GtkNone since the type itself is called GTK_TYPE_NONE. even the internal type names need to avoid name clashes and must live in their own namespace, several code portions rely on that. we should relly have typedefs such as typedef gchar* GtkString; so the fundamental type names can be used for code dumpers just like with all the Gtk/Gdk types.
Diffstat (limited to 'gtk/gtkbindings.c')
-rw-r--r--gtk/gtkbindings.c47
1 files changed, 28 insertions, 19 deletions
diff --git a/gtk/gtkbindings.c b/gtk/gtkbindings.c
index 49a0dbacb..50222147d 100644
--- a/gtk/gtkbindings.c
+++ b/gtk/gtkbindings.c
@@ -30,6 +30,13 @@
/* --- defines --- */
#define BINDING_MOD_MASK() (gtk_accelerator_get_default_mod_mask () | GDK_RELEASE_MASK)
+#define BINDING_TYPE_INT (GTK_TYPE_INT)
+#define BINDING_TYPE_LONG (GTK_TYPE_LONG)
+#define BINDING_TYPE_FLOAT (GTK_TYPE_FLOAT)
+#define BINDING_TYPE_DOUBLE (GTK_TYPE_DOUBLE)
+#define BINDING_TYPE_STRING (GTK_TYPE_STRING)
+#define BINDING_TYPE_IDENTIFIER (42)
+
/* --- variables --- */
static GHashTable *binding_entry_hash_table = NULL;
@@ -61,7 +68,8 @@ binding_signal_free (GtkBindingSignal *sig)
for (i = 0; i < sig->n_args; i++)
{
- if (sig->args[i].arg_type == GTK_BINDING_ARG_STRING)
+ if (sig->args[i].arg_type == BINDING_TYPE_STRING ||
+ sig->args[i].arg_type == BINDING_TYPE_IDENTIFIER)
g_free (sig->args[i].d.string_data);
}
g_free (sig->args);
@@ -266,13 +274,7 @@ binding_compose_params (GtkBindingArg *args,
params->name = NULL;
switch (args->arg_type)
{
- case GTK_BINDING_ARG_STRING:
- if (params->type == GTK_TYPE_STRING)
- GTK_VALUE_STRING (*params) = args->d.string_data;
- else
- valid = FALSE;
- break;
- case GTK_BINDING_ARG_DOUBLE:
+ case BINDING_TYPE_DOUBLE:
if (params->type == GTK_TYPE_FLOAT)
GTK_VALUE_FLOAT (*params) = args->d.double_data;
else if (params->type == GTK_TYPE_DOUBLE)
@@ -280,7 +282,7 @@ binding_compose_params (GtkBindingArg *args,
else
valid = FALSE;
break;
- case GTK_BINDING_ARG_LONG:
+ case BINDING_TYPE_LONG:
if (params->type == GTK_TYPE_BOOL &&
(args->d.long_data == 0 ||
args->d.long_data == 1))
@@ -302,6 +304,13 @@ binding_compose_params (GtkBindingArg *args,
else
valid = FALSE;
break;
+ case BINDING_TYPE_STRING:
+ if (params->type == GTK_TYPE_STRING)
+ GTK_VALUE_STRING (*params) = args->d.string_data;
+ else
+ valid = FALSE;
+ break;
+ case BINDING_TYPE_IDENTIFIER:
default:
valid = FALSE;
break;
@@ -560,15 +569,15 @@ gtk_binding_entry_add_signall (GtkBindingSet *binding_set,
arg->arg_type = tmp_arg->arg_type;
switch (tmp_arg->arg_type)
{
- case GTK_BINDING_ARG_INT:
- case GTK_BINDING_ARG_LONG:
+ case BINDING_TYPE_INT:
+ case BINDING_TYPE_LONG:
arg->d.long_data = tmp_arg->d.long_data;
break;
- case GTK_BINDING_ARG_FLOAT:
- case GTK_BINDING_ARG_DOUBLE:
+ case BINDING_TYPE_FLOAT:
+ case BINDING_TYPE_DOUBLE:
arg->d.double_data = tmp_arg->d.double_data;
break;
- case GTK_BINDING_ARG_STRING:
+ case BINDING_TYPE_STRING:
if (!tmp_arg->d.string_data)
{
g_warning ("gtk_binding_entry_add_signall(): value of `string' arg[%u] is `NULL'", n);
@@ -630,19 +639,19 @@ gtk_binding_entry_add_signal (GtkBindingSet *binding_set,
arg->arg_type = va_arg (args, GtkType);
switch (arg->arg_type)
{
- case GTK_BINDING_ARG_INT:
+ case BINDING_TYPE_INT:
arg->d.long_data = va_arg (args, gint);
break;
- case GTK_BINDING_ARG_LONG:
+ case BINDING_TYPE_LONG:
arg->d.long_data = va_arg (args, glong);
break;
- case GTK_BINDING_ARG_FLOAT:
+ case BINDING_TYPE_FLOAT:
arg->d.double_data = va_arg (args, gfloat);
break;
- case GTK_BINDING_ARG_DOUBLE:
+ case BINDING_TYPE_DOUBLE:
arg->d.double_data = va_arg (args, gdouble);
break;
- case GTK_BINDING_ARG_STRING:
+ case BINDING_TYPE_STRING:
arg->d.string_data = va_arg (args, gchar*);
if (!arg->d.string_data)
{