Public Member Functions | Static Public Member Functions | Public Attributes | Protected Member Functions | Friends | List of all members
clan::View Class Reference

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...
const View * | root_view () const
| Root view in view hierachy. More...
View * | root_view ()
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

## Detailed Description

View for an area of the user interface.

## Constructor & Destructor Documentation

clan::View::View | ( |  | ) |

clan::View::~View | ( |  | ) |

## Member Function Documentation

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 void clan::View::dispatch_event | ( | View * | target,
|  | EventUI * | e,
|  | bool | no_propagation = `false`
| ) |  |
| static

Dispatch event to signals listening for events.

std::shared_ptr<View> clan::View::find_view_at | ( | const Pointf & | pos | ) | const

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().

Pointf clan::View::from_root_pos | ( | const Pointf & | pos | ) |

Map from root content to local content coordinates.

Pointf clan::View::from_screen_pos | ( | const Pointf & | pos | ) |

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 float clan::View::get_first_baseline_offset | ( | Canvas & | canvas,
|  | float | width
| ) |  |
| virtual

Calculates the offset to the first baseline.

Reimplemented in clan::TextFieldView, clan::LabelView, clan::ImageView, clan::ScrollView, and clan::SpanLayoutView.

virtual float clan::View::get_last_baseline_offset | ( | Canvas & | canvas,
|  | float | width
| ) |  |
| virtual

Calculates the offset to the last baseline.

Reimplemented in clan::TextFieldView, clan::LabelView, clan::ImageView, clan::ScrollView, and clan::SpanLayoutView.

virtual float clan::View::get_preferred_height | ( | Canvas & | canvas,
|  | float | width
| ) |  |
| virtual

Calculates the preferred height of this view.

Reimplemented in clan::TextFieldView, clan::LabelView, clan::ImageView, clan::ScrollView, and clan::SpanLayoutView.

virtual float clan::View::get_preferred_width | ( | Canvas & | canvas | ) |
| virtual

Calculates the preferred width of this view.

Reimplemented in clan::TextFieldView, clan::LabelView, clan::ImageView, clan::ScrollView, and clan::SpanLayoutView.

bool clan::View::has_focus | ( |  | ) | const
| 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 void clan::View::layout_subviews | ( | Canvas & | canvas | ) |
| 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.

View* clan::View::owner_view | ( |  | ) | const

View hierachy owner or nullptr if there is no owner.

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.

virtual void clan::View::render_content | ( | Canvas & | canvas | ) |
| inline protected virtual

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.

const View* clan::View::root_view | ( |  | ) | const

Root view in view hierachy.

View* clan::View::root_view | ( |  | ) |

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.

Signal<void(KeyEvent &)>& clan::View::sig_key_press | ( | bool | use_capture = `false` | ) |

Key pressed event.

Signal<void(KeyEvent &)>& clan::View::sig_key_release | ( | bool | use_capture = `false` | ) |

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.

virtual void clan::View::subview_added | ( | const std::shared_ptr< View > & | view | ) |
| inline protected virtual

Child view was added to this view.

Reimplemented in clan::SpanLayoutView.

virtual void clan::View::subview_removed | ( | const std::shared_ptr< View > & | view | ) |
| inline protected virtual

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.

Pointf clan::View::to_root_pos | ( | const Pointf & | pos | ) |

Map from local content to root content coordinates.

Pointf clan::View::to_screen_pos | ( | const Pointf & | pos | ) |

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.

## Friends And Related Function Documentation

friend class RootView
| friend

friend class ViewImpl
| friend

## Member Data Documentation

SlotContainer clan::View::slots

Slot container helping with automatic disconnection of connected slots when the view is destroyed.

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

- view.h