This repository has been archived on 2025-03-20. You can view files and clone it, but cannot push or open issues or pull requests.
The-Powder-Toy/src/gui/interface/Checkbox.h
Tamás Bálint Misius 4f0c365e05
Preprocessor purge round 19: Split and minimize usage of Config.h
Also mostly banish it from other headers, and shuffle standard header includes to minimize cross-contamination between headers.
2023-01-27 09:27:32 +01:00

38 lines
1.0 KiB
C++

#pragma once
#include "common/String.h"
#include "Component.h"
#include <functional>
namespace ui
{
class Checkbox: public ui::Component {
String text;
String toolTip;
bool checked;
bool isMouseOver;
struct CheckboxAction
{
std::function<void ()> action;
};
CheckboxAction actionCallback;
public:
Checkbox(ui::Point position, ui::Point size, String text, String toolTip);
virtual ~Checkbox() = default;
void SetText(String text);
String GetText();
void SetIcon(Icon icon);
void Draw(const Point& screenPos) override;
void OnMouseEnter(int x, int y) override;
void OnMouseHover(int x, int y) override;
void OnMouseLeave(int x, int y) override;
void OnMouseClick(int x, int y, unsigned int button) override;
void OnMouseUp(int x, int y, unsigned int button) override;
inline void SetActionCallback(CheckboxAction const &action) { actionCallback = action; }
inline CheckboxAction const &GetActionCallback() const { return actionCallback; }
bool GetChecked() { return checked; }
void SetChecked(bool checked_) { checked = checked_; }
};
}