View for an area of the user interface. More...
#include <view.h>
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.