summaryrefslogtreecommitdiffstats
path: root/sfx2
diff options
context:
space:
mode:
authorAugust Sodora <augsod@gmail.com>2012-01-20 17:49:45 -0500
committerAugust Sodora <augsod@gmail.com>2012-01-20 17:50:50 -0500
commitf9424e58a3e32f3bf1112206ad23b6922fdc010c (patch)
tree708d973af8dbf9f2541c20fd2b076811fe89f411 /sfx2
parentUnused define (diff)
downloadcore-f9424e58a3e32f3bf1112206ad23b6922fdc010c.tar.gz
core-f9424e58a3e32f3bf1112206ad23b6922fdc010c.zip
Revert "Remove DECL_PTRSTACK"
This reverts commit fabf6aa20117fb1132fc7e730e5eeecd0378e67e.
Diffstat (limited to 'sfx2')
-rw-r--r--sfx2/Package_inc.mk1
-rw-r--r--sfx2/inc/sfx2/minstack.hxx65
-rw-r--r--sfx2/source/control/dispatch.cxx1
-rw-r--r--sfx2/source/menu/mnumgr.cxx1
4 files changed, 68 insertions, 0 deletions
diff --git a/sfx2/Package_inc.mk b/sfx2/Package_inc.mk
index 3714d2167b3f..4dd559d4a65f 100644
--- a/sfx2/Package_inc.mk
+++ b/sfx2/Package_inc.mk
@@ -83,6 +83,7 @@ $(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/mgetempl.hxx,sfx2/mgetempl.h
$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/mieclip.hxx,sfx2/mieclip.hxx))
$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/minarray.hxx,sfx2/minarray.hxx))
$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/minfitem.hxx,sfx2/minfitem.hxx))
+$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/minstack.hxx,sfx2/minstack.hxx))
$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/mnuitem.hxx,sfx2/mnuitem.hxx))
$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/mnumgr.hxx,sfx2/mnumgr.hxx))
$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/module.hxx,sfx2/module.hxx))
diff --git a/sfx2/inc/sfx2/minstack.hxx b/sfx2/inc/sfx2/minstack.hxx
new file mode 100644
index 000000000000..361c3043220a
--- /dev/null
+++ b/sfx2/inc/sfx2/minstack.hxx
@@ -0,0 +1,65 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef _SFXMINSTACK_HXX
+#define _SFXMINSTACK_HXX
+
+#include <sfx2/minarray.hxx>
+
+#define DECL_PTRSTACK( ARR, T, nI, nG ) \
+DECL_PTRARRAY( ARR##arr_, T, nI, nG ) \
+class ARR: private ARR##arr_ \
+{ \
+public: \
+ ARR( sal_uInt8 nInitSize = nI, sal_uInt8 nGrowSize = nG ): \
+ ARR##arr_( nInitSize, nGrowSize ) \
+ {} \
+\
+ ARR( const ARR& rOrig ): \
+ ARR##arr_( rOrig ) \
+ {} \
+\
+ sal_uInt16 Count() const { return ARR##arr_::Count(); } \
+ void Push( T rElem ) { Append( rElem ); } \
+ T Top( sal_uInt16 nLevel = 0 ) const \
+ { return (*this)[Count()-nLevel-1]; } \
+ T Bottom() const { return (*this)[0]; } \
+ T Pop() \
+ { T aRet = (*this)[Count()-1]; \
+ Remove( Count()-1, 1 ); \
+ return aRet; \
+ } \
+ T* operator*() \
+ { return &(*this)[Count()-1]; } \
+ void Clear() { ARR##arr_::Clear(); } \
+ sal_Bool Contains( const T pItem ) const \
+ { return ARR##arr_::Contains( pItem ); } \
+}
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sfx2/source/control/dispatch.cxx b/sfx2/source/control/dispatch.cxx
index 9a8e6071c2a9..88dfc70a18fe 100644
--- a/sfx2/source/control/dispatch.cxx
+++ b/sfx2/source/control/dispatch.cxx
@@ -48,6 +48,7 @@
#include "appdata.hxx"
#include "sfx2/sfxhelp.hxx"
#include <sfx2/dispatch.hxx>
+#include <sfx2/minstack.hxx>
#include <sfx2/msg.hxx>
#include <sfx2/objface.hxx>
#include <sfx2/bindings.hxx>
diff --git a/sfx2/source/menu/mnumgr.cxx b/sfx2/source/menu/mnumgr.cxx
index c46c5e93d424..8b87238fdbf3 100644
--- a/sfx2/source/menu/mnumgr.cxx
+++ b/sfx2/source/menu/mnumgr.cxx
@@ -62,6 +62,7 @@
#include "virtmenu.hxx"
#include <sfx2/msg.hxx>
#include <sfx2/dispatch.hxx>
+#include <sfx2/minstack.hxx>
#include <sfx2/app.hxx>
#include "sfxtypes.hxx"
#include <sfx2/bindings.hxx>