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

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

/* frame.h
 *
 * Copyright (C) 1998-1999 The Gtk-- Development Team
 *
 * 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--/bin.h>
#include <gtk/gtkframe.h>

namespace Gtk {
class Frame;
class Frame_Class;
}
namespace Gtk { Gtk::Frame *wrap (GtkFrame *o); }
namespace Gtk
{

//: A decrative border
//- The frame widget puts a simple border around what ever widget is packed
//- into it. It can also contain a lable to identify the widget(s) inside.
class Frame : public Bin {

public:
  typedef Frame          CppObjectType;
  typedef Frame_Class    CppClassType;
  typedef GtkFrame           BaseObjectType;
  typedef GtkFrameClass      BaseClassType;

private:
  friend class Frame_Class;
  static CppClassType frame_class;

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

protected:
  void   initialize_class();
  explicit Frame(GtkFrame *castitem);

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

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

  virtual ~Frame();

private:

public:

  Frame(const nstring &label);
  Frame();



  //: Adds a label to appear in the top edge of the frame.
  //- Label alignment defaults to the upper left corner of the frame.
  //- {str} can be a NULL pointer.

  void set_label(const nstring& str);

  //: Returns a copy of the label which appears in the frame.
  //- If there is no label, the string will be empty.
  string get_label() const;

  //: Sets the alignment of a frame's label.
  //- {xalign} sets the horizontal label position and
  //- should be between 0 (left) and 1.0 (right).
  //- {yalign} does not appear to have any effect in this
  //- version of gtk+.  Defaults to (0.0,0.5).


  void set_label_align(gfloat xalign=0.0,gfloat yalign=0.5);

  //: Returns the current horizontal label position.
  //- Range from 0 (left) to 1.0 (right).
  float get_xalign() const;

  //: Returns the current vertical label position.
  //- Range from 0 (top) to 1.0 (bottom).
  float get_yalign() const;

  //: Sets shadow type of the frame.
  //- The possible choices are: {\enum
  //-  GTK_SHADOW_NONE,GTK_SHADOW_IN,GTK_SHADOW_OUT,GTK_SHADOW_ETCHED_IN,
  //-   GTK_SHADOW_ETCHED_OUT}
  //-
  //- declaration of the enum GtkShadowType can be found from gtkenums.h

  void set_shadow_type(GtkShadowType type);

  //: Returns the current shadow type of a frame.
  GtkShadowType get_shadow_type() const;

public:

protected:
  // impl functions

};

}


//+ PROPERTIES(Gtk_Frame)
//. name: label
//. type: string
//. get:
//. set:
//. desc:

//. name: shadow_type
//. type: gint16
//. get:
//. set:
//. desc:

//. name: label_width
//. type: gint16
//. get:
//. set:
//. desc:

//. name: label_height
//. type: gint16
//. get:
//. set:
//. desc:

//. name: label_xalign
//. type: gfloat
//. get:
//. set:
//. desc:

//. name: label_yalign
//. type: gfloat
//. get:
//. set:
//. desc:

#endif
