Crazy Eddie's GUI System 0.8.7
Loading...
Searching...
No Matches
MenuBase.h
1/***********************************************************************
2 created: 5/4/2005
3 author: Tomas Lindquist Olsen (based on code by Paul D Turner)
4
5 purpose: Interface to base class for MenuBase 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 _CEGUIMenuBase_h_
30#define _CEGUIMenuBase_h_
31
32#include "../Base.h"
33#include "../Window.h"
34#include "./ItemListBase.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
44namespace CEGUI
45{
46
51class CEGUIEXPORT MenuBase : public ItemListBase
52{
53public:
54 static const String EventNamespace;
55
56
57 /*************************************************************************
58 Event name constants
59 *************************************************************************/
60 // generated internally by Window
71
72
73 /*************************************************************************
74 Accessor type functions
75 *************************************************************************/
83 float getItemSpacing(void) const
84 {
85 return d_itemSpacing;
86 }
87
88
96 bool isMultiplePopupsAllowed(void) const
97 {
98 return d_allowMultiplePopups;
99 }
100
109 {
110 return d_autoCloseNestedPopups;
111 }
112
121 {
122 return d_popupItem;
123 }
124
125
126 /*************************************************************************
127 Manipulators
128 *************************************************************************/
134 {
135 d_itemSpacing = spacing;
136 handleUpdatedItemData();
137 }
138
139
148
149
155
161 {
162 d_autoCloseNestedPopups = setting;
163 }
169
170
171 /*************************************************************************
172 Construction and Destruction
173 *************************************************************************/
178 MenuBase(const String& type, const String& name);
179
180
185 virtual ~MenuBase(void);
186
187
188protected:
189 /*************************************************************************
190 New Event Handlers
191 *************************************************************************/
197
198
204
205 // overridden from base
207 virtual void onHidden(WindowEventArgs& e);
208
209 /*************************************************************************
210 Implementation Data
211 *************************************************************************/
213
217
218
219private:
220 /*************************************************************************
221 Private methods
222 *************************************************************************/
223 void addMenuBaseProperties(void);
224};
225
226} // End of CEGUI namespace section
227
228
229#if defined(_MSC_VER)
230# pragma warning(pop)
231#endif
232
233#endif // end of guard _CEGUIMenuBase_h_
EventArgs based class that is used for objects passed to handlers triggered for events concerning som...
Definition Element.h:211
Base class for item list widgets.
Definition ItemListBase.h:79
Abstract base class for menus.
Definition MenuBase.h:52
float d_itemSpacing
The spacing in pixels between items.
Definition MenuBase.h:212
virtual void onPopupClosed(WindowEventArgs &e)
handler invoked internally when the a MenuItem attached to this menu closes its popup.
static const String EventPopupOpened
Definition MenuBase.h:65
void setItemSpacing(float spacing)
Set the item spacing for this menu.
Definition MenuBase.h:133
bool getAutoCloseNestedPopups(void) const
Return whether this menu should close all its open child popups, when it gets hidden.
Definition MenuBase.h:108
void changePopupMenuItem(MenuItem *item)
Change the currently open MenuItem in this menu.
virtual void onPopupOpened(WindowEventArgs &e)
handler invoked internally when the a MenuItem attached to this menu opens its popup.
virtual void onChildRemoved(ElementEventArgs &e)
Handler called when a child window is removed from this window.
static const String EventPopupClosed
Definition MenuBase.h:70
bool d_allowMultiplePopups
true if multiple popup menus are allowed simultaneously. false if not.
Definition MenuBase.h:215
virtual ~MenuBase(void)
Destructor for MenuBase objects.
bool isMultiplePopupsAllowed(void) const
Return whether this menu allows multiple popup menus to open at the same time.
Definition MenuBase.h:96
virtual void onHidden(WindowEventArgs &e)
Handler called when the window is hidden.
float getItemSpacing(void) const
Get the item spacing for this menu.
Definition MenuBase.h:83
void setAutoCloseNestedPopups(bool setting)
Set whether the menu should close all its open child popups, when it gets hidden.
Definition MenuBase.h:160
void setAllowMultiplePopups(bool setting)
Set whether this menu allows multiple popup menus to be opened simultaneously.
static const String EventNamespace
Namespace for global events.
Definition MenuBase.h:54
MenuItem * d_popupItem
The currently open MenuItem. NULL if no item is open. If multiple popups are allowed,...
Definition MenuBase.h:214
MenuItem * getPopupMenuItem(void) const
Get currently opened MenuItem in this menu. Returns NULL if no menu item is open.
Definition MenuBase.h:120
void setPopupMenuItemClosing()
tells the current popup that it should start its closing timer.
bool d_autoCloseNestedPopups
true if the menu should close all its open child popups, when it gets hidden
Definition MenuBase.h:216
MenuBase(const String &type, const String &name)
Constructor for MenuBase objects.
Base class for menu items.
Definition widgets/MenuItem.h:50
String class used within the GUI system.
Definition String.h:64
base class for properties able to do native set/get
Definition TypedProperty.h:50
EventArgs based class that is used for objects passed to handlers triggered for events concerning som...
Definition InputEvent.h:252
Main namespace for Crazy Eddie's GUI Library.
Definition arch_overview.dox:1