Crazy Eddie's GUI System  0.8.4
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Pages
widgets/TabButton.h
1 /***********************************************************************
2  created: 8/8/2004
3  author: Steve Streeting
4 
5  purpose: Interface to base class for TabButton 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 _CEGUITabButton_h_
30 #define _CEGUITabButton_h_
31 
32 #include "../Base.h"
33 #include "./ButtonBase.h"
34 
35 // Start of CEGUI namespace section
36 namespace CEGUI
37 {
44 class CEGUIEXPORT TabButton : public ButtonBase
45 {
46 public:
47  static const String EventNamespace;
48  static const String WidgetTypeName;
49 
50  /*************************************************************************
51  Event name constants
52  *************************************************************************/
53  // generated internally by Window
58  static const String EventClicked;
64  static const String EventDragged;
69  static const String EventScrolled;
70 
71  /*************************************************************************
72  Construction and Destruction
73  *************************************************************************/
78  TabButton(const String& type, const String& name);
79 
80 
85  virtual ~TabButton(void);
86 
91  virtual void setSelected(bool selected) { d_selected = selected; invalidate(); }
92 
97  bool isSelected(void) const { return d_selected; }
98 
99 
105  void setTargetWindow(Window* wnd);
111  Window* getTargetWindow(void) { return d_targetWindow; }
112 
113 protected:
114  /*************************************************************************
115  Implementation Data
116  *************************************************************************/
117  bool d_selected;
118  bool d_dragging;
120  /*************************************************************************
121  New Event Handlers
122  *************************************************************************/
127  virtual void onClicked(WindowEventArgs& e);
128 
129 
130  /*************************************************************************
131  Overridden Event Handlers
132  *************************************************************************/
133  virtual void onMouseButtonUp(MouseEventArgs& e);
134  virtual void onMouseButtonDown(MouseEventArgs& e);
135  virtual void onMouseWheel(MouseEventArgs& e);
136  virtual void onMouseMove(MouseEventArgs& e);
137 };
138 
139 
140 } // End of CEGUI namespace section
141 
142 
143 #endif // end of guard _CEGUITabButton_h_