Rename lib/gtksheet to lib/gtk-contrib
[pspp-builds.git] / lib / gtk-contrib / gtkxpaned.h
diff --git a/lib/gtk-contrib/gtkxpaned.h b/lib/gtk-contrib/gtkxpaned.h
new file mode 100644 (file)
index 0000000..47e752e
--- /dev/null
@@ -0,0 +1,175 @@
+/*******************************************************************************
+**3456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 
+**      10        20        30        40        50        60        70        80
+**
+**  library for GtkXPaned-widget, a 2x2 grid-like variation of GtkPaned of gtk+
+**  Copyright (C) 2005-2006 Mirco "MacSlow" Müller <macslow@bangang.de>
+**
+**  This library is free software; you can redistribute it and/or
+**  modify it under the terms of the GNU Lesser General Public
+**  License as published by the Free Software Foundation; either
+**  version 2.1 of the License, or (at your option) any later version.
+**
+**  This library is distributed in the hope that it will be useful,
+**  but WITHOUT ANY WARRANTY; without even the implied warranty of
+**  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+**  Lesser General Public License for more details.
+**
+**  You should have received a copy of the GNU Lesser General Public
+**  License along with this library; if not, write to the Free Software
+**  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+**
+**  GtkXPaned is based on GtkPaned which was done by...
+**
+**  "Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald"
+**
+**  and later modified by...
+**
+**  "the GTK+ Team and others 1997-2000"
+**
+*******************************************************************************/
+
+#ifndef GTK_XPANED_H
+#define GTK_XPANED_H
+
+#include <gtk/gtkcontainer.h>
+
+G_BEGIN_DECLS
+
+#define GTK_TYPE_XPANED                  (gtk_xpaned_get_type ())
+#define GTK_XPANED(obj)                  (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_XPANED, GtkXPaned))
+#define GTK_XPANED_CLASS(klass)          (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_XPANED, GtkXPanedClass))
+#define GTK_IS_XPANED(obj)               (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_XPANED))
+#define GTK_IS_XPANED_CLASS(klass)       (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_XPANED))
+#define GTK_XPANED_GET_CLASS(obj)        (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_XPANED, GtkXPanedClass))
+
+typedef struct _GtkXPaned        GtkXPaned;
+typedef struct _GtkXPanedClass   GtkXPanedClass;
+typedef struct _GtkXPanedPrivate GtkXPanedPrivate;
+
+typedef enum _GtkXPanedChild
+{
+       GTK_XPANED_TOP_LEFT = 0,
+       GTK_XPANED_TOP_RIGHT,
+       GTK_XPANED_BOTTOM_LEFT,
+       GTK_XPANED_BOTTOM_RIGHT
+} GtkXPanedChild;
+       
+struct _GtkXPaned
+{
+       GtkContainer container;
+  
+       GtkWidget* top_left_child;
+       GtkWidget* top_right_child;
+       GtkWidget* bottom_left_child;
+       GtkWidget* bottom_right_child;
+
+       GdkWindow* handle_east;
+       GdkWindow* handle_west;
+       GdkWindow* handle_north;
+       GdkWindow* handle_south;
+       GdkWindow* handle_middle;
+       GdkGC* xor_gc;
+       GdkCursorType cursor_type_east;
+       GdkCursorType cursor_type_west;
+       GdkCursorType cursor_type_north;
+       GdkCursorType cursor_type_south;
+       GdkCursorType cursor_type_middle;
+
+       /*< private >*/
+       GdkRectangle handle_pos_east;
+       GdkRectangle handle_pos_west;
+       GdkRectangle handle_pos_north;
+       GdkRectangle handle_pos_south;
+       GdkRectangle handle_pos_middle;
+       GtkRequisition top_left_child_size;
+       GtkRequisition top_right_child_size;
+       GtkRequisition bottom_left_child_size;
+       GtkRequisition bottom_right_child_size;
+
+       GtkRequisition last_allocation;
+       GdkPoint min_position;
+       GdkPoint max_position;
+       gboolean maximized[4];
+
+       guint position_set : 1;
+       guint in_drag_vert : 1;
+       guint in_drag_horiz : 1;
+       guint in_drag_vert_and_horiz : 1;
+       guint top_left_child_shrink : 1;
+       guint top_left_child_resize : 1;
+       guint top_right_child_shrink : 1;
+       guint top_right_child_resize : 1;
+       guint bottom_left_child_shrink : 1;
+       guint bottom_left_child_resize : 1;
+       guint bottom_right_child_shrink : 1;
+       guint bottom_right_child_resize : 1;
+       guint in_recursion : 1;
+       guint handle_prelit : 1;
+
+       GtkWidget* last_top_left_child_focus;
+       GtkWidget* last_top_right_child_focus;
+       GtkWidget* last_bottom_left_child_focus;
+       GtkWidget* last_bottom_right_child_focus;
+       GtkXPanedPrivate* priv;
+
+       GdkPoint drag_pos;
+       GdkPoint original_position;
+       GdkPoint unmaximized_position;
+};
+
+struct _GtkXPanedClass
+{
+       GtkContainerClass parent_class;
+       gboolean (*cycle_child_focus)   (GtkXPaned* xpaned, gboolean reverse); 
+       gboolean (*toggle_handle_focus) (GtkXPaned* xpaned);
+       gboolean (*move_handle)                 (GtkXPaned* xpaned, GtkScrollType scroll);
+       gboolean (*cycle_handle_focus)  (GtkXPaned* xpaned, gboolean reverse);
+       gboolean (*accept_position)             (GtkXPaned* xpaned);
+       gboolean (*cancel_position)     (GtkXPaned* xpaned);
+};
+
+GType gtk_xpaned_get_type (void) G_GNUC_CONST;
+GtkWidget* gtk_xpaned_new (void);
+void gtk_xpaned_add_top_left (GtkXPaned* xpaned, GtkWidget* child);
+void gtk_xpaned_add_top_right (GtkXPaned* xpaned, GtkWidget* child);
+void gtk_xpaned_add_bottom_left (GtkXPaned* xpaned, GtkWidget* child);
+void gtk_xpaned_add_bottom_right (GtkXPaned* xpaned, GtkWidget* child);
+void gtk_xpaned_pack_top_left (GtkXPaned* xpaned, GtkWidget* child, gboolean resize, gboolean shrink);
+void gtk_xpaned_pack_top_right (GtkXPaned* xpaned, GtkWidget* child, gboolean resize, gboolean shrink);
+void gtk_xpaned_pack_bottom_left (GtkXPaned* xpaned, GtkWidget* child, gboolean resize, gboolean shrink);
+void gtk_xpaned_pack_bottom_right (GtkXPaned* xpaned, GtkWidget* child, gboolean resize, gboolean shrink);
+gint gtk_xpaned_get_position_x (GtkXPaned* xpaned);
+gint gtk_xpaned_get_position_y (GtkXPaned* xpaned);
+void gtk_xpaned_set_position_x (GtkXPaned* xpaned, gint xposition);
+void gtk_xpaned_set_position_y (GtkXPaned* xpaned, gint yposition);
+void gtk_xpaned_save_unmaximized_x (GtkXPaned* xpaned);
+void gtk_xpaned_save_unmaximized_y (GtkXPaned* xpaned);
+gint gtk_xpaned_fetch_unmaximized_x (GtkXPaned* xpaned);
+gint gtk_xpaned_fetch_unmaximized_y (GtkXPaned* xpaned);
+GtkWidget* gtk_xpaned_get_top_left_child (GtkXPaned* xpaned);
+GtkWidget* gtk_xpaned_get_top_right_child (GtkXPaned* xpaned);
+GtkWidget* gtk_xpaned_get_bottom_right_child (GtkXPaned* xpaned);
+GtkWidget* gtk_xpaned_get_bottom_left_child (GtkXPaned* xpaned);
+gboolean gtk_xpaned_maximize_top_left (GtkXPaned* xpaned, gboolean maximize);
+gboolean gtk_xpaned_maximize_top_right (GtkXPaned* xpaned, gboolean maximize);
+gboolean gtk_xpaned_maximize_bottom_left (GtkXPaned* xpaned, gboolean maximize);
+gboolean gtk_xpaned_maximize_bottom_right (GtkXPaned* xpaned, gboolean maximize);
+
+/* Internal function */
+#if !defined (GTK_DISABLE_DEPRECATED) || defined (GTK_COMPILATION)
+void gtk_xpaned_compute_position (GtkXPaned* xpaned,
+                                 const GtkAllocation* allocation,
+                                 GtkRequisition* top_left_child_req,
+                                 GtkRequisition* top_right_child_req,
+                                 GtkRequisition* bottom_left_child_req,
+                                 GtkRequisition* bottom_right_child_req);
+#endif /* !GTK_DISABLE_DEPRECATED || GTK_COMPILATION */
+#ifndef GTK_DISABLE_DEPRECATED
+#define        gtk_xpaned_gutter_size(p,s) (void) 0
+#define        gtk_xpaned_set_gutter_size(p,s) (void) 0
+#endif /* GTK_DISABLE_DEPRECATED */
+
+G_END_DECLS
+
+#endif /* GTK_XPANED_H */