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_TABLE_H__ 28 #define __GTK_TABLE_H__ 29 30 31 #if defined(GTK_DISABLE_SINGLE_INCLUDES) && !defined (__GTK_H_INSIDE__) && !defined (GTK_COMPILATION) 32 #error "Only <gtk/gtk.h> can be included directly." 33 #endif 34 35 #include <gtk/gtkcontainer.h> 36 37 38 G_BEGIN_DECLS 39 40 #define GTK_TYPE_TABLE (gtk_table_get_type ()) 41 #define GTK_TABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_TABLE, GtkTable)) 42 #define GTK_TABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_TABLE, GtkTableClass)) 43 #define GTK_IS_TABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_TABLE)) 44 #define GTK_IS_TABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_TABLE)) 45 #define GTK_TABLE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_TABLE, GtkTableClass)) 46 47 48 typedef struct _GtkTable GtkTable; 49 typedef struct _GtkTableClass GtkTableClass; 50 typedef struct _GtkTableChild GtkTableChild; 51 typedef struct _GtkTableRowCol GtkTableRowCol; 52 53 struct _GtkTable 54 { 55 GtkContainer container; 56 57 GList *GSEAL (children); 58 GtkTableRowCol *GSEAL (rows); 59 GtkTableRowCol *GSEAL (cols); 60 guint16 GSEAL (nrows); 61 guint16 GSEAL (ncols); 62 guint16 GSEAL (column_spacing); 63 guint16 GSEAL (row_spacing); 64 guint GSEAL (homogeneous) : 1; 65 }; 66 67 struct _GtkTableClass 68 { 69 GtkContainerClass parent_class; 70 }; 71 72 struct _GtkTableChild 73 { 74 GtkWidget *widget; 75 guint16 left_attach; 76 guint16 right_attach; 77 guint16 top_attach; 78 guint16 bottom_attach; 79 guint16 xpadding; 80 guint16 ypadding; 81 guint xexpand : 1; 82 guint yexpand : 1; 83 guint xshrink : 1; 84 guint yshrink : 1; 85 guint xfill : 1; 86 guint yfill : 1; 87 }; 88 89 struct _GtkTableRowCol 90 { 91 guint16 requisition; 92 guint16 allocation; 93 guint16 spacing; 94 guint need_expand : 1; 95 guint need_shrink : 1; 96 guint expand : 1; 97 guint shrink : 1; 98 guint empty : 1; 99 }; 100 101 102 GType gtk_table_get_type (void) G_GNUC_CONST; 103 GtkWidget* gtk_table_new (guint rows, 104 guint columns, 105 gboolean homogeneous); 106 void gtk_table_resize (GtkTable *table, 107 guint rows, 108 guint columns); 109 void gtk_table_attach (GtkTable *table, 110 GtkWidget *child, 111 guint left_attach, 112 guint right_attach, 113 guint top_attach, 114 guint bottom_attach, 115 GtkAttachOptions xoptions, 116 GtkAttachOptions yoptions, 117 guint xpadding, 118 guint ypadding); 119 void gtk_table_attach_defaults (GtkTable *table, 120 GtkWidget *widget, 121 guint left_attach, 122 guint right_attach, 123 guint top_attach, 124 guint bottom_attach); 125 void gtk_table_set_row_spacing (GtkTable *table, 126 guint row, 127 guint spacing); 128 guint gtk_table_get_row_spacing (GtkTable *table, 129 guint row); 130 void gtk_table_set_col_spacing (GtkTable *table, 131 guint column, 132 guint spacing); 133 guint gtk_table_get_col_spacing (GtkTable *table, 134 guint column); 135 void gtk_table_set_row_spacings (GtkTable *table, 136 guint spacing); 137 guint gtk_table_get_default_row_spacing (GtkTable *table); 138 void gtk_table_set_col_spacings (GtkTable *table, 139 guint spacing); 140 guint gtk_table_get_default_col_spacing (GtkTable *table); 141 void gtk_table_set_homogeneous (GtkTable *table, 142 gboolean homogeneous); 143 gboolean gtk_table_get_homogeneous (GtkTable *table); 144 void gtk_table_get_size (GtkTable *table, 145 guint *rows, 146 guint *columns); 147 148 149 G_END_DECLS 150 151 #endif /* __GTK_TABLE_H__ */ 152