Lysa UI  0.0
Lysa UI —UI components for the Lysa Engine
TextEdit Class Reference

Detailed Description

An editable single line of text widget.

+ Inheritance diagram for TextEdit:

Public Member Functions

 TextEdit (const std::string &text="", bool clearButton=false)
 
auto hasClearButton () const
 
auto isReadOnly () const
 
void setReadOnly (const bool state)
 
void setText (const std::string &text)
 
void setCaretPosition (uint32 start)
 
void setCaretAtEnd ()
 
auto getText () const
 
auto getCaretPosition () const
 
auto hasSelection () const
 
auto getSelectionStart () const
 
auto getSelectionEnd () const
 
std::string getSelectedText () const
 
auto getFirstDisplayedChar () const
 
auto getDisplayedText () const
 
auto getTextBox () const
 
void setResources (const std::string &resource)
 
- Public Member Functions inherited from Widget
 Widget (Type type=WIDGET)
 
 ~Widget () override
 
Type getType () const
 
bool isVisible () const
 
void setVisible (bool show=true)
 
bool isEnabled () const
 
void setEnabled (bool isEnabled=true)
 
virtual void setPos (float x, float y)
 
float getWidth () const
 
float getHeight () const
 
float getRequestedWidth () const
 
float getRequestedHeight () const
 
virtual void setSize (float width, float height)
 
void setWidth (const float width)
 
void setHeight (const float height)
 
const Rect & getRect () const
 
void setRect (float x, float y, float width, float height)
 
void setRect (const Rect &rect)
 
float getAspectRatio () const
 
Alignment getAlignment () const
 
void setAlignment (Alignment alignment)
 
std::shared_ptr< Font > getFont () const
 
void setFont (const std::shared_ptr< Font > &font)
 
float getFontScale () const
 
virtual void setFontScale (float fontScale)
 
bool isFocused () const
 
Widget * getParent () const
 
void setOverlap (const bool overlap)
 
template<typename T , typename... Args>
std::shared_ptr< T > create (const std::string &resource, const Alignment alignment, Args &&...args)
 
template<typename T , typename... Args>
std::shared_ptr< T > create (const Alignment alignment, Args &&...args)
 
template<typename T >
std::shared_ptr< T > add (std::shared_ptr< T > child, const Alignment alignment=Alignment::NONE, const std::string &resource="", const bool overlap=false)
 
template<typename T >
std::shared_ptr< T > addPopup (std::shared_ptr< T > child, const std::string &resource="")
 
template<typename T >
std::shared_ptr< T > addAfter (std::shared_ptr< T > child, const std::shared_ptr< Widget > &after, const Alignment alignment, const std::string &resource="", const bool overlap=false)
 
virtual void remove (const std::shared_ptr< Widget > &child)
 
virtual void removeAll ()
 
void setPadding (float padding)
 
float getPadding () const
 
float getVBorder () const
 
float getHBorder () const
 
void setVBorder (float size)
 
void setHBorder (float size)
 
bool isDrawBackground () const
 
void setDrawBackground (bool drawBackground)
 
bool isPushed () const
 
bool isPointed () const
 
bool isFreezed () const
 
bool isRedrawOnMouseEvent () const
 
bool isOverlapping () const
 
Rect getChildrenRect () const
 
void setFreezed (const bool f)
 
void setPushed (const bool p)
 
void refresh ()
 
void setResource (std::shared_ptr< UIResource > res)
 
uint32 getGroupIndex () const
 
void setGroupIndex (int32 index)
 
template<typename T >
getUserData () const
 
template<typename T >
std::shared_ptr< T > getPointerUserData () const
 
const std::any & getUserData () const
 
void setUserData (const std::any &data)
 
float getTransparency () const
 
void setTransparency (float alpha)
 
void resizeChildren ()
 
float getChildrenOffsetX () const
 
float getChildrenOffsetY () const
 
void setChildrenOffset (float x, float y)
 
std::shared_ptr< Widget > setFocus (bool focus=true)
 
virtual void onAttach ()
 
virtual void onDetach ()
 
virtual void onShow ()
 
virtual void onHide ()
 
virtual void onResize ()
 
virtual void onMove ()
 
virtual bool onKeyDown (Key key)
 
virtual bool onTextInput (const std::string &text)
 
virtual bool onKeyUp (Key key)
 
virtual bool onMouseDown (MouseButton button, float x, float y)
 
virtual bool onMouseUp (MouseButton button, float x, float y)
 
virtual bool onMouseMove (uint32 buttonsState, float x, float y)
 
virtual void onMouseLeave ()
 
virtual void onDisable ()
 
virtual void onEnable ()
 
virtual void onGotFocus ()
 
virtual void onLostFocus ()
 
bool getConsumeMouseEvent () const
 
void setConsumeMouseEvent (const bool consumeMouseEvent)
 
const std::list< std::shared_ptr< Widget > > & getChildren () const
 
bool hasChildren () const
 
void subscribe (const event_type &type, unique_id id, EventHandlerCallback callback)
 
void subscribe (const event_type &type, EventHandlerCallback callback)
 
void unsubscribe (unique_id id)
 
bool isAttached () const
 
WindowgetWindow () const
 
StylegetStyle () const
 
Vector2DRenderer & getRenderer () const
 
RenderingWindow & getRenderingWindow () const
 
WindowManagergetWindowManager () const
 

Protected Member Functions

void computeNDispChar ()
 
void syncDisplay ()
 
void deleteSelection ()
 
uint32 characterIndexAt (float x) const
 

Protected Attributes

std::string text
 
bool readonly {false}
 
uint32 selStart {0}
 
uint32 selAnchor {0}
 
uint32 startPos {0}
 
uint32 nDispChar {0}
 
bool selecting {false}
 
bool clearButton {false}
 
std::shared_ptr< Boxbox
 
std::shared_ptr< TexttextBox
 
std::shared_ptr< CrossMarkcrossMark
 
- Protected Attributes inherited from Widget
const Type type
 
Rect rect
 
float requestedWidth {0}
 
float requestedHeight {0}
 
float hborder {0}
 
float vborder {0}
 
float padding {0}
 
bool consumeMouseEvent {false}
 
bool overlap {false}
 
bool focused {false}
 
bool allowFocus {false}
 
bool allowChildren {true}
 
bool drawBackground {true}
 
bool moveChildrenOnPush {false}
 
bool scrollChildren {false}
 
bool skipInvisibleChildren {false}
 
bool redrawOnMouseEvent {false}
 
bool redrawOnMouseMove {false}
 
float transparency {1.0f}
 
Widget * parent {nullptr}
 
Alignment alignment {Alignment::NONE}
 
std::shared_ptr< UIResourceresource
 
std::list< std::shared_ptr< Widget > > children
 
bool mouseMoveOnFocus {false}
 
float childrenOffsetX {0}
 
float childrenOffsetY {0}
 

Additional Inherited Members

- Public Types inherited from Widget
enum  Type {
  WIDGET, PANEL, BOX, LINE,
  FRAME, BUTTON, TOGGLEBUTTON, RADIOBUTTON,
  CHECKBOX, CHECKMARK, CROSSMARK, ARROW,
  TEXT, TEXTEDIT, RICHTEXTAREA, SCROLLBAR,
  SLIDER, COLORSLIDER, COLORWHEEL, KNOB,
  TREEVIEW, IMAGE, POPUP, LIST,
  LISTBOX, SELECTION, PROGRESSBAR, SCROLLCONTAINER,
  MENU, MENUPANEL, MENUBOX, TABBAR,
  TABCONTAINER, DIALOG, FOLDABLECONTAINER, COLORPICKER,
  COLORPICKERBUTTON, SPINBOX, SPINBUTTONS, ICONIMAGE,
  ICONSVG, DROPDOWNLIST, TOOLTIP, GRIDCELL,
  GRID, TABLE
}
 

Constructor & Destructor Documentation

TextEdit ( const std::string &  text = "",
bool  clearButton = false 
)

Creates a text edit.

Parameters
textInitial text.
clearButtonIf true displays a cross mark to clear the text.

Member Function Documentation

uint32 characterIndexAt ( float  x) const
protected
void computeNDispChar ( )
protected
void deleteSelection ( )
protected
auto getCaretPosition ( ) const
inline

Returns the caret position.

auto getDisplayedText ( ) const
inline

Returns the text currently being displayed in the text box.

auto getFirstDisplayedChar ( ) const
inline

Returns the index of the first displayed character.

std::string getSelectedText ( ) const

Returns the currently selected text, or an empty string if there is no selection.

auto getSelectionEnd ( ) const
inline

Returns the index one past the last selected character.

auto getSelectionStart ( ) const
inline

Returns the index of the first selected character.

auto getText ( ) const
inline

Returns the text.

auto getTextBox ( ) const
inline

Returns the internal text widget.

auto hasClearButton ( ) const
inline

Returns true if the clear button is enabled.

auto hasSelection ( ) const
inline

Returns true if a range of text is currently selected.

auto isReadOnly ( ) const
inline

Returns true if the widget is read-only.

void setCaretAtEnd ( )

Sets the caret at the end of the text

void setCaretPosition ( uint32  start)

Sets the caret position.

void setReadOnly ( const bool  state)
inline

Sets whether the widget is read-only.

void setResources ( const std::string &  resource)

Sets the UI resources for the text edit.

void setText ( const std::string &  text)

Sets the text.

void syncDisplay ( )
protected

Member Data Documentation

std::shared_ptr<Box> box
protected
bool clearButton {false}
protected
std::shared_ptr<CrossMark> crossMark
protected
uint32 nDispChar {0}
protected
bool readonly {false}
protected
uint32 selAnchor {0}
protected
bool selecting {false}
protected
uint32 selStart {0}
protected
uint32 startPos {0}
protected
std::string text
protected
std::shared_ptr<Text> textBox
protected