aboutsummaryrefslogtreecommitdiff
path: root/src/crepe/api
diff options
context:
space:
mode:
Diffstat (limited to 'src/crepe/api')
-rw-r--r--src/crepe/api/Button.cpp6
-rw-r--r--src/crepe/api/Button.h47
-rw-r--r--src/crepe/api/Event.h12
3 files changed, 19 insertions, 46 deletions
diff --git a/src/crepe/api/Button.cpp b/src/crepe/api/Button.cpp
index 305922c..40153c9 100644
--- a/src/crepe/api/Button.cpp
+++ b/src/crepe/api/Button.cpp
@@ -2,9 +2,7 @@
namespace crepe {
-Button::Button(game_object_id_t id, const vec2 & dimensions, const vec2 & offset,
- const std::function<void()> & on_click)
- : UIObject(id, dimensions, offset),
- on_click(on_click) {}
+Button::Button(game_object_id_t id, const vec2 & dimensions, const vec2 & offset)
+ : UIObject(id, dimensions, offset) {}
} // namespace crepe
diff --git a/src/crepe/api/Button.h b/src/crepe/api/Button.h
index 08f5dec..b5ef605 100644
--- a/src/crepe/api/Button.h
+++ b/src/crepe/api/Button.h
@@ -2,11 +2,23 @@
#include <functional>
+#include "Event.h"
#include "UIObject.h"
namespace crepe {
-//! Represents a clickable UI button, derived from the UiObject class.
+/**
+ * \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 Button : public UIObject {
public:
/**
@@ -15,43 +27,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
diff --git a/src/crepe/api/Event.h b/src/crepe/api/Event.h
index 73bf461..8e38280 100644
--- a/src/crepe/api/Event.h
+++ b/src/crepe/api/Event.h
@@ -3,9 +3,10 @@
#include <string>
-#include "api/KeyCodes.h"
#include "types.h"
+#include "KeyCodes.h"
+
namespace crepe {
/**
@@ -95,15 +96,6 @@ public:
};
/**
- * \brief Event triggered when text is submitted, e.g., from a text input.
- */
-class TextSubmitEvent : public Event {
-public:
- //! The submitted text.
- std::string text = "";
-};
-
-/**
* \brief Event triggered to indicate the application is shutting down.
*/
class ShutDownEvent : public Event {};