View for an area of the user interface. More...

#include <view.h>

+ Inheritance diagram for clan::View:

Public Member Functions

 View ()
 
virtual ~View ()
 
const std::vector
< std::shared_ptr< ViewAction > > & 
actions () const
 List of all action recognizers. More...
 
void add_action (const std::shared_ptr< ViewAction > &action)
 Add an action recognizer. More...
 
template<typename T , typename... Types>
std::shared_ptr< T > add_action (Types &&...args)
 
void add_child (const std::shared_ptr< View > &view)
 Add a child view. More...
 
template<typename T , typename... Types>
std::shared_ptr< T > add_child (Types &&...args)
 
std::shared_ptr< Viewadd_child ()
 
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...
 
Canvas canvas () const
 
const std::vector
< std::shared_ptr< View > > & 
children () const
 List of all immediate child views. More...
 
void clear_exception_encountered ()
 
bool content_clipped () const
 Content clipping flag. More...
 
void draw_without_layout ()
 Render view and its children directly, without re-layout. More...
 
std::shared_ptr< Viewfind_view_at (const Pointf &pos) const
 Find descendant view at the specified content relative position. More...
 
float first_baseline_offset (Canvas &canvas, float width)
 Calculates the offset to the first baseline. More...
 
FocusPolicy focus_policy () const
 Focus policy active for this view. More...
 
Viewfocus_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 ViewGeometrygeometry () const
 Actual view position and size after layout. 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_children) More...
 
float last_baseline_offset (Canvas &canvas, float width)
 Calculates the offset to the last baseline. More...
 
virtual void layout_children (Canvas &canvas)
 Sets the view geometry for all children of this view. 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...
 
Viewparent () const
 Parent view node or nullptr if the view is the current root node. More...
 
float preferred_height (Canvas &canvas, float width)
 Calculates the preferred height of this view. More...
 
float preferred_width (Canvas &canvas)
 Calculates the preferred width of this view. 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_parent ()
 Remove view from parent. More...
 
bool render_exception_encountered () const
 Test if this view generated an exception during rendering. 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 parent 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 children 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 StyleCascadestyle_cascade () const
 Style cascade currently active for this view. More...
 
unsigned int tab_index () const
 Tab index for keyboard focus changes. More...
 
Pointf to_root_pos (const Pointf &pos, bool relative_to_margin=false)
 Map from local content to root content or margin (plus content, padding, border and margin) 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 Mat4fview_transform () const
 Current view transform. More...
 
const ViewTreeview_tree () const
 Tree in view hierachy. More...
 
ViewTreeview_tree ()
 

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 float calculate_first_baseline_offset (Canvas &canvas, float width)
 Calculates the offset to the first baseline. More...
 
virtual float calculate_last_baseline_offset (Canvas &canvas, float width)
 Calculates the offset to the last baseline. More...
 
virtual float calculate_preferred_height (Canvas &canvas, float width)
 Calculates the preferred height of this view. More...
 
virtual float calculate_preferred_width (Canvas &canvas)
 Calculates the preferred width of this view. More...
 
virtual void child_added (const std::shared_ptr< View > &view)
 Child view was added to this view. More...
 
virtual void child_removed (const std::shared_ptr< View > &view)
 Child view was removed from this view. More...
 
virtual void render_background (Canvas &canvas)
 Renders the background of a view. More...
 
virtual void render_border (Canvas &canvas)
 Renders the border of a view. More...
 
virtual void render_content (Canvas &canvas)
 Renders the content of a view. More...
 

Friends

class ViewAction
 
class ViewImpl
 
class ViewTree
 

Detailed Description

View for an area of the user interface.

Constructor & Destructor Documentation

clan::View::View ( )
virtual clan::View::~View ( )
virtual

Member Function Documentation

const std::vector<std::shared_ptr<ViewAction> >& clan::View::actions ( ) const

List of all action recognizers.

void clan::View::add_action ( const std::shared_ptr< ViewAction > &  action)

Add an action recognizer.

Referenced by add_action().

template<typename T , typename... Types>
std::shared_ptr<T> clan::View::add_action ( Types &&...  args)
inline

References add_action().

void clan::View::add_child ( const std::shared_ptr< View > &  view)

Add a child view.

template<typename T , typename... Types>
std::shared_ptr<T> clan::View::add_child ( Types &&...  args)
inline

References add_child().

std::shared_ptr<View> clan::View::add_child ( )
inline

Referenced by add_child().

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.

virtual float clan::View::calculate_first_baseline_offset ( Canvas canvas,
float  width 
)
protectedvirtual

Calculates the offset to the first baseline.

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

virtual float clan::View::calculate_last_baseline_offset ( Canvas canvas,
float  width 
)
protectedvirtual

Calculates the offset to the last baseline.

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

virtual float clan::View::calculate_preferred_height ( Canvas canvas,
float  width 
)
protectedvirtual

Calculates the preferred height of this view.

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

virtual float clan::View::calculate_preferred_width ( Canvas canvas)
protectedvirtual

Calculates the preferred width of this view.

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

Canvas clan::View::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 void clan::View::child_added ( const std::shared_ptr< View > &  view)
inlineprotectedvirtual

Child view was added to this view.

Reimplemented in clan::SpanLayoutView.

virtual void clan::View::child_removed ( const std::shared_ptr< View > &  view)
inlineprotectedvirtual

Child view was removed from this view.

Reimplemented in clan::SpanLayoutView.

const std::vector<std::shared_ptr<View> >& clan::View::children ( ) const

List of all immediate child views.

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.

void clan::View::draw_without_layout ( )

Render view and its children directly, without re-layout.

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

Find descendant view at the specified content relative position.

float clan::View::first_baseline_offset ( Canvas canvas,
float  width 
)

Calculates the offset to the first baseline.

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.

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_children)

float clan::View::last_baseline_offset ( Canvas canvas,
float  width 
)

Calculates the offset to the last baseline.

virtual void clan::View::layout_children ( Canvas canvas)
virtual

Sets the view geometry for all children of this view.

Reimplemented in clan::LabelView, clan::ScrollBarView, clan::SliderView, clan::ScrollView, clan::ListBoxView, and clan::SpanLayoutView.

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::parent ( ) const

Parent view node or nullptr if the view is the current root node.

float clan::View::preferred_height ( Canvas canvas,
float  width 
)

Calculates the preferred height of this view.

float clan::View::preferred_width ( Canvas canvas)

Calculates the preferred width of this view.

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

Remove view from parent.

virtual void clan::View::render_background ( Canvas canvas)
protectedvirtual

Renders the background of a view.

Reimplemented in clan::CheckBoxView.

virtual void clan::View::render_border ( Canvas canvas)
protectedvirtual

Renders the border of a view.

virtual void clan::View::render_content ( Canvas canvas)
inlineprotectedvirtual

Renders the content of a view.

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

bool clan::View::render_exception_encountered ( ) const

Test if this view generated an exception during rendering.

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_children.

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 parent 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 children 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.

Referenced by clan::ColumnView::ColumnView(), clan::RowView::RowView(), and clan::SpacerView::SpacerView().

const StyleCascade& clan::View::style_cascade ( ) const

Style cascade currently active for this view.

unsigned int clan::View::tab_index ( ) const

Tab index for keyboard focus changes.

Pointf clan::View::to_root_pos ( const Pointf pos,
bool  relative_to_margin = false 
)

Map from local content to root content or margin (plus content, padding, border and margin) 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.

const ViewTree* clan::View::view_tree ( ) const

Tree in view hierachy.

ViewTree* clan::View::view_tree ( )

Friends And Related Function Documentation

friend class ViewAction
friend
friend class ViewImpl
friend
friend class ViewTree
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: