Oxygen Engine
Modern C++ 3D Engine using OpenGL
Loading...
Searching...
No Matches
oe::gui::Component Class Referenceabstract
Inheritance diagram for oe::gui::Component:
[legend]
Collaboration diagram for oe::gui::Component:
[legend]

Public Member Functions

 Component (Manager *manager=nullptr)
 
template<typename T >
ComponentaddChild (T *child)
 
template<typename T >
ComponentaddSibling (T *component)
 
template<typename T , typename... Args>
T * createChild (Args &&... args)
 
template<typename T , typename... Args>
T & createSibling (Args &&... args)
 
template<typename T >
T * getParent ()
 
template<typename... Args>
component::RowcreateRow (const float &height, const int &cols=0)
 
ComponentsetFont (const std::string &font_name)
 
ComponentsetManager (Manager *manager)
 
void generateChildren ()
 
virtual void generate ()=0
 

Protected Attributes

gui_id_t _id = 0
 
Manager_manager
 
nk_context * _context
 
nk_font * _font = nullptr
 
Component_parent
 
std::vector< Component * > _children
 

Friends

class Manager
 

Constructor & Destructor Documentation

◆ Component()

oe::gui::Component::Component ( Manager manager = nullptr)

Component constructor

Member Function Documentation

◆ addChild()

template<typename T >
Component * oe::gui::Component::addChild ( T *  child)
inline

Append a child to this component

Returns
this to chain calls

◆ addSibling()

template<typename T >
Component * oe::gui::Component::addSibling ( T *  component)
inline

Append a child to this component

Returns
this to chain calls

◆ createChild()

template<typename T , typename... Args>
T * oe::gui::Component::createChild ( Args &&...  args)
inline

Create a child

Returns
Pointer to the child

◆ createRow()

template<typename... Args>
component::Row * oe::gui::Component::createRow ( const float &  height,
const int &  cols = 0 
)
inline

Create a row

Parameters
heightHeight of the row. If 0, height is computed from children height
colsNumber of columns in the row. If 0 it will be coputed from the children count
Returns
Pointer to the created row

◆ createSibling()

template<typename T , typename... Args>
T & oe::gui::Component::createSibling ( Args &&...  args)
inline

Create a sibling

◆ generate()

virtual void oe::gui::Component::generate ( )
pure virtual

Implemented in oe::gui::component::Custom.

◆ generateChildren()

void oe::gui::Component::generateChildren ( )

Generate UI content in context (no graphic calls performed)

◆ setFont()

Component * oe::gui::Component::setFont ( const std::string &  font_name)

Set component font

Note
The font should be registered in font manager

◆ setManager()

Component * oe::gui::Component::setManager ( Manager manager)

Set component manager

Note
Will propagate it to children

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