diff options
author | WBoerenkamps <wrj.boerenkamps@student.avans.nl> | 2024-12-17 20:12:30 +0100 |
---|---|---|
committer | WBoerenkamps <wrj.boerenkamps@student.avans.nl> | 2024-12-17 20:12:30 +0100 |
commit | eb9c76082d7d0ee0c3e55cb8eadfa5f8978bd8f2 (patch) | |
tree | 97b0a6c7ae7e0feaba856a1e3e3836fa91a4dc0b /src/crepe/api/Button.h | |
parent | b421eec1073c1fb4b99d46cc36c5c9cbd8d3c4a7 (diff) |
button improvements
Diffstat (limited to 'src/crepe/api/Button.h')
-rw-r--r-- | src/crepe/api/Button.h | 50 |
1 files changed, 12 insertions, 38 deletions
diff --git a/src/crepe/api/Button.h b/src/crepe/api/Button.h index e97f884..5d4156b 100644 --- a/src/crepe/api/Button.h +++ b/src/crepe/api/Button.h @@ -5,18 +5,21 @@ #include "UIObject.h" #include "Event.h" #include "Metadata.h" + namespace crepe { /** - * \brief Event triggered when a button is pressed + * \brief Button component. + * + * This component creates a clickable surface at the transform location with the specified width and height. + * + * The Button can be used in scripts by subscribing a EventHandler to the following events: + * - **ButtonPressEvent**: Triggered when the surface is clicked with the mouse. Contains GameObject metadata. + * - **MouseEnterEvent**: Triggered when the mouse enters the button area. Contains GameObject metadata. + * - **MouseExitEvent**: Triggered when the mouse leaves the button area. Contains GameObject metadata. + * \see EventManager * */ -class ButtonPressEvent : public Event{ - public: - - -} -//! Represents a clickable UI button, derived from the UiObject class. class Button : public UIObject { public: /** @@ -25,43 +28,14 @@ public: * \param id The unique ID of the game object associated with this button. * \param dimensions The width and height of the UIObject * \param offset The offset relative this GameObjects Transform - * \param on_click callback function that will be invoked when the button is clicked. */ - Button(game_object_id_t id, const vec2 & dimensions, const vec2 & offset, - const std::function<void()> & on_click); - - // TODO: create separate toggle button class - /** - * \brief The callback function to be executed when the button is clicked. - * - * This function is invoked whenever the button is clicked. It can be set to any - * function that matches the signature `void()`. - */ - std::function<void()> on_click = nullptr; - - /** - * \brief Callback function to be executed when the mouse enters the button's boundaries. - * - * This function is triggered when the mouse cursor moves over the button, allowing - * custom actions like visual effects, highlighting, or sound effects. - */ - std::function<void()> on_mouse_enter = nullptr; - - /** - * \brief Callback function to be executed when the mouse exits the button's boundaries. - * - * This function is triggered when the mouse cursor moves out of the button's area, - * allowing custom actions like resetting visual effects or playing exit-related effects. - */ - std::function<void()> on_mouse_exit = nullptr; + Button(game_object_id_t id, const vec2 & dimensions, const vec2 & offset); private: - //! friend relation for is_pressed and hover variables + //! friend relation hover variable friend class InputSystem; //! Indicates whether the mouse is currently hovering over the button bool hover = false; - -public: }; } // namespace crepe |