Container that adds margins around child, allowing wide variety of positioning options inside parent. More...
#include <Border.hpp>
Public Member Functions | |
Border (Instance *) | |
void | status (iv::TableDebugView *view) |
Border * | enabled (bool val) |
Border * | borderLeft (std::optional< float >) |
Border * | borderRight (std::optional< float >) |
Border * | borderTop (std::optional< float >) |
Border * | borderBottom (std::optional< float >) |
Border * | borderFront (std::optional< float >) |
Border * | borderBack (std::optional< float >) |
Border * | leftTop (std::optional< float > left, std::optional< float > top) |
Border * | leftBottom (std::optional< float > left, std::optional< float > bottom) |
Border * | rightTop (std::optional< float > right, std::optional< float > top) |
Border * | rightBottom (std::optional< float > right, std::optional< float > bottom) |
Border * | leftRight (std::optional< float > left, std::optional< float > right) |
Border * | topBottom (std::optional< float > top, std::optional< float > bottom) |
Border * | frontBack (std::optional< float > front, std::optional< float > back) |
Instance * | instance () const |
Public Member Functions inherited from iv::OneChildElem< SlotChild > | |
OneChildElem (Instance *inst) | |
~OneChildElem () | |
T * | createChild (CArgs const &... cargs) |
T * | createChild_Instance (char const *name, CArgs const &... cargs) |
void | setChild (SlotChild *) |
void | removeChild () |
Public Member Functions inherited from iv::Elem | |
Elem (Instance *inst) | |
~Elem () | |
void | status (iv::TableDebugView *view) |
Instance * | instance () const |
void | elem_setParent (Elem *) |
Elem * | elem_getParent () |
virtual Camera * | elem_getRoot () |
void | first_pass (ElementRenderer *) |
void | second_pass (ElementRenderer *) |
unsigned | first_pass_frame_id () |
unsigned | second_pass_frame_id () |
Elem * | enabled (bool val) |
void | quiet (bool) |
bool | quiet () const |
float3 | FromLocalSpaceToScreenSpace (float3 local_space) |
float3 | FromScreenSpaceToLocalSpace (float3 screen_space) |
float2 | FromScreenPlaneToLocalPlane (float2 screen_space) |
void | Add_InputNode (InputNode *node) |
void | Remove_InputNode (InputNode *node) |
Public Member Functions inherited from iv::InputNode | |
InputNode (Instance *inst) | |
~InputNode () | |
Instance * | instance () const |
void | status (iv::TableDebugView *view) |
void | inputEnabled (bool) |
bool | inputEnabled () |
void | quiet (bool) |
bool | quiet () const |
void | input_deactivate () |
void | input_treeRefresh () |
void | input_setParent (InputNode *) |
InputNode * | input_getParent () |
virtual InputRoot * | input_getRoot () |
bool | input_trigger_visit (InputRoot *root, Input::DeviceKey key) |
bool | input_visit (InputRoot *root, Input::DeviceKey key, bool &press, bool &real, bool &offspace) |
Public Member Functions inherited from iv::SlotChild | |
SlotChild (Elem *elem) | |
Instance * | instance () const |
void | status (iv::TableDebugView *view) |
virtual bool | picking_test (int2 input_pos) override |
virtual bool | picking_test_pixel_perfect (float2 local_pos) |
Public Member Functions inherited from iv::Pickable | |
Pickable (Elem *elem) | |
Elem * | elem () |
const Elem * | elem () const |
Public Attributes | |
ClientMarker | cm |
DirtyAttr< std::optional< float > > | attr_borderLeft |
DirtyAttr< std::optional< float > > | attr_borderRight |
DirtyAttr< std::optional< float > > | attr_borderTop |
DirtyAttr< std::optional< float > > | attr_borderBottom |
DirtyAttr< std::optional< float > > | attr_borderFront |
DirtyAttr< std::optional< float > > | attr_borderBack |
Public Attributes inherited from iv::OneChildElem< SlotChild > | |
ClientMarker | cm |
Public Attributes inherited from iv::Elem | |
ClientMarker | cm |
DirtyAttr< bool > | attr_enabled |
DirtyAttr< float4x4 > | modelTransform |
DirtyAttr< ShaderScissor > | scissor |
Public Attributes inherited from iv::InputNode | |
ClientMarker | cm |
Public Attributes inherited from iv::SlotChild | |
ClientMarker | cm |
DirtyAttr< float3 > | expectedSize |
DirtyAttr< float3 > | preferredSize |
DirtyAttr< float3 > | size |
Public Attributes inherited from iv::Pickable | |
ClientMarker | cm |
Protected Member Functions | |
virtual void | first_pass_impl (ElementRenderer *) override |
virtual void | second_pass_impl (ElementRenderer *) override |
Protected Member Functions inherited from iv::OneChildElem< SlotChild > | |
virtual void | elem_eachChild (std::function< void(Elem *) > const &) override |
virtual void | elem_childDisconnect (Elem *) override |
virtual void | input_eachChild (std::function< void(InputNode *) > const &f) override |
virtual void | input_childDisconnect (InputNode *child) override |
Protected Member Functions inherited from iv::InputNode | |
virtual bool | input_trigger_process (InputRoot *root, Input::DeviceKey key) |
virtual void | input_process (InputRoot *root, Input::DeviceKey key, bool &press, bool &real, bool &offspace) |
Additional Inherited Members | |
Protected Attributes inherited from iv::OneChildElem< SlotChild > | |
DirtyAttr< SlotChild * > | child |
Detailed Description
Container that adds margins around child, allowing wide variety of positioning options inside parent.
When some borders values are left unset, then the border stretches automatically to allow child to have its preferred size along that axis.
Typical use cases:
- Transparent borders around child - All borders along useful axes are set to 0 or higher value. Child is stretched or shrinked to fill the remaining space inside.
- Align and offset child - Leave at least one border unset (std::nullopt) around each useful axis. Child will get its preferred size (if there is enough space) and child will be position with given offset along sides that have border set to a valid value. If neither border along one axis is set, then the child will be centered along that axis.
Definition at line 20 of file Border.hpp.
Constructor & Destructor Documentation
◆ Border()
iv::Border::Border | ( | Instance * | inst | ) |
Definition at line 8 of file Border.cpp.
Member Function Documentation
◆ status()
void iv::Border::status | ( | iv::TableDebugView * | view | ) |
Definition at line 23 of file Border.cpp.
◆ enabled()
Border * iv::Border::enabled | ( | bool | val | ) |
Definition at line 230 of file Border.cpp.
◆ borderLeft()
Border * iv::Border::borderLeft | ( | std::optional< float > | val | ) |
Definition at line 236 of file Border.cpp.
◆ borderRight()
Border * iv::Border::borderRight | ( | std::optional< float > | val | ) |
Definition at line 242 of file Border.cpp.
◆ borderTop()
Border * iv::Border::borderTop | ( | std::optional< float > | val | ) |
Definition at line 248 of file Border.cpp.
◆ borderBottom()
Border * iv::Border::borderBottom | ( | std::optional< float > | val | ) |
Definition at line 254 of file Border.cpp.
◆ borderFront()
Border * iv::Border::borderFront | ( | std::optional< float > | val | ) |
Definition at line 260 of file Border.cpp.
◆ borderBack()
Border * iv::Border::borderBack | ( | std::optional< float > | val | ) |
Definition at line 266 of file Border.cpp.
◆ leftTop()
Border * iv::Border::leftTop | ( | std::optional< float > | left, |
std::optional< float > | top | ||
) |
Definition at line 272 of file Border.cpp.
◆ leftBottom()
Border * iv::Border::leftBottom | ( | std::optional< float > | left, |
std::optional< float > | bottom | ||
) |
Definition at line 279 of file Border.cpp.
◆ rightTop()
Border * iv::Border::rightTop | ( | std::optional< float > | right, |
std::optional< float > | top | ||
) |
Definition at line 286 of file Border.cpp.
◆ rightBottom()
Border * iv::Border::rightBottom | ( | std::optional< float > | right, |
std::optional< float > | bottom | ||
) |
Definition at line 293 of file Border.cpp.
◆ leftRight()
Border * iv::Border::leftRight | ( | std::optional< float > | left, |
std::optional< float > | right | ||
) |
Definition at line 300 of file Border.cpp.
◆ topBottom()
Border * iv::Border::topBottom | ( | std::optional< float > | top, |
std::optional< float > | bottom | ||
) |
Definition at line 307 of file Border.cpp.
◆ frontBack()
Border * iv::Border::frontBack | ( | std::optional< float > | front, |
std::optional< float > | back | ||
) |
Definition at line 314 of file Border.cpp.
◆ first_pass_impl()
|
overrideprotectedvirtual |
Implements iv::Elem.
Definition at line 46 of file Border.cpp.
◆ second_pass_impl()
|
overrideprotectedvirtual |
Reimplemented from iv::Elem.
Definition at line 191 of file Border.cpp.
◆ instance()
Member Data Documentation
◆ cm
ClientMarker iv::Border::cm |
Definition at line 23 of file Border.hpp.
◆ attr_borderLeft
DirtyAttr< std::optional< float > > iv::Border::attr_borderLeft |
Definition at line 30 of file Border.hpp.
◆ attr_borderRight
DirtyAttr< std::optional< float > > iv::Border::attr_borderRight |
Definition at line 31 of file Border.hpp.
◆ attr_borderTop
DirtyAttr< std::optional< float > > iv::Border::attr_borderTop |
Definition at line 33 of file Border.hpp.
◆ attr_borderBottom
DirtyAttr< std::optional< float > > iv::Border::attr_borderBottom |
Definition at line 34 of file Border.hpp.
◆ attr_borderFront
DirtyAttr< std::optional< float > > iv::Border::attr_borderFront |
Definition at line 36 of file Border.hpp.
◆ attr_borderBack
DirtyAttr< std::optional< float > > iv::Border::attr_borderBack |
Definition at line 37 of file Border.hpp.
The documentation for this class was generated from the following files:
- ivorium_graphics/Elements/Border.hpp
- ivorium_graphics/Elements/Border.cpp