TermOx
Public Member Functions | Protected Member Functions | List of all members
ox::Log Class Reference

A scrollable list of logged messages. More...

#include <log.hpp>

Inheritance diagram for ox::Log:
ox::Textbox ox::detail::Textbox_base ox::Text_view ox::Widget

Public Member Functions

void post_message (Glyph_string message)
 
- Public Member Functions inherited from ox::Textbox
 Textbox (Glyph_string text=U"", Align alignment=Align::Left, Wrap wrap=Wrap::Word, Brush insert_brush=Brush{}, int scroll_speed=1, bool text_input=true)
 Construct a Textbox with initial contents and strong focus.
 
 Textbox (Parameters p)
 
void set_scroll_speed (int x) noexcept
 Set the number of lines scrolled vertically on scroll wheel events. More...
 
auto scroll_speed () const noexcept -> int
 Return the current scroll wheel speed.
 
void enable_text_input () noexcept
 Enable the Textbox to take keyboard input.
 
void disable_text_input () noexcept
 Disable the Textbox from taking keyboard input.
 
auto has_text_input () const noexcept -> bool
 Return true if currently takes text keyboard input.
 
- Public Member Functions inherited from ox::detail::Textbox_base
void set_cursor (Point position)
 Set the cursor to position, or the nearest Glyph if no glyph there.
 
void set_cursor (std::size_t index)
 Set the cursor to the Glyph at index into contents.
 
void scroll_up (int n=1) override
 Add cursor movement to Text_view::scroll_up.
 
void scroll_down (int n=1) override
 Add cursor movement to Text_view::scroll_down.
 
void cursor_up (int n=1)
 Move the cursor up n lines, scroll if at the top line. More...
 
void cursor_down (int n=1)
 Move the cursor down n lines, scroll if at the bottom line. More...
 
void cursor_left (int n=1)
 Move the cursor n indices towards the beginning of contents. More...
 
void cursor_right (int n=1)
 Move the cursor n indices towards the end of contents. More...
 
- Public Member Functions inherited from ox::Text_view
 Text_view (Glyph_string text=U"", Align alignment=Align::Left, Wrap wrap=Wrap::Word, Brush insert_brush=Brush{})
 Construct a Text_view with initial Glyph_string text. More...
 
 Text_view (Parameters p)
 
void set_text (Glyph_string text)
 Replace the current contents with text. More...
 
auto text () -> Glyph_string &
 Return the entire contents of the Text_view. More...
 
auto text () const -> Glyph_string const &
 Return the entire contents of the Text_view.
 
void set_alignment (Align type)
 Set the Alignment, changing how the contents are displayed. More...
 
auto alignment () const -> Align
 Return the currently used Alignment.
 
void set_wrap (Wrap w)
 Set the type of text wrapping at line boundaries.
 
auto wrap () const -> Wrap
 Return the currently set text Wrap type.
 
void insert (Glyph_string text, int index)
 Inserts text starting at index into the current contents. More...
 
void append (Glyph_string text)
 Inserts text to the end of the current contents. More...
 
void erase (int index, int length=Glyph_string::npos)
 Remove Glyphs from contents starting at index, for length Glyphs.
 
void pop_back ()
 Remove the last Glyph from the current contents. No-op if this->empty();.
 
void clear ()
 Remove all Glyphs from the this text display. More...
 
auto row_length (int y) const -> int
 Return the length of the line at row y. More...
 
auto display_height () const -> int
 Return the number of lines currently displayed.
 
auto line_count () const -> int
 Return the total number of lines in display_state_.
 
void set_top_line (int n)
 Set the top line, by row index.
 
auto index_at (Point position) const -> int
 Return the index into the contents from a physical Point on the Widget. More...
 
auto display_position (int index) const -> Point
 Return the position of the Glyph at index. More...
 
void update () override
 Add call to Text_view::update_display() before posting Paint_event.
 
- Public Member Functions inherited from ox::Widget
 Widget (std::string name="", Focus_policy focus_policy_=Focus_policy::None, Size_policy width_policy_=Size_policy{}, Size_policy height_policy_=Size_policy{}, Brush brush_=Brush{}, Glyph wallpaper=U' ', bool brush_paints_wallpaper=true, Cursor cursor=Cursor{})
 Create an empty Widget.
 
 Widget (Parameters p)
 Create an empty Widget.
 
 Widget (Widget const &)=delete
 
 Widget (Widget &&)=delete
 
Widgetoperator= (Widget const &)=delete
 
Widgetoperator= (Widget &&)=delete
 
void set_name (std::string name)
 Set the identifying name of the Widget.
 
auto name () const -> std::string const &
 Return the name of the Widget.
 
auto unique_id () const -> std::uint16_t
 Return the ID number unique to this Widget.
 
void set_wallpaper (Glyph g)
 Used to fill in empty space that is not filled in by paint_event().
 
auto get_wallpaper () const -> Glyph
 Return the currently in use wallpaper or std::nullopt if none.
 
void enable (bool enable=true)
 Enable this Widget and send an Enable_event to itself. More...
 
void disable (bool disable=true)
 Disable this Widget and send a Disable_event to itself. More...
 
auto is_enabled () const -> bool
 Check whether the Widget is enabled.
 
auto parent () const -> Widget *
 Return the Widget's parent pointer. More...
 
auto top_left () const -> Point
 Return the global top left corner of this widget.
 
auto area () const -> Area
 Return the area the widget occupies.
 
virtual auto is_layout_type () const -> bool
 
void install_event_filter (Widget &filter)
 Install another Widget as an Event filter. More...
 
void remove_event_filter (Widget &filter)
 Remove a Widget from the Event filter list. More...
 
auto get_event_filters () const -> std::set< Widget * > const &
 Return the list of Event filter Widgets.
 
void enable_animation (std::chrono::milliseconds interval)
 Enable animation on this Widget. More...
 
void enable_animation (FPS fps)
 Enable animation with a frames-per-second value.
 
void disable_animation ()
 Turn off animation, no more Timer_events will be sent to this Widget. More...
 
auto is_animated () const -> bool
 Return true if this Widget has animation enabled.
 
auto get_children ()
 Get a range containing Widget& to each child.
 
auto get_children () const
 Get a const range containing Widget& to each child.
 
auto get_descendants () const -> std::vector< Widget * >
 Return container of all descendants of self_.
 
void paint_wallpaper_with_brush (bool paints=true)
 Set if the brush is applied to the wallpaper Glyph.
 
auto paints_wallpaper_with_brush () const -> bool
 If true, the brush will apply to the wallpaper Glyph.
 
auto generate_wallpaper () const -> Glyph
 Return the wallpaper Glyph. More...
 
auto get_child_offset () const -> std::size_t
 Return the index of the first child displayed by this Widget.
 
auto child_count () const -> std::size_t
 Return the number of children held by this Widget.
 
virtual auto enable_event () -> bool
 Handles Enable_event objects.
 
virtual auto disable_event () -> bool
 Handles Disable_event objects.
 
virtual auto child_added_event (Widget &child) -> bool
 Handles Child_added_event objects.
 
virtual auto child_removed_event (Widget &child) -> bool
 Handles Child_removed_event objects.
 
virtual auto child_polished_event (Widget &child) -> bool
 Handles Child_polished_event objects.
 
virtual auto move_event (Point new_position, Point old_position) -> bool
 Handles Move_event objects.
 
virtual auto mouse_release_event (Mouse const &m) -> bool
 Handles Mouse_release_event objects.
 
virtual auto mouse_move_event (Mouse const &m) -> bool
 Handles Mouse_move_event objects.
 
virtual auto key_release_event (Key k) -> bool
 Handles Key_release_event objects. More...
 
virtual auto focus_in_event () -> bool
 Handles Focus_in_event objects.
 
virtual auto focus_out_event () -> bool
 Handles Focus_out_event objects.
 
virtual auto delete_event () -> bool
 Handles Delete_event objects.
 
virtual auto timer_event () -> bool
 Handles Timer_event objects.
 
virtual auto enable_event_filter (Widget &receiver) -> bool
 Handles Enable_event objects filtered from other Widgets.
 
virtual auto disable_event_filter (Widget &receiver) -> bool
 Handles Disable_event objects filtered from other Widgets.
 
virtual auto child_added_event_filter (Widget &receiver, Widget &child) -> bool
 Handles Child_added_event objects filtered from other Widgets.
 
virtual auto child_removed_event_filter (Widget &receiver, Widget &child) -> bool
 Handles Child_removed_event objects filtered from other Widgets.
 
virtual auto child_polished_event_filter (Widget &receiver, Widget &child) -> bool
 Handles Child_polished_event objects filtered from other Widgets.
 
virtual auto move_event_filter (Widget &receiver, Point new_position, Point old_position) -> bool
 Handles Move_event objects filtered from other Widgets.
 
virtual auto resize_event_filter (Widget &receiver, Area new_size, Area old_size) -> bool
 Handles Resize_event objects filtered from other Widgets.
 
virtual auto mouse_press_event_filter (Widget &receiver, Mouse const &m) -> bool
 Handles Mouse_press_event objects filtered from other Widgets.
 
virtual auto mouse_release_event_filter (Widget &receiver, Mouse const &m) -> bool
 Handles Mouse_release_event objects filtered from other Widgets.
 
virtual auto mouse_wheel_event_filter (Widget &receiver, Mouse const &m) -> bool
 Handles Mouse_wheel_event objects filtered from other Widgets.
 
virtual auto mouse_move_event_filter (Widget &receiver, Mouse const &m) -> bool
 Handles Mouse_move_event objects filtered from other Widgets.
 
virtual auto key_press_event_filter (Widget &receiver, Key k) -> bool
 Handles Key_press_event objects filtered from other Widgets.
 
virtual auto key_release_event_filter (Widget &receiver, Key k) -> bool
 Handles Key_release_event objects filtered from other Widgets.
 
virtual auto focus_in_event_filter (Widget &receiver) -> bool
 Handles Focus_in_event objects filtered from other Widgets.
 
virtual auto focus_out_event_filter (Widget &receiver) -> bool
 Handles Focus_out_event objects filtered from other Widgets.
 
virtual auto delete_event_filter (Widget &receiver) -> bool
 Handles Delete_event objects filtered from other Widgets.
 
virtual auto paint_event_filter (Widget &receiver, Painter &p) -> bool
 Handles Paint_event objects filtered from other Widgets.
 
virtual auto timer_event_filter (Widget &receiver) -> bool
 Handles Timer_event objects filtered from other Widgets.
 
void set_top_left (Point p)
 Should only be used by Move_event send() function.
 
void set_area (Area a)
 Should only be used by Resize_event send() function.
 
void set_parent (Widget *parent)
 Should only be used by Layout.
 

Protected Member Functions

auto key_press_event (Key k) -> bool override
 Handles Key_press_event objects.
 
- Protected Member Functions inherited from ox::Textbox
auto key_press_event (Key k) -> bool override
 Either input a Glyph from the Key, or move the cursor on arrow presses.
 
auto mouse_press_event (Mouse const &m) -> bool override
 Move the cursor to the pressed, or nearest cell, that contains a Glyph.
 
auto mouse_wheel_event (Mouse const &m) -> bool override
 Scroll.
 
- Protected Member Functions inherited from ox::detail::Textbox_base
 Textbox_base (Glyph_string text=U"", Align alignment=Align::Left, Wrap wrap=Wrap::Word, Brush insert_brush=Brush{})
 Construct with initial text, enable cursor.
 
 Textbox_base (Parameters p)
 
auto cursor_index () const -> int
 Return the index into contents that the cursor is located at.
 
auto resize_event (Area new_size, Area old_size) -> bool override
 Scroll to make the cursor visible if no longer on screen after resize.
 
- Protected Member Functions inherited from ox::Text_view
auto paint_event (Painter &p) -> bool override
 Paint the portion of contents that is currently visible on screen.
 
auto line_at (int index) const -> int
 Return the line number that contains index.
 
auto top_line () const -> int
 Return the line number that is being displayed at the top of the Widget.
 
auto bottom_line () const -> int
 Return line number that is being displayed at the bottom of the Widget.
 
auto last_line () const -> int
 Return the index into display_state_ of the last line.
 
auto first_index_at (int line) const -> int
 Return the index of the first Glyph at line number line.
 
auto last_index_at (int line) const -> int
 Returns one past the last index of the last Glyph at line number line.
 
auto line_length (int line) const -> int
 Return the number of Glyphs contained at line index line.
 
auto end_index () const -> int
 Return the index of the last Glyph in contents.
 
void update_display (int from_line=0)
 Recalculate the text layout via display_state_. More...
 

Additional Inherited Members

- Public Attributes inherited from ox::detail::Textbox_base
sl::Signal< void(std::size_t n)> cursor_moved_left
 Emitted when the cursor moves left, passes along
positions moved.
 
sl::Signal< void(std::size_t n)> cursor_moved_right
 Emitted when the cursor moves right, passes along
positions moved.
 
sl::Signal< void(std::size_t n)> cursor_moved_up
 Emitted when the cursor moves up, passes along
positions moved.
 
sl::Signal< void(std::size_t n)> cursor_moved_down
 Emitted when the cursor moves down, passes along
positions moved.
 
- Public Attributes inherited from ox::Text_view
Brush insert_brush
 Brush to be applied to all new incoming Glyphs, but not existing Glyphs. More...
 
sl::Signal< void(int n)> scrolled_up
 Emitted when text is scrolled up. Sends number of lines scrolled by.
 
sl::Signal< void(int n)> scrolled_down
 Emitted when text is scrolled down. Sends number of lines scrolled by.
 
sl::Signal< void(int n)> scrolled_to
 Emitted when text is scrolled, sends the top line.
 
sl::Signal< void(Glyph_string const &)> contents_modified
 Emitted when contents are modified. Sends a reference to the contents.
 
sl::Signal< void(int)> line_count_changed
 Emitted when total line count changes.
 
- Public Attributes inherited from ox::Widget
Signal< void()> enabled
 
Signal< void()> disabled
 
Signal< void(Widget &)> child_added
 
Signal< void(Widget &)> child_removed
 
Signal< void(Widget &)> child_polished
 
Signal< void(Point, Point)> moved
 
Signal< void(Area, Area)> resized
 
Signal< void(Mouse const &)> mouse_pressed
 
Signal< void(Mouse const &)> mouse_released
 
Signal< void(Mouse const &)> mouse_wheel_scrolled
 
Signal< void(Mouse const &)> mouse_moved
 
Signal< void(Key)> key_pressed
 
Signal< void(Key)> key_released
 
Signal< void()> focused_in
 
Signal< void()> focused_out
 
Signal< void()> deleted
 
Signal< void(Painter &)> painted
 
Signal< void()> timer
 
Signal< bool(Widget &)> enabled_filter
 
Signal< bool(Widget &)> disabled_filter
 
Signal< bool(Widget &, Widget &)> child_added_filter
 
Signal< bool(Widget &, Widget &)> child_removed_filter
 
Signal< bool(Widget &, Widget &)> child_polished_filter
 
Signal< bool(Widget &, Point, Point)> moved_filter
 
Signal< bool(Widget &, Area, Area)> resized_filter
 
Signal< bool(Widget &, Mouse const &)> mouse_pressed_filter
 
Signal< bool(Widget &, Mouse const &)> mouse_released_filter
 
Signal< bool(Widget &, Mouse const &)> mouse_wheel_scrolled_filter
 
Signal< bool(Widget &, Mouse const &)> mouse_moved_filter
 
Signal< bool(Widget &, Key)> key_pressed_filter
 
Signal< bool(Widget &, Key)> key_released_filter
 
Signal< bool(Widget &)> focused_in_filter
 
Signal< bool(Widget &)> focused_out_filter
 
Signal< bool(Widget &)> deleted_filter
 
Signal< bool(Widget &, Painter &)> painted_filter
 
Signal< bool(Widget &)> timer_filter
 
Focus_policy focus_policy
 Describes how focus is given to this Widget.
 
Cursor cursor
 Provides information on where the cursor is and if it is enabled.
 
Size_policy width_policy
 Describes how the width of this Widget should be modified by a Layout.
 
Size_policy height_policy
 Describes how the height of this Widget should be modified by a Layout.
 
Brush brush
 A Brush that is applied to every Glyph painted by this Widget.
 
sl::Lifetime lifetime
 Slots can track this object's lifetime to disable Slot invocations.
 
- Protected Types inherited from ox::Widget
using Children_t = std::vector< std::unique_ptr< Widget > >
 
- Protected Attributes inherited from ox::Widget
Children_t children_
 
std::size_t child_offset_ = 0
 

Detailed Description

A scrollable list of logged messages.

Received messages are posted at the bottom of the Log.


The documentation for this class was generated from the following files: