home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / wxos2240.zip / wxWindows-2.4.0 / include / wx / stack.h < prev    next >
C/C++ Source or Header  |  2001-07-10  |  946b  |  45 lines

  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 license
  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.         bool rc = Alloc(size() + 1);\
  24.         wxASSERT(rc);\
  25.         Append(new obj(o));\
  26.     };\
  27. \
  28.     void pop()\
  29.     {\
  30.         RemoveAt(size() - 1);\
  31.     };\
  32. \
  33.     obj& top()\
  34.     {\
  35.         return *(obj *) GetItem(size() - 1);\
  36.     };\
  37.     const obj& top() const\
  38.     {\
  39.         return *(obj *) GetItem(size() - 1);\
  40.     };\
  41. }
  42.  
  43. #endif // _WX_STACK_H_
  44.  
  45.