Base class for managing a tree of views. More...
#include <view_tree.h>
Public Member Functions | |
ViewTree () | |
virtual | ~ViewTree () |
std::shared_ptr< View > | add_child () |
void | add_child (const std::shared_ptr< View > &view) |
Add a child view. | |
template<typename T , typename... Types> | |
std::shared_ptr< T > | add_child (Types &&... args) |
virtual Canvas | canvas () const =0 |
Gets the current canvas used to render. | |
virtual DisplayWindow | display_window ()=0 |
View * | focus_view () const |
The view receiving keyboard events or nullptr if no view has the focus. | |
const std::shared_ptr< View > & | root_view () const |
Retrieves the root of the view tree. | |
void | set_root_view (std::shared_ptr< View > root_view) |
Sets a new root view controller for the view tree. | |
Protected Member Functions | |
virtual Pointf | client_to_screen_pos (const Pointf &pos)=0 |
Map from client to screen coordinates. | |
void | dispatch_activation_change (ActivationChangeType type) |
Dispatch activation change event to all views. | |
void | render (Canvas &canvas, const Rectf &margin_box) |
Renders view into the specified canvas. | |
virtual Pointf | screen_to_client_pos (const Pointf &pos)=0 |
Map from screen to client coordinates. | |
void | set_focus_view (View *view) |
Set or clears the focus. | |
virtual void | set_needs_render ()=0 |
Signals that the root view needs to be rendered again. | |
Friends | |
class | PositionedLayout |
class | View |
class | ViewController |
class | ViewImpl |
Base class for managing a tree of views.
clan::ViewTree::ViewTree | ( | ) |
|
virtual |
|
inline |
Referenced by add_child().
|
inline |
Add a child view.
References root_view().
|
inline |
References add_child().
|
pure virtual |
Gets the current canvas used to render.
Implemented in clan::TextureWindow, and clan::TopLevelWindow.
Map from client to screen coordinates.
Implemented in clan::TextureWindow, and clan::TopLevelWindow.
|
protected |
Dispatch activation change event to all views.
|
pure virtual |
Gets the display window used
This may return a null DisplayWindow
Implemented in clan::TextureWindow, and clan::TopLevelWindow.
View * clan::ViewTree::focus_view | ( | ) | const |
The view receiving keyboard events or nullptr if no view has the focus.
Renders view into the specified canvas.
const std::shared_ptr< View > & clan::ViewTree::root_view | ( | ) | const |
Retrieves the root of the view tree.
Referenced by add_child().
Map from screen to client coordinates.
Implemented in clan::TextureWindow, and clan::TopLevelWindow.
|
protected |
Set or clears the focus.
|
protectedpure virtual |
Signals that the root view needs to be rendered again.
Implemented in clan::TextureWindow, and clan::TopLevelWindow.
void clan::ViewTree::set_root_view | ( | std::shared_ptr< View > | root_view | ) |
Sets a new root view controller for the view tree.
|
friend |
|
friend |
|
friend |
|
friend |