|
| | scroll_widget (gui_window &window, widget *parent, std::weak_ptr< delegate_type > delegate={}) noexcept |
| | Constructs an empty scroll widget.
|
| |
| template<typename Widget , typename... Args> |
| Widget & | make_widget (Args &&...args) noexcept |
| | Add a content widget directly to this scroll widget.
|
| |
| | widget (gui_window &window, widget *parent) noexcept |
| |
|
| widget (const widget &)=delete |
| |
|
widget & | operator= (const widget &)=delete |
| |
|
| widget (widget &&)=delete |
| |
|
widget & | operator= (widget &&)=delete |
| |
| extent2 | minimum_size () const noexcept |
| | Minimum size.
|
| |
| extent2 | preferred_size () const noexcept |
| | Preferred size.
|
| |
| extent2 | maximum_size () const noexcept |
| | Maximum size.
|
| |
| void | set_layout_parameters (geo::transformer auto const &local_to_parent, extent2 size, aarectangle const &clipping_rectangle) noexcept |
| | Set the location and size of the widget inside the window.
|
| |
|
void | set_layout_parameters_from_parent (aarectangle child_rectangle, aarectangle parent_clipping_rectangle, float draw_layer_delta) noexcept |
| |
|
void | set_layout_parameters_from_parent (aarectangle child_rectangle) noexcept |
| |
|
matrix3 | parent_to_local () const noexcept |
| |
|
matrix3 | local_to_parent () const noexcept |
| |
|
matrix3 | window_to_local () const noexcept |
| |
|
matrix3 | local_to_window () const noexcept |
| |
|
extent2 | size () const noexcept |
| |
|
float | width () const noexcept |
| |
|
float | height () const noexcept |
| |
| aarectangle | rectangle () const noexcept |
| | Get the rectangle in local coordinates.
|
| |
| virtual float | base_line () const noexcept |
| | Return the base-line where the text should be located.
|
| |
|
aarectangle | clipping_rectangle () const noexcept |
| |
| virtual bool | accepts_keyboard_focus (keyboard_focus_group group) const noexcept |
| | Check if the widget will accept keyboard focus.
|
| |
|
virtual color | background_color () const noexcept |
| |
|
virtual color | foreground_color () const noexcept |
| |
|
virtual color | focus_color () const noexcept |
| |
|
virtual color | accent_color () const noexcept |
| |
|
virtual color | label_color () const noexcept |
| |
| virtual void | draw (draw_context context, hires_utc_clock::time_point display_time_point) noexcept |
| | Draw the widget.
|
| |
|
virtual void | request_redraw () const noexcept |
| |
| virtual bool | handle_event (command command) noexcept |
| | Handle command.
|
| |
|
virtual bool | handle_event (std::vector< command > const &commands) noexcept |
| |
| virtual bool | handle_command_recursive (command command, std::vector< widget const * > const &reject_list) noexcept |
| | Handle command recursive.
|
| |
| virtual bool | handle_event (keyboard_event const &event) noexcept |
| | Handle keyboard event.
|
| |
| virtual widget const * | find_next_widget (widget const *current_keyboard_widget, keyboard_focus_group group, keyboard_focus_direction direction) const noexcept |
| | Find the next widget that handles keyboard focus.
|
| |
|
widget const * | find_first_widget (keyboard_focus_group group) const noexcept |
| |
|
widget const * | find_last_widget (keyboard_focus_group group) const noexcept |
| |
| bool | is_first (keyboard_focus_group group) const noexcept |
| | Is this widget the first widget in the parent container.
|
| |
| bool | is_last (keyboard_focus_group group) const noexcept |
| | Is this widget the last widget in the parent container.
|
| |
| std::vector< widget const * > | parent_chain () const noexcept |
| | Get a list of parents of a given widget.
|
| |
| void | clear () noexcept |
| | Remove and deallocate all child widgets.
|
| |
| widget & | add_widget (std::unique_ptr< widget > widget) noexcept |
| | Add a widget directly to this widget.
|
| |
template<axis Axis = axis::both, bool ControlsWindow = false>
class tt::scroll_widget< Axis, ControlsWindow >
The scroll widget allows a content widget to be shown in less space than is required.
The user can then show the part of the content widget by using the scroll-bar widgets which are provided by the scroll widget.
The size of the scroll widget is based on the widget::minimum_size(), widget::preferred_size() and widget::maximum_size() of the content widget together with the space needed for the scrollbars.
In the directions that are allowed for scrolling the minimum size of the scroll widget is adjusted to be much smaller, up to the smallest size of the scroll-bar widget in that direction.
Scroll-bars are automatically added when the actual size of the scroll widget is smaller than the content, this will happen even if the template parameters given did not allow scrolling in that direction. This is useful behavior when the scroll widget is part of an overlay widget which was unable to size to the minimum size requested.
- Template Parameters
-
| Axis | the axis that the content may be scrolled. Allowed values are axis::horizontal, axis::vertical or axis::both. |
| ControlsWindow | If set to true, when the content changes size the window gets a signal to resize to its preferred size. |