]> Pileus Git - ~andy/gtk/blobdiff - gtk/gtkhandlebox.h
Reverted coding style "fixups"
[~andy/gtk] / gtk / gtkhandlebox.h
index 10c98f7ab5db76670ee67fe5efbf318813aff63d..215a7efcbd73760e1be7ca67410b9b638b22f401 100644 (file)
@@ -13,8 +13,9 @@
  * Library General Public License for more details.
  *
  * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the Free
- * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
  */
 
 /* The GtkHandleBox is to allow widgets to be dragged in and out of
@@ -27,7 +28,7 @@
 
 
 #include <gdk/gdk.h>
-#include <gtk/gtkeventbox.h>
+#include <gtk/gtkbin.h>
 
 
 #ifdef __cplusplus
@@ -45,27 +46,42 @@ typedef struct _GtkHandleBoxClass  GtkHandleBoxClass;
 
 struct _GtkHandleBox
 {
-  GtkEventBox     event_box;
-  GtkWidget      *real_parent;
-  GtkRequisition  real_requisition;
-  gboolean        is_being_dragged;
-  gboolean        is_onroot;
+  GtkBin bin;
+
+  GdkWindow      *bin_window;  /* parent window for children */
+  GdkWindow      *float_window;
+  GtkShadowType   shadow_type;
+  guint                  handle_position : 2;
+  guint                  float_window_mapped : 1;
+  guint                  child_detached : 1;
+  guint                  in_drag : 1;
+  guint                  shrink_on_detach : 1;
+
+  /* Variables used during a drag
+   */
+  gint dragoff_x, dragoff_y; /* offset from event->root_x/y and
+                             * attach point on float */
+  gint deskoff_x, deskoff_y; /* Offset between root relative coordinates
+                             * and deskrelative coordinates */
+  gint attach_x, attach_y;   /* Root relative-coordinates of attach
+                             * point on widget->window */
 };
 
 struct _GtkHandleBoxClass
 {
-  GtkEventBoxClass parent_class;
+  GtkBinClass parent_class;
+
+  void (*child_attached)       (GtkHandleBox   *handle_box,
+                                GtkWidget      *child);
+  void (*child_detached)       (GtkHandleBox   *handle_box,
+                                GtkWidget      *child);
 };
 
 
 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);
+void           gtk_handle_box_set_shadow_type (GtkHandleBox    *handle_box,
+                                               GtkShadowType    type);
 
 
 #ifdef __cplusplus