A rich_label takes marked up text and shows it correctly formatted and wrapped but no scrollbars are provided. More...
#include <rich_label.hpp>
Public Member Functions | |
rich_label (const implementation::builder_rich_label &builder) | |
virtual bool | can_wrap () const override |
Can the widget wrap. More... | |
virtual unsigned | get_characters_per_line () const override |
Returns the number of characters per line. More... | |
virtual bool | get_link_aware () const override |
Returns whether the label should be link_aware, in in rendering and in searching for links with get_link. More... | |
virtual color_t | get_link_color () const override |
Returns the color string to be used with links. More... | |
virtual void | set_active (const bool active) override |
Sets the styled_widget's state. More... | |
virtual bool | get_active () const override |
Gets the active state of the styled_widget. More... | |
virtual unsigned | get_state () const override |
Returns the id of the state. More... | |
bool | disable_click_dismiss () const override |
Does the widget disable easy close? More... | |
virtual bool | can_mouse_focus () const override |
Whether the mouse move/click event go 'through' this widget. More... | |
virtual void | update_canvas () override |
Updates the canvas(ses). More... | |
void | set_can_wrap (const bool wrap) |
void | set_characters_per_line (const unsigned characters_per_line) |
void | set_link_aware (bool l) |
void | set_link_color (const color_t &color) |
void | set_can_shrink (bool can_shrink) |
void | set_font_family (const std::string &font_family) |
void | set_font_size (int font_size) |
void | set_font_style (const std::string &font_style) |
void | set_text_alpha (unsigned short alpha) |
void | set_text_color (const color_t &color, bool enabled) |
const t_string & | get_label () const |
void | set_label (const t_string &text) override |
void | set_topic (const help::topic *topic) |
std::pair< config, point > | get_parsed_text (const config &parsed_text, const point &origin, const unsigned init_width, const bool finalize=false) |
void | register_link_callback (std::function< void(std::string)> link_handler) |
Public Member Functions inherited from gui2::styled_widget | |
styled_widget (const implementation::builder_styled_widget &builder, const std::string &control_type) | |
Constructor. More... | |
virtual void | set_members (const widget_item &data) |
Sets the members of the styled_widget. More... | |
bool | disable_click_dismiss () const override |
See widget::disable_click_dismiss. More... | |
virtual iteration::walker_ptr | create_walker () override |
See widget::create_walker. More... | |
point | get_config_minimum_size () const |
Gets the minimum size as defined in the config. More... | |
point | get_config_default_size () const |
Gets the default size as defined in the config. More... | |
point | get_config_maximum_size () const |
Gets the best size as defined in the config. More... | |
virtual void | layout_initialize (const bool full_initialization) override |
See widget::layout_initialize. More... | |
virtual void | request_reduce_width (const unsigned maximum_width) override |
See widget::request_reduce_width. More... | |
virtual void | request_reduce_height (const unsigned maximum_height) override |
See widget::request_reduce_height. More... | |
virtual void | place (const point &origin, const point &size) override |
See widget::place. More... | |
virtual widget * | find_at (const point &coordinate, const bool must_be_active) override |
See widget::find_at. More... | |
virtual const widget * | find_at (const point &coordinate, const bool must_be_active) const override |
See widget::find_at. More... | |
widget * | find (const std::string_view id, const bool must_be_active) override |
See widget::find. More... | |
const widget * | find (const std::string_view id, const bool must_be_active) const override |
See widget::find. More... | |
bool | get_use_tooltip_on_label_overflow () const |
void | set_use_tooltip_on_label_overflow (const bool use_tooltip=true) |
const t_string & | get_label () const |
virtual void | set_use_markup (bool use_markup) |
bool | get_use_markup () const |
const t_string & | tooltip () const |
void | set_tooltip (const t_string &tooltip) |
const t_string & | help_message () const |
void | set_help_message (const t_string &help_message) |
std::vector< canvas > & | get_canvases () |
canvas & | get_canvas (const unsigned index) |
virtual void | set_text_alignment (const PangoAlignment text_alignment) |
PangoAlignment | get_text_alignment () const |
void | set_text_ellipse_mode (const PangoEllipsizeMode ellipse_mode) |
PangoEllipsizeMode | get_text_ellipse_mode () const |
Get the text's ellipsize mode. More... | |
void | set_text_maximum_width (int max_width) |
Set how wide the text can become. More... | |
Public Member Functions inherited from gui2::widget | |
widget (const widget &)=delete | |
widget & | operator= (const widget &)=delete |
widget () | |
widget (const builder_widget &builder) | |
Constructor. More... | |
virtual | ~widget () override |
void | set_id (const std::string &id) |
const std::string & | id () const |
window * | get_window () |
Get the parent window. More... | |
const window * | get_window () const |
The constant version of get_window. More... | |
grid * | get_parent_grid () |
Get the parent grid. More... | |
const grid * | get_parent_grid () const |
void | set_parent (widget *parent) |
widget * | parent () |
virtual void | demand_reduce_width (const unsigned maximum_width) |
Tries to reduce the width of a widget. More... | |
virtual void | demand_reduce_height (const unsigned maximum_height) |
Tries to reduce the height of a widget. More... | |
point | get_best_size () const |
Gets the best size for the widget. More... | |
virtual void | set_origin (const point &origin) |
Sets the origin of the widget. More... | |
virtual void | set_size (const point &size) |
Sets the size of the widget. More... | |
virtual void | move (const int x_offset, const int y_offset) |
Moves a widget. More... | |
virtual void | set_horizontal_alignment (const std::string &alignment) |
Sets the horizontal alignment of the widget within its parent grid. More... | |
virtual void | set_vertical_alignment (const std::string &alignment) |
Sets the horizontal alignment of the widget within its parent grid. More... | |
virtual void | layout_children () |
Allows a widget to update its children. More... | |
point | get_origin () const |
Returns the screen origin of the widget. More... | |
point | get_size () const |
Returns the size of the widget. More... | |
rect | get_rectangle () const |
Gets the bounding rectangle of the widget on the screen. More... | |
int | get_x () const |
int | get_y () const |
unsigned | get_width () const |
unsigned | get_height () const |
void | set_linked_group (const std::string &linked_group) |
std::string | get_linked_group () const |
SDL_Rect | calculate_blitting_rectangle () const |
Calculates the blitting rectangle of the widget. More... | |
SDL_Rect | calculate_clipping_rectangle () const |
Calculates the clipping rectangle of the widget. More... | |
bool | draw_background () |
Draws the background of a widget. More... | |
void | draw_children () |
Draws the children of a widget. More... | |
bool | draw_foreground () |
Draws the foreground of the widget. More... | |
SDL_Rect | get_dirty_rectangle () const |
Gets the dirty rectangle of the widget. More... | |
virtual void | set_visible_rectangle (const SDL_Rect &rectangle) |
Sets the visible rectangle for a widget. More... | |
void | queue_redraw () |
Indicates that this widget should be redrawn. More... | |
void | queue_redraw (const rect ®ion) |
Indicate that specific region of the screen should be redrawn. More... | |
void | set_visible (const visibility visible) |
visibility | get_visible () const |
void | set_visible (bool visible) |
Sets widget to visible if visible is true, else invisible. More... | |
void | set_hidden (bool hidden) |
Sets widget to visible if hidden is true, else hidden. More... | |
redraw_action | get_drawing_action () const |
void | set_debug_border_mode (const debug_border debug_border_mode) |
void | set_debug_border_color (const color_t debug_border_color) |
virtual bool | has_widget (const widget &widget) const |
Does the widget contain the widget. More... | |
template<class T > | |
T * | find_widget (const std::string_view id, const bool must_be_active, const bool must_exist) |
Gets a widget with the wanted id. More... | |
template<class T > | |
const T * | find_widget (const std::string_view id, const bool must_be_active, const bool must_exist) const |
template<class T > | |
T & | find_widget (const std::string_view id, const bool must_be_active=false) |
Gets a widget with the wanted id. More... | |
template<class T > | |
const T & | find_widget (const std::string_view id, const bool must_be_active=false) const |
Public Member Functions inherited from gui2::event_executor | |
event_executor () | |
virtual | ~event_executor () |
void | set_wants_mouse_hover (const bool hover=true) |
bool | wants_mouse_hover () const |
void | set_wants_mouse_left_double_click (const bool click=true) |
bool | wants_mouse_left_double_click () const |
void | set_wants_mouse_middle_double_click (const bool click=true) |
bool | wants_mouse_middle_double_click () const |
event_executor & | set_wants_mouse_right_double_click (const bool click=true) |
bool | wants_mouse_right_double_click () const |
Public Member Functions inherited from gui2::event::dispatcher | |
dispatcher () | |
virtual | ~dispatcher () |
void | connect () |
Connects the dispatcher to the event handler. More... | |
void | disconnect () |
Disconnects the dispatcher from the event handler. More... | |
bool | is_connected () const |
Return whether the dispatcher is currently connected. More... | |
bool | has_event (const ui_event event, const event_queue_type event_type) |
bool | fire (const ui_event event, widget &target) |
Fires an event which has no extra parameters. More... | |
bool | fire (const ui_event event, widget &target, const point &coordinate) |
Fires an event which takes a coordinate parameter. More... | |
bool | fire (const ui_event event, widget &target, const SDL_Keycode key, const SDL_Keymod modifier, const std::string &unicode) |
Fires an event which takes keyboard parameters. More... | |
bool | fire (const ui_event event, widget &target, const point &pos, const point &distance) |
Fires an event which takes touch-motion parameters. More... | |
bool | fire (const ui_event event, widget &target, const point ¢er, float dTheta, float dDist, uint8_t numFingers) |
Fires an event which takes touch-gesture parameters. More... | |
bool | fire (const ui_event event, widget &target, void *) |
Fires an event which takes notification parameters. More... | |
bool | fire (const ui_event event, widget &target, const message &msg) |
Fires an event which takes message parameters. More... | |
bool | fire (const ui_event event, widget &target, const SDL_Event &sdlevent) |
Fires an event that's a raw SDL event. More... | |
bool | fire (const ui_event event, widget &target, const std::string &text, int32_t start, int32_t len) |
Fires an event which takes text input parameters. More... | |
template<ui_event E, typename F > | |
void | connect_signal (const F &func, const queue_position position=back_child) |
Adds a callback to the appropriate queue based on event type. More... | |
template<ui_event E, typename F > | |
void | disconnect_signal (const F &func, const queue_position position=back_child) |
Removes a callback from the appropriate queue based on event type. More... | |
void | capture_mouse () |
Captures the mouse. More... | |
void | release_mouse () |
Releases the mouse capture. More... | |
void | set_mouse_behavior (const mouse_behavior mouse_behavior) |
mouse_behavior | get_mouse_behavior () const |
void | set_want_keyboard_input (const bool want_keyboard_input) |
bool | get_want_keyboard_input () const |
void | register_hotkey (const hotkey::HOTKEY_COMMAND id, const hotkey_function &function) |
Registers a hotkey. More... | |
bool | execute_hotkey (const hotkey::HOTKEY_COMMAND id) |
Executes a hotkey. More... | |
Public Member Functions inherited from enable_lua_ptr< widget > | |
enable_lua_ptr (widget *tp) | |
Static Public Member Functions | |
static const std::string & | type () |
Static type getter that does not rely on the widget being constructed. More... | |
Private Types | |
enum | state_t { ENABLED , DISABLED } |
Possible states of the widget. More... | |
Private Member Functions | |
void | set_state (const state_t state) |
virtual bool | text_can_shrink () override |
Inherited from styled_widget. More... | |
void | default_text_config (config *txt_ptr, const t_string &text="") |
Create template for text config that can be shown in canvas. More... | |
std::pair< size_t, size_t > | add_text (config &curr_item, const std::string &text) |
void | add_attribute (config &curr_item, const std::string &attr_name, size_t start=0, size_t end=0, const std::string &extra_data="") |
std::pair< size_t, size_t > | add_text_with_attribute (config &curr_item, const std::string &text, const std::string &attr_name="", const std::string &extra_data="") |
void | add_image (config &curr_item, const std::string &name, std::string align, bool has_prev_image, bool floating) |
void | add_link (config &curr_item, const std::string &name, const std::string &dest, const point &origin, int img_width) |
point | get_text_size (config &text_cfg, unsigned width=0) const |
size calculation functions More... | |
point | get_image_size (config &img_cfg) const |
wfl::map_formula_callable | setup_text_renderer (config text_cfg, unsigned width=0) const |
size_t | get_split_location (std::string_view text, const point &pos) |
std::vector< std::string > | split_in_width (const std::string &s, const int font_size, const unsigned width) |
int | get_offset_from_xy (const point &position) const |
point | get_xy_from_offset (const unsigned offset) const |
point | calculate_best_size () const override |
See widget::calculate_best_size. More... | |
virtual const std::string & | get_control_type () const override |
Inherited from styled_widget, implemented by REGISTER_WIDGET. More... | |
void | signal_handler_left_button_click (bool &handled) |
Left click signal handler: checks if we clicked on a hyperlink. More... | |
void | signal_handler_mouse_motion (bool &handled, const point &coordinate) |
Mouse motion signal handler: checks if the cursor is on a hyperlink. More... | |
void | signal_handler_mouse_leave (bool &handled) |
Mouse leave signal handler: checks if the cursor left a hyperlink. More... | |
void | update_mouse_cursor (bool enable) |
Implementation detail for (re)setting the hyperlink cursor. More... | |
Private Attributes | |
state_t | state_ |
Current state of the widget. More... | |
bool | can_wrap_ |
Holds the rich_label can wrap or not. More... | |
unsigned | characters_per_line_ |
The maximum number of characters per line. More... | |
bool | link_aware_ |
Whether the rich_label is link aware, rendering links with special formatting and handling click events. More... | |
color_t | text_color_enabled_ |
Base text color, enabled state. More... | |
color_t | text_color_disabled_ |
Base text color, disabled state. More... | |
color_t | link_color_ |
What color links will be rendered in. More... | |
std::string | font_family_ |
Base font family. More... | |
int | font_size_ |
Base font size. More... | |
std::string | font_style_ |
Base font style. More... | |
bool | can_shrink_ |
unsigned short | text_alpha_ |
config | text_dom_ |
structure tree of the marked up text after parsing More... | |
t_string | unparsed_text_ |
The unparsed/raw text. More... | |
const unsigned | init_w_ |
Width and height of the canvas. More... | |
point | size_ |
unsigned | padding_ |
Padding. More... | |
std::vector< std::pair< rect, std::string > > | links_ |
link variables and functions More... | |
std::function< void(std::string)> | link_handler_ |
Friends | |
struct | implementation::builder_rich_label |
Additional Inherited Members | |
Public Types inherited from gui2::widget | |
enum class | visibility { visible , hidden , invisible } |
Visibility settings done by the user. More... | |
enum class | redraw_action { full , partly , none } |
Visibility set by the engine. More... | |
enum class | debug_border { none , outline , fill } |
Public Types inherited from gui2::event::dispatcher | |
enum | event_queue_type { pre = 1 , child = 2 , post = 4 } |
enum | queue_position { front_pre_child , back_pre_child , front_child , back_child , front_post_child , back_post_child } |
The position where to add a new callback in the signal handler. More... | |
enum class | mouse_behavior { all , hit , none } |
The behavior of the mouse events. More... | |
Protected Member Functions inherited from gui2::styled_widget | |
resolution_definition_ptr | get_config () |
resolution_definition_const_ptr | get_config () const |
template<typename T > | |
std::shared_ptr< const typename T::resolution > | cast_config_to () const |
Casts the current resolution definition config to the respective type of a derived widget. More... | |
void | set_config (resolution_definition_ptr config) |
unsigned int | get_text_font_size () const |
Resolves and returns the text_font_size. More... | |
int | get_text_maximum_width () const |
Returns the maximum width available for the text. More... | |
int | get_text_maximum_height () const |
Returns the maximum height available for the text. More... | |
virtual bool | impl_draw_background () override |
See widget::impl_draw_background. More... | |
virtual bool | impl_draw_foreground () override |
See widget::impl_draw_foreground. More... | |
std::string | get_label_token (const point &position, const char *delimiters=" \n\r\t") const |
Exposes font::pango_text::get_token, for the text label of this styled_widget. More... | |
std::string | get_label_link (const point &position) const |
Protected Member Functions inherited from gui2::widget | |
void | set_layout_size (const point &size) |
const point & | layout_size () const |
void | clear_layout_size () |
Throws away layout_size_. More... | |
A rich_label takes marked up text and shows it correctly formatted and wrapped but no scrollbars are provided.
Definition at line 40 of file rich_label.hpp.
|
private |
Possible states of the widget.
Note the order of the states must be the same as defined in settings.hpp.
Enumerator | |
---|---|
ENABLED | |
DISABLED |
Definition at line 166 of file rich_label.hpp.
|
explicit |
Definition at line 65 of file rich_label.cpp.
|
private |
Definition at line 120 of file rich_label.cpp.
References config::add_child(), utf8::size(), and editor::start().
Referenced by add_text_with_attribute(), and get_parsed_text().
|
private |
Definition at line 135 of file rich_label.cpp.
Referenced by get_parsed_text().
|
private |
Definition at line 178 of file rich_label.cpp.
References add_text_with_attribute(), DBG_GUI_RL, font_size_, font::get_max_height(), get_xy_from_offset(), init_w_, link_color_, links_, setup_text_renderer(), utf8::size(), size_, and color_t::to_hex_string().
Referenced by get_parsed_text().
|
private |
Definition at line 112 of file rich_label.cpp.
References editor::start().
Referenced by add_text_with_attribute(), and get_parsed_text().
|
private |
Definition at line 129 of file rich_label.cpp.
References add_attribute(), add_text(), and editor::start().
Referenced by add_link(), and get_parsed_text().
|
inlineoverrideprivatevirtual |
See widget::calculate_best_size.
Reimplemented from gui2::styled_widget.
Definition at line 284 of file rich_label.hpp.
References gui2::styled_widget::calculate_best_size(), and size_.
|
inlineoverridevirtual |
Whether the mouse move/click event go 'through' this widget.
Reimplemented from gui2::widget.
Definition at line 84 of file rich_label.hpp.
References t_string::empty(), get_link_aware(), and gui2::styled_widget::tooltip().
|
inlineoverridevirtual |
Can the widget wrap.
When a widget can wrap it can reduce its width by increasing its height. When a layout is too wide it should first try to wrap and if that fails it should check the vertical scrollbar status. After wrapping the height might (probably will) change so the layout engine needs to recalculate the height after wrapping.
Reimplemented from gui2::widget.
Definition at line 47 of file rich_label.hpp.
References can_wrap_, and characters_per_line_.
Create template for text config that can be shown in canvas.
Definition at line 735 of file rich_label.cpp.
References gui2::encode_text_alignment(), font_family_, font_size_, font_style_, gui2::styled_widget::get_text_alignment(), text_color_enabled_, and color_t::to_rgba_string().
Referenced by get_parsed_text().
|
inlineoverridevirtual |
Does the widget disable easy close?
Implements gui2::widget.
Definition at line 79 of file rich_label.hpp.
|
inlineoverridevirtual |
Gets the active state of the styled_widget.
Implements gui2::styled_widget.
Definition at line 69 of file rich_label.hpp.
References DISABLED, and state_.
Referenced by set_active().
|
inlineoverridevirtual |
Returns the number of characters per line.
This value is used to call pango_text::set_characters_per_line (indirectly).
Reimplemented from gui2::styled_widget.
Definition at line 52 of file rich_label.hpp.
References characters_per_line_.
|
overrideprivatevirtual |
Inherited from styled_widget, implemented by REGISTER_WIDGET.
Implements gui2::styled_widget.
Definition at line 101 of file rich_label.cpp.
References wfl::map_formula_callable::add(), wfl::variant::as_int(), and wfl::formula_callable::query_value().
Referenced by get_parsed_text().
|
inline |
Definition at line 138 of file rich_label.hpp.
References t_string::empty(), gui2::styled_widget::get_label(), and unparsed_text_.
|
inlineoverridevirtual |
Returns whether the label should be link_aware, in in rendering and in searching for links with get_link.
This value is used to call pango_text::set_link_aware (indirectly).
Reimplemented from gui2::styled_widget.
Definition at line 57 of file rich_label.hpp.
References link_aware_.
Referenced by can_mouse_focus(), signal_handler_left_button_click(), signal_handler_mouse_leave(), and signal_handler_mouse_motion().
|
inlineoverridevirtual |
Returns the color string to be used with links.
This value is used to call pango_text::set_link_color (indirectly).
Reimplemented from gui2::styled_widget.
Definition at line 62 of file rich_label.hpp.
References link_color_.
|
inlineprivate |
Definition at line 274 of file rich_label.hpp.
References font::get_text_renderer(), and font::pango_text::xy_to_index().
Referenced by get_split_location().
std::pair< config, point > gui2::rich_label::get_parsed_text | ( | const config & | parsed_text, |
const point & | origin, | ||
const unsigned | init_width, | ||
const bool | finalize = false |
||
) |
Definition at line 268 of file rich_label.cpp.
References _(), add_attribute(), config::add_child(), add_image(), add_link(), add_text(), add_text_with_attribute(), config::all_children_view(), config::append(), config::append_attributes(), config::append_children(), gui2::event::dispatcher::child, config::child_range(), DBG_GUI_RL, config::debug(), gui2::debug_truncate(), default_text_config(), utils::find(), font_size_, get_image_size(), font::get_max_height(), video::get_pixel_scale(), get_split_location(), get_text_size(), h, draw::line(), links_, padding_, draw::point(), utf8::size(), font::SIZE_TITLE, split_in_width(), editor::start(), font::string_to_color(), and w.
Referenced by set_label(), and set_topic().
|
private |
Definition at line 224 of file rich_label.cpp.
References c, and get_offset_from_xy().
Referenced by get_parsed_text().
|
inlineoverridevirtual |
Returns the id of the state.
The current state is also the index canvases_.
Implements gui2::styled_widget.
Definition at line 74 of file rich_label.hpp.
References state_.
size calculation functions
Definition at line 93 of file rich_label.cpp.
References wfl::variant::as_int(), wfl::formula_callable::query_value(), and setup_text_renderer().
Referenced by get_parsed_text().
|
inlineprivate |
Definition at line 279 of file rich_label.hpp.
References font::pango_text::get_cursor_position(), and font::get_text_renderer().
Referenced by add_link().
void gui2::rich_label::register_link_callback | ( | std::function< void(std::string)> | link_handler | ) |
Definition at line 815 of file rich_label.cpp.
References link_aware_, link_handler_, signal_handler_left_button_click(), signal_handler_mouse_leave(), and signal_handler_mouse_motion().
Referenced by gui2::dialogs::help_browser::pre_show().
|
overridevirtual |
Sets the styled_widget's state.
Sets the styled_widget in the active state, when inactive a styled_widget can't be used and doesn't react to events. (Note read-only for a text_box_base is a different state.)
Implements gui2::styled_widget.
Definition at line 782 of file rich_label.cpp.
References DISABLED, ENABLED, get_active(), and set_state().
|
inline |
Definition at line 107 of file rich_label.hpp.
References can_shrink_.
|
inline |
Definition at line 93 of file rich_label.hpp.
References can_wrap_.
|
inline |
Definition at line 98 of file rich_label.hpp.
References characters_per_line_.
|
inline |
Definition at line 112 of file rich_label.hpp.
References font_family_.
|
inline |
Definition at line 117 of file rich_label.hpp.
References font_size_.
|
inline |
Definition at line 122 of file rich_label.hpp.
References font_style_.
|
overridevirtual |
Reimplemented from gui2::styled_widget.
Definition at line 261 of file rich_label.cpp.
References get_parsed_text(), init_w_, help::topic_text::parsed_text(), gui2::styled_widget::set_label(), size_, text_dom_, and unparsed_text_.
void gui2::rich_label::set_link_aware | ( | bool | l | ) |
Definition at line 789 of file rich_label.cpp.
References link_aware_, gui2::widget::queue_redraw(), and update_canvas().
void gui2::rich_label::set_link_color | ( | const color_t & | color | ) |
Definition at line 798 of file rich_label.cpp.
References link_color_, gui2::widget::queue_redraw(), and update_canvas().
|
private |
Definition at line 807 of file rich_label.cpp.
References gui2::widget::queue_redraw(), and state_.
Referenced by set_active().
void gui2::rich_label::set_text_alpha | ( | unsigned short | alpha | ) |
Definition at line 773 of file rich_label.cpp.
References gui2::widget::queue_redraw(), text_alpha_, and update_canvas().
|
inline |
Definition at line 129 of file rich_label.hpp.
References text_color_disabled_, and text_color_enabled_.
void gui2::rich_label::set_topic | ( | const help::topic * | topic | ) |
Definition at line 256 of file rich_label.cpp.
References config::debug(), get_parsed_text(), init_w_, help::topic_text::parsed_text(), gui2::styled_widget::set_label(), size_, help::topic::text, and text_dom_.
|
private |
Definition at line 81 of file rich_label.cpp.
References wfl::map_formula_callable::add().
Referenced by add_link(), and get_text_size().
|
private |
Left click signal handler: checks if we clicked on a hyperlink.
Definition at line 831 of file rich_label.cpp.
References DBG_GUI_E, DBG_GUI_RL, get_link_aware(), gui2::get_mouse_position(), gui2::widget::get_origin(), link_handler_, links_, sound::play_UI_sound(), and gui2::settings::sound_button_click.
Referenced by register_link_callback().
|
private |
Mouse leave signal handler: checks if the cursor left a hyperlink.
Definition at line 883 of file rich_label.cpp.
References DBG_GUI_E, get_link_aware(), and update_mouse_cursor().
Referenced by register_link_callback().
|
private |
Mouse motion signal handler: checks if the cursor is on a hyperlink.
Definition at line 862 of file rich_label.cpp.
References DBG_GUI_E, get_link_aware(), gui2::widget::get_origin(), links_, and update_mouse_cursor().
Referenced by register_link_callback().
|
private |
Definition at line 241 of file rich_label.cpp.
References _(), font::pango_word_wrap(), and s.
Referenced by get_parsed_text().
|
inlineoverrideprivatevirtual |
Inherited from styled_widget.
Reimplemented from gui2::styled_widget.
Definition at line 232 of file rich_label.hpp.
References can_shrink_.
|
static |
Static type getter that does not rely on the widget being constructed.
|
overridevirtual |
Updates the canvas(ses).
This function should be called if either the size of the widget changes or the text on the widget changes.
Reimplemented from gui2::styled_widget.
Definition at line 755 of file rich_label.cpp.
References gui2::styled_widget::get_canvases(), init_w_, padding_, text_alpha_, and text_dom_.
Referenced by set_link_aware(), set_link_color(), and set_text_alpha().
|
private |
Implementation detail for (re)setting the hyperlink cursor.
Definition at line 897 of file rich_label.cpp.
References cursor::get(), cursor::HYPERLINK, cursor::NORMAL, and cursor::set().
Referenced by signal_handler_mouse_leave(), and signal_handler_mouse_motion().
|
friend |
Definition at line 42 of file rich_label.hpp.
|
private |
Definition at line 227 of file rich_label.hpp.
Referenced by set_can_shrink(), and text_can_shrink().
|
private |
Holds the rich_label can wrap or not.
Definition at line 182 of file rich_label.hpp.
Referenced by can_wrap(), and set_can_wrap().
|
private |
The maximum number of characters per line.
The maximum is not an exact maximum, it uses the average character width.
Definition at line 189 of file rich_label.hpp.
Referenced by can_wrap(), get_characters_per_line(), and set_characters_per_line().
|
private |
Base font family.
Definition at line 215 of file rich_label.hpp.
Referenced by default_text_config(), and set_font_family().
|
private |
Base font size.
Definition at line 220 of file rich_label.hpp.
Referenced by add_link(), default_text_config(), get_parsed_text(), and set_font_size().
|
private |
Base font style.
Definition at line 225 of file rich_label.hpp.
Referenced by default_text_config(), and set_font_style().
|
private |
Width and height of the canvas.
Definition at line 244 of file rich_label.hpp.
Referenced by add_link(), set_label(), set_topic(), and update_canvas().
|
private |
Whether the rich_label is link aware, rendering links with special formatting and handling click events.
Definition at line 195 of file rich_label.hpp.
Referenced by get_link_aware(), register_link_callback(), and set_link_aware().
|
private |
What color links will be rendered in.
Definition at line 210 of file rich_label.hpp.
Referenced by add_link(), get_link_color(), and set_link_color().
|
private |
Definition at line 272 of file rich_label.hpp.
Referenced by register_link_callback(), and signal_handler_left_button_click().
|
private |
link variables and functions
Definition at line 270 of file rich_label.hpp.
Referenced by add_link(), get_parsed_text(), signal_handler_left_button_click(), and signal_handler_mouse_motion().
|
private |
Padding.
Definition at line 248 of file rich_label.hpp.
Referenced by get_parsed_text(), and update_canvas().
|
private |
Definition at line 245 of file rich_label.hpp.
Referenced by add_link(), calculate_best_size(), set_label(), and set_topic().
|
private |
Current state of the widget.
The state of the widget determines what to render and how the widget reacts to certain 'events'.
Definition at line 179 of file rich_label.hpp.
Referenced by get_active(), get_state(), and set_state().
|
private |
Definition at line 229 of file rich_label.hpp.
Referenced by set_text_alpha(), and update_canvas().
|
private |
Base text color, disabled state.
Definition at line 205 of file rich_label.hpp.
Referenced by set_text_color().
|
private |
Base text color, enabled state.
Definition at line 200 of file rich_label.hpp.
Referenced by default_text_config(), and set_text_color().
|
private |
structure tree of the marked up text after parsing
Definition at line 238 of file rich_label.hpp.
Referenced by set_label(), set_topic(), and update_canvas().
|
private |
The unparsed/raw text.
Definition at line 241 of file rich_label.hpp.
Referenced by get_label(), and set_label().