1 /* $Id: label.hg,v 1.11 2006/06/21 20:04:25 murrayc Exp $ */
3 /* Copyright(C) 1998-2002 The gtkmm Development Team
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.
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.
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.
21 _PINCLUDE(gtkmm/private/misc_p.h)
22 _PINCLUDE(gtk/gtkmenu.h)
24 #include <gtkmm/misc.h>
25 #include <pangomm/attrlist.h>
33 /** A widget that displays a small to medium amount of text.
35 * A simple setable widget for holding a Glib::ustring.
38 class Label : public Misc
40 _CLASS_GTKOBJECT(Label, GtkLabel, GTK_LABEL, Gtk::Misc,GtkMisc)
41 _IGNORE(gtk_label_get, gtk_label_parse_uline)
44 explicit Label(const Glib::ustring& label, bool mnemonic = false);
46 /** This constructor is a shortcut for often used code
47 * when you want to create a label with alignment different
50 * Gtk::Label label(text, x, y, mnemonic);
54 * Gtk::Label label(text, mnemonic);
55 * label.set_alignment(x, y);
58 Label(const Glib::ustring& label, float xalign, float yalign, bool mnemonic = false);
60 /** This constructor is a shortcut for often used code
61 * when you want to create a label with alignment different
64 * Gtk::Label label(text, x, y, mnemonic);
68 * Gtk::Label label(text, mnemonic);
69 * label.set_alignment(x, y);
72 Label(const Glib::ustring& label, AlignmentEnum xalign, AlignmentEnum yalign = ALIGN_CENTER, bool mnemonic = false);
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)
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)
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)
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)
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)
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)
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)
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)
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.
124 * @param start_offset Start offset (in characters not bytes)
126 void select_region(int start_offset);
128 _WRAP_METHOD(bool get_selection_bounds(int& start, int& end) const, gtk_label_get_selection_bounds)
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)
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)
137 _WRAP_SIGNAL(void populate_popup(Menu* menu), "populate_popup")
139 //Keybinding signals:
140 _IGNORE_SIGNAL("move_cursor")
141 _IGNORE_SIGNAL("copy_clipboard")
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)