![]() |
Skylicht Engine
|
A simple progress bar control. More...
#include <UserInterface/CUIProgressBar.h>
Public Member Functions | |
| CUIProgressBar (CUIContainer *container, CGUIElement *element) | |
| Construct a progress bar using the given root element. | |
| CUIProgressBar (CUIContainer *container, CGUIElement *element, CGUIElement *bg, CGUIElement *loading) | |
| Construct a progress bar with explicitly provided components. | |
| void | setPercent (float f) |
| Set the current progress value. | |
| Public Member Functions inherited from Skylicht::UI::CUIBase | |
| 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 | onPointerDown (int pointerId, float pointerX, float pointerY) |
| Called when pointer is pressed down on the element. | |
| virtual void | onPointerUp (int pointerId, float pointerX, float pointerY) |
| Called when pointer is released over the element. | |
| virtual void | onPointerMove (int pointerId, float pointerX, float pointerY) |
| Called when pointer moves while over or dragging 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. | |
Protected Attributes | |
| CGUIElement * | m_background |
| CGUIMask * | m_mask |
| CGUIElement * | m_loading |
| Protected Attributes inherited from Skylicht::UI::CUIBase | |
| CUIContainer * | m_container |
| CGUIElement * | m_element |
| core::vector3df | m_rectTransform [4] |
| std::vector< CMotion * > | m_motions [(int) EMotionEvent::NumEvent] |
| bool | m_enable |
| bool | m_visible |
| bool | m_isPointerHover |
| bool | m_isPointerDown |
| bool | m_skipPointerEventWhenDrag |
| bool | m_continueGameEvent |
| bool | m_continueKeyEvent |
| int | m_pointerId |
| float | m_pointerDownX |
| float | m_pointerDownY |
| int | m_soundId [4] |
| void * | m_userData |
Additional Inherited Members | |
| Public Attributes inherited from Skylicht::UI::CUIBase | |
| 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 simple progress bar control.
CUIProgressBar is a UI control that visually represents progress or loading state. It composes three GUI elements:
Typical usage:
| Skylicht::UI::CUIProgressBar::CUIProgressBar | ( | CUIContainer * | container, |
| CGUIElement * | element ) |
Construct a progress bar using the given root element.
| container | Parent UI container that owns this control. |
| element | Root CGUIElement used for this progress bar. |
The constructor will typically look for child elements within element to initialize m_background and m_loading. The mask (m_mask) is auto-created in the constructor if one is not already present on the provided element.
| Skylicht::UI::CUIProgressBar::CUIProgressBar | ( | CUIContainer * | container, |
| CGUIElement * | element, | ||
| CGUIElement * | bg, | ||
| CGUIElement * | loading ) |
Construct a progress bar with explicitly provided components.
| container | Parent UI container that owns this control. |
| element | Root CGUIElement used for this progress bar. |
| bg | Background element to use for the bar. |
| loading | Foreground/loading element to be clipped or resized. |
Use this constructor when you want to supply specific sub-elements instead of relying on the root element's internal children. The mask (m_mask) will still be created automatically if required.
| void Skylicht::UI::CUIProgressBar::setPercent | ( | float | f | ) |
Set the current progress value.
| f | Progress value interpreted as a fraction, where 0.0 = empty and 1.0 = full. |
This function updates the mask rectangle to reveal the corresponding portion of the loading element. The implementation sets the mask width to element_width * f. The mask is created in the constructor, so calling this method requires a valid m_mask.