Crazy Eddie's GUI System 0.8.7
ButtonBase.h
1/***********************************************************************
2 created: 13/4/2004
3 author: Paul D Turner
4
5 purpose: Interface to base class for ButtonBase widget
6*************************************************************************/
7/***************************************************************************
8 * Copyright (C) 2004 - 2006 Paul D Turner & The CEGUI Development Team
9 *
10 * Permission is hereby granted, free of charge, to any person obtaining
11 * a copy of this software and associated documentation files (the
12 * "Software"), to deal in the Software without restriction, including
13 * without limitation the rights to use, copy, modify, merge, publish,
14 * distribute, sublicense, and/or sell copies of the Software, and to
15 * permit persons to whom the Software is furnished to do so, subject to
16 * the following conditions:
17 *
18 * The above copyright notice and this permission notice shall be
19 * included in all copies or substantial portions of the Software.
20 *
21 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
22 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
23 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
24 * IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
25 * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
26 * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
27 * OTHER DEALINGS IN THE SOFTWARE.
28 ***************************************************************************/
29#ifndef _CEGUIButtonBase_h_
30#define _CEGUIButtonBase_h_
31
32#include "../Base.h"
33#include "../Window.h"
34
35
36#if defined(_MSC_VER)
37# pragma warning(push)
38# pragma warning(disable : 4251)
39#endif
40
41
42// Start of CEGUI namespace section
43namespace CEGUI
44{
45
50class CEGUIEXPORT ButtonBase : public Window
51{
52public:
53 /*************************************************************************
54 Accessor type functions
55 *************************************************************************/
63 bool isHovering(void) const {return d_hovering;}
64
65
73 bool isPushed(void) const {return d_pushed;}
74
78 void setPushedState(const bool pushed);
79
80 /*************************************************************************
81 Construction and Destruction
82 *************************************************************************/
87 ButtonBase(const String& type, const String& name);
88
89
94 virtual ~ButtonBase(void);
95
96
97protected:
98 /*************************************************************************
99 Overridden event handlers
100 *************************************************************************/
101 virtual void onMouseMove(MouseEventArgs& e);
106
107
108 /*************************************************************************
109 Implementation Functions
110 *************************************************************************/
121 void updateInternalState(const Vector2f& mouse_pos);
122
123 bool calculateCurrentHoverState(const Vector2f& mouse_pos);
124
125 /*************************************************************************
126 Implementation Data
127 *************************************************************************/
128 bool d_pushed;
130};
131
132} // End of CEGUI namespace section
133
134#if defined(_MSC_VER)
135# pragma warning(pop)
136#endif
137
138#endif // end of guard _CEGUIButtonBase_h_
Base class for all the 'button' type widgets (push button, radio button, check-box,...
Definition: ButtonBase.h:51
bool isPushed(void) const
Return true if the button widget is in the pushed state.
Definition: ButtonBase.h:73
virtual void onMouseLeaves(MouseEventArgs &e)
Handler called when the mouse cursor is no longer over this window's surface area....
bool d_pushed
true when widget is pushed
Definition: ButtonBase.h:128
void updateInternalState(const Vector2f &mouse_pos)
Update the internal state of the widget with the mouse at the given position.
virtual void onCaptureLost(WindowEventArgs &e)
Handler called when this window loses capture of mouse inputs.
virtual void onMouseMove(MouseEventArgs &e)
Handler called when the mouse cursor has been moved within this window's area.
virtual void onMouseButtonDown(MouseEventArgs &e)
Handler called when a mouse button has been depressed within this window's area.
void setPushedState(const bool pushed)
virtual ~ButtonBase(void)
Destructor for ButtonBase objects.
virtual void onMouseButtonUp(MouseEventArgs &e)
Handler called when a mouse button has been released within this window's area.
bool isHovering(void) const
return true if user is hovering over this widget (or it's pushed and user is not over it for highligh...
Definition: ButtonBase.h:63
bool d_hovering
true when the button is in 'hover' state and requires the hover rendering.
Definition: ButtonBase.h:129
ButtonBase(const String &type, const String &name)
Constructor for ButtonBase objects.
EventArgs based class that is used for objects passed to input event handlers concerning mouse input.
Definition: InputEvent.h:281
String class used within the GUI system.
Definition: String.h:64
EventArgs based class that is used for objects passed to handlers triggered for events concerning som...
Definition: InputEvent.h:252
An abstract base class providing common functionality and specifying the required interface for deriv...
Definition: Window.h:151
Main namespace for Crazy Eddie's GUI Library.
Definition: arch_overview.dox:1