/usr/include/Nux-4.0/Nux/AbstractButton.h is in libnux-4.0-dev 4.0.8+17.10.20170922-0ubuntu1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
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 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 | /*
* 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 <http://www.gnu.org/licenses/>
*
* Authored by: Jay Taoko <jaytaoko@inalogic.com>
*
*/
#ifndef ABSTRACTBUTTON_H
#define ABSTRACTBUTTON_H
#include "View.h"
#include "NuxCore/Property.h"
namespace nux
{
class StaticText;
enum ButtonVisualState
{
VISUAL_STATE_PRESSED = 0,
VISUAL_STATE_NORMAL = 1,
VISUAL_STATE_PRELIGHT = 2,
VISUAL_STATE_DISABLED = 3
};
//! The base class of button type widgets.
/*!
AbstractButton is the direct base class of Button, CheckBox and RadioButton. It is a base class for ToggleButton.
*/
class AbstractButton : public View
{
NUX_DECLARE_OBJECT_TYPE(AbstractButton, View);
public:
AbstractButton(NUX_FILE_LINE_PROTO);
virtual ~AbstractButton();
sigc::signal<void, AbstractButton*> visual_state_change;
//! Returns the visual state of the AbstractButton
/*!
Returns the visual state of the AbstractButton.
@return The visual state of the AbstractButton.
*/
ButtonVisualState GetVisualState();
//! Return the active state of the button.
/*!
Return the active state of the button. A Button has a non-persistent active state. It always returns false.
CheckBox, RadionButton and ToggleButton return true if they are active.
@return True if the button object is in an active state.
*/
bool Active() const;
//! Activate the button.
/*!
Activate the button. If this object is a Button, then it has no persistent state and the function does nothing.
*/
virtual void Activate() = 0;
//! Deactivate the button.
/*!
Deactivate the button. If this object is a Button, then it has no persistent state and the function does nothing.
*/
virtual void Deactivate() = 0;
//! Set the state of the button.
/*!
Set the sate of the button. The button is either activated or deactivated.
@param active The button state.
*/
virtual void SetActive(bool active);
//! Set the text color.
/*!
Set the text color.
@param color the text color.
*/
void SetLabelColor(const Color &color);
//! Get the text color.
/*!
Get the text color.
@return The text color.
*/
Color GetLabelColor();
//! Get the button visual state.
/*!
Get the button visual state.
@return The button visual state.
*/
ButtonVisualState GetVisualState() const;
virtual void SetLabelFontSize(int point);
int GetLabelFontSize() const;
protected:
//! The state of the AbstractButton.
bool active_;
bool mouse_pressed_;
//! Visual state of the button object.
ButtonVisualState visual_state_;
// Common attribute for all the classes that inherit from AbstractButton.
std::string label_;
Color label_color_;
StaticText *static_text_;
int label_font_size_;
bool same_size_as_content_;
int pre_layout_width_;
int pre_layout_height_;
virtual void RecvMouseUp (int x, int y, unsigned long button_flags, unsigned long key_flags);
virtual void RecvMouseDown (int x, int y, unsigned long button_flags, unsigned long key_flags);
virtual void RecvMouseMove (int x, int y, int dx, int dy, unsigned long button_flags, unsigned long key_flags);
virtual void RecvMouseEnter(int x, int y, unsigned long button_flags, unsigned long key_flags);
virtual void RecvMouseLeave(int x, int y, unsigned long button_flags, unsigned long key_flags);
virtual void RecvClick (int x, int y, unsigned long button_flags, unsigned long key_flags) = 0;
};
}
#endif // ABSTRACTBUTTON_H
|