add new sigc++2 directory
[ardour.git] / libs / gtkmm2 / gtk / src / label.hg
1 /* $Id: label.hg,v 1.11 2006/06/21 20:04:25 murrayc Exp $ */
2
3 /* Copyright(C) 1998-2002 The gtkmm Development Team
4  *
5  * This library is free software; you can redistribute it and/or
6  * modify it under the terms of the GNU Library General Public
7  * License as published by the Free Software Foundation; either
8  * version 2 of the License, or(at your option) any later version.
9  *
10  * This library is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13  * Library General Public License for more details.
14  *
15  * You should have received a copy of the GNU Library General Public
16  * License along with this library; if not, write to the Free
17  * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
18  */
19
20 _DEFS(gtkmm,gtk)
21 _PINCLUDE(gtkmm/private/misc_p.h)
22 _PINCLUDE(gtk/gtkmenu.h)
23
24 #include <gtkmm/misc.h>
25 #include <pangomm/attrlist.h>
26
27
28 namespace Gtk
29 {
30
31 class Menu;
32
33 /** A widget that displays a small to medium amount of text.
34  *
35  * A simple setable widget for holding a Glib::ustring.
36  * @ingroup Widgets
37  */
38 class Label : public Misc
39 {
40   _CLASS_GTKOBJECT(Label, GtkLabel, GTK_LABEL, Gtk::Misc,GtkMisc)
41   _IGNORE(gtk_label_get, gtk_label_parse_uline)
42 public:
43   Label();
44   explicit Label(const Glib::ustring& label, bool mnemonic = false);
45
46   /** This constructor is a shortcut for often used code
47    * when you want to create a label with alignment different
48    * than default one.
49    * @code
50    * Gtk::Label label(text, x, y, mnemonic);
51    * @endcode
52    * is equivalent to:
53    * @code
54    * Gtk::Label label(text, mnemonic);
55    * label.set_alignment(x, y);
56    * @endcode
57    */
58   Label(const Glib::ustring& label, float xalign, float yalign, bool mnemonic = false);
59
60   /** This constructor is a shortcut for often used code
61    * when you want to create a label with alignment different
62    * than default one.
63    * @code
64    * Gtk::Label label(text, x, y, mnemonic);
65    * @endcode
66    * is equivalent to:
67    * @code
68    * Gtk::Label label(text, mnemonic);
69    * label.set_alignment(x, y);
70    * @endcode
71    */
72   Label(const Glib::ustring& label, AlignmentEnum xalign, AlignmentEnum yalign = ALIGN_CENTER, bool mnemonic = false);
73
74
75   /// Doesn't use markup.
76   _WRAP_METHOD(void set_text(const Glib::ustring &str), gtk_label_set_text)
77   _WRAP_METHOD(Glib::ustring get_text() const, gtk_label_get_text)
78
79   _WRAP_METHOD(void set_attributes(Pango::AttrList& attrs), gtk_label_set_attributes)
80   _WRAP_METHOD(Pango::AttrList get_attributes() const, gtk_label_get_attributes)
81
82   _WRAP_METHOD(void set_label(const Glib::ustring& str), gtk_label_set_label)
83   _WRAP_METHOD(Glib::ustring get_label() const, gtk_label_get_label)
84   _WRAP_METHOD(void set_markup(const Glib::ustring& str), gtk_label_set_markup)
85   _WRAP_METHOD(void set_use_markup(bool setting = true), gtk_label_set_use_markup)
86   _WRAP_METHOD(bool get_use_markup() const, gtk_label_get_use_markup)
87   _WRAP_METHOD(void set_use_underline(bool setting = true), gtk_label_set_use_underline)
88   _WRAP_METHOD(bool get_use_underline() const, gtk_label_get_use_underline)
89
90   _WRAP_METHOD(void set_markup_with_mnemonic(const Glib::ustring& str), gtk_label_set_markup_with_mnemonic)
91   _WRAP_METHOD(guint get_mnemonic_keyval() const, gtk_label_get_mnemonic_keyval)
92   _WRAP_METHOD(void set_mnemonic_widget(Widget& widget), gtk_label_set_mnemonic_widget)
93   _WRAP_METHOD(Widget* get_mnemonic_widget(), gtk_label_get_mnemonic_widget)
94   _WRAP_METHOD(const Widget* get_mnemonic_widget() const, gtk_label_get_mnemonic_widget)
95   _WRAP_METHOD(void set_text_with_mnemonic(const Glib::ustring& str), gtk_label_set_text_with_mnemonic)
96   _WRAP_METHOD(void set_justify(Justification jtype),gtk_label_set_justify)
97   _WRAP_METHOD(Justification get_justify() const, gtk_label_get_justify)
98
99   _WRAP_METHOD(void set_ellipsize(Pango::EllipsizeMode mode), gtk_label_set_ellipsize)
100   _WRAP_METHOD(Pango::EllipsizeMode get_ellipsize() const, gtk_label_get_ellipsize)
101
102   _WRAP_METHOD(void set_width_chars(int n_chars), gtk_label_set_width_chars)
103   _WRAP_METHOD(int get_width_chars() const, gtk_label_get_width_chars)
104
105   _WRAP_METHOD(void set_max_width_chars(int n_chars), gtk_label_set_max_width_chars)
106   _WRAP_METHOD(int get_max_width_chars() const, gtk_label_get_max_width_chars)
107
108   _WRAP_METHOD(void set_pattern(const Glib::ustring& pattern), gtk_label_set_pattern)
109   _WRAP_METHOD(void set_line_wrap(bool wrap = true), gtk_label_set_line_wrap)
110   _WRAP_METHOD(bool get_line_wrap() const, gtk_label_get_line_wrap)
111   _WRAP_METHOD(void set_line_wrap_mode(Pango::WrapMode wrap_mode), gtk_label_set_line_wrap_mode)
112   _WRAP_METHOD(Pango::WrapMode get_line_wrap_mode() const, gtk_label_get_line_wrap_mode)
113   _WRAP_METHOD(void set_selectable(bool setting = true), gtk_label_set_selectable)
114   _WRAP_METHOD(bool get_selectable() const, gtk_label_get_selectable)
115   _WRAP_METHOD(void set_angle(double angle), gtk_label_set_angle)
116   _WRAP_METHOD(double get_angle() const, gtk_label_get_angle)
117   _WRAP_METHOD(void select_region(int start_offset, int end_offset), gtk_label_select_region)
118
119   /** Selects a range of characters in the label, from @a start_offset to the end,
120    * if the label is selectable.
121    * See gtk_label_set_selectable(). If the label is not selectable,
122    * this function has no effect.
123    *
124    * @param start_offset Start offset (in characters not bytes)
125    */
126   void select_region(int start_offset);
127   
128   _WRAP_METHOD(bool get_selection_bounds(int& start, int& end) const, gtk_label_get_selection_bounds)
129
130   _WRAP_METHOD(Glib::RefPtr<Pango::Layout> get_layout(), gtk_label_get_layout, refreturn)
131   _WRAP_METHOD(Glib::RefPtr<const Pango::Layout> get_layout() const, gtk_label_get_layout, refreturn, constversion)
132   _WRAP_METHOD(void get_layout_offsets(int& x, int& y) const, gtk_label_get_layout_offsets)
133   
134   _WRAP_METHOD(void set_single_line_mode(bool single_line_mode = true), gtk_label_set_single_line_mode)
135   _WRAP_METHOD(bool get_single_line_mode() const, gtk_label_get_single_line_mode)
136
137   _WRAP_SIGNAL(void populate_popup(Menu* menu), "populate_popup")
138
139   //Keybinding signals:
140   _IGNORE_SIGNAL("move_cursor")
141   _IGNORE_SIGNAL("copy_clipboard")
142   
143   _WRAP_PROPERTY("label", Glib::ustring)
144   _WRAP_PROPERTY("attributes", Pango::AttrList)
145   _WRAP_PROPERTY("use-markup", bool)
146   _WRAP_PROPERTY("use-underline", bool)
147   _WRAP_PROPERTY("justify", Justification)
148   _WRAP_PROPERTY("pattern", Glib::ustring)
149   _WRAP_PROPERTY("wrap", bool)
150   _WRAP_PROPERTY("wrap-mode", Pango::WrapMode)
151   _WRAP_PROPERTY("selectable", bool)
152   _WRAP_PROPERTY("mnemonic-keyval", guint)
153   _WRAP_PROPERTY("mnemonic-widget", Widget*)
154   _WRAP_PROPERTY("cursor-position", int)
155   _WRAP_PROPERTY("selection-bound", int)
156   _WRAP_PROPERTY("ellipsize", Pango::EllipsizeMode)
157   _WRAP_PROPERTY("width-chars", int)    
158   _WRAP_PROPERTY("single-line-mode", bool)
159   _WRAP_PROPERTY("angle", double)
160   _WRAP_PROPERTY("max_width_chars", int)
161 };
162
163 }  // namespace Gtk
164