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

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: