// -*- c++ -*-
/*  Generated by gensig from packer.gen_h. DO NOT MODIFY!!! */
#ifndef GTKMM_PACKER_HEADER
#define GTKMM_PACKER_HEADER
/* $Id: packer.gen_h,v 1.15.2.1 1999/03/20 04:59:50 terop Exp $ */

/* packer.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/gtkpacker.h>

class Gtk_Packer_Class;
#line 25 "packer.gen_h"

//: Gtk_Packer is easy-to-use container widget.
class Gtk_Packer : public Gtk_Container {
public:
protected:
  typedef Gtk_Packer_Class    CppClassType;
  typedef GtkPacker           BaseObjectType;
  typedef GtkPackerClass      BaseClassType;

  virtual void *get_parent_class();

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

public:


  Gtk_Packer();
  Gtk_Packer(GtkPacker *castitem);
  virtual ~Gtk_Packer();

  /* this overrides the virtual function */
  void add_impl(Gtk_Widget *child) { add(*child, GTK_SIDE_TOP); }

  //
  // GtkPackerOptions: <ul><li>GTK_PACK_EXPAND<li>GTK_FILL_X<li>GTK_FILL_Y</ul><br>
  // GtkSideType: <ul><li>GTK_SIDE_TOP(default)<li>GTK_SIDE_BOTTOM
  // <li>GTK_SIDE_LEFT<li>GTK_SIDE_RIGHT</ul><br>
  // GtkAnchorType: <ul><li>GTK_ANCHOR_CENTER
  // <li>GTK_ANCHOR_NORTH | GTK_ANCHOR_N
  // <li>GTK_ANCHOR_NORTH_WEST | GTK_ANCHOR_NW
  // <li>GTK_ANCHOR_NORTH_EAST | GTK_ANCHOR_NE
  // <li>GTK_ANCHOR_SOUTH | GTK_ANCHOR_S
  // <li>GTK_ANCHOR_SOUTH_WEST | GTK_ANCHOR_SW
  // <li>GTK_ANCHOR_SOUTH_EAST | GTK_ANCHOR_SE
  // <li>GTK_ANCHOR_WEST | GTK_ANCHOR_W
  // <li>GTK_ANCHOR_EAST | GTK_ANCHOR_E
  // </ul><br>

  // using ~0 instead of 0xffffffff will be better with non 32-bit guint's
  // and typo-safe
#define PACKER_DEFAULT (~((guint)0))
  //: the default values of PACKER_DEFAULT will be transformed to real
  //  default values inside the method -- hack to overcome c++'s
  //  nice restriction...
  void add                    (Gtk_Widget &child, 
			       GtkSideType side,
			       GtkAnchorType anchor = GTK_ANCHOR_CENTER,
			       GtkPackerOptions options=(GtkPackerOptions)0,
			       guint border_width=PACKER_DEFAULT,
			       guint pad_x=PACKER_DEFAULT,
			       guint pad_y=PACKER_DEFAULT,
			       guint i_pad_x=PACKER_DEFAULT,
			       guint i_pad_y=PACKER_DEFAULT);
  // default args would be nice -- unfortunately they dont work
  void set_child_packing       (Gtk_Widget &child,
				GtkSideType side = GTK_SIDE_TOP,
				GtkAnchorType anchor=GTK_ANCHOR_CENTER,
				GtkPackerOptions options=(GtkPackerOptions)0,
				guint border_width=PACKER_DEFAULT,
				guint pad_x=PACKER_DEFAULT,
				guint pad_y=PACKER_DEFAULT,
				guint i_pad_x=PACKER_DEFAULT,
				guint i_pad_y=PACKER_DEFAULT);

  void add               (const Gtk_ObjectHandle<Gtk_Widget> &child,
				GtkSideType side = GTK_SIDE_TOP,
				GtkAnchorType anchor=GTK_ANCHOR_CENTER,
				GtkPackerOptions options=(GtkPackerOptions)0,
				guint border_width=PACKER_DEFAULT,
				guint pad_x=PACKER_DEFAULT,
				guint pad_y=PACKER_DEFAULT,
				guint i_pad_x=PACKER_DEFAULT,
				guint i_pad_y=PACKER_DEFAULT);



  void reorder_child           (Gtk_Widget &w, gint position);

  void set_spacing             (guint spacing);
  void set_default_border_width(guint border);
  void set_default_pad         (guint pad_x,
				guint pad_y);
  void set_default_ipad        (guint i_pad_x,
				guint i_pad_y);
protected:
  /* impl functions */
public:
  GtkPacker* gtkobj() { return GTK_PACKER(gtkobject); }
  const GtkPacker* gtkobj() const { return GTK_PACKER(gtkobject); }
  static bool isGtkPacker(Gtk_Object *checkcast);
#line 99 "packer.gen_h"

};

#endif
