aboutsummaryrefslogtreecommitdiff
path: root/src/crepe/api/Text.h
blob: 6bb011cba006d936068240078297cac836a9811c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#pragma once

#include <string>

#include "Color.h"
#include "UiObject.h"
#include ""
namespace crepe {

/**
 * \class Button
 * \brief Represents a clickable UI button, derived from the UiObject class.
 * 
 * This class provides functionality for a button in the UI, including toggle state,
 * click handling, and mouse hover detection. A callback function can be provided to
 * handle button clicks.
 */
class Text : public UiObject {
public:
	/**
     * \brief Constructs a Button with the specified game object ID and dimensions.
     * 
     * \param id The unique ID of the game object associated with this button.
     * \param width The width of the button.
     * \param height The height of the button.
     */
	Text(game_object_id_t id, int width, int height);

	Color color = Color{0,0,0,0};
	std::string text = "";
	int size = 0;
	const std::shared_ptr<Font> sprite_image;
public:
	/**
     * \brief Retrieves the maximum number of instances allowed for this button type.
     * 
     * \return Always returns 1, as only a single instance of this type is allowed.
     */
	virtual int get_instances_max() const override { return 10; }
};

} // namespace crepe