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

Detailed Description

A scrollable container with horizontal & vertical scroll bars. Children added to the ScrollBox are placed in an inner box that is scrolled.

+ Inheritance diagram for ScrollBox:

Public Member Functions

 ScrollBox ()
 
std::shared_ptr< WidgetaddContent (const std::shared_ptr< Widget > &child, Alignment alignment=Alignment::TOPLEFT, const std::string &resource="")
 
void removeContent (const std::shared_ptr< Widget > &child)
 
void removeAllContent ()
 
void setResources (const std::string &resBox, const std::string &resVScroll, const std::string &resHScroll)
 
auto getInnerBox () const
 
- Public Member Functions inherited from Box
 Box ()
 
- Public Member Functions inherited from Panel
 Panel ()
 
- Public Member Functions inherited from Widget
 Widget (Type type=WIDGET)
 
 ~Widget () override = default
 
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
 
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)
 
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
 
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, 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)
 
void * getUserData () const
 
void setUserData (void *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 eventCreate ()
 
virtual void eventDestroy (Vector2DRenderer &renderer)
 
virtual void eventShow ()
 
virtual void eventHide ()
 
virtual void eventEnable ()
 
virtual void eventDisable ()
 
virtual void eventMove (float x, float y)
 
virtual void eventResize ()
 
virtual bool eventTextInput (const std::string &text)
 
virtual bool eventKeyDown (Key key)
 
virtual bool eventKeyUp (Key key)
 
virtual bool eventMouseDown (MouseButton button, float x, float y)
 
virtual bool eventMouseUp (MouseButton button, float x, float y)
 
virtual bool eventMouseMove (uint32 buttonsState, float x, float y)
 
virtual void eventGotFocus ()
 
virtual void eventLostFocus ()
 
bool getConsumeMouseEvent () const
 
void setConsumeMouseEvent (const bool consumeMouseEvent)
 
const std::list< std::shared_ptr< Widget > > & getChildren () const
 

Protected Member Functions

 ScrollBox (Type type)
 
- Protected Member Functions inherited from Box
 Box (const Type type)
 
- Protected Member Functions inherited from Panel
 Panel (const Type type)
 

Additional Inherited Members

- Public Types inherited from Widget
enum  Type {
  WIDGET, PANEL, BOX, LINE,
  FRAME, BUTTON, TOGGLEBUTTON, TEXT,
  TEXTEDIT, SCROLLBAR, TREEVIEW, IMAGE,
  POPUP, LIST, LISTBOX, SELECTION,
  PROGRESSBAR, SCROLLBOX
}
 
- Protected Attributes inherited from Widget
const Type type
 
Rect rect
 
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 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
 
void * window {nullptr}
 
void * style {nullptr}
 
bool mouseMoveOnFocus {false}
 
float fontScale {0.0f}
 
float childrenOffsetX {0}
 
float childrenOffsetY {0}
 

Constructor & Destructor Documentation

ScrollBox ( )

Creates a default ScrollBox widget.

ScrollBox ( Type  type)
protected

Member Function Documentation

std::shared_ptr<Widget> addContent ( const std::shared_ptr< Widget > &  child,
Alignment  alignment = Alignment::TOPLEFT,
const std::string &  resource = "" 
)

Adds a child widget to the scrollable inner box.

Parameters
childChild widget to add.
alignmentPlacement alignment inside the inner box.
resourceResource string.
Returns
The added widget.
auto getInnerBox ( ) const
inline

Returns the inner (scrolled) box.

void removeAllContent ( )

Removes all children from the inner box.

void removeContent ( const std::shared_ptr< Widget > &  child)

Removes a child widget from the inner box.

void setResources ( const std::string &  resBox,
const std::string &  resVScroll,
const std::string &  resHScroll 
)

Sets the UI resources for the scroll box.

Parameters
resBoxResource for the inner box.
resVScrollResource for the vertical scroll bar.
resHScrollResource for the horizontal scroll bar.