diff options
author | Federico Mena <federico@bananoid.nuclecu.unam.mx> | 1998-01-16 19:01:56 +0000 |
---|---|---|
committer | Arturo Espinosa <unammx@src.gnome.org> | 1998-01-16 19:01:56 +0000 |
commit | 582a3f433c7b1fd1940cb273b522da39931fb9a8 (patch) | |
tree | 0905509128f54c8ea60bb781a60a33656bb81f77 /gtk/gtkhandlebox.h | |
parent | 97f11c694c2f9e43a26dc733c18a19a3c12173fa (diff) | |
download | gdk-pixbuf-582a3f433c7b1fd1940cb273b522da39931fb9a8.tar.gz |
Lots of changes all over the place. Now the widget has two windows. The
Fri Jan 16 00:36:31 1998 Federico Mena <federico@bananoid.nuclecu.unam.mx>
* gtk/gtkhandlebox.c: Lots of changes all over the place. Now the
widget has two windows. The steady_window stays put in the parent
container, and the widget->window is the one that gets
reparented. Now that window is transient, in compliance with the
ICCCM, instead of an OverrideRedirect window.
We have two windows so that we can properly receive Expose events
for the thin 3D line that marks the place where the handlebox is
docked.
* gtk/gtkhandlebox.h (struct _GtkHandleBox): Added fields for
dragging (mouse position information). Added fleur_cursor so that
we look pretty. Added steady_window field; it is the window that
actually stays on the parent (widget->window is the one that gets
reparented).
Owen, this is the version with the two X calls in gtkhandlebox.c.
I'll do as you say; either we can add new calls to Gdk, or I can
modify the handle box code to use a separate GtkWindow and reparent
the child into that.
- Federico
Diffstat (limited to 'gtk/gtkhandlebox.h')
-rw-r--r-- | gtk/gtkhandlebox.h | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/gtk/gtkhandlebox.h b/gtk/gtkhandlebox.h index 10c98f7ab..ac20a0822 100644 --- a/gtk/gtkhandlebox.h +++ b/gtk/gtkhandlebox.h @@ -27,7 +27,7 @@ #include <gdk/gdk.h> -#include <gtk/gtkeventbox.h> +#include <gtk/gtkbin.h> #ifdef __cplusplus @@ -45,27 +45,27 @@ typedef struct _GtkHandleBoxClass GtkHandleBoxClass; struct _GtkHandleBox { - GtkEventBox event_box; + GtkBin bin; + GtkWidget *real_parent; + GdkWindow *steady_window; /* the window that stays in the parent container */ GtkRequisition real_requisition; gboolean is_being_dragged; gboolean is_onroot; + GdkCursor *fleur_cursor; + + gint dragoff_x, dragoff_y; /* start drag position (wrt widget->window) */ + gint steady_x, steady_y; /* origin of stedy_window (wrt the root window) */ }; struct _GtkHandleBoxClass { - GtkEventBoxClass parent_class; + GtkBinClass parent_class; }; guint gtk_handle_box_get_type (void); GtkWidget* gtk_handle_box_new (void); -/* the x and y coordinates (relative to root window, of course) - are only needed if you pass in_root = TRUE */ -void gtk_handle_box_set_location (GtkWidget *widget, - gboolean in_root, - gint x, - gint y); #ifdef __cplusplus |