* 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
#include <gdk/gdk.h>
-#include <gtk/gtkeventbox.h>
+#include <gtk/gtkbin.h>
#ifdef __cplusplus
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