]> git.saurik.com Git - wxWidgets.git/blob - include/wx/stack.h
Applied [ 1708971 ] Make a virtual function to enable/disable docking
[wxWidgets.git] / include / wx / stack.h
1 ///////////////////////////////////////////////////////////////////////////////
2 // Name: wx/stack.h
3 // Purpose: STL stack clone
4 // Author: Lindsay Mathieson
5 // Modified by:
6 // Created: 30.07.2001
7 // Copyright: (c) 2001 Lindsay Mathieson <lindsay@mathieson.org>
8 // Licence: wxWindows licence
9 ///////////////////////////////////////////////////////////////////////////////
10
11 #ifndef _WX_STACK_H_
12 #define _WX_STACK_H_
13
14 #include "wx/vector.h"
15
16 #define WX_DECLARE_STACK(obj, cls)\
17 class cls : public wxVectorBase\
18 {\
19 WX_DECLARE_VECTORBASE(obj, cls);\
20 public:\
21 void push(const obj& o)\
22 {\
23 if ( !Alloc(size() + 1) )\
24 {\
25 wxFAIL_MSG(_T("failed to extend stack"));\
26 }\
27 Append(new obj(o));\
28 };\
29 \
30 void pop()\
31 {\
32 RemoveAt(size() - 1);\
33 };\
34 \
35 obj& top()\
36 {\
37 return *(obj *) GetItem(size() - 1);\
38 };\
39 const obj& top() const\
40 {\
41 return *(obj *) GetItem(size() - 1);\
42 };\
43 }
44
45 #endif // _WX_STACK_H_
46