Crazy Eddie's GUI System  0.8.3
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Pages
widgets/PopupMenu.h
1 /***********************************************************************
2  filename: CEGUIPopupMenu.h
3  created: 27/3/2005
4  author: Tomas Lindquist Olsen (based on code by Paul D Turner)
5 
6  purpose: Interface to base class for PopupMenu widget
7 *************************************************************************/
8 /***************************************************************************
9  * Copyright (C) 2004 - 2006 Paul D Turner & The CEGUI Development Team
10  *
11  * Permission is hereby granted, free of charge, to any person obtaining
12  * a copy of this software and associated documentation files (the
13  * "Software"), to deal in the Software without restriction, including
14  * without limitation the rights to use, copy, modify, merge, publish,
15  * distribute, sublicense, and/or sell copies of the Software, and to
16  * permit persons to whom the Software is furnished to do so, subject to
17  * the following conditions:
18  *
19  * The above copyright notice and this permission notice shall be
20  * included in all copies or substantial portions of the Software.
21  *
22  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
23  * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
24  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
25  * IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
26  * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
27  * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
28  * OTHER DEALINGS IN THE SOFTWARE.
29  ***************************************************************************/
30 #ifndef _CEGUIPopupMenu_h_
31 #define _CEGUIPopupMenu_h_
32 
33 #include "../Base.h"
34 #include "../Window.h"
35 #include "./MenuBase.h"
36 
37 
38 #if defined(_MSC_VER)
39 # pragma warning(push)
40 # pragma warning(disable : 4251)
41 #endif
42 
43 
44 // Start of CEGUI namespace section
45 namespace CEGUI
46 {
47 
52 class CEGUIEXPORT PopupMenu : public MenuBase
53 {
54 public:
55  /************************************************************************
56  Constants
57  *************************************************************************/
58  static const String EventNamespace;
59  static const String WidgetTypeName;
60 
61  /*************************************************************************
62  Accessor type functions
63  *************************************************************************/
72  float getFadeInTime(void) const {return d_fadeInTime;}
73 
74 
83  float getFadeOutTime(void) const {return d_fadeOutTime;}
84 
85 
90  bool isPopupMenuOpen(void) const {return d_isOpen;}
91 
92 
93  /*************************************************************************
94  Manipulators
95  *************************************************************************/
104  void setFadeInTime(float fadetime) {d_fadeInTime=fadetime;}
105 
106 
115  void setFadeOutTime(float fadetime) {d_fadeOutTime=fadetime;}
116 
117 
125  void openPopupMenu(bool notify=true);
126 
127 
135  void closePopupMenu(bool notify=true);
136 
137 
138  /*************************************************************************
139  Construction and Destruction
140  *************************************************************************/
145  PopupMenu(const String& type, const String& name);
146 
147 
152  virtual ~PopupMenu(void);
153 
154 
155 protected:
156  /*************************************************************************
157  Implementation Functions
158  *************************************************************************/
169  virtual void updateSelf(float elapsed);
170 
171 
179  virtual void layoutItemWidgets(void);
180 
181 
189  virtual Sizef getContentSize(void) const;
190 
191  /*************************************************************************
192  Overridden event handlers
193  *************************************************************************/
194  virtual void onAlphaChanged(WindowEventArgs& e);
195  virtual void onDestructionStarted(WindowEventArgs& e);
196  virtual void onShown(WindowEventArgs& e);
197  virtual void onHidden(WindowEventArgs& e);
198  virtual void onMouseButtonDown(MouseEventArgs& e);
199  virtual void onMouseButtonUp(MouseEventArgs& e);
200 
201 
202  /*************************************************************************
203  Implementation Data
204  *************************************************************************/
205  float d_origAlpha;
208  float d_fadeInTime;
209  bool d_fading;
210  bool d_fadingOut;
211  bool d_isOpen;
212 
213 
214 private:
215  /*************************************************************************
216  Private methods
217  *************************************************************************/
218  void addPopupMenuProperties(void);
219 };
220 
221 
222 } // End of CEGUI namespace section
223 
224 
225 #if defined(_MSC_VER)
226 # pragma warning(pop)
227 #endif
228 
229 
230 #endif // end of guard _CEGUIPopupMenu_h_