summaryrefslogtreecommitdiff
path: root/fpicker
diff options
context:
space:
mode:
authorRüdiger Timm <rt@openoffice.org>2008-03-12 06:35:23 +0000
committerRüdiger Timm <rt@openoffice.org>2008-03-12 06:35:23 +0000
commit48bc9a164eaaf7fd43b59c4d6495c70581d67520 (patch)
treedf5bc3e732ab8806d0abe8a2164d83fb9dbab0ff /fpicker
parentc69a2750ac4241993521525db90435530fab513d (diff)
INTEGRATION: CWS hro34 (1.1.4); FILE ADDED
2008/03/07 10:38:15 hro 1.1.4.2: #i78851# #i72556# Implemented Vista style File Dialog 2007/08/30 14:09:00 hro 1.1.4.1: file propmap.hxx was added on branch cws_dev300_hro34 on 2008-03-07 10:38:15 +0000
Diffstat (limited to 'fpicker')
-rw-r--r--fpicker/source/win32/filepicker/propmap.hxx109
1 files changed, 109 insertions, 0 deletions
diff --git a/fpicker/source/win32/filepicker/propmap.hxx b/fpicker/source/win32/filepicker/propmap.hxx
new file mode 100644
index 000000000000..7ce8badce615
--- /dev/null
+++ b/fpicker/source/win32/filepicker/propmap.hxx
@@ -0,0 +1,109 @@
+/*************************************************************************
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * $RCSfile: propmap.hxx,v $
+ *
+ * $Revision: 1.2 $
+ *
+ * last change: $Author: rt $ $Date: 2008-03-12 07:35:23 $
+ *
+ * The Contents of this file are made available subject to
+ * the terms of GNU Lesser General Public License Version 2.1.
+ *
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2005 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library 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 for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ ************************************************************************/
+
+#ifndef _PROPMAP_HXX_
+#define _PROPMAP_HXX_
+
+#include <hash_map>
+#include <rtl/ustring.hxx>
+#include <sal/types.h>
+
+typedef ::std::hash_map< ::rtl::OUString ,
+ void* ,
+ ::rtl::OUStringHash ,
+ ::std::equal_to< ::rtl::OUString > > TPropMapBase;
+
+class TPropMap
+{
+ private:
+
+ TPropMapBase m_aMap;
+
+ public:
+
+ template< class TValueType >
+ void put(const ::rtl::OUString& sKey ,
+ const TValueType& rValue)
+ {
+ void* pValue = (void*)&rValue;
+ m_aMap[sKey] = pValue;
+ }
+
+ template< class TValueType >
+ void put_copy(const ::rtl::OUString& sKey ,
+ const TValueType& rValue)
+ {
+ TValueType* pCopy = new TValueType(rValue);
+ m_aMap[sKey] = (void*)pCopy;
+ }
+
+ template< class TValueType >
+ sal_Bool get(const ::rtl::OUString& sKey ,
+ TValueType** pValue)
+ {
+ TPropMapBase::iterator pIt = m_aMap.find(sKey);
+ if (pIt == m_aMap.end())
+ return sal_False;
+
+ void* pItem = pIt->second;
+ *pValue = (TValueType*)pItem;
+ return (pItem != 0);
+ }
+
+ template< class TValueType >
+ sal_Bool get_copy(const ::rtl::OUString& sKey ,
+ TValueType& rValue)
+ {
+ TPropMapBase::iterator pIt = m_aMap.find(sKey);
+ if (pIt == m_aMap.end())
+ return sal_False;
+
+ void* pValue = pIt->second;
+ if ( ! pValue)
+ return sal_False;
+
+ rValue = *((TValueType*)pValue);
+ //delete pValue;
+ m_aMap.erase(pIt);
+ return sal_True;
+ }
+
+ void clear()
+ {
+ m_aMap.clear();
+ }
+};
+
+#endif