1 /************************************************************** 2 * 3 * Licensed to the Apache Software Foundation (ASF) under one 4 * or more contributor license agreements. See the NOTICE file 5 * distributed with this work for additional information 6 * regarding copyright ownership. The ASF licenses this file 7 * to you under the Apache License, Version 2.0 (the 8 * "License"); you may not use this file except in compliance 9 * with the License. You may obtain a copy of the License at 10 * 11 * http://www.apache.org/licenses/LICENSE-2.0 12 * 13 * Unless required by applicable law or agreed to in writing, 14 * software distributed under the License is distributed on an 15 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16 * KIND, either express or implied. See the License for the 17 * specific language governing permissions and limitations 18 * under the License. 19 * 20 *************************************************************/ 21 22 23 24 #ifndef SVX_UNOPROV_HXX 25 #define SVX_UNOPROV_HXX 26 27 #include <com/sun/star/lang/XServiceInfo.hpp> 28 #include <svl/itemprop.hxx> 29 #include <tools/list.hxx> 30 #include "svx/svxdllapi.h" 31 32 class SvxItemPropertySet; 33 class SfxItemPool; 34 35 /*********************************************************************** 36 * class UHashMap * 37 ***********************************************************************/ 38 39 struct UHashMapEntry 40 { 41 ::rtl::OUString aIdentifier; 42 sal_uInt32 nId; 43 UHashMapEntryUHashMapEntry44 UHashMapEntry(const sal_Char * value, sal_Int32 length, sal_uInt32 _nId) : aIdentifier(value,length,RTL_TEXTENCODING_ASCII_US), nId(_nId) { } 45 }; 46 47 DECLARE_LIST( UHashMapEntryList, UHashMapEntry* ) 48 49 #define HASHARRAYSIZE 0x10 50 #define UHASHMAP_NOTFOUND sal::static_int_cast< sal_uInt32 >(~0) 51 52 class UHashMap 53 { 54 private: 55 UHashMapEntryList m_aHashList[HASHARRAYSIZE]; 56 57 public: 58 UHashMap( UHashMapEntry* pMap ); ~UHashMap()59 ~UHashMap() {}; 60 61 sal_uInt32 getId( const ::rtl::OUString& rCompareString ); 62 }; 63 64 /*********************************************************************** 65 * Soriterer * 66 ***********************************************************************/ 67 68 #define SVXMAP_SHAPE 0 69 #define SVXMAP_CONNECTOR 1 70 #define SVXMAP_DIMENSIONING 2 71 #define SVXMAP_CIRCLE 3 72 #define SVXMAP_POLYPOLYGON 4 73 #define SVXMAP_POLYPOLYGONBEZIER 5 74 #define SVXMAP_GRAPHICOBJECT 6 75 #define SVXMAP_3DSCENEOBJECT 7 76 #define SVXMAP_3DCUBEOBJEKT 8 77 #define SVXMAP_3DSPHEREOBJECT 9 78 #define SVXMAP_3DLATHEOBJECT 10 79 #define SVXMAP_3DEXTRUDEOBJECT 11 80 #define SVXMAP_3DPOLYGONOBJECT 12 81 #define SVXMAP_ALL 13 82 #define SVXMAP_GROUP 14 83 #define SVXMAP_CAPTION 15 84 #define SVXMAP_OLE2 16 85 #define SVXMAP_PLUGIN 17 86 #define SVXMAP_FRAME 18 87 #define SVXMAP_APPLET 19 88 #define SVXMAP_CONTROL 20 89 #define SVXMAP_TEXT 21 90 #define SVXMAP_CUSTOMSHAPE 22 91 #define SVXMAP_MEDIA 23 92 #define SVXMAP_TABLE 24 93 #define SVXMAP_PAGE 25 94 #define SVXMAP_END 26 // last+1 ! 95 /*********************************************************************** 96 * SvxUnoPropertyMapProvider * 97 ***********************************************************************/ 98 class SVX_DLLPUBLIC SvxUnoPropertyMapProvider 99 { 100 SfxItemPropertyMapEntry* aMapArr[SVXMAP_END]; 101 SvxItemPropertySet* aSetArr[SVXMAP_END]; 102 // void Sort(sal_uInt16 nId); 103 public: 104 SvxUnoPropertyMapProvider(); 105 ~SvxUnoPropertyMapProvider(); 106 const SfxItemPropertyMapEntry* GetMap(sal_uInt16 nPropertyId); 107 const SvxItemPropertySet* GetPropertySet(sal_uInt16 nPropertyId, SfxItemPool& rPool); 108 }; 109 110 /*********************************************************************** 111 * Globals * 112 ***********************************************************************/ 113 114 const sal_Int16 OBJ_OLE2_APPLET = 100; 115 const sal_Int16 OBJ_OLE2_PLUGIN = 101; 116 117 extern SvxUnoPropertyMapProvider aSvxMapProvider; 118 extern UHashMapEntry pSdrShapeIdentifierMap[]; 119 extern UHashMap aSdrShapeIdentifierMap; 120 121 #define E3D_INVENTOR_FLAG (0x80000000) 122 123 #include <editeng/unoipset.hxx> 124 125 /*********************************************************************** 126 * class SvxPropertySetInfoPool * 127 ***********************************************************************/ 128 129 const sal_Int32 SVXUNO_SERVICEID_COM_SUN_STAR_DRAWING_DEFAULTS = 0; 130 const sal_Int32 SVXUNO_SERVICEID_COM_SUN_STAR_DRAWING_DEFAULTS_WRITER = 1; 131 const sal_Int32 SVXUNO_SERVICEID_LASTID = 1; 132 133 namespace comphelper { class PropertySetInfo; } 134 135 class SvxPropertySetInfoPool 136 { 137 public: 138 SVX_DLLPUBLIC static comphelper::PropertySetInfo* getOrCreate( sal_Int32 nServiceId ) throw(); 139 140 private: 141 static comphelper::PropertySetInfo* mpInfos[SVXUNO_SERVICEID_LASTID+1]; 142 }; 143 144 #endif 145 146