// Generated by gmmproc 2.84.0 -- DO NOT MODIFY! #ifndef _GTKMM_LABEL_H #define _GTKMM_LABEL_H #include #include /* Copyright (C) 1998-2002 The gtkmm Development Team * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, see . */ #include #include #include #include #ifndef DOXYGEN_SHOULD_SKIP_THIS using GtkLabel = struct _GtkLabel; using GtkLabelClass = struct _GtkLabelClass; #endif /* DOXYGEN_SHOULD_SKIP_THIS */ #ifndef DOXYGEN_SHOULD_SKIP_THIS namespace Gtk { class GTKMM_API Label_Class; } // namespace Gtk #endif //DOXYGEN_SHOULD_SKIP_THIS namespace Gtk { class GTKMM_API Menu; //TODO: Derive from (and implement) AccessibleText when we can break ABI. /** A widget that displays a small to medium amount of text. * * A simple setable widget for holding a Glib::ustring. * * Key values are the codes which are sent whenever a key is pressed or released. * The complete list of key values can be found in the * gdk/gdkkeysyms.h * header file. They are prefixed with GDK_KEY_. * * The Label widget looks like this: * @image html label1.png * * @ingroup Widgets */ class GTKMM_API Label : public Widget { public: #ifndef DOXYGEN_SHOULD_SKIP_THIS typedef Label CppObjectType; typedef Label_Class CppClassType; typedef GtkLabel BaseObjectType; typedef GtkLabelClass BaseClassType; #endif /* DOXYGEN_SHOULD_SKIP_THIS */ Label(Label&& src) noexcept; Label& operator=(Label&& src) noexcept; // noncopyable Label(const Label&) = delete; Label& operator=(const Label&) = delete; ~Label() noexcept override; #ifndef DOXYGEN_SHOULD_SKIP_THIS private: friend GTKMM_API class Label_Class; static CppClassType label_class_; protected: explicit Label(const Glib::ConstructParams& construct_params); explicit Label(GtkLabel* castitem); #endif /* DOXYGEN_SHOULD_SKIP_THIS */ public: /** Get the GType for this class, for use with the underlying GObject type system. */ static GType get_type() G_GNUC_CONST; #ifndef DOXYGEN_SHOULD_SKIP_THIS static GType get_base_type() G_GNUC_CONST; #endif /// Provides access to the underlying C GObject. GtkLabel* gobj() { return reinterpret_cast(gobject_); } /// Provides access to the underlying C GObject. const GtkLabel* gobj() const { return reinterpret_cast(gobject_); } private: public: Label(); explicit Label(const Glib::ustring& label, bool mnemonic = false); /** This constructor is a shortcut to create a Label with Widget * alignment properties different from the default Align::FILL. * @code * Gtk::Label label(text, h, v, mnemonic); * @endcode * is equivalent to: * @code * Gtk::Label label(text, mnemonic); * label.set_halign(h); * label.set_valign(v); * @endcode */ Label(const Glib::ustring& label, Align halign, Align valign = Align::CENTER, bool mnemonic = false); /** Sets the text for the label. * * It overwrites any text that was there before and clears any * previously set mnemonic accelerators, and sets the * property_use_underline() and * property_use_markup() properties to false. * * Also see set_markup(). * * @param str The text to show in @a self. */ void set_text(const Glib::ustring & str); /** Gets the text of the label. * * The returned text is as it appears on screen. This does not include * any embedded underlines indicating mnemonics or Pango markup. (See * get_label()) * * @return The text in the label widget. */ Glib::ustring get_text() const; /** Apply attributes to the label text. * * The attributes set with this function will be applied and merged with * any other attributes previously effected by way of the * property_use_underline() or property_use_markup() * properties * * While it is not recommended to mix markup strings with manually set * attributes, if you must; know that the attributes will be applied * to the label after the markup string is parsed. * * @param attrs A list of style attributes. */ void set_attributes(Pango::AttrList& attrs); /** Gets the label's attribute list. * * This is the Pango::AttrList that was set on the label using * set_attributes(), if any. This function does not * reflect attributes that come from the label's markup (see * set_markup()). If you want to get the effective * attributes for the label, use * `pango_layout_get_attributes (gtk_label_get_layout (self))`. * * @return The attribute list. */ Pango::AttrList get_attributes() const; /** Sets the text of the label. * * The label is interpreted as including embedded underlines and/or Pango * markup depending on the values of the property_use_underline() * and property_use_markup() properties. * * @param str The new text to set for the label. */ void set_label(const Glib::ustring& str); /** Fetches the text from a label. * * The returned text includes any embedded underlines indicating * mnemonics and Pango markup. (See get_text()). * * @return The text of the label widget. */ Glib::ustring get_label() const; /** Sets the labels text and attributes from markup. * * The string must be marked up with Pango markup * (see pango_parse_markup()). * * If @a str is external data, you may need to escape it * with glib_markup_escape_text() or glib_markup_printf_escaped(): * * * [C example ellipted] * * This function sets the property_use_markup() property * to true. * * Also see set_text(). * * @param str The markup string. */ void set_markup(const Glib::ustring& str); /** Sets whether the text of the label contains markup. * * See set_markup(). * * @param setting True if the label’s text should be parsed for markup. */ void set_use_markup(bool setting = true); /** Returns whether the label’s text is interpreted as Pango markup. * * See set_use_markup(). * * @return True if the label’s text will be parsed for markup. */ bool get_use_markup() const; /** Sets whether underlines in the text indicate mnemonics. * * @param setting True if underlines in the text indicate mnemonics. */ void set_use_underline(bool setting = true); /** Returns whether underlines in the label indicate mnemonics. * * See set_use_underline(). * * @return True if underlines in the label indicate mnemonics. */ bool get_use_underline() const; /** Sets the labels text, attributes and mnemonic from markup. * * Parses @a str which is marked up with Pango markup (see pango_parse_markup()), * setting the label’s text and attribute list based on the parse results. * If characters in @a str are preceded by an underscore, they are underlined * indicating that they represent a keyboard accelerator called a mnemonic. * * The mnemonic key can be used to activate another widget, chosen * automatically, or explicitly using set_mnemonic_widget(). * * @param str The markup string. */ void set_markup_with_mnemonic(const Glib::ustring& str); /** Return the mnemonic accelerator. * * If the label has been set so that it has a mnemonic key this function * returns the keyval used for the mnemonic accelerator. If there is no * mnemonic set up it returns `GDK_KEY_VoidSymbol`. * * @return GDK keyval usable for accelerators, or `GDK_KEY_VoidSymbol`. */ guint get_mnemonic_keyval() const; /** Associate the label with its mnemonic target. * * If the label has been set so that it has a mnemonic key (using * i.e. set_markup_with_mnemonic(), * set_text_with_mnemonic(), * new_with_mnemonic() * or the property_use_underline() property) the label can * be associated with a widget that is the target of the mnemonic. * When the label is inside a widget (like a Gtk::Button or a * Gtk::Notebook tab) it is automatically associated with the * correct widget, but sometimes (i.e. when the target is a Gtk::Entry * next to the label) you need to set it explicitly using this function. * * The target widget will be accelerated by emitting the * Gtk::Widget::signal_mnemonic_activate() signal on it. The default handler * for this signal will activate the widget if there are no mnemonic * collisions and toggle focus between the colliding widgets otherwise. * * @param widget The target widget. */ void set_mnemonic_widget(Widget& widget); /** Retrieves the mnemonic target of this label. * * See set_mnemonic_widget(). * * @return The target of the label’s mnemonic, * or nullptr if none has been set and the default algorithm will be used. */ Widget* get_mnemonic_widget(); /** Retrieves the mnemonic target of this label. * * See set_mnemonic_widget(). * * @return The target of the label’s mnemonic, * or nullptr if none has been set and the default algorithm will be used. */ const Widget* get_mnemonic_widget() const; /** Sets the text for the label, with mnemonics. * * If characters in @a str are preceded by an underscore, they are underlined * indicating that they represent a keyboard accelerator called a mnemonic. * The mnemonic key can be used to activate another widget, chosen * automatically, or explicitly using set_mnemonic_widget(). * * @param str The text. */ void set_text_with_mnemonic(const Glib::ustring& str); /** Sets the alignment of lines in the label relative to each other. * * This function has no effect on labels containing only a single line. * * [enum@Gtk.Justification.left] is the default value when the widget * is first created with new(). * * If you instead want to set the alignment of the label as a whole, * use Gtk::Widget::set_halign() instead. * * @param jtype The new justification. */ void set_justify(Justification jtype); /** Returns the justification of the label. * * See set_justify(). * * @return The justification value. */ Justification get_justify() const; /** Sets the mode used to ellipsize the text. * * The text will be ellipsized if there is not * enough space to render the entire string. * * @param mode The ellipsization mode. */ void set_ellipsize(Pango::EllipsizeMode mode); /** Returns the ellipsization mode of the label. * * See set_ellipsize(). * * @return The ellipsization mode. */ Pango::EllipsizeMode get_ellipsize() const; /** Sets the desired width in characters of the label. * * @param n_chars The new desired width, in characters. */ void set_width_chars(int n_chars); /** Retrieves the desired width of the label in characters. * * See set_width_chars(). * * @return The desired width of the label, in characters. */ int get_width_chars() const; /** Sets the maximum width of the label in characters. * * @param n_chars The new maximum width, in characters. */ void set_max_width_chars(int n_chars); /** Retrieves the maximum width of the label in characters. * * See set_width_chars(). * * @return The maximum width of the label, in characters. */ int get_max_width_chars() const; /** Sets the number of lines to which an ellipsized, wrapping label * should be limited. * * This has no effect if the label is not wrapping or ellipsized. * Set this to -1 if you don’t want to limit the number of lines. * * @param lines The desired number of lines, or -1. */ void set_lines(int lines); /** Gets the number of lines to which an ellipsized, wrapping * label should be limited. * * See set_lines(). * * @return The number of lines. */ int get_lines() const; /** Toggles line wrapping within the label. * * True makes it break lines if text exceeds the widget’s size. * false lets the text get cut off by the edge of the widget if * it exceeds the widget size. * * Note that setting line wrapping to true does not make the label * wrap at its parent widget’s width, because GTK widgets conceptually * can’t make their requisition depend on the parent widget’s size. * For a label that wraps at a specific position, set the label’s width * using Gtk::Widget::set_size_request(). * * @param wrap Whether to wrap lines. */ void set_wrap(bool wrap = true); /** Returns whether lines in the label are automatically wrapped. * * See set_wrap(). * * @return True if the lines of the label are automatically wrapped. */ bool get_wrap() const; /** Controls how line wrapping is done. * * This only affects the label if line wrapping is on. (See * set_wrap()) * * The default is [enum@Pango.WrapMode.word], which means * wrap on word boundaries. * * For sizing behavior, also consider the * property_natural_wrap_mode() property. * * @param wrap_mode The line wrapping mode. */ void set_wrap_mode(Pango::WrapMode wrap_mode); /** Returns line wrap mode used by the label. * * See set_wrap_mode(). * * @return The line wrap mode. */ Pango::WrapMode get_wrap_mode() const; /** Selects the line wrapping for the natural size request. * * This only affects the natural size requested, for the actual wrapping used, * see the property_wrap_mode() property. * * @newin{4,6} * * @param wrap_mode The line wrapping mode. */ void set_natural_wrap_mode(NaturalWrapMode wrap_mode); /** Returns natural line wrap mode used by the label. * * See set_natural_wrap_mode(). * * @newin{4,6} * * @return The natural line wrap mode. */ NaturalWrapMode get_natural_wrap_mode() const; /** Makes text in the label selectable. * * Selectable labels allow the user to select text from the label, * for copy-and-paste. * * @param setting True to allow selecting text in the label. */ void set_selectable(bool setting = true); /** Returns whether the label is selectable. * * @return True if the user can copy text from the label. */ bool get_selectable() const; /** Selects a range of characters in the label, if the label is selectable. * * See set_selectable(). If the label is not selectable, * this function has no effect. If @a start_offset or * @a end_offset are -1, then the end of the label will be substituted. * * @param start_offset Start offset, in characters. * @param end_offset End offset, in characters. */ void select_region(int start_offset, int end_offset); /** Selects a range of characters in the label, from @a start_offset to the end, * if the label is selectable. * See gtk_label_set_selectable(). If the label is not selectable, * this function has no effect. * * @param start_offset Start offset (in characters not bytes) */ void select_region(int start_offset); /** Gets the selected range of characters in the label. * * The returned @a start and @a end positions are in characters. * * @param start Return location for start of selection. * @param end Return location for end of selection. * @return True if selection is non-empty. */ bool get_selection_bounds(int& start, int& end) const; /** Gets the Pango::Layout used to display the label. * The layout is useful to e.g. convert text positions to * pixel positions, in combination with get_layout_offsets(). * * @return The Pango::Layout for this label. */ Glib::RefPtr get_layout(); /** Gets the Pango::Layout used to display the label. * The layout is useful to e.g. convert text positions to * pixel positions, in combination with get_layout_offsets(). * * @return The Pango::Layout for this label. */ Glib::RefPtr get_layout() const; /** Obtains the coordinates where the label will draw its Pango layout. * * The coordinates are useful to convert mouse events into coordinates * inside the Pango::Layout, e.g. to take some action if some part * of the label is clicked. Remember when using the Pango::Layout * functions you need to convert to and from pixels using `PANGO_PIXELS()` * or [const@Pango.SCALE]. * * @param x Location to store X offset of layout. * @param y Location to store Y offset of layout. */ void get_layout_offsets(int& x, int& y) const; /** Sets whether the label is in single line mode. * * @param single_line_mode True to enable single line mode. */ void set_single_line_mode(bool single_line_mode = true); /** Returns whether the label is in single line mode. * * @return True if the label is in single line mode. */ bool get_single_line_mode() const; /** Returns the URI for the active link in the label. * * The active link is the one under the mouse pointer or, in a * selectable label, the link in which the text cursor is currently * positioned. * * This function is intended for use in a signal_activate_link() * handler or for use in a Gtk::Widget::signal_query_tooltip() handler. * * @return The active URI. */ Glib::ustring get_current_uri() const; /** Sets the `xalign` of the label. * * See the property_xalign() property. * * @param xalign The new xalign value, between 0 and 1. */ void set_xalign(float xalign); /** Gets the `xalign` of the label. * * See the property_xalign() property. * * @return The xalign value. */ float get_xalign() const; /** Sets the `yalign` of the label. * * See the property_yalign() property. * * @param yalign The new yalign value, between 0 and 1. */ void set_yalign(float yalign); /** Gets the `yalign` of the label. * * See the property_yalign() property. * * @return The yalign value. */ float get_yalign() const; /** Sets a menu model to add to the context menu of the label. * * @param model A menu model. */ void set_extra_menu(const Glib::RefPtr& model); /** Gets the extra menu model of the label. * * See set_extra_menu(). * * @return The menu model. */ Glib::RefPtr get_extra_menu(); /** Gets the extra menu model of the label. * * See set_extra_menu(). * * @return The menu model. */ Glib::RefPtr get_extra_menu() const; /** Sets tab stops for the label. * * @newin{4,8} * * @param tabs Tab stops. */ void set_tabs(const Pango::TabArray& tabs); /** Gets the tab stops for the label. * * The returned array will be nullptr if “standard” (8-space) tabs are used. * * @newin{4,8} * * @return Copy of default tab array, * or nullptr if standard tabs are used. */ Pango::TabArray get_tabs() const; /** * @par Slot Prototype: * bool on_my_%activate_link(const Glib::ustring& uri) * * Flags: Run Last * * Gets emitted to activate a URI. * * Applications may connect to it to override the default behaviour, * which is to call Gtk::FileLauncher::launch(). * * @param uri The URI that is activated. * @return True if the link has been activated. */ Glib::SignalProxy signal_activate_link(); //Keybinding signals: /** The contents of the label. * * If the string contains Pango markup (see pango_parse_markup()), * you will have to set the property_use_markup() property to * true in order for the label to display the markup attributes. See also * Gtk::Label::set_markup() for a convenience function that sets both * this property and the property_use_markup() property at the * same time. * * If the string contains underlines acting as mnemonics, you will have to * set the property_use_underline() property to true in order * for the label to display them. * * Default value: "" * * @return A PropertyProxy that allows you to get or set the value of the property, * or receive notification when the value of the property changes. */ Glib::PropertyProxy< Glib::ustring > property_label() ; /** The contents of the label. * * If the string contains Pango markup (see pango_parse_markup()), * you will have to set the property_use_markup() property to * true in order for the label to display the markup attributes. See also * Gtk::Label::set_markup() for a convenience function that sets both * this property and the property_use_markup() property at the * same time. * * If the string contains underlines acting as mnemonics, you will have to * set the property_use_underline() property to true in order * for the label to display them. * * Default value: "" * * @return A PropertyProxy_ReadOnly that allows you to get the value of the property, * or receive notification when the value of the property changes. */ Glib::PropertyProxy_ReadOnly< Glib::ustring > property_label() const; /** A list of style attributes to apply to the text of the label. * * @return A PropertyProxy that allows you to get or set the value of the property, * or receive notification when the value of the property changes. */ Glib::PropertyProxy< Pango::AttrList > property_attributes() ; /** A list of style attributes to apply to the text of the label. * * @return A PropertyProxy_ReadOnly that allows you to get the value of the property, * or receive notification when the value of the property changes. */ Glib::PropertyProxy_ReadOnly< Pango::AttrList > property_attributes() const; /** True if the text of the label includes Pango markup. * * See pango_parse_markup(). * * Default value: false * * @return A PropertyProxy that allows you to get or set the value of the property, * or receive notification when the value of the property changes. */ Glib::PropertyProxy< bool > property_use_markup() ; /** True if the text of the label includes Pango markup. * * See pango_parse_markup(). * * Default value: false * * @return A PropertyProxy_ReadOnly that allows you to get the value of the property, * or receive notification when the value of the property changes. */ Glib::PropertyProxy_ReadOnly< bool > property_use_markup() const; /** True if the text of the label indicates a mnemonic with an `_` * before the mnemonic character. * * Default value: false * * @return A PropertyProxy that allows you to get or set the value of the property, * or receive notification when the value of the property changes. */ Glib::PropertyProxy< bool > property_use_underline() ; /** True if the text of the label indicates a mnemonic with an `_` * before the mnemonic character. * * Default value: false * * @return A PropertyProxy_ReadOnly that allows you to get the value of the property, * or receive notification when the value of the property changes. */ Glib::PropertyProxy_ReadOnly< bool > property_use_underline() const; /** The alignment of the lines in the text of the label, relative to each other. * * This does *not* affect the alignment of the label within its allocation. * See property_xalign() for that. * * Default value: Gtk::Justification::LEFT * * @return A PropertyProxy that allows you to get or set the value of the property, * or receive notification when the value of the property changes. */ Glib::PropertyProxy< Justification > property_justify() ; /** The alignment of the lines in the text of the label, relative to each other. * * This does *not* affect the alignment of the label within its allocation. * See property_xalign() for that. * * Default value: Gtk::Justification::LEFT * * @return A PropertyProxy_ReadOnly that allows you to get the value of the property, * or receive notification when the value of the property changes. */ Glib::PropertyProxy_ReadOnly< Justification > property_justify() const; /** True if the label text will wrap if it gets too wide. * * Default value: false * * @return A PropertyProxy that allows you to get or set the value of the property, * or receive notification when the value of the property changes. */ Glib::PropertyProxy< bool > property_wrap() ; /** True if the label text will wrap if it gets too wide. * * Default value: false * * @return A PropertyProxy_ReadOnly that allows you to get the value of the property, * or receive notification when the value of the property changes. */ Glib::PropertyProxy_ReadOnly< bool > property_wrap() const; /** Controls how the line wrapping is done. * * This only affects the formatting if line wrapping is on (see the * property_wrap() property). The default is [enum@Pango.WrapMode.word], * which means wrap on word boundaries. * * For sizing behavior, also consider the property_natural_wrap_mode() * property. * * Default value: Pango::WrapMode::WORD * * @return A PropertyProxy that allows you to get or set the value of the property, * or receive notification when the value of the property changes. */ Glib::PropertyProxy< Pango::WrapMode > property_wrap_mode() ; /** Controls how the line wrapping is done. * * This only affects the formatting if line wrapping is on (see the * property_wrap() property). The default is [enum@Pango.WrapMode.word], * which means wrap on word boundaries. * * For sizing behavior, also consider the property_natural_wrap_mode() * property. * * Default value: Pango::WrapMode::WORD * * @return A PropertyProxy_ReadOnly that allows you to get the value of the property, * or receive notification when the value of the property changes. */ Glib::PropertyProxy_ReadOnly< Pango::WrapMode > property_wrap_mode() const; /** Select the line wrapping for the natural size request. * * This only affects the natural size requested. For the actual wrapping * used, see the property_wrap_mode() property. * * The default is [enum@Gtk.NaturalWrapMode.inherit], which inherits * the behavior of the property_wrap_mode() property. * * @newin{4,6} * * Default value: Gtk::NaturalWrapMode::INHERIT * * @return A PropertyProxy that allows you to get or set the value of the property, * or receive notification when the value of the property changes. */ Glib::PropertyProxy< NaturalWrapMode > property_natural_wrap_mode() ; /** Select the line wrapping for the natural size request. * * This only affects the natural size requested. For the actual wrapping * used, see the property_wrap_mode() property. * * The default is [enum@Gtk.NaturalWrapMode.inherit], which inherits * the behavior of the property_wrap_mode() property. * * @newin{4,6} * * Default value: Gtk::NaturalWrapMode::INHERIT * * @return A PropertyProxy_ReadOnly that allows you to get the value of the property, * or receive notification when the value of the property changes. */ Glib::PropertyProxy_ReadOnly< NaturalWrapMode > property_natural_wrap_mode() const; /** Whether the label text can be selected with the mouse. * * Default value: false * * @return A PropertyProxy that allows you to get or set the value of the property, * or receive notification when the value of the property changes. */ Glib::PropertyProxy< bool > property_selectable() ; /** Whether the label text can be selected with the mouse. * * Default value: false * * @return A PropertyProxy_ReadOnly that allows you to get the value of the property, * or receive notification when the value of the property changes. */ Glib::PropertyProxy_ReadOnly< bool > property_selectable() const; /** The mnemonic accelerator key for the label. * * Default value: 16777215 * * @return A PropertyProxy_ReadOnly that allows you to get the value of the property, * or receive notification when the value of the property changes. */ Glib::PropertyProxy_ReadOnly< guint > property_mnemonic_keyval() const; /** The widget to be activated when the labels mnemonic key is pressed. * * @return A PropertyProxy that allows you to get or set the value of the property, * or receive notification when the value of the property changes. */ Glib::PropertyProxy< Widget* > property_mnemonic_widget() ; /** The widget to be activated when the labels mnemonic key is pressed. * * @return A PropertyProxy_ReadOnly that allows you to get the value of the property, * or receive notification when the value of the property changes. */ Glib::PropertyProxy_ReadOnly< Widget* > property_mnemonic_widget() const; /** The preferred place to ellipsize the string, if the label does * not have enough room to display the entire string. * * Note that setting this property to a value other than * [enum.Pango.EllipsizeMode.none] has the side-effect that the label requests * only enough space to display the ellipsis "...". In particular, this * means that ellipsizing labels do not work well in notebook tabs, unless * the Gtk::NotebookPage::property_tab_expand() child property is set to true. * * Other ways to set a label's width are Gtk::Widget::set_size_request() * and Gtk::Label::set_width_chars(). * * Default value: Pango::EllipsizeMode::NONE * * @return A PropertyProxy that allows you to get or set the value of the property, * or receive notification when the value of the property changes. */ Glib::PropertyProxy< Pango::EllipsizeMode > property_ellipsize() ; /** The preferred place to ellipsize the string, if the label does * not have enough room to display the entire string. * * Note that setting this property to a value other than * [enum.Pango.EllipsizeMode.none] has the side-effect that the label requests * only enough space to display the ellipsis "...". In particular, this * means that ellipsizing labels do not work well in notebook tabs, unless * the Gtk::NotebookPage::property_tab_expand() child property is set to true. * * Other ways to set a label's width are Gtk::Widget::set_size_request() * and Gtk::Label::set_width_chars(). * * Default value: Pango::EllipsizeMode::NONE * * @return A PropertyProxy_ReadOnly that allows you to get the value of the property, * or receive notification when the value of the property changes. */ Glib::PropertyProxy_ReadOnly< Pango::EllipsizeMode > property_ellipsize() const; /** The desired width of the label, in characters. * * If this property is set to -1, the width will be calculated automatically. * * See the section on [text layout](class.Label.html#text-layout) for details * of how property_width_chars() and property_max_width_chars() * determine the width of ellipsized and wrapped labels. * * Default value: -1 * * @return A PropertyProxy that allows you to get or set the value of the property, * or receive notification when the value of the property changes. */ Glib::PropertyProxy< int > property_width_chars() ; /** The desired width of the label, in characters. * * If this property is set to -1, the width will be calculated automatically. * * See the section on [text layout](class.Label.html#text-layout) for details * of how property_width_chars() and property_max_width_chars() * determine the width of ellipsized and wrapped labels. * * Default value: -1 * * @return A PropertyProxy_ReadOnly that allows you to get the value of the property, * or receive notification when the value of the property changes. */ Glib::PropertyProxy_ReadOnly< int > property_width_chars() const; /** Whether the label is in single line mode. * * In single line mode, the height of the label does not depend on the * actual text, it is always set to ascent + descent of the font. This * can be an advantage in situations where resizing the label because * of text changes would be distracting, e.g. in a statusbar. * * Default value: false * * @return A PropertyProxy that allows you to get or set the value of the property, * or receive notification when the value of the property changes. */ Glib::PropertyProxy< bool > property_single_line_mode() ; /** Whether the label is in single line mode. * * In single line mode, the height of the label does not depend on the * actual text, it is always set to ascent + descent of the font. This * can be an advantage in situations where resizing the label because * of text changes would be distracting, e.g. in a statusbar. * * Default value: false * * @return A PropertyProxy_ReadOnly that allows you to get the value of the property, * or receive notification when the value of the property changes. */ Glib::PropertyProxy_ReadOnly< bool > property_single_line_mode() const; /** The desired maximum width of the label, in characters. * * If this property is set to -1, the width will be calculated automatically. * * See the section on [text layout](class.Label.html#text-layout) for details * of how property_width_chars() and property_max_width_chars() * determine the width of ellipsized and wrapped labels. * * Default value: -1 * * @return A PropertyProxy that allows you to get or set the value of the property, * or receive notification when the value of the property changes. */ Glib::PropertyProxy< int > property_max_width_chars() ; /** The desired maximum width of the label, in characters. * * If this property is set to -1, the width will be calculated automatically. * * See the section on [text layout](class.Label.html#text-layout) for details * of how property_width_chars() and property_max_width_chars() * determine the width of ellipsized and wrapped labels. * * Default value: -1 * * @return A PropertyProxy_ReadOnly that allows you to get the value of the property, * or receive notification when the value of the property changes. */ Glib::PropertyProxy_ReadOnly< int > property_max_width_chars() const; /** The number of lines to which an ellipsized, wrapping label * should display before it gets ellipsized. This both prevents the label * from ellipsizing before this many lines are displayed, and limits the * height request of the label to this many lines. * * ::: warning * Setting this property has unintuitive and unfortunate consequences * for the minimum _width_ of the label. Specifically, if the height * of the label is such that it fits a smaller number of lines than * the value of this property, the label can not be ellipsized at all, * which means it must be wide enough to fit all the text fully. * * This property has no effect if the label is not wrapping or ellipsized. * * Set this property to -1 if you don't want to limit the number of lines. * * Default value: -1 * * @return A PropertyProxy that allows you to get or set the value of the property, * or receive notification when the value of the property changes. */ Glib::PropertyProxy< int > property_lines() ; /** The number of lines to which an ellipsized, wrapping label * should display before it gets ellipsized. This both prevents the label * from ellipsizing before this many lines are displayed, and limits the * height request of the label to this many lines. * * ::: warning * Setting this property has unintuitive and unfortunate consequences * for the minimum _width_ of the label. Specifically, if the height * of the label is such that it fits a smaller number of lines than * the value of this property, the label can not be ellipsized at all, * which means it must be wide enough to fit all the text fully. * * This property has no effect if the label is not wrapping or ellipsized. * * Set this property to -1 if you don't want to limit the number of lines. * * Default value: -1 * * @return A PropertyProxy_ReadOnly that allows you to get the value of the property, * or receive notification when the value of the property changes. */ Glib::PropertyProxy_ReadOnly< int > property_lines() const; /** The horizontal alignment of the label text inside its size allocation. * * Compare this to Gtk::Widget::property_halign(), which determines how the * labels size allocation is positioned in the space available for the label. * * Default value: 0.5 * * @return A PropertyProxy that allows you to get or set the value of the property, * or receive notification when the value of the property changes. */ Glib::PropertyProxy< float > property_xalign() ; /** The horizontal alignment of the label text inside its size allocation. * * Compare this to Gtk::Widget::property_halign(), which determines how the * labels size allocation is positioned in the space available for the label. * * Default value: 0.5 * * @return A PropertyProxy_ReadOnly that allows you to get the value of the property, * or receive notification when the value of the property changes. */ Glib::PropertyProxy_ReadOnly< float > property_xalign() const; /** The vertical alignment of the label text inside its size allocation. * * Compare this to Gtk::Widget::property_valign(), which determines how the * labels size allocation is positioned in the space available for the label. * * Default value: 0.5 * * @return A PropertyProxy that allows you to get or set the value of the property, * or receive notification when the value of the property changes. */ Glib::PropertyProxy< float > property_yalign() ; /** The vertical alignment of the label text inside its size allocation. * * Compare this to Gtk::Widget::property_valign(), which determines how the * labels size allocation is positioned in the space available for the label. * * Default value: 0.5 * * @return A PropertyProxy_ReadOnly that allows you to get the value of the property, * or receive notification when the value of the property changes. */ Glib::PropertyProxy_ReadOnly< float > property_yalign() const; /** A menu model whose contents will be appended to the context menu. * * @return A PropertyProxy that allows you to get or set the value of the property, * or receive notification when the value of the property changes. */ Glib::PropertyProxy< Glib::RefPtr > property_extra_menu() ; /** A menu model whose contents will be appended to the context menu. * * @return A PropertyProxy_ReadOnly that allows you to get the value of the property, * or receive notification when the value of the property changes. */ Glib::PropertyProxy_ReadOnly< Glib::RefPtr > property_extra_menu() const; /** Custom tabs for this label. * * @newin{4,8} * * @return A PropertyProxy that allows you to get or set the value of the property, * or receive notification when the value of the property changes. */ Glib::PropertyProxy< Pango::TabArray > property_tabs() ; /** Custom tabs for this label. * * @newin{4,8} * * @return A PropertyProxy_ReadOnly that allows you to get the value of the property, * or receive notification when the value of the property changes. */ Glib::PropertyProxy_ReadOnly< Pango::TabArray > property_tabs() const; public: public: //C++ methods used to invoke GTK+ virtual functions: protected: //GTK+ Virtual Functions (override these to change behaviour): //Default Signal Handlers:: }; } // namespace Gtk namespace Glib { /** A Glib::wrap() method for this object. * * @param object The C instance. * @param take_copy False if the result should take ownership of the C instance. True if it should take a new copy or ref. * @result A C++ instance that wraps this C instance. * * @relates Gtk::Label */ GTKMM_API Gtk::Label* wrap(GtkLabel* object, bool take_copy = false); } //namespace Glib #endif /* _GTKMM_LABEL_H */