summaryrefslogtreecommitdiff
path: root/gtk/gtkobject.h
diff options
context:
space:
mode:
authorTim Janik <timj@gimp.org>1998-02-19 07:18:42 +0000
committerTim Janik <timj@src.gnome.org>1998-02-19 07:18:42 +0000
commit0ef453b82c2d486d7913517e2b72571b90de312a (patch)
tree4311d3c65dc22a71dcd759a7771987d31dc7bab1 /gtk/gtkobject.h
parenta4b322cccce97c4d75f32949d036861d0aa69bdb (diff)
downloadgtk+-0ef453b82c2d486d7913517e2b72571b90de312a.tar.gz
present the argument access masks on their announcement.
Thu Feb 19 06:56:52 1998 Tim Janik <timj@gimp.org> * gtkbox.c: * gtkbutton.c: * gtkcontainer.c: * gtkframe.c: * gtklabel.c: * gtkobject.c: * gtkwidget.c: * gtkwindow.c: present the argument access masks on their announcement. * gtk/gtkobject.h: * gtk/gtkobject.c: (gtk_object_add_arg_type): take an additional argument describing the access mask of the new arg. this can be of GTK_ARG_READABLE, GTK_ARG_WRITABLE or GTK_ARG_READWRITE (the latter is an alias for the two previous ones). (gtk_object_query_args): provide an access_mask array if desired. * gtk/gtkwidget.c (gtk_widget_real_realize): realized the assumtion that widget is a NO_WINDOW widget in actuall code. * gtkwindow.c: slight changes to gtk_window_configure_event that will make the resizing behaviour a little less odd. sigh, for some (buggy) reason, there are still container resizes triggered by manual resizing to very small window sizes. the cointainer resizes will cause gtk_real_window_move_resize to be invoked, which makes the app look like it wants to fight the users resizing action. ;(
Diffstat (limited to 'gtk/gtkobject.h')
-rw-r--r--gtk/gtkobject.h32
1 files changed, 23 insertions, 9 deletions
diff --git a/gtk/gtkobject.h b/gtk/gtkobject.h
index fadea418ee..cb7473becc 100644
--- a/gtk/gtkobject.h
+++ b/gtk/gtkobject.h
@@ -65,18 +65,28 @@ extern "C" {
#define GTK_OBJECT_TYPE(obj) (GTK_OBJECT (obj)->klass->type)
#define GTK_OBJECT_SIGNALS(obj) (GTK_OBJECT (obj)->klass->signals)
#define GTK_OBJECT_NSIGNALS(obj) (GTK_OBJECT (obj)->klass->nsignals)
-
+
/* GtkObject only uses the first 4 bits of the flags field.
* GtkWidget uses the remaining bits. Though this is a kinda nasty
* break up, it does make the size of GtkWidget smaller.
*/
enum
- {
- GTK_DESTROYED = 1 << 0,
- GTK_FLOATING = 1 << 1,
- GTK_RESERVED_1 = 1 << 2,
- GTK_RESERVED_2 = 1 << 3
- };
+{
+ GTK_DESTROYED = 1 << 0,
+ GTK_FLOATING = 1 << 1,
+ GTK_RESERVED_1 = 1 << 2,
+ GTK_RESERVED_2 = 1 << 3
+};
+
+/* GtkArg access bits for gtk_object_add_arg_type
+ */
+enum
+{
+ GTK_ARG_READABLE = 1 << 0,
+ GTK_ARG_WRITABLE = 1 << 1,
+};
+#define GTK_ARG_READWRITE (GTK_ARG_READABLE | GTK_ARG_WRITABLE)
+
/* Macros for extracting the object_flags from GtkObject.
*/
@@ -236,15 +246,19 @@ void gtk_object_setv (GtkObject *object,
/* Allocate a GtkArg array of size nargs that hold the
* names and types of the args that can be used with
- * gtk_object_set/gtk_object_get.
+ * gtk_object_set/gtk_object_get. if (*acess_masks!=NULL)
+ * the pointer will be set to point to a newly allocated
+ * guint array that holds the access masks of the args.
* It is the callers response to do a
- * g_free (returned_args).
+ * g_free (returned_args); g_free (*acess_masks).
*/
GtkArg* gtk_object_query_args (GtkType class_type,
+ guint **acess_masks,
guint *nargs);
void gtk_object_add_arg_type (const gchar *arg_name,
GtkType arg_type,
+ guint access_mask,
guint arg_id);
GtkType gtk_object_get_arg_type (const gchar *arg_name);