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

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


/* label.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--/misc.h>
#include <gtk/gtklabel.h>

namespace Gtk {
class Label;
class Label_Class;
}
namespace Gtk { Gtk::Label *wrap (GtkLabel *o); }
namespace Gtk
{
//: Text string widget.
//- A simple setable widget for holding a string.
class Label : public Misc {

public:
  typedef Label          CppObjectType;
  typedef Label_Class    CppClassType;
  typedef GtkLabel           BaseObjectType;
  typedef GtkLabelClass      BaseClassType;

private:
  friend class Label_Class;
  static CppClassType label_class;

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

protected:
  void   initialize_class();
  explicit Label(GtkLabel *castitem);

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

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

  virtual ~Label();

private:

public:

  explicit Label(const nstring &label = 0,gfloat x=0.5,gfloat y=0.5);



  //: Set the label text to match {\var str}.
  //- Text can not be NULL.


  void set(const string& str);

  //: Alias for {set()}


  void set_text(const string& str);

  //: Return the current label text.
  //void gtk_label_get(GtkLabel*,char**),
  string get            () const;

  //: Return the current label text.
  string get_text       () const;

  //: Sets the justification for multiple lines.


  void set_justify(GtkJustification jtype);

  // Returns the label field

  //: (Gtk 1.1)


  void set_pattern(const nstring& pattern);

  //: (Gtk 1.1)


  guint parse_uline(const string& str);

  //: (Gtk 1.1)


  void set_line_wrap(bool wrap);

public:

protected:
  // impl functions

};

}


//+ PROPERTIES(Gtk_Label)
//. name: label
//. type: string
//. get: {get()},{get_text()}
//. set: {set()},{set_text()}
//. desc: Labels text.

//. name: label_wc
//. type: GdkWChar*
//. get:
//. set:
//. desc: Label in wide characters. (not tested)

//. name: pattern
//. type: string
//. get:
//. set:
//. desc:

//. name: words
//. type: GtkLabelWord*
//. get:
//. set:
//. desc:

//. name: max_width
//. type: guint:16
//. get:
//. set:
//. desc:

//. name: jtype
//. type: guint:2
//. get:
//. set: {set_justify()}
//. desc: Specifies how label will behave with more
//. than one line in it.
//. If you're looking for changing label alignment, check
//. {Gtk_Misc::set_alignment()}.
//.
//. Possible values: {\enum GTK_JUSTIFY_LEFT,
//. GTK_JUSTIFY_RIGHT, GTK_JUSTIFY_CENTER, GTK_JUSTIFY_FILL}

//. name: wrap
//. type: gboolean
//. get:
//. set:
//. desc:

#endif
