// -*- c++ -*-
//  Generated by gtkmmproc from ./../layout.gen_h -- DO NOT MODIFY!
#ifndef _GTKMM_LAYOUT_H
#define _GTKMM_LAYOUT_H

/* $Id: layout.h,v 1.2 2003/06/17 16:37:40 pbd Exp $ */

/* layout.h
 *
 * Copyright (C) 1998 EMC Capital Management Inc.
 * Developed by Havoc Pennington <hp@pobox.com>
 *
 * 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--/adjustment.h>
#include <gtk/gtklayout.h>

namespace Gtk {
class Layout;
class Layout_Class;
}
namespace Gtk { Gtk::Layout *wrap (GtkLayout *o); }
extern "C" void gtk_layout_set_scroll_adjustments(GtkLayout*,GtkAdjustment* p1,GtkAdjustment* p2);
namespace Gtk
{

class Layout : public Container
{

public:
  typedef Layout          CppObjectType;
  typedef Layout_Class    CppClassType;
  typedef GtkLayout           BaseObjectType;
  typedef GtkLayoutClass      BaseClassType;

private:
  friend class Layout_Class;
  static CppClassType layout_class;

  Layout(const Layout&);
  Layout& operator=(const Layout&); // not implemented

protected:
  void   initialize_class();
  explicit Layout(GtkLayout *castitem);

public:
  static GtkType get_type();
  GtkLayout* gtkobj()             { return (GtkLayout*)(gtkobject); }
  const GtkLayout* gtkobj() const { return (GtkLayout*)(gtkobject); }
  static bool isA(Object *checkcast);

  // Hook for proxies
  static const char* const signal_names[];

  virtual ~Layout();

private:

public:

  // Gtk_Widget::set_scroll_adjustments




  Layout();
  Layout (Gtk::Adjustment &hadjustment,
	  Gtk::Adjustment &vadjustment);

  void put(Gtk::Widget& widget,gint x,gint y);





  void move(Gtk::Widget& widget,gint x,gint y);





  void set_size(guint width,guint height);

  //: These disable and enable moving and repainting the scrolling
  //: window of the GtkLayout, respectively.  If you want to update the
  //: layout's offsets but do not want it to repaint itself, you should
  //: use these functions.

  void freeze();

  void thaw();


  Gtk::Adjustment* get_hadjustment() const;

  Gtk::Adjustment* get_vadjustment() const;
  void set_hadjustment(Gtk::Adjustment* hadj=0);

  void set_vadjustment(Gtk::Adjustment* vadj=0);

  void set_hadjustment(Gtk::Adjustment& hadj);

  void set_vadjustment(Gtk::Adjustment& vadj);

public:

    class Proxy_set_scroll_adjustments
      : public Gtk::EmitProxySignal2<void,GtkAdjustment*,GtkAdjustment*,CppObjectType,BaseObjectType,0,&gtk_layout_set_scroll_adjustments>
      {
          typedef Gtk::EmitProxySignal2<void,GtkAdjustment*,GtkAdjustment*,CppObjectType,BaseObjectType,0,&gtk_layout_set_scroll_adjustments> BaseType;
        public:
          void operator ()(Gtk::Adjustment*,Gtk::Adjustment*);
          void emit(Gtk::Adjustment*,Gtk::Adjustment*);
          Connection connect(const SigC::Slot2<void,Gtk::Adjustment*,Gtk::Adjustment*> &s);
      };
  union
    {
      CppObjectType * layout_self;
      Proxy_set_scroll_adjustments set_scroll_adjustments;
    };

protected:
  // impl functions
    virtual void set_scroll_adjustments_impl(Gtk::Adjustment* p0,Gtk::Adjustment* p1);

};

}


//+ PROPERTIES(Gtk_Layout)
//. name: children
//. type: GList*
//. get:
//. set:
//. desc:

//. name: width
//. type: guint
//. get:
//. set:
//. desc:

//. name: height
//. type: guint
//. get:
//. set:
//. desc:

//. name: xoffset
//. type: guint
//. get:
//. set:
//. desc:

//. name: yoffset
//. type: guint
//. get:
//. set:
//. desc:

//. name: hadjustment
//. type: GtkAdjustment*
//. get:
//. set:
//. desc:

//. name: vadjustment
//. type: GtkAdjustment*
//. get:
//. set:
//. desc:

//. name: bin_window
//. type: GdkWindow*
//. get:
//. set:
//. desc:

//. name: visibility
//. type: GdkVisibilityState
//. get:
//. set:
//. desc:

//. name: configure_serial
//. type: gulong
//. get:
//. set:
//. desc:

//. name: scroll_x
//. type: gint
//. get:
//. set:
//. desc:

//. name: scroll_y
//. type: gint
//. get:
//. set:
//. desc:

//. name: freeze_count
//. type: guint
//. get:
//. set:
//. desc:

#endif
