/*
* Copyright 2010 Inalogic® Inc.
*
* This program is free software: you can redistribute it and/or modify it
* under the terms of the GNU Lesser General Public License, as
* published by the Free Software Foundation; either version 2.1 or 3.0
* of the License.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranties of
* MERCHANTABILITY, SATISFACTORY QUALITY or FITNESS FOR A PARTICULAR
* PURPOSE. See the applicable version of the GNU Lesser General Public
* License for more details.
*
* You should have received a copy of both the GNU Lesser General Public
* License along with this program. If not, see
*
* Authored by: Jay Taoko
*
*/
#ifndef CHECKBOX_H
#define CHECKBOX_H
#include "AbstractCheckedButton.h"
namespace nux
{
class HLayout;
class InputArea;
class StaticText;
//! CheckBox class
/*!
A CheckBox class.\n
The CheckBox class cannot be vertically resized. It can only be resized horizontally.
The vertical size is always match the size of the content (check area + label).
*/
class CheckBox: public AbstractCheckedButton
{
NUX_DECLARE_OBJECT_TYPE(CheckBox, AbstractCheckedButton);
public:
CheckBox(const std::string &str, bool state = false, NUX_FILE_LINE_PROTO);
virtual ~CheckBox();
//! Emitted when the button is clicked.
sigc::signal click;
//! Emitted when the active state changes.
/*!
Emitted when the active state changes, as a result of a mouse click or an API call.\n
\sa Activate, Deactivate.
*/
sigc::signal state_change;
//! Activate the check box.
/*!
Activate the check box.
*/
virtual void Activate();
//! Deactivate the check box.
/*!
Deactivate the check box.
*/
virtual void Deactivate();
protected:
virtual void Draw(GraphicsEngine &graphics_engine, bool force_draw);
virtual void RecvClick(int x, int y, unsigned long button_flags, unsigned long key_flags);
private:
//! Override of Area::SetMinimumHeight and made private.
/*!
Prevent changing the minimum height of the StaticText view.
*/
virtual void SetMinimumHeight(int h){};
//! Override of Area::SetMaximumHeight and made private.
/*!
Prevent changing the maximum height of the StaticText view.
*/
virtual void SetMaximumHeight(int h){};
};
}
#endif // CHECKBOX_H