|
Sparkle 0.0.1
|
Editable text field with validation and cursor handling. More...
#include <spk_text_edit.hpp>


Public Types | |
| enum class | ValidationState { Valid , Invalid , Undefined } |
| Validation state of the text content. | |
| using | ValidationStatus = spk::TaskResult<ValidationState> |
| Validation status result type. | |
| using | ValidationCallback = std::function<ValidationStatus(const std::wstring &)> |
| Validation callback signature. | |
| using | EditionContract = spk::ObservableValue<std::wstring>::Contract |
| Edition contract type for text changes. | |
| using | EditionJob = spk::ObservableValue<std::wstring>::Job |
| Edition job type for text changes. | |
| Public Types inherited from spk::Widget | |
| enum class | FocusType { Keyboard = 0 , Mouse = 1 } |
| Types of focus a widget can own. | |
| Public Types inherited from spk::ActivableObject | |
| using | Contract = StatefulObject<ActivationStatus>::Contract |
| Subscription handle controlling callback lifetime. | |
| using | Job = StatefulObject<ActivationStatus>::Job |
| Callback signature executed on activation state changes. | |
| Public Types inherited from spk::StatefulObject< ActivationStatus > | |
| using | Contract |
| Handle allowing subscribers to manage callback lifetimes. | |
| using | Job |
| Callable invoked when the object transitions to a state. | |
Public Member Functions | |
| TextEdit (const std::wstring &p_name, spk::Widget *p_parent) | |
| Builds a text edit widget. | |
| void | setCornerSize (const spk::Vector2UInt &p_cornerSize) |
| Sets background corner size. | |
| const spk::Vector2UInt & | cornerSize () const |
| Returns background corner size. | |
| void | setTexture (const spk::SpriteSheet *p_spriteSheet) |
| Sets the background texture. | |
| const spk::SpriteSheet * | texture () const |
| Returns the background texture. | |
| void | setFont (spk::Font *p_font) |
| Sets the font used for text rendering. | |
| spk::Font * | font () const |
| Returns the font used for text rendering. | |
| void | setFontSize (const spk::Font::Size &p_size) |
| Sets the font size used for text rendering. | |
| const spk::Font::Size & | fontSize () const |
| Returns the font size used for text rendering. | |
| void | setColors (const spk::Color &p_glyphColor, const spk::Color &p_outlineColor) |
| Sets glyph and outline colors. | |
| const spk::Color & | glyphColor () const |
| Returns the glyph color. | |
| const spk::Color & | outlineColor () const |
| Returns the outline color. | |
| void | setPlaceholder (const std::wstring &p_placeholder) |
| Sets the placeholder text. | |
| const std::wstring & | placeholder () const |
| Returns the placeholder text. | |
| void | setValidationCallback (ValidationCallback p_callback) |
| Sets the validation callback. | |
| const ValidationCallback & | validationCallback () const |
| Returns the validation callback. | |
| ValidationStatus | checkTextValidity (const std::wstring &p_text) const |
| Checks text validity with the current callback. | |
| const std::wstring & | text () const |
| Returns the current text. | |
| ValidationStatus | setText (const std::wstring &p_text) |
| Sets the text content. | |
| EditionContract | subscribeToEdition (const EditionJob &p_job) |
| Subscribes to text edition notifications. | |
| void | setAlignment (HorizontalAlignment p_horizontalAlignment, VerticalAlignment p_verticalAlignment) |
| Sets text alignment. | |
| void | placeCursor (size_t p_position) |
| Places the cursor at a position. | |
| void | moveCursor (int p_delta) |
| Moves the cursor by a delta. | |
| size_t | cursorPosition () const |
| Returns the cursor position. | |
| void | clear () |
| Clears the text content. | |
| void | setObscured (bool p_obscured) |
| Enables or disables obscured rendering. | |
| bool | obscured () const |
| Returns whether text is obscured. | |
| void | setCursorBlinkDuration (const spk::Duration &p_duration) |
| Sets the cursor blink duration. | |
| const spk::Duration & | cursorBlinkDuration () const |
| Returns the cursor blink duration. | |
| Public Member Functions inherited from spk::Widget | |
| void | takeFocus (FocusType p_focusType) |
| Grants this widget ownership of the requested focus type. | |
| void | releaseFocus (FocusType p_focusType) |
| Releases a previously acquired focus type. | |
| bool | hasFocus (FocusType p_focusType) const |
| Checks if this widget currently owns a focus type. | |
| void | takeAllFocus () |
| Acquires both keyboard and mouse focus. | |
| void | releaseAllFocus () |
| Releases both keyboard and mouse focus types. | |
| Widget (const std::wstring &p_name, Widget *p_parent) | |
| Builds a widget optionally attached to a parent. | |
| void | addChild (Widget *p_child) override |
| Adds a child widget and sorts the hierarchy by layer. | |
| const float & | layer () const |
| Current rendering layer of the widget. | |
| void | setLayer (const float &p_newLayer) |
| Updates the widget layer and propagates relative offsets to children. | |
| const std::wstring & | name () const |
| Retrieves the widget name. | |
| void | setName (const std::wstring &p_name) |
| Sets the widget name. | |
| void | setGeometry (const spk::Extend2D &p_geometry) override |
| Requests a specific viewport and scissor region for the widget. | |
| const spk::Extend2D & | geometry () const |
| Returns the current widget geometry. | |
| const spk::OpenGL::ViewRegion & | viewRegion () const |
| Accesses the computed view region. | |
| const spk::OpenGL::FrameBufferObject & | frameBufferObject () const |
| Returns the frame buffer object used for widget rendering. | |
| const spk::OpenGL::FrameBufferObject & | fbo () const |
| Alias for frameBufferObject(). | |
| void | requireGeometryChange () |
| Marks the widget view region as needing recomputation. | |
| Public Member Functions inherited from spk::InherenceObject< Widget > | |
| virtual void | removeChild (Widget *p_child) |
| Removes a child from this node. | |
| Widget * | parent () const |
| Returns the parent pointer. | |
| virtual std::vector< Widget * > & | children () |
| Returns the children vector. | |
| void | clearChildren () |
| Clears the children list and resets each child's parent pointer. | |
| Public Member Functions inherited from spk::ActivableObject | |
| ActivableObject () | |
| Builds a deactivated object. | |
| ActivableObject (ActivationStatus p_initial) | |
| Builds with a custom initial activation state. | |
| void | activate () |
| Sets the state to Activated. | |
| void | deactivate () |
| Sets the state to Deactivated. | |
| void | toggle () |
| Toggles between activated and deactivated states. | |
| bool | isActive () const |
| Checks whether the object is currently activated. | |
| Contract | addActivationCallback (const Job &p_callback) |
| Registers a callback executed when the object activates. | |
| Contract | addDeactivationCallback (const Job &p_callback) |
| Registers a callback executed when the object deactivates. | |
| Public Member Functions inherited from spk::StatefulObject< ActivationStatus > | |
| StatefulObject (const ActivationStatus &p_initialState) | |
| Builds with an initial state. | |
| StatefulObject & | operator= (const StatefulObject &p_other)=delete |
| void | setState (const ActivationStatus &p_newState) |
| Sets a new state and triggers callbacks registered for it. | |
| ActivationStatus | state () const |
| Returns the current state. | |
| Contract | addCallback (const ActivationStatus &p_state, const Job &p_callback) |
| Subscribes a callback for a specific state. | |
| Public Member Functions inherited from spk::ResizableElement | |
| SizeHint & | sizeHint () |
| Returns mutable size hint data. | |
| const SizeHint & | sizeHint () const |
| Returns const size hint data. | |
Protected Member Functions | |
| void | _onGeometryChange () override |
| Updates layout when geometry changes. | |
| void | _onPaintEvent (spk::PaintEvent &p_event) override |
| Paints the text edit visuals. | |
| void | _onMouseMotionEvent (spk::MouseMotionEvent &p_event) override |
| Handles mouse motion events. | |
| void | _onMousePressEvent (spk::MousePressEvent &p_event) override |
| Handles mouse press events. | |
| void | _onMouseReleaseEvent (spk::MouseReleaseEvent &p_event) override |
| Handles mouse release events. | |
| void | _onGlyphEvent (spk::GlyphEvent &p_event) override |
| Handles glyph input events. | |
| void | _onKeyPressEvent (spk::KeyPressEvent &p_event) override |
| Handles key press events. | |
| void | _onFocusEvent (spk::FocusEvent &p_event) override |
| Handles focus events. | |
| Protected Member Functions inherited from spk::Widget | |
| virtual void | _onKeyReleaseEvent (spk::KeyReleaseEvent &p_event) |
| Keyboard release handler for derived widgets. | |
| virtual void | _onMouseDoubleClickEvent (spk::MouseDoubleClickEvent &p_event) |
| Mouse double click handler for derived widgets. | |
| virtual void | _onMouseWheelEvent (spk::MouseWheelEvent &p_event) |
| Mouse wheel handler for derived widgets. | |
| virtual void | _onEnterResizeModeEvent (spk::EnterResizeModeEvent &p_event) |
| Callback for entering resize mode. | |
| virtual void | _onResizeEvent (spk::ResizeEvent &p_event) |
| Resize handling hook. | |
| virtual void | _onExitResizeModeEvent (spk::ExitResizeModeEvent &p_event) |
| Callback invoked when leaving resize mode. | |
| virtual void | _onQuitEvent (spk::QuitEvent &p_event) |
| Quit event handler hook. | |
| virtual void | _onMoveEvent (spk::MoveEvent &p_event) |
| Window move handler hook. | |
| virtual void | _onFullScreenModeEvent (spk::FullScreenModeEvent &p_event) |
| Full screen toggle handler hook. | |
| virtual void | _onMaximizedModeEvent (spk::MaximizedModeEvent &p_event) |
| Maximized mode change handler. | |
| virtual void | _onUpdateEvent (spk::UpdateEvent &p_event) |
| Frame update handler hook. | |
Additional Inherited Members | |
| Static Public Member Functions inherited from spk::Widget | |
| static Widget * | focusedWidget (FocusType p_focusType) |
| Retrieves the widget currently owning a focus type. | |
| Static Public Attributes inherited from spk::Widget | |
| static const size_t | NbFocusType = 2 |
| Number of focus slots tracked at runtime. | |
Editable text field with validation and cursor handling.
| spk::TextEdit::TextEdit | ( | const std::wstring & | p_name, |
| spk::Widget * | p_parent ) |
Builds a text edit widget.
| p_name | Widget name. |
| p_parent | Parent widget. |

|
overrideprotectedvirtual |
Handles focus events.
| p_event | Focus event payload. |
Reimplemented from spk::Widget.

|
overrideprotectedvirtual |
Updates layout when geometry changes.
Reimplemented from spk::Widget.
|
overrideprotectedvirtual |
Handles glyph input events.
| p_event | Glyph event payload. |
Reimplemented from spk::Widget.

|
overrideprotectedvirtual |
Handles key press events.
| p_event | Key press event payload. |
Reimplemented from spk::Widget.

|
overrideprotectedvirtual |
Handles mouse motion events.
| p_event | Mouse motion event payload. |
Reimplemented from spk::Widget.

|
overrideprotectedvirtual |
Handles mouse press events.
| p_event | Mouse press event payload. |
Reimplemented from spk::Widget.

|
overrideprotectedvirtual |
Handles mouse release events.
| p_event | Mouse release event payload. |
Reimplemented from spk::Widget.

|
overrideprotectedvirtual |
Paints the text edit visuals.
| p_event | Paint event payload. |
Reimplemented from spk::Widget.

| TextEdit::ValidationStatus spk::TextEdit::checkTextValidity | ( | const std::wstring & | p_text | ) | const |
Checks text validity with the current callback.
| p_text | Text to validate. |
| const spk::Vector2UInt & spk::TextEdit::cornerSize | ( | ) | const |
Returns background corner size.
| const spk::Duration & spk::TextEdit::cursorBlinkDuration | ( | ) | const |
Returns the cursor blink duration.
| size_t spk::TextEdit::cursorPosition | ( | ) | const |
Returns the cursor position.
| spk::Font * spk::TextEdit::font | ( | ) | const |
Returns the font used for text rendering.
| const spk::Font::Size & spk::TextEdit::fontSize | ( | ) | const |
Returns the font size used for text rendering.
| const spk::Color & spk::TextEdit::glyphColor | ( | ) | const |
Returns the glyph color.
| void spk::TextEdit::moveCursor | ( | int | p_delta | ) |
Moves the cursor by a delta.
| p_delta | Delta amount. |

| bool spk::TextEdit::obscured | ( | ) | const |
Returns whether text is obscured.
| const spk::Color & spk::TextEdit::outlineColor | ( | ) | const |
Returns the outline color.
| void spk::TextEdit::placeCursor | ( | size_t | p_position | ) |
Places the cursor at a position.
| p_position | Cursor position. |

| const std::wstring & spk::TextEdit::placeholder | ( | ) | const |
Returns the placeholder text.
| void spk::TextEdit::setAlignment | ( | HorizontalAlignment | p_horizontalAlignment, |
| VerticalAlignment | p_verticalAlignment ) |
Sets text alignment.
| p_horizontalAlignment | Horizontal alignment. |
| p_verticalAlignment | Vertical alignment. |
| void spk::TextEdit::setColors | ( | const spk::Color & | p_glyphColor, |
| const spk::Color & | p_outlineColor ) |
Sets glyph and outline colors.
| p_glyphColor | Glyph color. |
| p_outlineColor | Outline color. |
| void spk::TextEdit::setCornerSize | ( | const spk::Vector2UInt & | p_cornerSize | ) |
Sets background corner size.
| p_cornerSize | Corner size in pixels. |

| void spk::TextEdit::setCursorBlinkDuration | ( | const spk::Duration & | p_duration | ) |
Sets the cursor blink duration.
| p_duration | Blink duration. |
| void spk::TextEdit::setFont | ( | spk::Font * | p_font | ) |
Sets the font used for text rendering.
| p_font | Font pointer. |

| void spk::TextEdit::setFontSize | ( | const spk::Font::Size & | p_size | ) |
Sets the font size used for text rendering.
| p_size | Font size. |

| void spk::TextEdit::setObscured | ( | bool | p_obscured | ) |
Enables or disables obscured rendering.
| p_obscured | Whether to obscure text. |

| void spk::TextEdit::setPlaceholder | ( | const std::wstring & | p_placeholder | ) |
Sets the placeholder text.
| p_placeholder | Placeholder text. |

| TextEdit::ValidationStatus spk::TextEdit::setText | ( | const std::wstring & | p_text | ) |
Sets the text content.
| p_text | Text string. |

| void spk::TextEdit::setTexture | ( | const spk::SpriteSheet * | p_spriteSheet | ) |
Sets the background texture.
| p_spriteSheet | Sprite sheet pointer. |
| void spk::TextEdit::setValidationCallback | ( | ValidationCallback | p_callback | ) |
Sets the validation callback.
| p_callback | Validation callback. |
| TextEdit::EditionContract spk::TextEdit::subscribeToEdition | ( | const EditionJob & | p_job | ) |
Subscribes to text edition notifications.
| p_job | Callback invoked on text changes. |
| const std::wstring & spk::TextEdit::text | ( | ) | const |
Returns the current text.
| const spk::SpriteSheet * spk::TextEdit::texture | ( | ) | const |
Returns the background texture.
| const TextEdit::ValidationCallback & spk::TextEdit::validationCallback | ( | ) | const |
Returns the validation callback.