// -*- c++ -*-
/*  Generated by gensig from table.gen_h. DO NOT MODIFY!!! */
#ifndef GTKMM_TABLE_HEADER
#define GTKMM_TABLE_HEADER
/* $Id: table.gen_h,v 1.32.2.4 1999/04/20 08:25:29 christof Exp $ */

/* table.h
 * 
 * Copyright (C) 1998-1999 
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Library General Public
 * License as published by the Free Software Foundation; either
 * version 2 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
 * 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.
 */

#include <gtk--/container.h>
#include <gtk/gtktable.h>
class Gtk_Table_Class;
#line 24 "table.gen_h"

//: Table Packing Widget
//- Gtk_Table is one of the primary methods for construction of
//- grouped widgets.  It consists of a set of lattice points to
//- to which widgets can be attached.  There are {\i(rows+1)} lattice
//- points vertically and {\i (columns+1)} lattice points horizontally.
//- Lattice points start counting from 0.
//- Lattice points can either be specified to be {\i homogeneous}  meaning
//- equally spaced or not {\i homogeneous} meaning each cell should
//- be calculated based on the widgets contained in the row and column.
//- Homogeneous defaults to FALSE.
//-
//- Widgets can be attached to the table at by specifying the top, bottom,
//- left and right points corresponding to upper, lefthand
//- lattice point and the lower, righthand lattice point with the
//-- widget should span.  Widgets can
//- either be contained in a cell or may span cells.  A number of options
//- control the resizing behavior of widgets contained in the table.
//-
//- {\b Packing options:}  
//-
//- There are a number of packing objections that can be specified 
//- when adding a widget.  With {\enum GTK_EXPAND}, the lattice is 
//- allowed to grow to fill space.  With {\enum GTK_SHRINK}, the lattice 
//- is allowed to shrink when resized.  It is also possible to specify
//- the behaviour of the widgets allocation within the table.  The 
//- flag {\enum GTK_FILL} declares the widget should grow to fill lattice.
//- If this is not set any extra space is used as padding.
//- The default is {\enum GTK_FILL} and {\enum GTK_EXPAND}.  
//-
//- The table size is calculated
//- based on the size of the widgets contained within and the restrictions
//- imposed by specified options.
//-
//- Padding and spacing can be used to allow some dead space between widgets
//- in the table.  Padding is added on either side of a widget, while spacing
//- is placed between widgets.
//-
//- The other generic packing widgets are:
//- {\page Gtk_Box}, {\page Gtk_HBox}, {\page Gtk_VBox}
class Gtk_Table : public Gtk_Container {
public:
protected:
  typedef Gtk_Table_Class    CppClassType;
  typedef GtkTable           BaseObjectType;
  typedef GtkTableClass      BaseClassType;

  virtual void *get_parent_class();

private:
  friend CppClassType;
  static CppClassType table_class; 
  GtkType get_type(); 

public:


  Gtk_Table(gint rows=1, gint columns=1, gint homogeneous=FALSE);
  Gtk_Table(GtkTable *castitem);

  //: Binds a widget to a set of lattice points.  
  //- At minumum 
  //- specification of the lattice points is required.  
  //- Additionally, the cell options as described above and paddings 
  //- may be specified.  Default paddings are 0 pixels in both dimensions.
#line 77 "table.gen_h"
  void attach(const Gtk_Widget &child,
	      guint left_attach,
	      guint right_attach,
	      guint top_attach,
	      guint bottom_attach,
	      gint xoptions=(GTK_FILL|GTK_EXPAND), 
	      gint yoptions=(GTK_FILL|GTK_EXPAND),
	      gint xpadding=0, gint ypadding=0);

  void attach(const Gtk_ObjectHandle<Gtk_Widget> &child,
	      guint left_attach,
	      guint right_attach,
	      guint top_attach,
	      guint bottom_attach,
	      gint xoptions=(GTK_FILL|GTK_EXPAND), 
	      gint yoptions=(GTK_FILL|GTK_EXPAND),
	      gint xpadding=0, gint ypadding=0);

#line 115 "table.gen_h"

#line 117 "table.gen_h"
  //- (Gtk 1.1) This function allows for dynamic resizing of 
  //- a Table.
  void resize(guint rows, guint columns);
  void set_homogeneous(bool homogeneous);
#line 122 "table.gen_h"
  
  //: (obsolete) use {attach()}
  //- attach_defaults is now obsolete as we have default arguments for
  //- attach().
  void attach_defaults(const Gtk_Widget &child,
		       gint left_attach,
		       gint right_attach,
		       gint top_attach,
		       gint bottom_attach);

  //- This function sets the number of pixels to appear
  //- between one row of cells and the next.  {\i row} is the 
  //- lattice row counted without the edges starting from 0.  Therefore, row
  //- 0 would denote between the first and second
  //- row of cells.  {\i row} has a range from  0 and {\i (rows-2)}
  //- Default spacing is 0 pixels.
  void set_row_spacing(gint row, gint spacing);

  //- This function sets the number of pixels to appear
  //- between one column of cells and the next.  {\i column} is the 
  //- lattice column counted without the edges starting from 0.  Therefore, 
  //- column 0 would denote between the first and second
  //- row of cells.  {\i column} has a range from  0 and {\i (columns-2)}.
  //- Default spacing is 0 pixels.
  void set_col_spacing(gint column, gint spacing);

  //- This function sets the number of pixels to a appear between every
  //- row of cells.  Default is 0 pixels.
  void set_row_spacings(gint spacing);

  //- This function sets the number of pixels to a appear between every
  //- column of cells.  Default is 0 pixels.
  void set_col_spacings(gint spacing);
protected:
  /* impl functions */
public:
  GtkTable* gtkobj() { return GTK_TABLE(gtkobject); }
  const GtkTable* gtkobj() const { return GTK_TABLE(gtkobject); }
  static bool isGtkTable(Gtk_Object *checkcast);
#line 155 "table.gen_h"


};

#endif
