Container and layout manager for TextSegment objects. More...

#include <TextLayout.hpp>

Public Member Functions

 TextLayout (Instance *)
 
TextLayoutline_spacing (float)
 
Instanceinstance () const
 
- Public Member Functions inherited from iv::VectorChildrenElem< TextSegment >
 VectorChildrenElem (Instance *inst)
 
 ~VectorChildrenElem ()
 
T * createChild (CArgs const &... cargs)
 
T * createChild_Instance (char const *name, CArgs const &... cargs)
 
void pushChild (TextSegment *)
 
void removeChild (TextSegment *)
 
- Public Member Functions inherited from iv::Elem
 Elem (Instance *inst)
 
 ~Elem ()
 
void status (iv::TableDebugView *view)
 
Instanceinstance () const
 
void elem_setParent (Elem *)
 
Elemelem_getParent ()
 
virtual Cameraelem_getRoot ()
 
void first_pass (ElementRenderer *)
 
void second_pass (ElementRenderer *)
 
unsigned first_pass_frame_id ()
 
unsigned second_pass_frame_id ()
 
Elemenabled (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 ()
 
Instanceinstance () 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 *)
 
InputNodeinput_getParent ()
 
virtual InputRootinput_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)
 
Instanceinstance () 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)
 
Elemelem ()
 
const Elemelem () const
 

Public Attributes

ClientMarker cm
 
DirtyAttr< float > attr_lineSpacing
 Space between lines in pixels. Baselines are ( ascender + descender + spacing ) pixels apart. More...
 
- Public Attributes inherited from iv::VectorChildrenElem< TextSegment >
ClientMarker cm
 
- Public Attributes inherited from iv::Elem
ClientMarker cm
 
DirtyAttr< bool > attr_enabled
 
DirtyAttr< float4x4modelTransform
 
DirtyAttr< ShaderScissorscissor
 
- Public Attributes inherited from iv::InputNode
ClientMarker cm
 
- Public Attributes inherited from iv::SlotChild
ClientMarker cm
 
DirtyAttr< float3expectedSize
 
DirtyAttr< float3preferredSize
 
DirtyAttr< float3size
 
- 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::VectorChildrenElem< TextSegment >
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::VectorChildrenElem< TextSegment >
std::vector< TextSegment * > children
 
bool children_dirty
 

Detailed Description

Container and layout manager for TextSegment objects.

Note: This whole layouting algorithm does not work well when there are multiple font sizes on one line, but that is bad typography anyway, so it should not be a problem.

Definition at line 52 of file TextLayout.hpp.

Constructor & Destructor Documentation

◆ TextLayout()

iv::TextLayout::TextLayout ( Instance inst)

Definition at line 31 of file TextLayout.cpp.

Member Function Documentation

◆ line_spacing()

TextLayout * iv::TextLayout::line_spacing ( float  val)

Definition at line 42 of file TextLayout.cpp.

◆ first_pass_impl()

void iv::TextLayout::first_pass_impl ( ElementRenderer er)
overrideprotectedvirtual

Implements iv::Elem.

Definition at line 48 of file TextLayout.cpp.

◆ second_pass_impl()

void iv::TextLayout::second_pass_impl ( ElementRenderer er)
overrideprotectedvirtual

Reimplemented from iv::Elem.

Definition at line 126 of file TextLayout.cpp.

◆ instance()

Instance * iv::Elem::instance

Definition at line 57 of file Elem.cpp.

Member Data Documentation

◆ cm

ClientMarker iv::TextLayout::cm

Definition at line 55 of file TextLayout.hpp.

◆ attr_lineSpacing

DirtyAttr< float > iv::TextLayout::attr_lineSpacing

Space between lines in pixels. Baselines are ( ascender + descender + spacing ) pixels apart.

Definition at line 60 of file TextLayout.hpp.


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