]> git.saurik.com Git - wxWidgets.git/blame - include/wx/stack.h
More common code moved from generic dialogs to wxDialogBase::CreateButtonSizer()...
[wxWidgets.git] / include / wx / stack.h
CommitLineData
3c648a82
VZ
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>
65571936 8// Licence: wxWindows licence
3c648a82
VZ
9///////////////////////////////////////////////////////////////////////////////
10
11#ifndef _WX_STACK_H_
12#define _WX_STACK_H_
13
14#include "wx/vector.h"
15
e18e17f9 16#define WX_DECLARE_STACK(obj, cls)\
3c648a82
VZ
17class cls : public wxVectorBase\
18{\
d775fa82 19 WX_DECLARE_VECTORBASE(obj, cls);\
3c648a82 20public:\
d775fa82
WS
21 void push(const obj& o)\
22 {\
23 bool rc = Alloc(size() + 1);\
24 wxASSERT(rc);\
25 Append(new obj(o));\
26 };\
3c648a82 27\
d775fa82
WS
28 void pop()\
29 {\
30 RemoveAt(size() - 1);\
31 };\
3c648a82 32\
d775fa82
WS
33 obj& top()\
34 {\
35 return *(obj *) GetItem(size() - 1);\
36 };\
37 const obj& top() const\
38 {\
39 return *(obj *) GetItem(size() - 1);\
40 };\
3c648a82
VZ
41}
42
43#endif // _WX_STACK_H_
44