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 43 44 45 46 47 48 49 50 51 52 53
|
#pragma once
#include "Window.h"
#include "Core/Fn.h"
namespace gui {
/**
* Check button.
*/
class CheckButton : public Window {
STORM_CLASS;
public:
STORM_CTOR CheckButton(Str *title);
STORM_CTOR CheckButton(Str *title, Fn<void, Bool> *onChange);
// Changed callback. Called whenever this check button changes state.
MAYBE(Fn<void, Bool> *) onChange;
#ifdef GUI_WIN32
virtual bool onCommand(nat id);
#endif
#ifdef GUI_GTK
virtual GtkWidget *fontWidget();
#endif
// Set text.
virtual void STORM_FN text(Str *text);
using Window::text;
// Checked?
Bool STORM_FN checked();
// Set checked.
void STORM_ASSIGN checked(Bool check);
// Minimum size.
virtual Size STORM_FN minSize();
protected:
virtual bool create(ContainerBase *parent, nat id);
private:
// Change notification.
void changed(Bool state);
// Called when the button is toggled. Checks the state and calls 'changed'.
void toggled();
// Checked?
Bool isChecked;
};
}
|