Crazy Eddie's GUI System  0.8.7
widgets/PopupMenu.h
1 /***********************************************************************
2  created: 27/3/2005
3  author: Tomas Lindquist Olsen (based on code by Paul D Turner)
4 
5  purpose: Interface to base class for PopupMenu 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 _CEGUIPopupMenu_h_
30 #define _CEGUIPopupMenu_h_
31 
32 #include "../Base.h"
33 #include "../Window.h"
34 #include "./MenuBase.h"
35 
36 
37 #if defined(_MSC_VER)
38 # pragma warning(push)
39 # pragma warning(disable : 4251)
40 #endif
41 
42 
43 // Start of CEGUI namespace section
44 namespace CEGUI
45 {
46 
51 class CEGUIEXPORT PopupMenu : public MenuBase
52 {
53 public:
54  /************************************************************************
55  Constants
56  *************************************************************************/
57  static const String EventNamespace;
58  static const String WidgetTypeName;
59 
60  /*************************************************************************
61  Accessor type functions
62  *************************************************************************/
71  float getFadeInTime(void) const {return d_fadeInTime;}
72 
73 
82  float getFadeOutTime(void) const {return d_fadeOutTime;}
83 
84 
89  bool isPopupMenuOpen(void) const {return d_isOpen;}
90 
91 
92  /*************************************************************************
93  Manipulators
94  *************************************************************************/
103  void setFadeInTime(float fadetime) {d_fadeInTime=fadetime;}
104 
105 
114  void setFadeOutTime(float fadetime) {d_fadeOutTime=fadetime;}
115 
116 
124  void openPopupMenu(bool notify=true);
125 
126 
134  void closePopupMenu(bool notify=true);
135 
136 
137  /*************************************************************************
138  Construction and Destruction
139  *************************************************************************/
144  PopupMenu(const String& type, const String& name);
145 
146 
151  virtual ~PopupMenu(void);
152 
153 
154 protected:
155  /*************************************************************************
156  Implementation Functions
157  *************************************************************************/
168  virtual void updateSelf(float elapsed);
169 
170 
178  virtual void layoutItemWidgets(void);
179 
180 
188  virtual Sizef getContentSize(void) const;
189 
190  /*************************************************************************
191  Overridden event handlers
192  *************************************************************************/
193  virtual void onAlphaChanged(WindowEventArgs& e);
194  virtual void onDestructionStarted(WindowEventArgs& e);
195  virtual void onShown(WindowEventArgs& e);
196  virtual void onHidden(WindowEventArgs& e);
197  virtual void onMouseButtonDown(MouseEventArgs& e);
198  virtual void onMouseButtonUp(MouseEventArgs& e);
199 
200 
201  /*************************************************************************
202  Implementation Data
203  *************************************************************************/
204  float d_origAlpha;
207  float d_fadeInTime;
208  bool d_fading;
209  bool d_fadingOut;
210  bool d_isOpen;
211 
212 
213 private:
214  /*************************************************************************
215  Private methods
216  *************************************************************************/
217  void addPopupMenuProperties(void);
218 };
219 
220 
221 } // End of CEGUI namespace section
222 
223 
224 #if defined(_MSC_VER)
225 # pragma warning(pop)
226 #endif
227 
228 
229 #endif // end of guard _CEGUIPopupMenu_h_
static const String WidgetTypeName
Window factory name.
Definition: widgets/PopupMenu.h:58
bool d_fading
true if this popup menu is fading in/out. false if not
Definition: widgets/PopupMenu.h:208
bool isPopupMenuOpen(void) const
Find out if this popup menu is open or closed;.
Definition: widgets/PopupMenu.h:89
Main namespace for Crazy Eddie's GUI Library.
Definition: arch_overview.dox:1
float d_fadeOutTime
The time in seconds it takes for this popup menu to fade out.
Definition: widgets/PopupMenu.h:206
Abstract base class for menus.
Definition: MenuBase.h:51
float d_fadeInTime
The time in seconds it takes for this popup menu to fade in.
Definition: widgets/PopupMenu.h:207
float getFadeInTime(void) const
Get the fade in time for this popup menu.
Definition: widgets/PopupMenu.h:71
bool d_isOpen
true if this popup menu is open. false if not.
Definition: widgets/PopupMenu.h:210
bool d_fadingOut
true if this popup menu is fading out. false if fading in.
Definition: widgets/PopupMenu.h:209
void setFadeInTime(float fadetime)
Set the fade in time for this popup menu.
Definition: widgets/PopupMenu.h:103
Base class for popup menus.
Definition: widgets/PopupMenu.h:51
void setFadeOutTime(float fadetime)
Set the fade out time for this popup menu.
Definition: widgets/PopupMenu.h:114
EventArgs based class that is used for objects passed to handlers triggered for events concerning som...
Definition: InputEvent.h:251
float d_fadeElapsed
The time in seconds this popup menu has been fading.
Definition: widgets/PopupMenu.h:205
float getFadeOutTime(void) const
Get the fade out time for this popup menu.
Definition: widgets/PopupMenu.h:82
static const String EventNamespace
Namespace for global events.
Definition: widgets/PopupMenu.h:57
EventArgs based class that is used for objects passed to input event handlers concerning mouse input...
Definition: InputEvent.h:280
float d_origAlpha
The original alpha of this window.
Definition: widgets/PopupMenu.h:204
String class used within the GUI system.
Definition: String.h:62