|
| | CUIDraggable (CUIContainer *container, CGUIElement *element) |
| | Construct a draggable wrapper for a GUI element.
|
| void | lock (bool x, bool y) |
| | Lock/unlock movement on each axis.
|
| void | limitDragToRect (bool b) |
| | Enable or disable rectangular bounds for dragging.
|
| void | setBounds (const core::rectf &r) |
| | Set the rectangular bounds used when limitDragToRect(true) is active.
|
| | CUIBase (CUIContainer *container, CGUIElement *element) |
| | Constructor.
|
|
virtual | ~CUIBase () |
| | Virtual destructor.
|
| void | remove () |
| | Remove this UI object from its container and perform cleanup.
|
|
virtual void | update () |
| virtual void | setEnable (bool b) |
| | Enable or disable this UI object.
|
| virtual void | setVisible (bool b) |
| | Set visibility of this UI object.
|
|
bool | isEnable () |
| | Returns true if the object is enabled.
|
|
bool | isVisible () |
| | Returns true if the object is visible.
|
|
int | getPointerId () |
| | Get the pointer ID associated with this UI object.
|
|
void | setPointerId (int id) |
| | Set the pointer ID for this UI object.
|
|
void | resetTouch () |
| | Reset pointer internal state (hover/down).
|
| void | setContinueGameEvent (bool b) |
| | Control whether input events continue to the game layer.
|
|
bool | isContinueGameEvent () |
| | Returns true when events are allowed to continue to the game layer.
|
|
bool | isContinueKeyEvent () |
| void | setSkipPointerEventWhenDrag (bool b) |
| | When true pointer events will be skipped while dragging.
|
|
bool | isPointerHover () |
| | Returns true if pointer is hovering this object.
|
|
bool | isPointerDown () |
| | Returns true if pointer is down on this object.
|
|
CGUIElement * | getElement () |
| | Get the underlying CGUIElement pointer.
|
|
CCanvas * | getCanvas () |
| | Retrieve the canvas that the underlying element belongs to.
|
|
CUIContainer * | getContainer () |
| | Get parent container.
|
|
core::vector3df * | getRectTransform () |
| | Returns a pointer to the internal rect transform (4 corners).
|
|
void | getRectTransform (CGUIElement *element, core::vector3df *t) |
| virtual void | onPointerHover (int pointerId, float pointerX, float pointerY) |
| | Called when pointer enters or hovers over the element.
|
| virtual void | onPointerOut (int pointerId, float pointerX, float pointerY) |
| | Called when pointer leaves the element.
|
| virtual void | onPressed () |
| | Called when the element is considered "pressed" (high-level event). Subclasses may trigger OnPressed callback from here.
|
| virtual void | onFocus () |
| | Called when element receives focus.
|
| virtual void | onLostFocus () |
| | Called when element loses focus.
|
| virtual void | onKeyEvent (const SEvent &event) |
| | Called when a keyboard event is delivered to this element.
|
| void | startMotion (EMotionEvent event) |
| | Start motions associated with a specific motion event.
|
| void | stopMotion (EMotionEvent event) |
| | Stop motions associated with a specific motion event.
|
| bool | isMotionPlaying (EMotionEvent event) |
| | Query whether any motion is currently playing for the given event.
|
| virtual CMotion * | addMotion (EMotionEvent event, CMotion *motion) |
| | Add a CMotion instance to the list for the given event. The motion will be initialized and managed by this object.
|
| virtual CMotion * | addMotion (EMotionEvent event, CGUIElement *element, CMotion *motion) |
| | Add a CMotion instance bound to a specific CGUIElement for the given event.
|
| bool | removeMotion (EMotionEvent event, CMotion *motion) |
| | Remove a motion instance from the given event list.
|
| void | removeMotions (EMotionEvent event) |
| | Remove all motions attached to the specified event.
|
| std::vector< CMotion * > & | getMotions (EMotionEvent event) |
| | Access the motion vector for a specific event.
|
| void | convertToUICoordinate (float &pointerX, float &pointerY) |
| | Convert screen pointer coordinates to this UI object's local UI coordinates.
|
| void | convertWorldToLocal (CGUIElement *element, float &x, float &y) |
| | Convert world coordinates to the local coordinate space of a CGUIElement.
|
| void | convertLocalToWorld (CGUIElement *element, float &x, float &y) |
| | Convert local coordinates of a CGUIElement to world coordinates.
|
| virtual bool | acceptDragFocus () |
| | Whether this UI element should accept drag-focus when the pointer is already down and the user drags over it.
|
| void | setSoundId (int slot, int soundId) |
| | Set the sound id associated with this UI object.
|
| int | getSoundId (int slot) |
| | Get the sound id associated with this UI object.
|
| void | setUserData (void *data) |
| | Attach an application-defined pointer to this UI object.
|
| void * | getUserData () |
| | Retrieve the pointer previously set via setUserData.
|
|
| std::function< void(CUIDraggable *, float posX, float posY)> | OnBeginDrag |
| | Callback invoked when a drag operation begins.
|
| std::function< void(CUIDraggable *, float posX, float posY)> | OnDrag |
| | Callback invoked while dragging (on pointer move).
|
| std::function< void(CUIDraggable *, float posX, float posY)> | OnEndDrag |
| | Callback invoked when the drag operation ends.
|
|
std::function< void(int, float, float)> | OnPointerHover |
|
std::function< void(int, float, float)> | OnPointerOut |
|
std::function< void(int, float, float)> | OnPointerDown |
|
std::function< void(int, float, float)> | OnPointerUp |
|
std::function< void(int, float, float, bool)> | OnPointerMove |
|
std::function< void(CUIBase *)> | OnPressed |
|
std::function< void(CUIBase *)> | OnFocus |
|
std::function< void(CUIBase *)> | OnLostFocus |
|
std::function< void(CUIBase *, const SEvent &)> | OnKeyEvent |
|
std::function< void(CUIBase *, EMotionEvent)> | OnMotionFinish [(int) EMotionEvent::NumEvent] |
A UI control that enables dragging of its underlying GUI element.
CUIDraggable extends CUIBase to provide simple pointer-driven dragging behavior for a CGUIElement. It converts pointer events into local movements of the element and exposes lifecycle callbacks for begin, ongoing, and end of drag operations.
Features:
Notes:
- Coordinates passed to callbacks are world (canvas) coordinates.
- Dragging behavior uses pointer events delivered by CUIBase (onPointerDown, onPointerMove, onPointerUp) and implements an internal offset to preserve the initial grab position.