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, see <http://www.gnu.org/licenses/>. 16 */ 17 18 /* 19 * Modified by the GTK+ Team and others 1997-2000. See the AUTHORS 20 * file for a list of people on the GTK+ Team. See the ChangeLog 21 * files for a list of changes. These files are distributed with 22 * GTK+ at ftp://ftp.gtk.org/pub/gtk/. 23 */ 24 25 #ifndef __GTK_TABLE_H__ 26 #define __GTK_TABLE_H__ 27 28 #if !defined (__GTK_H_INSIDE__) && !defined (GTK_COMPILATION) 29 #error "Only <gtk/gtk.h> can be included directly." 30 #endif 31 32 #include <gtk/gtkcontainer.h> 33 34 G_BEGIN_DECLS 35 36 #define GTK_TYPE_TABLE (gtk_table_get_type ()) 37 #define GTK_TABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_TABLE, GtkTable)) 38 #define GTK_TABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_TABLE, GtkTableClass)) 39 #define GTK_IS_TABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_TABLE)) 40 #define GTK_IS_TABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_TABLE)) 41 #define GTK_TABLE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_TABLE, GtkTableClass)) 42 43 44 typedef struct _GtkTable GtkTable; 45 typedef struct _GtkTablePrivate GtkTablePrivate; 46 typedef struct _GtkTableClass GtkTableClass; 47 typedef struct _GtkTableChild GtkTableChild; 48 typedef struct _GtkTableRowCol GtkTableRowCol; 49 50 struct _GtkTable 51 { 52 GtkContainer container; 53 54 /*< private >*/ 55 GtkTablePrivate *priv; 56 }; 57 58 struct _GtkTableClass 59 { 60 GtkContainerClass parent_class; 61 62 /* Padding for future expansion */ 63 void (*_gtk_reserved1) (void); 64 void (*_gtk_reserved2) (void); 65 void (*_gtk_reserved3) (void); 66 void (*_gtk_reserved4) (void); 67 }; 68 69 struct _GtkTableChild 70 { 71 GtkWidget *widget; 72 guint16 left_attach; 73 guint16 right_attach; 74 guint16 top_attach; 75 guint16 bottom_attach; 76 guint16 xpadding; 77 guint16 ypadding; 78 guint xexpand : 1; 79 guint yexpand : 1; 80 guint xshrink : 1; 81 guint yshrink : 1; 82 guint xfill : 1; 83 guint yfill : 1; 84 }; 85 86 struct _GtkTableRowCol 87 { 88 guint16 requisition; 89 guint16 allocation; 90 guint16 spacing; 91 guint need_expand : 1; 92 guint need_shrink : 1; 93 guint expand : 1; 94 guint shrink : 1; 95 guint empty : 1; 96 }; 97 98 /** 99 * GtkAttachOptions: 100 * @GTK_EXPAND: the widget should expand to take up any extra space in its 101 * container that has been allocated. 102 * @GTK_SHRINK: the widget should shrink as and when possible. 103 * @GTK_FILL: the widget should fill the space allocated to it. 104 * 105 * Denotes the expansion properties that a widget will have when it (or its 106 * parent) is resized. 107 */ 108 typedef enum 109 { 110 GTK_EXPAND = 1 << 0, 111 GTK_SHRINK = 1 << 1, 112 GTK_FILL = 1 << 2 113 } GtkAttachOptions; 114 115 116 GDK_DEPRECATED_IN_3_4 117 GType gtk_table_get_type (void) G_GNUC_CONST; 118 GDK_DEPRECATED_IN_3_4_FOR(GtkGrid) 119 GtkWidget* gtk_table_new (guint rows, 120 guint columns, 121 gboolean homogeneous); 122 GDK_DEPRECATED_IN_3_4_FOR(GtkGrid) 123 void gtk_table_resize (GtkTable *table, 124 guint rows, 125 guint columns); 126 GDK_DEPRECATED_IN_3_4_FOR(GtkGrid) 127 void gtk_table_attach (GtkTable *table, 128 GtkWidget *child, 129 guint left_attach, 130 guint right_attach, 131 guint top_attach, 132 guint bottom_attach, 133 GtkAttachOptions xoptions, 134 GtkAttachOptions yoptions, 135 guint xpadding, 136 guint ypadding); 137 GDK_DEPRECATED_IN_3_4_FOR(GtkGrid) 138 void gtk_table_attach_defaults (GtkTable *table, 139 GtkWidget *widget, 140 guint left_attach, 141 guint right_attach, 142 guint top_attach, 143 guint bottom_attach); 144 GDK_DEPRECATED_IN_3_4_FOR(GtkGrid) 145 void gtk_table_set_row_spacing (GtkTable *table, 146 guint row, 147 guint spacing); 148 GDK_DEPRECATED_IN_3_4_FOR(GtkGrid) 149 guint gtk_table_get_row_spacing (GtkTable *table, 150 guint row); 151 GDK_DEPRECATED_IN_3_4_FOR(GtkGrid) 152 void gtk_table_set_col_spacing (GtkTable *table, 153 guint column, 154 guint spacing); 155 GDK_DEPRECATED_IN_3_4_FOR(GtkGrid) 156 guint gtk_table_get_col_spacing (GtkTable *table, 157 guint column); 158 GDK_DEPRECATED_IN_3_4_FOR(GtkGrid) 159 void gtk_table_set_row_spacings (GtkTable *table, 160 guint spacing); 161 GDK_DEPRECATED_IN_3_4_FOR(GtkGrid) 162 guint gtk_table_get_default_row_spacing (GtkTable *table); 163 GDK_DEPRECATED_IN_3_4_FOR(GtkGrid) 164 void gtk_table_set_col_spacings (GtkTable *table, 165 guint spacing); 166 GDK_DEPRECATED_IN_3_4_FOR(GtkGrid) 167 guint gtk_table_get_default_col_spacing (GtkTable *table); 168 GDK_DEPRECATED_IN_3_4_FOR(GtkGrid) 169 void gtk_table_set_homogeneous (GtkTable *table, 170 gboolean homogeneous); 171 GDK_DEPRECATED_IN_3_4_FOR(GtkGrid) 172 gboolean gtk_table_get_homogeneous (GtkTable *table); 173 GDK_DEPRECATED_IN_3_4_FOR(GtkGrid) 174 void gtk_table_get_size (GtkTable *table, 175 guint *rows, 176 guint *columns); 177 178 G_END_DECLS 179 180 #endif /* __GTK_TABLE_H__ */ 181