1 /* GTK - The GIMP Toolkit 2 * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald 3 * 4 * This library is free software; you can redistribute it and/or 5 * modify it under the terms of the GNU Lesser General Public 6 * License as published by the Free Software Foundation; either 7 * version 2 of the License, or (at your option) any later version. 8 * 9 * This library is distributed in the hope that it will be useful, 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 * Lesser General Public License for more details. 13 * 14 * You should have received a copy of the GNU Lesser General Public 15 * License along with this library; if not, write to the 16 * Free Software Foundation, Inc., 59 Temple Place - Suite 330, 17 * Boston, MA 02111-1307, USA. 18 */ 19 20 /* 21 * Modified by the GTK+ Team and others 1997-2000. See the AUTHORS 22 * file for a list of people on the GTK+ Team. See the ChangeLog 23 * files for a list of changes. These files are distributed with 24 * GTK+ at ftp://ftp.gtk.org/pub/gtk/. 25 */ 26 27 #ifndef __GTK_PANED_H__ 28 #define __GTK_PANED_H__ 29 30 #if defined(GTK_DISABLE_SINGLE_INCLUDES) && !defined (__GTK_H_INSIDE__) && !defined (GTK_COMPILATION) 31 #error "Only <gtk/gtk.h> can be included directly." 32 #endif 33 34 #include <gtk/gtkcontainer.h> 35 36 G_BEGIN_DECLS 37 38 #define GTK_TYPE_PANED (gtk_paned_get_type ()) 39 #define GTK_PANED(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_PANED, GtkPaned)) 40 #define GTK_PANED_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_PANED, GtkPanedClass)) 41 #define GTK_IS_PANED(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_PANED)) 42 #define GTK_IS_PANED_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_PANED)) 43 #define GTK_PANED_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_PANED, GtkPanedClass)) 44 45 46 typedef struct _GtkPaned GtkPaned; 47 typedef struct _GtkPanedClass GtkPanedClass; 48 typedef struct _GtkPanedPrivate GtkPanedPrivate; 49 50 struct _GtkPaned 51 { 52 GtkContainer container; 53 54 GtkWidget *GSEAL (child1); 55 GtkWidget *GSEAL (child2); 56 57 GdkWindow *GSEAL (handle); 58 GdkGC *GSEAL (xor_gc); 59 GdkCursorType GSEAL (cursor_type); 60 61 /*< private >*/ 62 GdkRectangle GSEAL (handle_pos); 63 64 gint GSEAL (child1_size); 65 gint GSEAL (last_allocation); 66 gint GSEAL (min_position); 67 gint GSEAL (max_position); 68 69 guint GSEAL (position_set) : 1; 70 guint GSEAL (in_drag) : 1; 71 guint GSEAL (child1_shrink) : 1; 72 guint GSEAL (child1_resize) : 1; 73 guint GSEAL (child2_shrink) : 1; 74 guint GSEAL (child2_resize) : 1; 75 guint GSEAL (orientation) : 1; 76 guint GSEAL (in_recursion) : 1; 77 guint GSEAL (handle_prelit) : 1; 78 79 GtkWidget *GSEAL (last_child1_focus); 80 GtkWidget *GSEAL (last_child2_focus); 81 GtkPanedPrivate *GSEAL (priv); 82 83 gint GSEAL (drag_pos); 84 gint GSEAL (original_position); 85 }; 86 87 struct _GtkPanedClass 88 { 89 GtkContainerClass parent_class; 90 91 gboolean (* cycle_child_focus) (GtkPaned *paned, 92 gboolean reverse); 93 gboolean (* toggle_handle_focus) (GtkPaned *paned); 94 gboolean (* move_handle) (GtkPaned *paned, 95 GtkScrollType scroll); 96 gboolean (* cycle_handle_focus) (GtkPaned *paned, 97 gboolean reverse); 98 gboolean (* accept_position) (GtkPaned *paned); 99 gboolean (* cancel_position) (GtkPaned *paned); 100 101 /* Padding for future expansion */ 102 void (*_gtk_reserved1) (void); 103 void (*_gtk_reserved2) (void); 104 void (*_gtk_reserved3) (void); 105 void (*_gtk_reserved4) (void); 106 }; 107 108 109 GType gtk_paned_get_type (void) G_GNUC_CONST; 110 void gtk_paned_add1 (GtkPaned *paned, 111 GtkWidget *child); 112 void gtk_paned_add2 (GtkPaned *paned, 113 GtkWidget *child); 114 void gtk_paned_pack1 (GtkPaned *paned, 115 GtkWidget *child, 116 gboolean resize, 117 gboolean shrink); 118 void gtk_paned_pack2 (GtkPaned *paned, 119 GtkWidget *child, 120 gboolean resize, 121 gboolean shrink); 122 123 gint gtk_paned_get_position (GtkPaned *paned); 124 void gtk_paned_set_position (GtkPaned *paned, 125 gint position); 126 127 GtkWidget * gtk_paned_get_child1 (GtkPaned *paned); 128 GtkWidget * gtk_paned_get_child2 (GtkPaned *paned); 129 130 GdkWindow * gtk_paned_get_handle_window (GtkPaned *paned); 131 132 #ifndef GTK_DISABLE_DEPRECATED 133 /* Internal function */ 134 void gtk_paned_compute_position (GtkPaned *paned, 135 gint allocation, 136 gint child1_req, 137 gint child2_req); 138 #define gtk_paned_gutter_size(p,s) (void) 0 139 #define gtk_paned_set_gutter_size(p,s) (void) 0 140 #endif /* GTK_DISABLE_DEPRECATED */ 141 142 G_END_DECLS 143 144 #endif /* __GTK_PANED_H__ */ 145