View for an area of the user interface. More...
#include <view.h>
Inheritance diagram for clan::View:Public Member Functions | |
| View () | |
| ~View () | |
| void | add_subview (const std::shared_ptr< View > &view) |
| Add a child view. More... | |
| void | animate (float from, float to, const std::function< void(float)> &setter, int duration_ms=400, const std::function< float(float)> &easing=Easing::linear, std::function< void()> animation_end=std::function< void()>()) |
| Continously call an animation function for the specified duration. More... | |
| void | clear_exception_encountered () |
| bool | content_clipped () const |
| Content clipping flag. More... | |
| std::shared_ptr< View > | find_view_at (const Pointf &pos) const |
| Find descendant view at the specified content relative position. More... | |
| FocusPolicy | focus_policy () const |
| Focus policy active for this view. More... | |
| View * | focus_view () const |
| The view receiving keyboard events or nullptr if no view has the focus. More... | |
| Pointf | from_root_pos (const Pointf &pos) |
| Map from root content to local content coordinates. More... | |
| Pointf | from_screen_pos (const Pointf &pos) |
| Map from screen to local content coordinates. More... | |
| const ViewGeometry & | geometry () const |
| Actual view position and size after layout. More... | |
| Canvas | get_canvas () const |
| virtual float | get_first_baseline_offset (Canvas &canvas, float width) |
| Calculates the offset to the first baseline. More... | |
| virtual float | get_last_baseline_offset (Canvas &canvas, float width) |
| Calculates the offset to the last baseline. More... | |
| virtual float | get_preferred_height (Canvas &canvas, float width) |
| Calculates the preferred height of this view. More... | |
| virtual float | get_preferred_width (Canvas &canvas) |
| Calculates the preferred width of this view. More... | |
| bool | has_focus () const |
| Test if this view is receiving keyboard input. More... | |
| bool | hidden () const |
| Test if view is set to hidden. More... | |
| bool | is_static_position_and_visible () const |
| Test if view should participate in static layout calculations (layout_subviews) More... | |
| virtual void | layout_subviews (Canvas &canvas) |
| Sets the view geometry for all subviews of this view. More... | |
| bool | local_root () const |
| Indicates if the view acts as a local root for layout and rendering. More... | |
| bool | needs_layout () const |
| Test if view geometry needs to be recalculated. More... | |
| void | next_focus () |
| Give focus to the next view in the keyboard tab index order. More... | |
| View * | owner_view () const |
| View hierachy owner or nullptr if there is no owner. More... | |
| void | prev_focus () |
| Give focus to the previous view in the keyboard tab index order. More... | |
| void | remove_focus () |
| Remove focus from this view. More... | |
| void | remove_from_super () |
| Remove view from parent. More... | |
| bool | render_exception_encountered () const |
| Test if this view generated an exception during rendering. More... | |
| View * | root_view () |
| const View * | root_view () const |
| Root view in view hierachy. More... | |
| void | set_content_clipped (bool clipped) |
| Specifies if content should be clipped during rendering. More... | |
| void | set_cursor (const CursorDescription &cursor) |
| Set the cursor icon used when cursor is above this view. More... | |
| void | set_cursor (StandardCursor type) |
| void | set_focus () |
| Set this view as the focused view. More... | |
| void | set_focus_policy (FocusPolicy policy) |
| Set if this view automatically can gain focus. More... | |
| void | set_geometry (const ViewGeometry &geometry) |
| void | set_hidden (bool value=true) |
| Hides a view from layout and rendering. More... | |
| void | set_inherit_cursor () |
| Specify that the cursor icon is inherited from the super view. More... | |
| void | set_needs_layout () |
| Forces recalculation of view geometry before next rendering. More... | |
| void | set_needs_render () |
| Signals this view needs to be rendered again. More... | |
| void | set_state (const std::string &name, bool value) |
| Set or clear style state. More... | |
| void | set_state_cascade (const std::string &name, bool value) |
| Sets the state for this view and all siblings recursively, until a manually set state of the same name is found. More... | |
| void | set_tab_index (unsigned int index) |
| Sets the tab index used for keyboard focus changes. More... | |
| void | set_view_transform (const Mat4f &transform) |
| Specifies the view transform to be applied before its contents and children are rendered. More... | |
| Signal< void(ActivationChangeEvent &)> & | sig_activated (bool use_capture=false) |
| Window activated event. More... | |
| Signal< void(CloseEvent &)> & | sig_close (bool use_capture=false) |
| Window close button clicked event. More... | |
| Signal< void(ActivationChangeEvent &)> & | sig_deactivated (bool use_capture=false) |
| Window deactivated event. More... | |
| Signal< void(FocusChangeEvent &)> & | sig_focus_gained (bool use_capture=false) |
| View gained focus event. More... | |
| Signal< void(FocusChangeEvent &)> & | sig_focus_lost (bool use_capture=false) |
| View lost focus event. More... | |
| Signal< void(KeyEvent &)> & | sig_key_press (bool use_capture=false) |
| Key pressed event. More... | |
| Signal< void(KeyEvent &)> & | sig_key_release (bool use_capture=false) |
| Key released event. More... | |
| Signal< void(PointerEvent &)> & | sig_pointer_double_click (bool use_capture=false) |
| Pointer button double clicked event. More... | |
| Signal< void(PointerEvent &)> & | sig_pointer_enter (bool use_capture=false) |
| Pointer entering view geometry event. More... | |
| Signal< void(PointerEvent &)> & | sig_pointer_leave (bool use_capture=false) |
| Pointer leaving view geometry event. More... | |
| Signal< void(PointerEvent &)> & | sig_pointer_move (bool use_capture=false) |
| Pointer moved above view event. More... | |
| Signal< void(PointerEvent &)> & | sig_pointer_press (bool use_capture=false) |
| Pointer button pressed event. More... | |
| Signal< void(PointerEvent &)> & | sig_pointer_proximity_change (bool use_capture=false) |
| Pointer proximity change event. More... | |
| Signal< void(PointerEvent &)> & | sig_pointer_release (bool use_capture=false) |
| Pointer button released event. More... | |
| Signal< void(ResizeEvent &)> & | sig_resize (bool use_capture=false) |
| Window resize event. More... | |
| bool | state (const std::string &name) const |
| Test if a style state is currently set. More... | |
| void | stop_animations () |
| Stop all activate animation functions. More... | |
| const std::shared_ptr< Style > & | style (const std::string &state=std::string()) const |
| Style properties for the specified state. More... | |
| const StyleCascade & | style_cascade () const |
| Style cascade currently active for this view. More... | |
| const std::vector< std::shared_ptr< View > > & | subviews () const |
| List of all immediate child views. More... | |
| View * | superview () const |
| Parent view node or nullptr if the view is the current root node. More... | |
| unsigned int | tab_index () const |
| Tab index for keyboard focus changes. More... | |
| Pointf | to_root_pos (const Pointf &pos) |
| Map from local content to root content coordinates. More... | |
| Pointf | to_screen_pos (const Pointf &pos) |
| Map from local content to screen coordinates. More... | |
| void | update_cursor (DisplayWindow &window) |
| Update window cursor to the cursor used by this view. More... | |
| const Mat4f & | view_transform () const |
| Current view transform. More... | |
Static Public Member Functions | |
| static void | dispatch_event (View *target, EventUI *e, bool no_propagation=false) |
| Dispatch event to signals listening for events. More... | |
Public Attributes | |
| SlotContainer | slots |
| Slot container helping with automatic disconnection of connected slots when the view is destroyed. More... | |
Protected Member Functions | |
| virtual void | render_content (Canvas &canvas) |
| Renders the content of a view. More... | |
| virtual void | subview_added (const std::shared_ptr< View > &view) |
| Child view was added to this view. More... | |
| virtual void | subview_removed (const std::shared_ptr< View > &view) |
| Child view was removed from this view. More... | |
Friends | |
| class | RootView |
| class | ViewImpl |
View for an area of the user interface.
| clan::View::View | ( | ) |
| clan::View::~View | ( | ) |
| void clan::View::add_subview | ( | const std::shared_ptr< View > & | view | ) |
Add a child view.
| void clan::View::animate | ( | float | from, |
| float | to, | ||
| const std::function< void(float)> & | setter, | ||
| int | duration_ms = 400, |
||
| const std::function< float(float)> & | easing = Easing::linear, |
||
| std::function< void()> | animation_end = std::function< void()>() |
||
| ) |
Continously call an animation function for the specified duration.
| void clan::View::clear_exception_encountered | ( | ) |
Clears exception encountered flag
If a view generates an exception during rendering the view's render_content function will not be called again until this function is called.
| bool clan::View::content_clipped | ( | ) | const |
Content clipping flag.
|
static |
Dispatch event to signals listening for events.
Find descendant view at the specified content relative position.
| FocusPolicy clan::View::focus_policy | ( | ) | const |
Focus policy active for this view.
| View* clan::View::focus_view | ( | ) | const |
The view receiving keyboard events or nullptr if no view has the focus.
Referenced by has_focus().
Map from root content to local content coordinates.
Map from screen to local content coordinates.
| const ViewGeometry& clan::View::geometry | ( | ) | const |
Actual view position and size after layout.
| Canvas clan::View::get_canvas | ( | ) | const |
Gets the current canvas used to render this view
This function may return a null canvas if the view does not have a canvas attached to it yet.
|
virtual |
Calculates the offset to the first baseline.
Reimplemented in clan::TextFieldView, clan::LabelView, clan::ImageView, clan::ScrollView, and clan::SpanLayoutView.
|
virtual |
Calculates the offset to the last baseline.
Reimplemented in clan::TextFieldView, clan::LabelView, clan::ImageView, clan::ScrollView, and clan::SpanLayoutView.
|
virtual |
Calculates the preferred height of this view.
Reimplemented in clan::TextFieldView, clan::LabelView, clan::ImageView, clan::ScrollView, and clan::SpanLayoutView.
|
virtual |
Calculates the preferred width of this view.
Reimplemented in clan::TextFieldView, clan::LabelView, clan::ImageView, clan::ScrollView, and clan::SpanLayoutView.
|
inline |
Test if this view is receiving keyboard input.
References focus_view().
| bool clan::View::hidden | ( | ) | const |
Test if view is set to hidden.
| bool clan::View::is_static_position_and_visible | ( | ) | const |
Test if view should participate in static layout calculations (layout_subviews)
|
virtual |
Sets the view geometry for all subviews of this view.
Reimplemented in clan::LabelView, clan::ScrollBarView, clan::SliderView, clan::ScrollView, and clan::SpanLayoutView.
| bool clan::View::local_root | ( | ) | const |
Indicates if the view acts as a local root for layout and rendering.
| bool clan::View::needs_layout | ( | ) | const |
Test if view geometry needs to be recalculated.
| void clan::View::next_focus | ( | ) |
Give focus to the next view in the keyboard tab index order.
| void clan::View::prev_focus | ( | ) |
Give focus to the previous view in the keyboard tab index order.
| void clan::View::remove_focus | ( | ) |
Remove focus from this view.
| void clan::View::remove_from_super | ( | ) |
Remove view from parent.
|
inlineprotectedvirtual |
Renders the content of a view.
Reimplemented in clan::TextFieldView, clan::LabelView, clan::ImageView, and clan::SpanLayoutView.
| bool clan::View::render_exception_encountered | ( | ) | const |
Test if this view generated an exception during rendering.
| View* clan::View::root_view | ( | ) |
| const View* clan::View::root_view | ( | ) | const |
Root view in view hierachy.
| void clan::View::set_content_clipped | ( | bool | clipped | ) |
Specifies if content should be clipped during rendering.
| void clan::View::set_cursor | ( | const CursorDescription & | cursor | ) |
Set the cursor icon used when cursor is above this view.
| void clan::View::set_cursor | ( | StandardCursor | type | ) |
| void clan::View::set_focus | ( | ) |
Set this view as the focused view.
| void clan::View::set_focus_policy | ( | FocusPolicy | policy | ) |
Set if this view automatically can gain focus.
| void clan::View::set_geometry | ( | const ViewGeometry & | geometry | ) |
Sets the view position and size
This function should only be called by layout_subviews.
| void clan::View::set_hidden | ( | bool | value = true | ) |
Hides a view from layout and rendering.
| void clan::View::set_inherit_cursor | ( | ) |
Specify that the cursor icon is inherited from the super view.
| void clan::View::set_needs_layout | ( | ) |
Forces recalculation of view geometry before next rendering.
| void clan::View::set_needs_render | ( | ) |
Signals this view needs to be rendered again.
| void clan::View::set_state | ( | const std::string & | name, |
| bool | value | ||
| ) |
Set or clear style state.
| void clan::View::set_state_cascade | ( | const std::string & | name, |
| bool | value | ||
| ) |
Sets the state for this view and all siblings recursively, until a manually set state of the same name is found.
| void clan::View::set_tab_index | ( | unsigned int | index | ) |
Sets the tab index used for keyboard focus changes.
| void clan::View::set_view_transform | ( | const Mat4f & | transform | ) |
Specifies the view transform to be applied before its contents and children are rendered.
| Signal<void(ActivationChangeEvent &)>& clan::View::sig_activated | ( | bool | use_capture = false | ) |
Window activated event.
| Signal<void(CloseEvent &)>& clan::View::sig_close | ( | bool | use_capture = false | ) |
Window close button clicked event.
| Signal<void(ActivationChangeEvent &)>& clan::View::sig_deactivated | ( | bool | use_capture = false | ) |
Window deactivated event.
| Signal<void(FocusChangeEvent &)>& clan::View::sig_focus_gained | ( | bool | use_capture = false | ) |
View gained focus event.
| Signal<void(FocusChangeEvent &)>& clan::View::sig_focus_lost | ( | bool | use_capture = false | ) |
View lost focus event.
Key released event.
| Signal<void(PointerEvent &)>& clan::View::sig_pointer_double_click | ( | bool | use_capture = false | ) |
Pointer button double clicked event.
| Signal<void(PointerEvent &)>& clan::View::sig_pointer_enter | ( | bool | use_capture = false | ) |
Pointer entering view geometry event.
| Signal<void(PointerEvent &)>& clan::View::sig_pointer_leave | ( | bool | use_capture = false | ) |
Pointer leaving view geometry event.
| Signal<void(PointerEvent &)>& clan::View::sig_pointer_move | ( | bool | use_capture = false | ) |
Pointer moved above view event.
| Signal<void(PointerEvent &)>& clan::View::sig_pointer_press | ( | bool | use_capture = false | ) |
Pointer button pressed event.
| Signal<void(PointerEvent &)>& clan::View::sig_pointer_proximity_change | ( | bool | use_capture = false | ) |
Pointer proximity change event.
| Signal<void(PointerEvent &)>& clan::View::sig_pointer_release | ( | bool | use_capture = false | ) |
Pointer button released event.
| Signal<void(ResizeEvent &)>& clan::View::sig_resize | ( | bool | use_capture = false | ) |
Window resize event.
| bool clan::View::state | ( | const std::string & | name | ) | const |
Test if a style state is currently set.
| void clan::View::stop_animations | ( | ) |
Stop all activate animation functions.
| const std::shared_ptr<Style>& clan::View::style | ( | const std::string & | state = std::string() | ) | const |
Style properties for the specified state.
| const StyleCascade& clan::View::style_cascade | ( | ) | const |
Style cascade currently active for this view.
|
inlineprotectedvirtual |
Child view was added to this view.
Reimplemented in clan::SpanLayoutView.
|
inlineprotectedvirtual |
Child view was removed from this view.
Reimplemented in clan::SpanLayoutView.
| const std::vector<std::shared_ptr<View> >& clan::View::subviews | ( | ) | const |
List of all immediate child views.
| View* clan::View::superview | ( | ) | const |
Parent view node or nullptr if the view is the current root node.
| unsigned int clan::View::tab_index | ( | ) | const |
Tab index for keyboard focus changes.
Map from local content to root content coordinates.
Map from local content to screen coordinates.
| void clan::View::update_cursor | ( | DisplayWindow & | window | ) |
Update window cursor to the cursor used by this view.
| const Mat4f& clan::View::view_transform | ( | ) | const |
Current view transform.
|
friend |
|
friend |
| SlotContainer clan::View::slots |
Slot container helping with automatic disconnection of connected slots when the view is destroyed.