Loading...
Searching...
No Matches
ml::Panel Class Reference

A layout container that groups, positions, and draws a set of child components. More...

#include <Malena/Graphics/Layouts/Panel.h>

Inheritance diagram for ml::Panel:
[legend]

Public Types

using Flag
using Flag
using manifest_type
 The manifest type, used by GatherFlags and GatherStates to locate this class's flag and state declarations.
using manifest_type
 The manifest type, used by GatherFlags and GatherStates to locate this class's flag and state declarations.
using manifest_type
 The manifest type, used by GatherFlags and GatherStates to locate this class's flag and state declarations.
using State
 The enum type this manager stores flags for.
using State
 The enum type this manager stores flags for.
using State
using State

Public Member Functions

 Panel ()
void addComponent (Core &child)
 Add a child component to this panel.
void center (T &obj)
 Center this object within obj (both axes).
void center (ml::RoundedRectangle &obj)
 Center this object within obj (both axes).
void center (ml::RoundedRectangle &obj)
 Center this object within obj (both axes).
template<class T>
void center (T &obj)
 Center this object within obj (both axes).
void centerHorizonally (T &obj)
 Center this object horizontally within obj.
void centerHorizonally (ml::RoundedRectangle &obj)
 Center this object horizontally within obj.
void centerHorizonally (ml::RoundedRectangle &obj)
 Center this object horizontally within obj.
template<class T>
void centerHorizonally (T &obj)
 Center this object horizontally within obj.
void centerText (sf::Text &obj)
 Center an sf::Text object within this object's bounds.
void centerText (sf::Text &obj)
 Center an sf::Text object within this object's bounds.
void centerVertically (T &obj)
 Center this object vertically within obj.
void centerVertically (ml::RoundedRectangle &obj)
 Center this object vertically within obj.
void centerVertically (ml::RoundedRectangle &obj)
 Center this object vertically within obj.
template<class T>
void centerVertically (T &obj)
 Center this object vertically within obj.
bool checkFlag (State state) const
 Return the current value of a flag.
bool checkFlag (State state) const
 Return the current value of a flag.
bool checkFlag (State state) const
 Return the current value of a flag.
void clear ()
 Remove all registered objects.
void clearDragBounds ()
 Remove any previously set drag bounds.
void clearDragBounds ()
 Remove any previously set drag bounds.
void disableFlag (State state)
 Set a flag to false.
void disableFlag (State state)
 Set a flag to false.
void disableFlag (State state)
 Set a flag to false.
void draw (sf::RenderTarget &target, sf::RenderStates states) const override
 Draw this graphic to an SFML render target.
void enableFlag (State state)
 Set a flag to true.
void enableFlag (State state)
 Set a flag to true.
void enableFlag (State state)
 Set a flag to true.
const std::vector< Core * > & getComponents () const
 Return a read-only view of all currently registered objects.
unsigned int getCornerPointCount () const
 Return the current per-corner vertex count.
Color getFillColor () const
virtual Vector2f getGeometricCenter () const
sf::FloatRect getGlobalBounds () const override
 Return the axis-aligned bounding box in world space.
const Transform & getInverseTransform () const
FloatRect getLocalBounds () const
Vector2f getOrigin () const
Color getOutlineColor () const
float getOutlineThickness () const
virtual sf::Vector2f getPoint (std::size_t index) const override
 Return the position of a single vertex.
virtual std::size_t getPointCount () const override
 Return the total number of shape vertices.
sf::Vector2f getPosition () const override
 Return the current world-space position.
float getRadius () const
 Return the current corner arc radius.
virtual sf::RenderStates getRenderStates () const
 Returns the SFML render states to use when drawing this object.
virtual sf::RenderStates getRenderStates () const
 Returns the SFML render states to use when drawing this object.
Angle getRotation () const
Vector2f getScale () const
const sf::Vector2fgetSize () const
 Return the current size of the rectangle.
std::enable_if_t<!std::is_void_v< ml::RoundedRectangle >, ml::RoundedRectanglegetState () const
 Return the current state value.
std::enable_if_t<!std::is_void_v< ml::RoundedRectangle >, ml::RoundedRectanglegetState () const
 Return the current state value.
std::enable_if_t<!std::is_void_v< T >, T > getState () const
 Return the current state value.
const Texture * getTexture () const
const IntRect & getTextureRect () const
const Transform & getTransform () const
 Graphic ()
template<typename U>
 Graphic (const U &obj)
 Construct from an existing SFML object of type U.
bool isScrolling ()
 Return true while a moveTo or moveDistance animation is in progress.
bool isScrolling ()
 Return true while a moveTo or moveDistance animation is in progress.
bool isSettingsLocked () const
 Return true if applySettings() is currently blocked.
std::enable_if_t<!std::is_void_v< T >, bool > isState (T state) const
 Return true if currently in state.
std::enable_if_t<!std::is_void_v< ml::RoundedRectangle >, bool > isState (ml::RoundedRectangle state) const
 Return true if currently in state.
std::enable_if_t<!std::is_void_v< ml::RoundedRectangle >, bool > isState (ml::RoundedRectangle state) const
 Return true if currently in state.
std::enable_if_t<!std::is_void_v< T >, bool > isState (T state) const
 Return true if currently in state.
std::enable_if_t<!std::is_void_v< T >, bool > isState (T state) const
 Return true if currently in state.
bool isThemeLocked () const
 Return true if this component ignores theme changes.
void lockSettings ()
 Prevent applySettings() from taking effect.
void lockTheme ()
 Prevent automatic re-styling when the global theme changes.
void move (Vector2f offset)
void moveDistance (sf::Vector2f distance, float seconds=1.f)
 Animate by a relative offset from the current position.
void moveDistance (sf::Vector2f distance, float seconds=1.f)
 Animate by a relative offset from the current position.
void moveTo (sf::FloatRect position, float seconds=1.f)
 Animate to a position defined by a FloatRect origin.
void moveTo (sf::FloatRect position, float seconds=1.f)
 Animate to a position defined by a FloatRect origin.
void moveTo (sf::Vector2f position, float seconds=1.f)
 Animate to an absolute world-space position.
void moveTo (sf::Vector2f position, float seconds=1.f)
 Animate to an absolute world-space position.
void onBlur (std::function< void()> callback)
 Register a no-argument callback invoked when this component loses keyboard focus.
void onBlur (std::function< void()> callback)
 Register a no-argument callback invoked when this component loses keyboard focus.
void onBlur (std::function< void(const std::optional< sf::Event > &)> callback)
 Register a callback invoked when this component loses keyboard focus, receiving the raw SFML event.
void onBlur (std::function< void(const std::optional< sf::Event > &)> callback)
 Register a callback invoked when this component loses keyboard focus, receiving the raw SFML event.
void onClick (std::function< void()> callback)
 Register a no-argument callback invoked when this component is clicked.
void onClick (std::function< void()> callback)
 Register a no-argument callback invoked when this component is clicked.
void onClick (std::function< void(const std::optional< sf::Event > &event)> callback)
 Register a callback invoked when this component is clicked, receiving the raw SFML event.
void onClick (std::function< void(const std::optional< sf::Event > &event)> callback)
 Register a callback invoked when this component is clicked, receiving the raw SFML event.
void onFocus (std::function< void()> callback)
 Register a no-argument callback invoked when this component gains keyboard focus.
void onFocus (std::function< void()> callback)
 Register a no-argument callback invoked when this component gains keyboard focus.
void onFocus (std::function< void(const std::optional< sf::Event > &)> callback)
 Register a callback invoked when this component gains keyboard focus, receiving the raw SFML event.
void onFocus (std::function< void(const std::optional< sf::Event > &)> callback)
 Register a callback invoked when this component gains keyboard focus, receiving the raw SFML event.
void onHover (std::function< void()> callback)
 Register a no-argument callback invoked when the mouse enters this component's bounds.
void onHover (std::function< void()> callback)
 Register a no-argument callback invoked when the mouse enters this component's bounds.
void onHover (std::function< void(const std::optional< sf::Event > &event)> callback)
 Register a callback invoked when the mouse enters this component's bounds, receiving the raw SFML event.
void onHover (std::function< void(const std::optional< sf::Event > &event)> callback)
 Register a callback invoked when the mouse enters this component's bounds, receiving the raw SFML event.
void onKeypress (std::function< void()> callback)
 Register a no-argument callback invoked when a key is pressed while this component has focus.
void onKeypress (std::function< void()> callback)
 Register a no-argument callback invoked when a key is pressed while this component has focus.
void onKeypress (std::function< void(const std::optional< sf::Event > &)> callback)
 Register a callback invoked when a key is pressed while this component has focus, receiving the raw SFML event.
void onKeypress (std::function< void(const std::optional< sf::Event > &)> callback)
 Register a callback invoked when a key is pressed while this component has focus, receiving the raw SFML event.
void onKeyRelease (std::function< void()> callback)
 Register a no-argument callback invoked when a key is released while this component has focus.
void onKeyRelease (std::function< void()> callback)
 Register a no-argument callback invoked when a key is released while this component has focus.
void onKeyRelease (std::function< void(const std::optional< sf::Event > &)> callback)
 Register a callback invoked when a key is released while this component has focus, receiving the raw SFML event.
void onKeyRelease (std::function< void(const std::optional< sf::Event > &)> callback)
 Register a callback invoked when a key is released while this component has focus, receiving the raw SFML event.
void onMouseMoved (std::function< void()> callback)
 Register a no-argument callback invoked whenever the mouse moves anywhere in the window.
void onMouseMoved (std::function< void()> callback)
 Register a no-argument callback invoked whenever the mouse moves anywhere in the window.
void onMouseMoved (std::function< void(const std::optional< sf::Event > &)> callback)
 Register a callback invoked whenever the mouse moves anywhere in the window, receiving the raw SFML event.
void onMouseMoved (std::function< void(const std::optional< sf::Event > &)> callback)
 Register a callback invoked whenever the mouse moves anywhere in the window, receiving the raw SFML event.
void onMousePressed (std::function< void()> callback)
 Register a no-argument callback invoked when a mouse button is pressed anywhere in the window.
void onMousePressed (std::function< void()> callback)
 Register a no-argument callback invoked when a mouse button is pressed anywhere in the window.
void onMousePressed (std::function< void(const std::optional< sf::Event > &)> callback)
 Register a callback invoked when a mouse button is pressed, receiving the raw SFML event.
void onMousePressed (std::function< void(const std::optional< sf::Event > &)> callback)
 Register a callback invoked when a mouse button is pressed, receiving the raw SFML event.
void onMouseReleased (std::function< void()> callback)
 Register a no-argument callback invoked when a mouse button is released anywhere in the window.
void onMouseReleased (std::function< void()> callback)
 Register a no-argument callback invoked when a mouse button is released anywhere in the window.
void onMouseReleased (std::function< void(const std::optional< sf::Event > &)> callback)
 Register a callback invoked when a mouse button is released, receiving the raw SFML event.
void onMouseReleased (std::function< void(const std::optional< sf::Event > &)> callback)
 Register a callback invoked when a mouse button is released, receiving the raw SFML event.
void onScroll (std::function< void()> callback)
 Register a no-argument callback invoked when the mouse wheel is scrolled while the cursor is over this component.
void onScroll (std::function< void()> callback)
 Register a no-argument callback invoked when the mouse wheel is scrolled while the cursor is over this component.
void onScroll (std::function< void(const std::optional< sf::Event > &)> callback)
 Register a callback invoked when the mouse wheel is scrolled while the cursor is over this component, receiving the SFML event.
void onScroll (std::function< void(const std::optional< sf::Event > &)> callback)
 Register a callback invoked when the mouse wheel is scrolled while the cursor is over this component, receiving the SFML event.
std::enable_if_t<!std::is_void_v< T > > onStateEnter (std::function< void(T)> callback)
 Register a callback invoked after each state transition.
std::enable_if_t<!std::is_void_v< ml::RoundedRectangle > > onStateEnter (std::function< void(ml::RoundedRectangle)> callback)
 Register a callback invoked after each state transition.
std::enable_if_t<!std::is_void_v< ml::RoundedRectangle > > onStateEnter (std::function< void(ml::RoundedRectangle)> callback)
 Register a callback invoked after each state transition.
std::enable_if_t<!std::is_void_v< T > > onStateEnter (std::function< void(T)> callback)
 Register a callback invoked after each state transition.
std::enable_if_t<!std::is_void_v< T > > onStateEnter (std::function< void(T)> callback)
 Register a callback invoked after each state transition.
std::enable_if_t<!std::is_void_v< T > > onStateExit (std::function< void(T)> callback)
 Register a callback invoked before each state transition.
std::enable_if_t<!std::is_void_v< ml::RoundedRectangle > > onStateExit (std::function< void(ml::RoundedRectangle)> callback)
 Register a callback invoked before each state transition.
std::enable_if_t<!std::is_void_v< ml::RoundedRectangle > > onStateExit (std::function< void(ml::RoundedRectangle)> callback)
 Register a callback invoked before each state transition.
std::enable_if_t<!std::is_void_v< T > > onStateExit (std::function< void(T)> callback)
 Register a callback invoked before each state transition.
std::enable_if_t<!std::is_void_v< T > > onStateExit (std::function< void(T)> callback)
 Register a callback invoked before each state transition.
void onTextEntered (std::function< void()> callback)
 Register a no-argument callback invoked when a unicode character is entered while this component has focus.
void onTextEntered (std::function< void()> callback)
 Register a no-argument callback invoked when a unicode character is entered while this component has focus.
void onTextEntered (std::function< void(const std::optional< sf::Event > &)> callback)
 Register a callback invoked when a unicode character is entered while this component has focus, receiving the raw SFML event.
void onTextEntered (std::function< void(const std::optional< sf::Event > &)> callback)
 Register a callback invoked when a unicode character is entered while this component has focus, receiving the raw SFML event.
void onUnhover (std::function< void()> callback)
 Register a no-argument callback invoked when the mouse leaves this component's bounds.
void onUnhover (std::function< void()> callback)
 Register a no-argument callback invoked when the mouse leaves this component's bounds.
void onUnhover (std::function< void(const std::optional< sf::Event > &event)> callback)
 Register a callback invoked when the mouse leaves this component's bounds, receiving the raw SFML event.
void onUnhover (std::function< void(const std::optional< sf::Event > &event)> callback)
 Register a callback invoked when the mouse leaves this component's bounds, receiving the raw SFML event.
void onUpdate (std::function< void()> callback)
 Register a no-argument callback invoked every frame.
void onUpdate (std::function< void()> callback)
 Register a no-argument callback invoked every frame.
void onUpdate (std::function< void(const std::optional< sf::Event > &)> callback)
 Register a callback invoked every frame, receiving the SFML event.
void onUpdate (std::function< void(const std::optional< sf::Event > &)> callback)
 Register a callback invoked every frame, receiving the SFML event.
void onWindowFocusGained (std::function< void()> callback)
 Register a no-argument callback invoked when the application window gains OS focus.
void onWindowFocusGained (std::function< void()> callback)
 Register a no-argument callback invoked when the application window gains OS focus.
void onWindowFocusGained (std::function< void(const std::optional< sf::Event > &)> callback)
 Register a callback invoked when the application window gains OS focus, receiving the raw SFML event.
void onWindowFocusGained (std::function< void(const std::optional< sf::Event > &)> callback)
 Register a callback invoked when the application window gains OS focus, receiving the raw SFML event.
void onWindowFocusLost (std::function< void()> callback)
 Register a no-argument callback invoked when the application window loses OS focus.
void onWindowFocusLost (std::function< void()> callback)
 Register a no-argument callback invoked when the application window loses OS focus.
void onWindowFocusLost (std::function< void(const std::optional< sf::Event > &)> callback)
 Register a callback invoked when the application window loses OS focus, receiving the raw SFML event.
void onWindowFocusLost (std::function< void(const std::optional< sf::Event > &)> callback)
 Register a callback invoked when the application window loses OS focus, receiving the raw SFML event.
void onWindowResized (std::function< void()> callback)
 Register a no-argument callback invoked when the application window is resized.
void onWindowResized (std::function< void()> callback)
 Register a no-argument callback invoked when the application window is resized.
void onWindowResized (std::function< void(const std::optional< sf::Event > &)> callback)
 Register a callback invoked when the application window is resized, receiving the raw SFML event.
void onWindowResized (std::function< void(const std::optional< sf::Event > &)> callback)
 Register a callback invoked when the application window is resized, receiving the raw SFML event.
 operator const sf::Drawable & () const
 Implicit conversion to a const sf::Drawable reference.
virtual void process (const std::string &key, const std::optional< sf::Event > &event)
 Invoke all callbacks registered for key.
virtual void process (const std::string &key, const std::optional< sf::Event > &event)
 Invoke all callbacks registered for key.
void process (ENUM_TYPE eventName, const std::optional< sf::Event > &event)
 Invoke all callbacks registered for eventName.
void process (ENUM_TYPE eventName, const std::optional< sf::Event > &event)
 Invoke all callbacks registered for eventName.
void process (ENUM_TYPE eventName, const std::optional< sf::Event > &event)
 Invoke all callbacks registered for eventName.
void process (ENUM_TYPE eventName, const std::optional< sf::Event > &event)
 Invoke all callbacks registered for eventName.
void publish (ENUM_TYPE event, FilterCallback filter=[](EventReceiver &){ return true;}, SystemCallback resolve=nullptr, SystemCallback reject=nullptr)
 Fire an enum-keyed event to all matching subscribers.
void publish (ENUM_TYPE event, FilterCallback filter=[](EventReceiver &){ return true;}, SystemCallback resolve=nullptr, SystemCallback reject=nullptr)
 Fire an enum-keyed event to all matching subscribers.
bool removeComponent (Core &child)
 Remove a child component from this panel.
void rotate (Angle angle)
void scale (Vector2f factor)
void setAbove (T &obj, float spacing=0)
 Position this object immediately above obj.
void setAbove (ml::RoundedRectangle &obj, float spacing=0)
 Position this object immediately above obj.
void setAbove (ml::RoundedRectangle &obj, float spacing=0)
 Position this object immediately above obj.
template<class T>
void setAbove (T &obj, float spacing=0)
 Position this object immediately above obj.
void setBelow (T &obj, float spacing=0)
 Position this object immediately below obj.
void setBelow (ml::RoundedRectangle &obj, float spacing=0)
 Position this object immediately below obj.
void setBelow (ml::RoundedRectangle &obj, float spacing=0)
 Position this object immediately below obj.
template<class T>
void setBelow (T &obj, float spacing=0)
 Position this object immediately below obj.
void setCornerPointCount (unsigned int count)
 Set the number of vertices per corner arc.
void setDragBounds (const sf::FloatRect &bounds)
 Constrain drag movement to an axis-aligned bounding rectangle.
void setDragBounds (const sf::FloatRect &bounds)
 Constrain drag movement to an axis-aligned bounding rectangle.
void setFillColor (Color color)
void setFlag (State state, bool status)
 Set a flag to an explicit value.
void setFlag (State state, bool status)
 Set a flag to an explicit value.
void setFlag (State state, bool status)
 Set a flag to an explicit value.
void setFramerate (float framerate)
 Set the assumed framerate for movement interpolation.
void setFramerate (float framerate)
 Set the assumed framerate for movement interpolation.
void setLeftOf (T &obj, float spacing=0)
 Position this object immediately to the left of obj.
void setLeftOf (ml::RoundedRectangle &obj, float spacing=0)
 Position this object immediately to the left of obj.
void setLeftOf (ml::RoundedRectangle &obj, float spacing=0)
 Position this object immediately to the left of obj.
template<class T>
void setLeftOf (T &obj, float spacing=0)
 Position this object immediately to the left of obj.
void setOrigin (Vector2f origin)
void setOutlineColor (Color color)
void setOutlineThickness (float thickness)
void setPosition (const sf::Vector2f &position) override
 Move the panel and shift all children by the same delta.
void setPosition (Vector2f position)
void setRadius (float radius)
 Set the corner arc radius.
void setRightOf (T &obj, float spacing=0)
 Position this object immediately to the right of obj.
void setRightOf (ml::RoundedRectangle &obj, float spacing=0)
 Position this object immediately to the right of obj.
void setRightOf (ml::RoundedRectangle &obj, float spacing=0)
 Position this object immediately to the right of obj.
template<class T>
void setRightOf (T &obj, float spacing=0)
 Position this object immediately to the right of obj.
void setRotation (Angle angle)
void setScale (Vector2f factors)
void setSize (const sf::Vector2f &size)
 Set the width and height of the rectangle.
std::enable_if_t<!std::is_void_v< T > > setState (T newState)
 Transition to a new state.
std::enable_if_t<!std::is_void_v< ml::RoundedRectangle > > setState (ml::RoundedRectangle newState)
 Transition to a new state.
std::enable_if_t<!std::is_void_v< ml::RoundedRectangle > > setState (ml::RoundedRectangle newState)
 Transition to a new state.
std::enable_if_t<!std::is_void_v< T > > setState (T newState)
 Transition to a new state.
std::enable_if_t<!std::is_void_v< T > > setState (T newState)
 Transition to a new state.
void setTexture (const Texture *texture, bool resetRect=false)
void setTextureRect (const IntRect &rect)
void subscribe (ENUM_TYPE event, Callback callback)
 Subscribe to an enum-keyed event with a no-argument callback.
void subscribe (ENUM_TYPE event, Callback callback)
 Subscribe to an enum-keyed event with a no-argument callback.
void subscribe (ENUM_TYPE event, EventCallback callback)
 Subscribe to an enum-keyed event with a full SFML event callback.
void subscribe (ENUM_TYPE event, EventCallback callback)
 Subscribe to an enum-keyed event with a full SFML event callback.
void toggleFlag (State state)
 Flip a flag between true and false.
void toggleFlag (State state)
 Flip a flag between true and false.
void toggleFlag (State state)
 Flip a flag between true and false.
void unlockSettings ()
 Allow applySettings() to take effect again.
void unlockTheme ()
 Resume reacting to global theme changes.
void unsubscribe (EnumType event)
 Unsubscribe from a single event by enum value.
void unsubscribe (EnumType event)
 Unsubscribe from a single event by enum value.
void unsubscribeAll ()
 Remove all event subscriptions for this component.
void unsubscribeAll ()
 Remove all event subscriptions for this component.

Static Public Member Functions

static void clearPending ()
 Discard all pending operations without executing them.
static void clearPending ()
 Discard all pending operations without executing them.
static bool isBusy ()
 Return true if the manager is currently iterating.
static bool isBusy ()
 Return true if the manager is currently iterating.
static void processPending ()
 Flush all pending operations immediately.
static void processPending ()
 Flush all pending operations immediately.

Protected Member Functions

void onThemeApplied (const Theme &theme) override
 Called by ThemeManager when the active theme changes.
void update ()

Static Protected Member Functions

static void beginBusy ()
 Signal that iteration has begun.
static void beginBusy ()
 Signal that iteration has begun.
static void deferOrExecute (std::function< void()> operation)
 Execute operation now if safe, otherwise queue it.
static void deferOrExecute (std::function< void()> operation)
 Execute operation now if safe, otherwise queue it.
static void endBusy ()
 Signal that iteration has ended; flush pending operations.
static void endBusy ()
 Signal that iteration has ended; flush pending operations.

Static Protected Attributes

static int busyDepth
 Iteration nesting depth. Operations are deferred while this is > 0.
static int busyDepth
 Iteration nesting depth. Operations are deferred while this is > 0.
static std::vector< std::function< void()> > pendingOperations
 Queue of operations pending until the current iteration completes.
static std::vector< std::function< void()> > pendingOperations
 Queue of operations pending until the current iteration completes.

Detailed Description

A layout container that groups, positions, and draws a set of child components.

Children are added via addComponent(). The Panel is responsible for:

  • Drawing all children in its draw() pass.
  • Propagating position changes to children (delta-shift) so that layout containers like SplitPanel can move an entire pane by repositioning its Panel.
  • Automatically matching the active theme's surface color as its fill.

Children receive framework events (update, click, hover) automatically via the Fireable system — no separate Application::addComponent() call is needed.

Usage as SplitPanel pane content

auto& pane = split.addPane(std::make_unique<ml::Panel>(), 300.f);
// Panel is now positioned — add children at their absolute positions
pane.addComponent(myInput);
pane.addComponent(myList);

Definition at line 42 of file Panel.h.

Member Typedef Documentation

◆ Flag [1/2]

using ml::Draggable::Flag
inherited

Definition at line 73 of file Draggable.h.

◆ Flag [2/2]

using ml::Draggable::Flag
inherited

Definition at line 73 of file Draggable.h.

◆ manifest_type [1/3]

The manifest type, used by GatherFlags and GatherStates to locate this class's flag and state declarations.

Definition at line 65 of file Customizable.h.

◆ manifest_type [2/3]

The manifest type, used by GatherFlags and GatherStates to locate this class's flag and state declarations.

Definition at line 65 of file Customizable.h.

◆ manifest_type [3/3]

The manifest type, used by GatherFlags and GatherStates to locate this class's flag and state declarations.

Definition at line 65 of file Customizable.h.

◆ State [1/4]

using ml::FlagManager< Flag >::State
inherited

The enum type this manager stores flags for.

Definition at line 63 of file FlagManager.h.

◆ State [2/4]

using ml::FlagManager< Flag >::State
inherited

The enum type this manager stores flags for.

Definition at line 63 of file FlagManager.h.

◆ State [3/4]

using ml::Draggable::State
inherited

Definition at line 74 of file Draggable.h.

◆ State [4/4]

using ml::Draggable::State
inherited

Definition at line 74 of file Draggable.h.

Constructor & Destructor Documentation

◆ Panel()

ml::Panel::Panel ( )

Member Function Documentation

◆ addComponent()

void ml::Panel::addComponent ( Core & child)

Add a child component to this panel.

The child's current absolute position is recorded relative to the panel's current position. Subsequent setPosition() calls will keep the child at the same relative offset.

◆ beginBusy() [1/2]

void ml::DeferredOperationsManager< CoreManager< Core > >::beginBusy ( )
staticprotectedinherited

Signal that iteration has begun.

Increments the busy-depth counter. Multiple nested calls are safe — operations remain deferred until the outermost endBusy() is reached.

◆ beginBusy() [2/2]

void ml::DeferredOperationsManager< CoreManager< Core > >::beginBusy ( )
staticprotectedinherited

Signal that iteration has begun.

Increments the busy-depth counter. Multiple nested calls are safe — operations remain deferred until the outermost endBusy() is reached.

◆ center() [1/4]

void ml::Positionable::center ( T & obj)
inherited

Center this object within obj (both axes).

Template Parameters
TAny type with getGlobalBounds().
Parameters
objContainer to center within.

◆ center() [2/4]

Center this object within obj (both axes).

Template Parameters
TAny type with getGlobalBounds().
Parameters
objContainer to center within.

◆ center() [3/4]

Center this object within obj (both axes).

Template Parameters
TAny type with getGlobalBounds().
Parameters
objContainer to center within.

◆ center() [4/4]

template<class T>
void ml::Positionable::center ( T & obj)
inherited

Center this object within obj (both axes).

Template Parameters
TAny type with getGlobalBounds().
Parameters
objContainer to center within.

◆ centerHorizonally() [1/4]

void ml::Positionable::centerHorizonally ( T & obj)
inherited

Center this object horizontally within obj.

Template Parameters
TAny type with getGlobalBounds().
Parameters
objContainer to center within.

◆ centerHorizonally() [2/4]

Center this object horizontally within obj.

Template Parameters
TAny type with getGlobalBounds().
Parameters
objContainer to center within.

◆ centerHorizonally() [3/4]

Center this object horizontally within obj.

Template Parameters
TAny type with getGlobalBounds().
Parameters
objContainer to center within.

◆ centerHorizonally() [4/4]

template<class T>
void ml::Positionable::centerHorizonally ( T & obj)
inherited

Center this object horizontally within obj.

Template Parameters
TAny type with getGlobalBounds().
Parameters
objContainer to center within.

◆ centerText() [1/2]

void ml::Positionable::centerText ( sf::Text & obj)
inherited

Center an sf::Text object within this object's bounds.

Convenience overload for the common pattern of centering a text label inside a button or panel.

Parameters
objThe sf::Text to reposition.

◆ centerText() [2/2]

void ml::Positionable::centerText ( sf::Text & obj)
inherited

Center an sf::Text object within this object's bounds.

Convenience overload for the common pattern of centering a text label inside a button or panel.

Parameters
objThe sf::Text to reposition.

◆ centerVertically() [1/4]

void ml::Positionable::centerVertically ( T & obj)
inherited

Center this object vertically within obj.

Template Parameters
TAny type with getGlobalBounds().
Parameters
objContainer to center within.

◆ centerVertically() [2/4]

Center this object vertically within obj.

Template Parameters
TAny type with getGlobalBounds().
Parameters
objContainer to center within.

◆ centerVertically() [3/4]

Center this object vertically within obj.

Template Parameters
TAny type with getGlobalBounds().
Parameters
objContainer to center within.

◆ centerVertically() [4/4]

template<class T>
void ml::Positionable::centerVertically ( T & obj)
inherited

Center this object vertically within obj.

Template Parameters
TAny type with getGlobalBounds().
Parameters
objContainer to center within.

◆ checkFlag() [1/3]

bool ml::FlagManager< Flag >::checkFlag ( State state) const
inherited

Return the current value of a flag.

Returns false for any flag that has never been explicitly set.

Parameters
stateThe flag to query.
Returns
true if the flag is enabled; false otherwise.

◆ checkFlag() [2/3]

bool ml::FlagManager< Flag >::checkFlag ( State state) const
inherited

Return the current value of a flag.

Returns false for any flag that has never been explicitly set.

Parameters
stateThe flag to query.
Returns
true if the flag is enabled; false otherwise.

◆ checkFlag() [3/3]

bool ml::FlagManager< Flag >::checkFlag ( State state) const
inherited

Return the current value of a flag.

Returns false for any flag that has never been explicitly set.

Parameters
stateThe flag to query.
Returns
true if the flag is enabled; false otherwise.

◆ clear()

void ml::CoreManager< Core >::clear ( )
inherited

Remove all registered objects.

If the collection is currently being iterated, the clear is deferred. After this call (or after the deferred clear executes), getComponents() returns an empty vector.

◆ clearDragBounds() [1/2]

void ml::Draggable::clearDragBounds ( )
inherited

Remove any previously set drag bounds.

After this call the component can be dragged freely across the window with no position clamping. Has no effect if no bounds were set.

◆ clearDragBounds() [2/2]

void ml::Draggable::clearDragBounds ( )
inherited

Remove any previously set drag bounds.

After this call the component can be dragged freely across the window with no position clamping. Has no effect if no bounds were set.

◆ clearPending() [1/2]

void ml::DeferredOperationsManager< CoreManager< Core > >::clearPending ( )
staticinherited

Discard all pending operations without executing them.

Use during application shutdown or full reset when executing the queued operations would be unsafe (e.g., the objects they reference have already been destroyed).

◆ clearPending() [2/2]

Discard all pending operations without executing them.

Use during application shutdown or full reset when executing the queued operations would be unsafe (e.g., the objects they reference have already been destroyed).

◆ deferOrExecute() [1/2]

void ml::DeferredOperationsManager< CoreManager< Core > >::deferOrExecute ( std::function< void()> operation)
staticprotectedinherited

Execute operation now if safe, otherwise queue it.

If busyDepth > 0 the operation is appended to pendingOperations and will run when the current iteration completes. If the manager is idle the operation executes immediately.

Parameters
operationThe callable to execute or defer.

◆ deferOrExecute() [2/2]

void ml::DeferredOperationsManager< CoreManager< Core > >::deferOrExecute ( std::function< void()> operation)
staticprotectedinherited

Execute operation now if safe, otherwise queue it.

If busyDepth > 0 the operation is appended to pendingOperations and will run when the current iteration completes. If the manager is idle the operation executes immediately.

Parameters
operationThe callable to execute or defer.

◆ disableFlag() [1/3]

void ml::FlagManager< Flag >::disableFlag ( State state)
inherited

Set a flag to false.

Parameters
stateThe flag to disable.

◆ disableFlag() [2/3]

void ml::FlagManager< Flag >::disableFlag ( State state)
inherited

Set a flag to false.

Parameters
stateThe flag to disable.

◆ disableFlag() [3/3]

void ml::FlagManager< Flag >::disableFlag ( State state)
inherited

Set a flag to false.

Parameters
stateThe flag to disable.

◆ draw()

void ml::Panel::draw ( sf::RenderTarget & target,
sf::RenderStates states ) const
overridevirtual

Draw this graphic to an SFML render target.

Delegates to T::draw after applying any render states returned by getRenderStates() (e.g., a shader set on this component).

Parameters
targetSFML render target (window or texture).
statesCurrent render states (transform, blend mode, etc.).

Reimplemented from ml::Graphic< ml::RoundedRectangle >.

◆ enableFlag() [1/3]

void ml::FlagManager< Flag >::enableFlag ( State state)
inherited

Set a flag to true.

Parameters
stateThe flag to enable.

◆ enableFlag() [2/3]

void ml::FlagManager< Flag >::enableFlag ( State state)
inherited

Set a flag to true.

Parameters
stateThe flag to enable.

◆ enableFlag() [3/3]

void ml::FlagManager< Flag >::enableFlag ( State state)
inherited

Set a flag to true.

Parameters
stateThe flag to enable.

◆ endBusy() [1/2]

void ml::DeferredOperationsManager< CoreManager< Core > >::endBusy ( )
staticprotectedinherited

Signal that iteration has ended; flush pending operations.

Decrements the busy-depth counter. When the counter reaches zero, all operations in pendingOperations are executed in FIFO order and the queue is cleared.

◆ endBusy() [2/2]

void ml::DeferredOperationsManager< CoreManager< Core > >::endBusy ( )
staticprotectedinherited

Signal that iteration has ended; flush pending operations.

Decrements the busy-depth counter. When the counter reaches zero, all operations in pendingOperations are executed in FIFO order and the queue is cleared.

◆ getComponents()

const std::vector< Core * > & ml::CoreManager< Core >::getComponents ( ) const
nodiscardinherited

Return a read-only view of all currently registered objects.

The returned reference is valid until the next structural modification (add or remove). Do not store the reference across frames.

Returns
Const reference to the internal component pointer vector.

◆ getCornerPointCount()

unsigned int ml::RoundedRectangle::getCornerPointCount ( ) const
inherited

Return the current per-corner vertex count.

Returns
Number of vertices per corner arc.

◆ getGlobalBounds()

sf::FloatRect ml::Graphic< ml::RoundedRectangle >::getGlobalBounds ( ) const
overridevirtualinherited

Return the axis-aligned bounding box in world space.

Delegates to T::getGlobalBounds(). Used by UIManager for hit-testing (click, hover) and by layout helpers.

Returns
Bounding rectangle in world coordinates.

Implements ml::Positionable.

◆ getPoint()

virtual sf::Vector2f ml::RoundedRectangle::getPoint ( std::size_t index) const
overridevirtualinherited

Return the position of a single vertex.

Required by sf::Shape for geometry generation.

Parameters
indexVertex index in [0, getPointCount()).
Returns
Local-space position of the vertex.

Implements sf::Shape.

◆ getPointCount()

virtual std::size_t ml::RoundedRectangle::getPointCount ( ) const
overridevirtualinherited

Return the total number of shape vertices.

Equal to cornerPointCount × 4 (one arc per corner). Required by sf::Shape.

Returns
Total vertex count.

Implements sf::Shape.

◆ getPosition()

sf::Vector2f ml::Graphic< ml::RoundedRectangle >::getPosition ( ) const
overridevirtualinherited

Return the current world-space position.

Delegates to T::getPosition.

Returns
Current position in world coordinates.

Implements ml::Positionable.

◆ getRadius()

float ml::RoundedRectangle::getRadius ( ) const
inherited

Return the current corner arc radius.

Returns
Corner radius in pixels.

◆ getRenderStates() [1/2]

virtual sf::RenderStates ml::Core::getRenderStates ( ) const
inlinevirtualinherited

Returns the SFML render states to use when drawing this object.

The default implementation returns a default-constructed sf::RenderStates (no transform, no texture, no blend mode override). Override to apply a custom shader, blend mode, or transform.

Returns
sf::RenderStates to pass to the SFML draw call.

Definition at line 82 of file Core.h.

◆ getRenderStates() [2/2]

virtual sf::RenderStates ml::Core::getRenderStates ( ) const
inlinevirtualinherited

Returns the SFML render states to use when drawing this object.

The default implementation returns a default-constructed sf::RenderStates (no transform, no texture, no blend mode override). Override to apply a custom shader, blend mode, or transform.

Returns
sf::RenderStates to pass to the SFML draw call.

Definition at line 82 of file Core.h.

◆ getSize()

const sf::Vector2f & ml::RoundedRectangle::getSize ( ) const
inherited

Return the current size of the rectangle.

Returns
Width and height in pixels.

◆ getState() [1/3]

std::enable_if_t<!std::is_void_v< ml::RoundedRectangle >, ml::RoundedRectangle > ml::StateManager< extract_State< DraggableManifest >::type >::getState ( ) const
inherited

Return the current state value.

Returns
The active StateEnum value.

◆ getState() [2/3]

std::enable_if_t<!std::is_void_v< ml::RoundedRectangle >, ml::RoundedRectangle > ml::StateManager< extract_State< DraggableManifest >::type >::getState ( ) const
inherited

Return the current state value.

Returns
The active StateEnum value.

◆ getState() [3/3]

std::enable_if_t<!std::is_void_v< T >, T > ml::StateManager< extract_State< PanelManifest >::type >::getState ( ) const
inherited

Return the current state value.

Returns
The active StateEnum value.

◆ Graphic() [1/2]

ml::Graphic< T >::Graphic ( )
inherited

◆ Graphic() [2/2]

template<typename U>
ml::Graphic< T >::Graphic ( const U & obj)
explicitinherited

Construct from an existing SFML object of type U.

Template Parameters
USource type, must be compatible with T's copy/move constructor.
Parameters
objThe source object to copy-construct from.

◆ isBusy() [1/2]

bool ml::DeferredOperationsManager< CoreManager< Core > >::isBusy ( )
staticinherited

Return true if the manager is currently iterating.

Can be used by external code that needs to know whether a destructive operation will be deferred.

Returns
true when busyDepth > 0.

◆ isBusy() [2/2]

bool ml::DeferredOperationsManager< CoreManager< Core > >::isBusy ( )
staticinherited

Return true if the manager is currently iterating.

Can be used by external code that needs to know whether a destructive operation will be deferred.

Returns
true when busyDepth > 0.

◆ isScrolling() [1/2]

bool ml::Positionable::isScrolling ( )
inherited

Return true while a moveTo or moveDistance animation is in progress.

Returns
true if the waypoint queue is non-empty.

◆ isScrolling() [2/2]

bool ml::Positionable::isScrolling ( )
inherited

Return true while a moveTo or moveDistance animation is in progress.

Returns
true if the waypoint queue is non-empty.

◆ isSettingsLocked()

bool ml::Themeable::isSettingsLocked ( ) const
inlinenodiscardinherited

Return true if applySettings() is currently blocked.

Definition at line 115 of file Themeable.h.

◆ isState() [1/5]

std::enable_if_t<!std::is_void_v< T >, bool > ml::StateManager< extract_State< DraggableManifest >::type >::isState ( T state) const
inherited

Return true if currently in state.

Parameters
stateThe state value to compare against.
Returns
true if the current state equals state.

◆ isState() [2/5]

std::enable_if_t<!std::is_void_v< ml::RoundedRectangle >, bool > ml::StateManager< extract_State< DraggableManifest >::type >::isState ( ml::RoundedRectangle state) const
inherited

Return true if currently in state.

Parameters
stateThe state value to compare against.
Returns
true if the current state equals state.

◆ isState() [3/5]

std::enable_if_t<!std::is_void_v< ml::RoundedRectangle >, bool > ml::StateManager< extract_State< DraggableManifest >::type >::isState ( ml::RoundedRectangle state) const
inherited

Return true if currently in state.

Parameters
stateThe state value to compare against.
Returns
true if the current state equals state.

◆ isState() [4/5]

std::enable_if_t<!std::is_void_v< T >, bool > ml::StateManager< extract_State< DraggableManifest >::type >::isState ( T state) const
inherited

Return true if currently in state.

Parameters
stateThe state value to compare against.
Returns
true if the current state equals state.

◆ isState() [5/5]

std::enable_if_t<!std::is_void_v< T >, bool > ml::StateManager< extract_State< PanelManifest >::type >::isState ( T state) const
inherited

Return true if currently in state.

Parameters
stateThe state value to compare against.
Returns
true if the current state equals state.

◆ isThemeLocked()

bool ml::Themeable::isThemeLocked ( ) const
inlinenodiscardinherited

Return true if this component ignores theme changes.

Definition at line 97 of file Themeable.h.

◆ lockSettings()

void ml::Themeable::lockSettings ( )
inlineinherited

Prevent applySettings() from taking effect.

Explicit individual setter calls still work normally. Only blocks the batch applySettings() path.

Definition at line 107 of file Themeable.h.

◆ lockTheme()

void ml::Themeable::lockTheme ( )
inlineinherited

Prevent automatic re-styling when the global theme changes.

The component keeps its current visual state. Explicit individual setter calls still work normally.

Definition at line 85 of file Themeable.h.

◆ moveDistance() [1/2]

void ml::Positionable::moveDistance ( sf::Vector2f distance,
float seconds = 1.f )
inherited

Animate by a relative offset from the current position.

Equivalent to moveTo(getPosition() + distance, seconds).

Parameters
distanceOffset in world coordinates to move by.
secondsDuration of the animation. Defaults to 1.0 s.

◆ moveDistance() [2/2]

void ml::Positionable::moveDistance ( sf::Vector2f distance,
float seconds = 1.f )
inherited

Animate by a relative offset from the current position.

Equivalent to moveTo(getPosition() + distance, seconds).

Parameters
distanceOffset in world coordinates to move by.
secondsDuration of the animation. Defaults to 1.0 s.

◆ moveTo() [1/4]

void ml::Positionable::moveTo ( sf::FloatRect position,
float seconds = 1.f )
inherited

Animate to a position defined by a FloatRect origin.

Convenience overload that uses the top-left of position as the target. Useful when positioning relative to layout rects.

Parameters
positionRect whose origin is the animation target.
secondsDuration of the animation. Defaults to 1.0 s.

◆ moveTo() [2/4]

void ml::Positionable::moveTo ( sf::FloatRect position,
float seconds = 1.f )
inherited

Animate to a position defined by a FloatRect origin.

Convenience overload that uses the top-left of position as the target. Useful when positioning relative to layout rects.

Parameters
positionRect whose origin is the animation target.
secondsDuration of the animation. Defaults to 1.0 s.

◆ moveTo() [3/4]

void ml::Positionable::moveTo ( sf::Vector2f position,
float seconds = 1.f )
inherited

Animate to an absolute world-space position.

Populates an internal waypoint queue and advances through it on successive onUpdate ticks. The object's position at the start of the call is the implicit start point.

Parameters
positionTarget position in world coordinates.
secondsDuration of the animation. Defaults to 1.0 s.

◆ moveTo() [4/4]

void ml::Positionable::moveTo ( sf::Vector2f position,
float seconds = 1.f )
inherited

Animate to an absolute world-space position.

Populates an internal waypoint queue and advances through it on successive onUpdate ticks. The object's position at the start of the call is the implicit start point.

Parameters
positionTarget position in world coordinates.
secondsDuration of the animation. Defaults to 1.0 s.

◆ onBlur() [1/4]

void ml::Focusable::onBlur ( std::function< void()> callback)
inherited

Register a no-argument callback invoked when this component loses keyboard focus.

Parameters
callbackFunction invoked with no arguments when focus is lost.

◆ onBlur() [2/4]

void ml::Focusable::onBlur ( std::function< void()> callback)
inherited

Register a no-argument callback invoked when this component loses keyboard focus.

Parameters
callbackFunction invoked with no arguments when focus is lost.

◆ onBlur() [3/4]

void ml::Focusable::onBlur ( std::function< void(const std::optional< sf::Event > &)> callback)
inherited

Register a callback invoked when this component loses keyboard focus, receiving the raw SFML event.

Parameters
callbackFunction invoked with the SFML event when focus is lost.

◆ onBlur() [4/4]

void ml::Focusable::onBlur ( std::function< void(const std::optional< sf::Event > &)> callback)
inherited

Register a callback invoked when this component loses keyboard focus, receiving the raw SFML event.

Parameters
callbackFunction invoked with the SFML event when focus is lost.

◆ onClick() [1/4]

void ml::Clickable::onClick ( std::function< void()> callback)
inherited

Register a no-argument callback invoked when this component is clicked.

Replaces any previously registered onClick callback. The callback fires after the mouse button is released over this component.

Parameters
callbackFunction invoked with no arguments on click.

◆ onClick() [2/4]

void ml::Clickable::onClick ( std::function< void()> callback)
inherited

Register a no-argument callback invoked when this component is clicked.

Replaces any previously registered onClick callback. The callback fires after the mouse button is released over this component.

Parameters
callbackFunction invoked with no arguments on click.

◆ onClick() [3/4]

void ml::Clickable::onClick ( std::function< void(const std::optional< sf::Event > &event)> callback)
inherited

Register a callback invoked when this component is clicked, receiving the raw SFML event.

Replaces any previously registered onClick callback.

Parameters
callbackFunction invoked with the SFML event on click.

◆ onClick() [4/4]

void ml::Clickable::onClick ( std::function< void(const std::optional< sf::Event > &event)> callback)
inherited

Register a callback invoked when this component is clicked, receiving the raw SFML event.

Replaces any previously registered onClick callback.

Parameters
callbackFunction invoked with the SFML event on click.

◆ onFocus() [1/4]

void ml::Focusable::onFocus ( std::function< void()> callback)
inherited

Register a no-argument callback invoked when this component gains keyboard focus.

Parameters
callbackFunction invoked with no arguments when focus is gained.

◆ onFocus() [2/4]

void ml::Focusable::onFocus ( std::function< void()> callback)
inherited

Register a no-argument callback invoked when this component gains keyboard focus.

Parameters
callbackFunction invoked with no arguments when focus is gained.

◆ onFocus() [3/4]

void ml::Focusable::onFocus ( std::function< void(const std::optional< sf::Event > &)> callback)
inherited

Register a callback invoked when this component gains keyboard focus, receiving the raw SFML event.

Parameters
callbackFunction invoked with the SFML event when focus is gained.

◆ onFocus() [4/4]

void ml::Focusable::onFocus ( std::function< void(const std::optional< sf::Event > &)> callback)
inherited

Register a callback invoked when this component gains keyboard focus, receiving the raw SFML event.

Parameters
callbackFunction invoked with the SFML event when focus is gained.

◆ onHover() [1/4]

void ml::Hoverable::onHover ( std::function< void()> callback)
inherited

Register a no-argument callback invoked when the mouse enters this component's bounds.

Parameters
callbackFunction invoked with no arguments on hover enter.

◆ onHover() [2/4]

void ml::Hoverable::onHover ( std::function< void()> callback)
inherited

Register a no-argument callback invoked when the mouse enters this component's bounds.

Parameters
callbackFunction invoked with no arguments on hover enter.

◆ onHover() [3/4]

void ml::Hoverable::onHover ( std::function< void(const std::optional< sf::Event > &event)> callback)
inherited

Register a callback invoked when the mouse enters this component's bounds, receiving the raw SFML event.

Parameters
callbackFunction invoked with the SFML event on hover enter.

◆ onHover() [4/4]

void ml::Hoverable::onHover ( std::function< void(const std::optional< sf::Event > &event)> callback)
inherited

Register a callback invoked when the mouse enters this component's bounds, receiving the raw SFML event.

Parameters
callbackFunction invoked with the SFML event on hover enter.

◆ onKeypress() [1/4]

void ml::Keyable::onKeypress ( std::function< void()> callback)
inherited

Register a no-argument callback invoked when a key is pressed while this component has focus.

Parameters
callbackFunction invoked with no arguments on key press.

◆ onKeypress() [2/4]

void ml::Keyable::onKeypress ( std::function< void()> callback)
inherited

Register a no-argument callback invoked when a key is pressed while this component has focus.

Parameters
callbackFunction invoked with no arguments on key press.

◆ onKeypress() [3/4]

void ml::Keyable::onKeypress ( std::function< void(const std::optional< sf::Event > &)> callback)
inherited

Register a callback invoked when a key is pressed while this component has focus, receiving the raw SFML event.

Parameters
callbackFunction invoked with the SFML event on key press.

◆ onKeypress() [4/4]

void ml::Keyable::onKeypress ( std::function< void(const std::optional< sf::Event > &)> callback)
inherited

Register a callback invoked when a key is pressed while this component has focus, receiving the raw SFML event.

Parameters
callbackFunction invoked with the SFML event on key press.

◆ onKeyRelease() [1/4]

void ml::Keyable::onKeyRelease ( std::function< void()> callback)
inherited

Register a no-argument callback invoked when a key is released while this component has focus.

Parameters
callbackFunction invoked with no arguments on key release.

◆ onKeyRelease() [2/4]

void ml::Keyable::onKeyRelease ( std::function< void()> callback)
inherited

Register a no-argument callback invoked when a key is released while this component has focus.

Parameters
callbackFunction invoked with no arguments on key release.

◆ onKeyRelease() [3/4]

void ml::Keyable::onKeyRelease ( std::function< void(const std::optional< sf::Event > &)> callback)
inherited

Register a callback invoked when a key is released while this component has focus, receiving the raw SFML event.

Parameters
callbackFunction invoked with the SFML event on key release.

◆ onKeyRelease() [4/4]

void ml::Keyable::onKeyRelease ( std::function< void(const std::optional< sf::Event > &)> callback)
inherited

Register a callback invoked when a key is released while this component has focus, receiving the raw SFML event.

Parameters
callbackFunction invoked with the SFML event on key release.

◆ onMouseMoved() [1/4]

void ml::Scrollable::onMouseMoved ( std::function< void()> callback)
inherited

Register a no-argument callback invoked whenever the mouse moves anywhere in the window.

Unlike onHover, this fires for every component regardless of whether the cursor is over it.

Parameters
callbackFunction invoked with no arguments on mouse move.

◆ onMouseMoved() [2/4]

void ml::Scrollable::onMouseMoved ( std::function< void()> callback)
inherited

Register a no-argument callback invoked whenever the mouse moves anywhere in the window.

Unlike onHover, this fires for every component regardless of whether the cursor is over it.

Parameters
callbackFunction invoked with no arguments on mouse move.

◆ onMouseMoved() [3/4]

void ml::Scrollable::onMouseMoved ( std::function< void(const std::optional< sf::Event > &)> callback)
inherited

Register a callback invoked whenever the mouse moves anywhere in the window, receiving the raw SFML event.

Parameters
callbackFunction invoked with the SFML event on mouse move.

◆ onMouseMoved() [4/4]

void ml::Scrollable::onMouseMoved ( std::function< void(const std::optional< sf::Event > &)> callback)
inherited

Register a callback invoked whenever the mouse moves anywhere in the window, receiving the raw SFML event.

Parameters
callbackFunction invoked with the SFML event on mouse move.

◆ onMousePressed() [1/4]

void ml::Scrollable::onMousePressed ( std::function< void()> callback)
inherited

Register a no-argument callback invoked when a mouse button is pressed anywhere in the window.

This fires before click logic is evaluated. Prefer onClick for standard click handling.

Parameters
callbackFunction invoked with no arguments on mouse press.

◆ onMousePressed() [2/4]

void ml::Scrollable::onMousePressed ( std::function< void()> callback)
inherited

Register a no-argument callback invoked when a mouse button is pressed anywhere in the window.

This fires before click logic is evaluated. Prefer onClick for standard click handling.

Parameters
callbackFunction invoked with no arguments on mouse press.

◆ onMousePressed() [3/4]

void ml::Scrollable::onMousePressed ( std::function< void(const std::optional< sf::Event > &)> callback)
inherited

Register a callback invoked when a mouse button is pressed, receiving the raw SFML event.

Parameters
callbackFunction invoked with the SFML event on mouse press.

◆ onMousePressed() [4/4]

void ml::Scrollable::onMousePressed ( std::function< void(const std::optional< sf::Event > &)> callback)
inherited

Register a callback invoked when a mouse button is pressed, receiving the raw SFML event.

Parameters
callbackFunction invoked with the SFML event on mouse press.

◆ onMouseReleased() [1/4]

void ml::Scrollable::onMouseReleased ( std::function< void()> callback)
inherited

Register a no-argument callback invoked when a mouse button is released anywhere in the window.

This fires before click logic is evaluated. Prefer onClick for standard click handling.

Parameters
callbackFunction invoked with no arguments on mouse release.

◆ onMouseReleased() [2/4]

void ml::Scrollable::onMouseReleased ( std::function< void()> callback)
inherited

Register a no-argument callback invoked when a mouse button is released anywhere in the window.

This fires before click logic is evaluated. Prefer onClick for standard click handling.

Parameters
callbackFunction invoked with no arguments on mouse release.

◆ onMouseReleased() [3/4]

void ml::Scrollable::onMouseReleased ( std::function< void(const std::optional< sf::Event > &)> callback)
inherited

Register a callback invoked when a mouse button is released, receiving the raw SFML event.

Parameters
callbackFunction invoked with the SFML event on mouse release.

◆ onMouseReleased() [4/4]

void ml::Scrollable::onMouseReleased ( std::function< void(const std::optional< sf::Event > &)> callback)
inherited

Register a callback invoked when a mouse button is released, receiving the raw SFML event.

Parameters
callbackFunction invoked with the SFML event on mouse release.

◆ onScroll() [1/4]

void ml::Scrollable::onScroll ( std::function< void()> callback)
inherited

Register a no-argument callback invoked when the mouse wheel is scrolled while the cursor is over this component.

Parameters
callbackFunction invoked with no arguments on scroll.

◆ onScroll() [2/4]

void ml::Scrollable::onScroll ( std::function< void()> callback)
inherited

Register a no-argument callback invoked when the mouse wheel is scrolled while the cursor is over this component.

Parameters
callbackFunction invoked with no arguments on scroll.

◆ onScroll() [3/4]

void ml::Scrollable::onScroll ( std::function< void(const std::optional< sf::Event > &)> callback)
inherited

Register a callback invoked when the mouse wheel is scrolled while the cursor is over this component, receiving the SFML event.

Parameters
callbackFunction invoked with the SFML event on scroll.

◆ onScroll() [4/4]

void ml::Scrollable::onScroll ( std::function< void(const std::optional< sf::Event > &)> callback)
inherited

Register a callback invoked when the mouse wheel is scrolled while the cursor is over this component, receiving the SFML event.

Parameters
callbackFunction invoked with the SFML event on scroll.

◆ onStateEnter() [1/5]

std::enable_if_t<!std::is_void_v< T > > ml::StateManager< extract_State< DraggableManifest >::type >::onStateEnter ( std::function< void(T)> callback)
inherited

Register a callback invoked after each state transition.

The callback receives the newly entered state. Only one enter callback is active at a time; calling this again replaces it.

Parameters
callbackFunction called with the new state after each transition.

◆ onStateEnter() [2/5]

std::enable_if_t<!std::is_void_v< ml::RoundedRectangle > > ml::StateManager< extract_State< DraggableManifest >::type >::onStateEnter ( std::function< void(ml::RoundedRectangle)> callback)
inherited

Register a callback invoked after each state transition.

The callback receives the newly entered state. Only one enter callback is active at a time; calling this again replaces it.

Parameters
callbackFunction called with the new state after each transition.

◆ onStateEnter() [3/5]

std::enable_if_t<!std::is_void_v< ml::RoundedRectangle > > ml::StateManager< extract_State< DraggableManifest >::type >::onStateEnter ( std::function< void(ml::RoundedRectangle)> callback)
inherited

Register a callback invoked after each state transition.

The callback receives the newly entered state. Only one enter callback is active at a time; calling this again replaces it.

Parameters
callbackFunction called with the new state after each transition.

◆ onStateEnter() [4/5]

std::enable_if_t<!std::is_void_v< T > > ml::StateManager< extract_State< DraggableManifest >::type >::onStateEnter ( std::function< void(T)> callback)
inherited

Register a callback invoked after each state transition.

The callback receives the newly entered state. Only one enter callback is active at a time; calling this again replaces it.

Parameters
callbackFunction called with the new state after each transition.

◆ onStateEnter() [5/5]

std::enable_if_t<!std::is_void_v< T > > ml::StateManager< extract_State< PanelManifest >::type >::onStateEnter ( std::function< void(T)> callback)
inherited

Register a callback invoked after each state transition.

The callback receives the newly entered state. Only one enter callback is active at a time; calling this again replaces it.

Parameters
callbackFunction called with the new state after each transition.

◆ onStateExit() [1/5]

std::enable_if_t<!std::is_void_v< T > > ml::StateManager< extract_State< DraggableManifest >::type >::onStateExit ( std::function< void(T)> callback)
inherited

Register a callback invoked before each state transition.

The callback receives the state being left. Only one exit callback is active at a time; calling this again replaces it.

Parameters
callbackFunction called with the old state before each transition.

◆ onStateExit() [2/5]

std::enable_if_t<!std::is_void_v< ml::RoundedRectangle > > ml::StateManager< extract_State< DraggableManifest >::type >::onStateExit ( std::function< void(ml::RoundedRectangle)> callback)
inherited

Register a callback invoked before each state transition.

The callback receives the state being left. Only one exit callback is active at a time; calling this again replaces it.

Parameters
callbackFunction called with the old state before each transition.

◆ onStateExit() [3/5]

std::enable_if_t<!std::is_void_v< ml::RoundedRectangle > > ml::StateManager< extract_State< DraggableManifest >::type >::onStateExit ( std::function< void(ml::RoundedRectangle)> callback)
inherited

Register a callback invoked before each state transition.

The callback receives the state being left. Only one exit callback is active at a time; calling this again replaces it.

Parameters
callbackFunction called with the old state before each transition.

◆ onStateExit() [4/5]

std::enable_if_t<!std::is_void_v< T > > ml::StateManager< extract_State< DraggableManifest >::type >::onStateExit ( std::function< void(T)> callback)
inherited

Register a callback invoked before each state transition.

The callback receives the state being left. Only one exit callback is active at a time; calling this again replaces it.

Parameters
callbackFunction called with the old state before each transition.

◆ onStateExit() [5/5]

std::enable_if_t<!std::is_void_v< T > > ml::StateManager< extract_State< PanelManifest >::type >::onStateExit ( std::function< void(T)> callback)
inherited

Register a callback invoked before each state transition.

The callback receives the state being left. Only one exit callback is active at a time; calling this again replaces it.

Parameters
callbackFunction called with the old state before each transition.

◆ onTextEntered() [1/4]

void ml::Keyable::onTextEntered ( std::function< void()> callback)
inherited

Register a no-argument callback invoked when a unicode character is entered while this component has focus.

Prefer onTextEntered over onKeypress for text input — it handles modifier keys, input method editors (IME), and non-ASCII characters correctly.

Parameters
callbackFunction invoked with no arguments when text is entered.

◆ onTextEntered() [2/4]

void ml::Keyable::onTextEntered ( std::function< void()> callback)
inherited

Register a no-argument callback invoked when a unicode character is entered while this component has focus.

Prefer onTextEntered over onKeypress for text input — it handles modifier keys, input method editors (IME), and non-ASCII characters correctly.

Parameters
callbackFunction invoked with no arguments when text is entered.

◆ onTextEntered() [3/4]

void ml::Keyable::onTextEntered ( std::function< void(const std::optional< sf::Event > &)> callback)
inherited

Register a callback invoked when a unicode character is entered while this component has focus, receiving the raw SFML event.

Parameters
callbackFunction invoked with the SFML event when text is entered.

◆ onTextEntered() [4/4]

void ml::Keyable::onTextEntered ( std::function< void(const std::optional< sf::Event > &)> callback)
inherited

Register a callback invoked when a unicode character is entered while this component has focus, receiving the raw SFML event.

Parameters
callbackFunction invoked with the SFML event when text is entered.

◆ onThemeApplied()

void ml::Panel::onThemeApplied ( const Theme & theme)
overrideprotectedvirtual

Called by ThemeManager when the active theme changes.

Override in your component to re-style from the new theme. Always check isThemeLocked() first:

void onThemeApplied(const Theme& theme) override
{
if (isThemeLocked()) return;
MySettings::applyTheme(theme);
syncFromSettings();
}
void onThemeApplied(const Theme &theme) override
Called by ThemeManager when the active theme changes.
bool isThemeLocked() const
Return true if this component ignores theme changes.
Definition Themeable.h:97
Universal design token set applied across all Themeable components.
Definition Theme.h:70
Parameters
themeThe newly active theme.

Implements ml::Themeable.

◆ onUnhover() [1/4]

void ml::Hoverable::onUnhover ( std::function< void()> callback)
inherited

Register a no-argument callback invoked when the mouse leaves this component's bounds.

Parameters
callbackFunction invoked with no arguments on hover leave.

◆ onUnhover() [2/4]

void ml::Hoverable::onUnhover ( std::function< void()> callback)
inherited

Register a no-argument callback invoked when the mouse leaves this component's bounds.

Parameters
callbackFunction invoked with no arguments on hover leave.

◆ onUnhover() [3/4]

void ml::Hoverable::onUnhover ( std::function< void(const std::optional< sf::Event > &event)> callback)
inherited

Register a callback invoked when the mouse leaves this component's bounds, receiving the raw SFML event.

Parameters
callbackFunction invoked with the SFML event on hover leave.

◆ onUnhover() [4/4]

void ml::Hoverable::onUnhover ( std::function< void(const std::optional< sf::Event > &event)> callback)
inherited

Register a callback invoked when the mouse leaves this component's bounds, receiving the raw SFML event.

Parameters
callbackFunction invoked with the SFML event on hover leave.

◆ onUpdate() [1/4]

void ml::Updatable::onUpdate ( std::function< void()> callback)
inherited

Register a no-argument callback invoked every frame.

The callback fires once per frame before the draw pass. All active components receive this regardless of hover or focus state.

Parameters
callbackFunction invoked with no arguments each frame.

◆ onUpdate() [2/4]

void ml::Updatable::onUpdate ( std::function< void()> callback)
inherited

Register a no-argument callback invoked every frame.

The callback fires once per frame before the draw pass. All active components receive this regardless of hover or focus state.

Parameters
callbackFunction invoked with no arguments each frame.

◆ onUpdate() [3/4]

void ml::Updatable::onUpdate ( std::function< void(const std::optional< sf::Event > &)> callback)
inherited

Register a callback invoked every frame, receiving the SFML event.

For frame events the std::optional<sf::Event> is always std::nullopt — use the no-argument overload unless you specifically need the optional parameter in your callback signature.

Parameters
callbackFunction invoked with the SFML event (always nullopt) each frame.

◆ onUpdate() [4/4]

void ml::Updatable::onUpdate ( std::function< void(const std::optional< sf::Event > &)> callback)
inherited

Register a callback invoked every frame, receiving the SFML event.

For frame events the std::optional<sf::Event> is always std::nullopt — use the no-argument overload unless you specifically need the optional parameter in your callback signature.

Parameters
callbackFunction invoked with the SFML event (always nullopt) each frame.

◆ onWindowFocusGained() [1/4]

void ml::Updatable::onWindowFocusGained ( std::function< void()> callback)
inherited

Register a no-argument callback invoked when the application window gains OS focus.

Parameters
callbackFunction invoked with no arguments when focus is gained.

◆ onWindowFocusGained() [2/4]

void ml::Updatable::onWindowFocusGained ( std::function< void()> callback)
inherited

Register a no-argument callback invoked when the application window gains OS focus.

Parameters
callbackFunction invoked with no arguments when focus is gained.

◆ onWindowFocusGained() [3/4]

void ml::Updatable::onWindowFocusGained ( std::function< void(const std::optional< sf::Event > &)> callback)
inherited

Register a callback invoked when the application window gains OS focus, receiving the raw SFML event.

Parameters
callbackFunction invoked with the SFML event when focus is gained.

◆ onWindowFocusGained() [4/4]

void ml::Updatable::onWindowFocusGained ( std::function< void(const std::optional< sf::Event > &)> callback)
inherited

Register a callback invoked when the application window gains OS focus, receiving the raw SFML event.

Parameters
callbackFunction invoked with the SFML event when focus is gained.

◆ onWindowFocusLost() [1/4]

void ml::Updatable::onWindowFocusLost ( std::function< void()> callback)
inherited

Register a no-argument callback invoked when the application window loses OS focus.

Parameters
callbackFunction invoked with no arguments when focus is lost.

◆ onWindowFocusLost() [2/4]

void ml::Updatable::onWindowFocusLost ( std::function< void()> callback)
inherited

Register a no-argument callback invoked when the application window loses OS focus.

Parameters
callbackFunction invoked with no arguments when focus is lost.

◆ onWindowFocusLost() [3/4]

void ml::Updatable::onWindowFocusLost ( std::function< void(const std::optional< sf::Event > &)> callback)
inherited

Register a callback invoked when the application window loses OS focus, receiving the raw SFML event.

Parameters
callbackFunction invoked with the SFML event when focus is lost.

◆ onWindowFocusLost() [4/4]

void ml::Updatable::onWindowFocusLost ( std::function< void(const std::optional< sf::Event > &)> callback)
inherited

Register a callback invoked when the application window loses OS focus, receiving the raw SFML event.

Parameters
callbackFunction invoked with the SFML event when focus is lost.

◆ onWindowResized() [1/4]

void ml::Updatable::onWindowResized ( std::function< void()> callback)
inherited

Register a no-argument callback invoked when the application window is resized.

Parameters
callbackFunction invoked with no arguments on window resize.

◆ onWindowResized() [2/4]

void ml::Updatable::onWindowResized ( std::function< void()> callback)
inherited

Register a no-argument callback invoked when the application window is resized.

Parameters
callbackFunction invoked with no arguments on window resize.

◆ onWindowResized() [3/4]

void ml::Updatable::onWindowResized ( std::function< void(const std::optional< sf::Event > &)> callback)
inherited

Register a callback invoked when the application window is resized, receiving the raw SFML event.

Parameters
callbackFunction invoked with the SFML event on window resize.

◆ onWindowResized() [4/4]

void ml::Updatable::onWindowResized ( std::function< void(const std::optional< sf::Event > &)> callback)
inherited

Register a callback invoked when the application window is resized, receiving the raw SFML event.

Parameters
callbackFunction invoked with the SFML event on window resize.

◆ operator const sf::Drawable &()

ml::Graphic< ml::RoundedRectangle >::operator const sf::Drawable & ( ) const
inherited

Implicit conversion to a const sf::Drawable reference.

Allows a Graphic to be passed wherever a raw sf::Drawable& is expected (e.g., window.draw()).

Returns
Const reference to this object as sf::Drawable.

◆ process() [1/6]

virtual void ml::EventReceiver::process ( const std::string & key,
const std::optional< sf::Event > & event )
virtualinherited

Invoke all callbacks registered for key.

Called by framework dispatchers. key is the string produced by EnumKey::get(eventEnum).

Parameters
keyString key identifying the event.
eventSFML event forwarded to each callback.

◆ process() [2/6]

virtual void ml::EventReceiver::process ( const std::string & key,
const std::optional< sf::Event > & event )
virtualinherited

Invoke all callbacks registered for key.

Called by framework dispatchers. key is the string produced by EnumKey::get(eventEnum).

Parameters
keyString key identifying the event.
eventSFML event forwarded to each callback.

◆ process() [3/6]

void ml::EventReceiver::process ( ENUM_TYPE eventName,
const std::optional< sf::Event > & event )
inherited

Invoke all callbacks registered for eventName.

Template overload that accepts any enum value directly, converting to a string key via EnumKey::get() internally.

Template Parameters
ENUM_TYPEAny enum type.
Parameters
eventNameThe enum value identifying the event.
eventSFML event forwarded to each callback.

◆ process() [4/6]

void ml::EventReceiver::process ( ENUM_TYPE eventName,
const std::optional< sf::Event > & event )
inherited

Invoke all callbacks registered for eventName.

Template overload that accepts any enum value directly, converting to a string key via EnumKey::get() internally.

Template Parameters
ENUM_TYPEAny enum type.
Parameters
eventNameThe enum value identifying the event.
eventSFML event forwarded to each callback.

◆ process() [5/6]

void ml::EventReceiver::process ( ENUM_TYPE eventName,
const std::optional< sf::Event > & event )
inherited

Invoke all callbacks registered for eventName.

Template overload that accepts any enum value directly, converting to a string key via EnumKey::get() internally.

Template Parameters
ENUM_TYPEAny enum type.
Parameters
eventNameThe enum value identifying the event.
eventSFML event forwarded to each callback.

◆ process() [6/6]

void ml::EventReceiver::process ( ENUM_TYPE eventName,
const std::optional< sf::Event > & event )
inherited

Invoke all callbacks registered for eventName.

Template overload that accepts any enum value directly, converting to a string key via EnumKey::get() internally.

Template Parameters
ENUM_TYPEAny enum type.
Parameters
eventNameThe enum value identifying the event.
eventSFML event forwarded to each callback.

◆ processPending() [1/2]

void ml::DeferredOperationsManager< CoreManager< Core > >::processPending ( )
staticinherited

Flush all pending operations immediately.

Normally called automatically by endBusy(). Provided as a public escape hatch for unusual teardown sequences.

Warning
Calling this while isBusy() is true can cause iterator invalidation in the currently running loop. Only call manually when you are certain it is safe.

◆ processPending() [2/2]

Flush all pending operations immediately.

Normally called automatically by endBusy(). Provided as a public escape hatch for unusual teardown sequences.

Warning
Calling this while isBusy() is true can cause iterator invalidation in the currently running loop. Only call manually when you are certain it is safe.

◆ publish() [1/2]

void ml::Subscribable::publish ( ENUM_TYPE event,
FilterCallback filter = [](EventReceiver&){ return true; },
SystemCallback resolve = nullptr,
SystemCallback reject = nullptr )
inherited

Fire an enum-keyed event to all matching subscribers.

Iterates all subscribers registered for event and invokes their callbacks for each subscriber that passes the optional filter. Optional resolve and reject system callbacks are called after each component passes or fails the filter respectively.

Template Parameters
ENUM_TYPEAny enum type.
Parameters
eventThe enum value identifying the event to fire.
filterOptional predicate; only subscribers for which this returns true receive the event. Defaults to accepting all subscribers.
resolveOptional callback invoked for each subscriber that passes the filter.
rejectOptional callback invoked for each subscriber that fails the filter.

◆ publish() [2/2]

void ml::Subscribable::publish ( ENUM_TYPE event,
FilterCallback filter = [](EventReceiver&){ return true; },
SystemCallback resolve = nullptr,
SystemCallback reject = nullptr )
inherited

Fire an enum-keyed event to all matching subscribers.

Iterates all subscribers registered for event and invokes their callbacks for each subscriber that passes the optional filter. Optional resolve and reject system callbacks are called after each component passes or fails the filter respectively.

Template Parameters
ENUM_TYPEAny enum type.
Parameters
eventThe enum value identifying the event to fire.
filterOptional predicate; only subscribers for which this returns true receive the event. Defaults to accepting all subscribers.
resolveOptional callback invoked for each subscriber that passes the filter.
rejectOptional callback invoked for each subscriber that fails the filter.

◆ removeComponent()

bool ml::Panel::removeComponent ( Core & child)

Remove a child component from this panel.

◆ setAbove() [1/4]

void ml::Positionable::setAbove ( T & obj,
float spacing = 0 )
inherited

Position this object immediately above obj.

Template Parameters
TAny type with getGlobalBounds().
Parameters
objReference object.
spacingGap in pixels between the two objects. Defaults to 0.

◆ setAbove() [2/4]

void ml::Positionable::setAbove ( ml::RoundedRectangle & obj,
float spacing = 0 )
inherited

Position this object immediately above obj.

Template Parameters
TAny type with getGlobalBounds().
Parameters
objReference object.
spacingGap in pixels between the two objects. Defaults to 0.

◆ setAbove() [3/4]

void ml::Positionable::setAbove ( ml::RoundedRectangle & obj,
float spacing = 0 )
inherited

Position this object immediately above obj.

Template Parameters
TAny type with getGlobalBounds().
Parameters
objReference object.
spacingGap in pixels between the two objects. Defaults to 0.

◆ setAbove() [4/4]

template<class T>
void ml::Positionable::setAbove ( T & obj,
float spacing = 0 )
inherited

Position this object immediately above obj.

Template Parameters
TAny type with getGlobalBounds().
Parameters
objReference object.
spacingGap in pixels between the two objects. Defaults to 0.

◆ setBelow() [1/4]

void ml::Positionable::setBelow ( T & obj,
float spacing = 0 )
inherited

Position this object immediately below obj.

Template Parameters
TAny type with getGlobalBounds().
Parameters
objReference object.
spacingGap in pixels between the two objects. Defaults to 0.

◆ setBelow() [2/4]

void ml::Positionable::setBelow ( ml::RoundedRectangle & obj,
float spacing = 0 )
inherited

Position this object immediately below obj.

Template Parameters
TAny type with getGlobalBounds().
Parameters
objReference object.
spacingGap in pixels between the two objects. Defaults to 0.

◆ setBelow() [3/4]

void ml::Positionable::setBelow ( ml::RoundedRectangle & obj,
float spacing = 0 )
inherited

Position this object immediately below obj.

Template Parameters
TAny type with getGlobalBounds().
Parameters
objReference object.
spacingGap in pixels between the two objects. Defaults to 0.

◆ setBelow() [4/4]

template<class T>
void ml::Positionable::setBelow ( T & obj,
float spacing = 0 )
inherited

Position this object immediately below obj.

Template Parameters
TAny type with getGlobalBounds().
Parameters
objReference object.
spacingGap in pixels between the two objects. Defaults to 0.

◆ setCornerPointCount()

void ml::RoundedRectangle::setCornerPointCount ( unsigned int count)
inherited

Set the number of vertices per corner arc.

Triggers geometry regeneration.

Parameters
countVertex count per corner. Must be at least 1.

◆ setDragBounds() [1/2]

void ml::Draggable::setDragBounds ( const sf::FloatRect & bounds)
inherited

Constrain drag movement to an axis-aligned bounding rectangle.

While bounds are set, the component's position is clamped so that its top-left corner never moves outside bounds during a drag gesture. Bounds are applied in world coordinates.

Call clearDragBounds() to remove the constraint and allow free movement again.

Parameters
boundsThe world-space rectangle within which the component may be dragged.

◆ setDragBounds() [2/2]

void ml::Draggable::setDragBounds ( const sf::FloatRect & bounds)
inherited

Constrain drag movement to an axis-aligned bounding rectangle.

While bounds are set, the component's position is clamped so that its top-left corner never moves outside bounds during a drag gesture. Bounds are applied in world coordinates.

Call clearDragBounds() to remove the constraint and allow free movement again.

Parameters
boundsThe world-space rectangle within which the component may be dragged.

◆ setFlag() [1/3]

void ml::FlagManager< Flag >::setFlag ( State state,
bool status )
inherited

Set a flag to an explicit value.

Parameters
stateThe flag to modify.
statustrue to enable, false to disable.

◆ setFlag() [2/3]

void ml::FlagManager< Flag >::setFlag ( State state,
bool status )
inherited

Set a flag to an explicit value.

Parameters
stateThe flag to modify.
statustrue to enable, false to disable.

◆ setFlag() [3/3]

void ml::FlagManager< Flag >::setFlag ( State state,
bool status )
inherited

Set a flag to an explicit value.

Parameters
stateThe flag to modify.
statustrue to enable, false to disable.

◆ setFramerate() [1/2]

void ml::Positionable::setFramerate ( float framerate)
inherited

Set the assumed framerate for movement interpolation.

moveTo generates a queue of intermediate positions based on this value. Defaults to 60 fps. Call this if your application runs at a different target rate to keep animation timing accurate.

Parameters
framerateTarget framerate in frames per second.

◆ setFramerate() [2/2]

void ml::Positionable::setFramerate ( float framerate)
inherited

Set the assumed framerate for movement interpolation.

moveTo generates a queue of intermediate positions based on this value. Defaults to 60 fps. Call this if your application runs at a different target rate to keep animation timing accurate.

Parameters
framerateTarget framerate in frames per second.

◆ setLeftOf() [1/4]

void ml::Positionable::setLeftOf ( T & obj,
float spacing = 0 )
inherited

Position this object immediately to the left of obj.

Template Parameters
TAny type with getGlobalBounds().
Parameters
objReference object.
spacingGap in pixels between the two objects. Defaults to 0.

◆ setLeftOf() [2/4]

void ml::Positionable::setLeftOf ( ml::RoundedRectangle & obj,
float spacing = 0 )
inherited

Position this object immediately to the left of obj.

Template Parameters
TAny type with getGlobalBounds().
Parameters
objReference object.
spacingGap in pixels between the two objects. Defaults to 0.

◆ setLeftOf() [3/4]

void ml::Positionable::setLeftOf ( ml::RoundedRectangle & obj,
float spacing = 0 )
inherited

Position this object immediately to the left of obj.

Template Parameters
TAny type with getGlobalBounds().
Parameters
objReference object.
spacingGap in pixels between the two objects. Defaults to 0.

◆ setLeftOf() [4/4]

template<class T>
void ml::Positionable::setLeftOf ( T & obj,
float spacing = 0 )
inherited

Position this object immediately to the left of obj.

Template Parameters
TAny type with getGlobalBounds().
Parameters
objReference object.
spacingGap in pixels between the two objects. Defaults to 0.

◆ setPosition()

void ml::Panel::setPosition ( const sf::Vector2f & position)
overridevirtual

Move the panel and shift all children by the same delta.

Reimplemented from ml::Graphic< ml::RoundedRectangle >.

◆ setRadius()

void ml::RoundedRectangle::setRadius ( float radius)
inherited

Set the corner arc radius.

Triggers geometry regeneration. Values larger than half the shorter side are clamped automatically.

Parameters
radiusCorner radius in pixels.

◆ setRightOf() [1/4]

void ml::Positionable::setRightOf ( T & obj,
float spacing = 0 )
inherited

Position this object immediately to the right of obj.

Template Parameters
TAny type with getGlobalBounds().
Parameters
objReference object.
spacingGap in pixels between the two objects. Defaults to 0.

◆ setRightOf() [2/4]

void ml::Positionable::setRightOf ( ml::RoundedRectangle & obj,
float spacing = 0 )
inherited

Position this object immediately to the right of obj.

Template Parameters
TAny type with getGlobalBounds().
Parameters
objReference object.
spacingGap in pixels between the two objects. Defaults to 0.

◆ setRightOf() [3/4]

void ml::Positionable::setRightOf ( ml::RoundedRectangle & obj,
float spacing = 0 )
inherited

Position this object immediately to the right of obj.

Template Parameters
TAny type with getGlobalBounds().
Parameters
objReference object.
spacingGap in pixels between the two objects. Defaults to 0.

◆ setRightOf() [4/4]

template<class T>
void ml::Positionable::setRightOf ( T & obj,
float spacing = 0 )
inherited

Position this object immediately to the right of obj.

Template Parameters
TAny type with getGlobalBounds().
Parameters
objReference object.
spacingGap in pixels between the two objects. Defaults to 0.

◆ setSize()

void ml::RoundedRectangle::setSize ( const sf::Vector2f & size)
inherited

Set the width and height of the rectangle.

Triggers geometry regeneration.

Parameters
sizeNew size in pixels.

◆ setState() [1/5]

std::enable_if_t<!std::is_void_v< T > > ml::StateManager< extract_State< DraggableManifest >::type >::setState ( T newState)
inherited

Transition to a new state.

Fires the exit callback with the current state, updates the stored state to newState, then fires the enter callback with the new state. Either callback may be unset (nullptr), in which case it is skipped.

Parameters
newStateThe state to transition into.

◆ setState() [2/5]

std::enable_if_t<!std::is_void_v< ml::RoundedRectangle > > ml::StateManager< extract_State< DraggableManifest >::type >::setState ( ml::RoundedRectangle newState)
inherited

Transition to a new state.

Fires the exit callback with the current state, updates the stored state to newState, then fires the enter callback with the new state. Either callback may be unset (nullptr), in which case it is skipped.

Parameters
newStateThe state to transition into.

◆ setState() [3/5]

std::enable_if_t<!std::is_void_v< ml::RoundedRectangle > > ml::StateManager< extract_State< DraggableManifest >::type >::setState ( ml::RoundedRectangle newState)
inherited

Transition to a new state.

Fires the exit callback with the current state, updates the stored state to newState, then fires the enter callback with the new state. Either callback may be unset (nullptr), in which case it is skipped.

Parameters
newStateThe state to transition into.

◆ setState() [4/5]

std::enable_if_t<!std::is_void_v< T > > ml::StateManager< extract_State< DraggableManifest >::type >::setState ( T newState)
inherited

Transition to a new state.

Fires the exit callback with the current state, updates the stored state to newState, then fires the enter callback with the new state. Either callback may be unset (nullptr), in which case it is skipped.

Parameters
newStateThe state to transition into.

◆ setState() [5/5]

std::enable_if_t<!std::is_void_v< T > > ml::StateManager< extract_State< PanelManifest >::type >::setState ( T newState)
inherited

Transition to a new state.

Fires the exit callback with the current state, updates the stored state to newState, then fires the enter callback with the new state. Either callback may be unset (nullptr), in which case it is skipped.

Parameters
newStateThe state to transition into.

◆ subscribe() [1/4]

void ml::Subscribable::subscribe ( ENUM_TYPE event,
Callback callback )
inherited

Subscribe to an enum-keyed event with a no-argument callback.

Convenience overload for callbacks that do not need access to the raw SFML event.

Template Parameters
ENUM_TYPEAny enum type.
Parameters
eventThe enum value identifying the event to subscribe to.
callbackFunction invoked with no arguments when the event fires.

◆ subscribe() [2/4]

void ml::Subscribable::subscribe ( ENUM_TYPE event,
Callback callback )
inherited

Subscribe to an enum-keyed event with a no-argument callback.

Convenience overload for callbacks that do not need access to the raw SFML event.

Template Parameters
ENUM_TYPEAny enum type.
Parameters
eventThe enum value identifying the event to subscribe to.
callbackFunction invoked with no arguments when the event fires.

◆ subscribe() [3/4]

void ml::Subscribable::subscribe ( ENUM_TYPE event,
EventCallback callback )
inherited

Subscribe to an enum-keyed event with a full SFML event callback.

The callback is invoked each time the event fires and the framework's filter (defined by the associated EventDispatcher) passes this component. The std::optional<sf::Event> parameter carries the raw SFML event when one is available, or std::nullopt for frame events.

Template Parameters
ENUM_TYPEAny enum type — ml::Event for built-in events, or a manifest event enum for custom events.
Parameters
eventThe enum value identifying the event to subscribe to.
callbackFunction invoked with the SFML event when the event fires.

◆ subscribe() [4/4]

void ml::Subscribable::subscribe ( ENUM_TYPE event,
EventCallback callback )
inherited

Subscribe to an enum-keyed event with a full SFML event callback.

The callback is invoked each time the event fires and the framework's filter (defined by the associated EventDispatcher) passes this component. The std::optional<sf::Event> parameter carries the raw SFML event when one is available, or std::nullopt for frame events.

Template Parameters
ENUM_TYPEAny enum type — ml::Event for built-in events, or a manifest event enum for custom events.
Parameters
eventThe enum value identifying the event to subscribe to.
callbackFunction invoked with the SFML event when the event fires.

◆ toggleFlag() [1/3]

void ml::FlagManager< Flag >::toggleFlag ( State state)
inherited

Flip a flag between true and false.

Parameters
stateThe flag to toggle.

◆ toggleFlag() [2/3]

void ml::FlagManager< Flag >::toggleFlag ( State state)
inherited

Flip a flag between true and false.

Parameters
stateThe flag to toggle.

◆ toggleFlag() [3/3]

void ml::FlagManager< Flag >::toggleFlag ( State state)
inherited

Flip a flag between true and false.

Parameters
stateThe flag to toggle.

◆ unlockSettings()

void ml::Themeable::unlockSettings ( )
inlineinherited

Allow applySettings() to take effect again.

Definition at line 112 of file Themeable.h.

◆ unlockTheme()

void ml::Themeable::unlockTheme ( )
inlineinherited

Resume reacting to global theme changes.

Does NOT immediately re-apply the current theme — call ThemeManager::get() and pass it to onThemeApplied() manually if you want to re-sync immediately after unlocking.

Definition at line 94 of file Themeable.h.

◆ unsubscribe() [1/2]

void ml::Unsubscribable::unsubscribe ( EnumType event)
inlineinherited

Unsubscribe from a single event by enum value.

Works with any enum type — ml::Event for built-in events, or a manifest Event enum for custom events.

If called during an EventManager::fire() iteration the removal is deferred until the iteration completes.

Template Parameters
EnumTypeAny enum type. Enforced at compile time.
Parameters
eventThe enum value identifying the event to remove.

Definition at line 65 of file Unsubscribable.h.

◆ unsubscribe() [2/2]

void ml::Unsubscribable::unsubscribe ( EnumType event)
inlineinherited

Unsubscribe from a single event by enum value.

Works with any enum type — ml::Event for built-in events, or a manifest Event enum for custom events.

If called during an EventManager::fire() iteration the removal is deferred until the iteration completes.

Template Parameters
EnumTypeAny enum type. Enforced at compile time.
Parameters
eventThe enum value identifying the event to remove.

Definition at line 65 of file Unsubscribable.h.

◆ unsubscribeAll() [1/2]

Remove all event subscriptions for this component.

Removes every subscription registered across all event names. Called automatically by Core's destructor.

If called during an EventManager::fire() iteration the removal is deferred until the iteration completes.

◆ unsubscribeAll() [2/2]

Remove all event subscriptions for this component.

Removes every subscription registered across all event names. Called automatically by Core's destructor.

If called during an EventManager::fire() iteration the removal is deferred until the iteration completes.

Member Data Documentation

◆ busyDepth [1/2]

int ml::DeferredOperationsManager< CoreManager< Core > >::busyDepth
inlinestaticprotectedinherited

Iteration nesting depth. Operations are deferred while this is > 0.

Definition at line 70 of file DeferredOperationsManager.h.

◆ busyDepth [2/2]

int ml::DeferredOperationsManager< CoreManager< Core > >::busyDepth
inlinestaticprotectedinherited

Iteration nesting depth. Operations are deferred while this is > 0.

Definition at line 70 of file DeferredOperationsManager.h.

◆ pendingOperations [1/2]

std::vector<std::function<void()> > ml::DeferredOperationsManager< CoreManager< Core > >::pendingOperations
inlinestaticprotectedinherited

Queue of operations pending until the current iteration completes.

Definition at line 73 of file DeferredOperationsManager.h.

◆ pendingOperations [2/2]

std::vector<std::function<void()> > ml::DeferredOperationsManager< CoreManager< Core > >::pendingOperations
inlinestaticprotectedinherited

Queue of operations pending until the current iteration completes.

Definition at line 73 of file DeferredOperationsManager.h.


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