1 // Copyright (C) 2010-2015 Petr Pavlu <setup@dagobah.cz>
3 // This file is part of CenterIM.
5 // CenterIM is free software; you can redistribute it and/or modify
6 // it under the terms of the GNU General Public License as published by
7 // the Free Software Foundation; either version 2 of the License, or
8 // (at your option) any later version.
10 // CenterIM is distributed in the hope that it will be useful,
11 // but WITHOUT ANY WARRANTY; without even the implied warranty of
12 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 // GNU General Public License for more details.
15 // You should have received a copy of the GNU General Public License
16 // along with CenterIM. If not, see <http://www.gnu.org/licenses/>.
21 /// @ingroup cppconsui
31 class CheckBox
: public Widget
{
33 CheckBox(int w
, int h
, const char *text
= nullptr, bool checked
= false);
34 explicit CheckBox(const char *text
= nullptr, bool checked
= false);
35 virtual ~CheckBox() override
;
38 virtual int draw(Curses::ViewPort area
, Error
&error
) override
;
40 /// Sets new text label.
41 virtual void setText(const char *new_text
);
43 /// Returns current text label.
44 virtual const char *getText() const { return text_
; }
46 virtual void setChecked(bool new_checked
);
47 virtual bool isChecked() const { return checked_
; }
49 /// Signal emitted when the checkbox is pressed/activated.
50 sigc::signal
<void, CheckBox
&, bool> signal_toggle
;
60 CONSUI_DISABLE_COPY(CheckBox
);
64 void declareBindables();
67 } // namespace CppConsUI
71 // vim: set tabstop=2 shiftwidth=2 textwidth=80 expandtab: