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 _SLOT_HXX 25 #define _SLOT_HXX 26 27 #include <types.hxx> 28 #include <command.hxx> 29 30 /******************** class SvMetaSlot **********************************/ 31 //class SbxObject; 32 class SvMetaSlotMemberList; 33 class SvMetaSlot : public SvMetaAttribute 34 { 35 SvMetaTypeRef aSlotType; 36 SvMetaAttributeRef aMethod; 37 SvIdentifier aGroupId; 38 SvBOOL aHasCoreId; 39 SvIdentifier aConfigId; 40 SvIdentifier aExecMethod; 41 SvIdentifier aStateMethod; 42 SvIdentifier aDefault; 43 SvBOOL aPseudoSlots; 44 SvBOOL aGet; 45 SvBOOL aSet; 46 47 SvBOOL aCachable; // exclusiv 48 SvBOOL aVolatile; 49 SvBOOL aToggle; 50 SvBOOL aAutoUpdate; 51 52 SvBOOL aSynchron; // exclusiv 53 SvBOOL aAsynchron; 54 55 SvBOOL aRecordPerItem;// exclusiv 56 SvBOOL aRecordPerSet; 57 SvBOOL aRecordManual; 58 SvBOOL aNoRecord; 59 SvBOOL aRecordAbsolute; 60 61 SvBOOL aHasDialog; 62 SvBOOL aMenuConfig; 63 SvBOOL aToolBoxConfig; 64 SvBOOL aStatusBarConfig; 65 SvBOOL aAccelConfig; 66 SvBOOL aFastCall; 67 SvBOOL aContainer; 68 SvBOOL aImageRotation; 69 SvBOOL aImageReflection; 70 SvIdentifier aPseudoPrefix; 71 SvString aDisableFlags; 72 SvMetaSlot* pLinkedSlot; 73 SvMetaSlot* pNextSlot; 74 sal_uLong nListPos; 75 SvMetaEnumValue* pEnumValue; 76 SvString aUnoName; 77 78 #ifdef IDL_COMPILER 79 void WriteSlot( const ByteString & rShellName, 80 sal_uInt16 nCount, const ByteString & rSlotId, 81 SvSlotElementList &rList, 82 const ByteString & rPrefix, 83 SvIdlDataBase & rBase, SvStream & rOutStm ); 84 virtual void Write( SvIdlDataBase & rBase, 85 SvStream & rOutStm, sal_uInt16 nTab, 86 WriteType, WriteAttribute = 0 ); 87 88 void SetEnumValue(SvMetaEnumValue *p) 89 { pEnumValue = p; } 90 #endif 91 protected: 92 void SetCachable( sal_Bool bSet ) 93 { 94 aCachable = bSet; 95 if( bSet ) 96 aVolatile = sal_False; 97 } 98 void SetVolatile( sal_Bool bSet ) 99 { 100 aVolatile = bSet; 101 if( bSet ) 102 aCachable = sal_False; 103 } 104 void SetToggle( sal_Bool bSet ) 105 { 106 aToggle = bSet; 107 } 108 void SetAutoUpdate( sal_Bool bSet ) 109 { 110 aAutoUpdate = bSet; 111 } 112 113 void SetSynchron( sal_Bool bSet ) 114 { 115 aSynchron = bSet; 116 if( bSet ) 117 aAsynchron = sal_False; 118 } 119 void SetAsynchron( sal_Bool bSet ) 120 { 121 aAsynchron = bSet; 122 if( bSet ) 123 aSynchron = sal_False; 124 } 125 126 void SetRecordPerItem( sal_Bool bSet ) 127 { 128 aRecordPerItem = bSet; 129 if( bSet ) 130 aRecordPerSet = aRecordManual = aNoRecord = sal_False; 131 } 132 void SetRecordPerSet( sal_Bool bSet ) 133 { 134 aRecordPerSet = bSet; 135 if( bSet ) 136 aRecordPerItem = aRecordManual = aNoRecord = sal_False; 137 } 138 void SetRecordManual( sal_Bool bSet ) 139 { 140 aRecordManual = bSet; 141 if( bSet ) 142 aRecordPerItem = aRecordPerSet = aNoRecord = sal_False; 143 } 144 void SetNoRecord( sal_Bool bSet ) 145 { 146 aNoRecord = bSet; 147 if( bSet ) 148 aRecordPerItem = aRecordPerSet = aRecordManual = sal_False; 149 } 150 void SetRecordAbsolute( sal_Bool bSet ) 151 { aRecordAbsolute = bSet; } 152 void SetHasDialog( sal_Bool bSet ) 153 { aHasDialog = bSet; } 154 void SetMenuConfig( sal_Bool bSet ) 155 { aMenuConfig = bSet; } 156 void SetToolBoxConfig( sal_Bool bSet ) 157 { aToolBoxConfig = bSet; } 158 void SetStatusBarConfig( sal_Bool bSet ) 159 { aStatusBarConfig = bSet; } 160 void SetAccelConfig( sal_Bool bSet ) 161 { aAccelConfig = bSet; } 162 void SetAllConfig( sal_Bool bSet ) 163 { 164 aMenuConfig = bSet; 165 aToolBoxConfig = bSet; 166 aStatusBarConfig = bSet; 167 aAccelConfig = bSet; 168 } 169 void SetFastCall( sal_Bool bSet ) 170 { aFastCall = bSet; } 171 void SetContainer( sal_Bool bSet ) 172 { aContainer = bSet; } 173 void SetImageRotation( sal_Bool bSet ) 174 { aImageRotation = bSet; } 175 void SetImageReflection( sal_Bool bSet ) 176 { aImageReflection = bSet; } 177 178 public: 179 SV_DECL_META_FACTORY1( SvMetaSlot, SvMetaReference, 11 ) 180 SvMetaObject * MakeClone() const; 181 SvMetaSlot *Clone() const { return (SvMetaSlot *)MakeClone(); } 182 183 SvMetaSlot(); 184 SvMetaSlot( SvMetaType * pType ); 185 186 virtual sal_Bool IsVariable() const; 187 virtual sal_Bool IsMethod() const; 188 virtual ByteString GetMangleName( sal_Bool bVariable ) const; 189 190 SvMetaAttribute * GetMethod() const; 191 SvMetaType * GetSlotType() const; 192 sal_Bool GetHasCoreId() const; 193 const ByteString & GetGroupId() const; 194 const ByteString & GetConfigId() const; 195 const ByteString & GetExecMethod() const; 196 const ByteString & GetStateMethod() const; 197 const ByteString & GetDefault() const; 198 const ByteString & GetDisableFlags() const; 199 sal_Bool GetPseudoSlots() const; 200 /* 201 sal_Bool GetGet() const; 202 sal_Bool GetSet() const; 203 */ 204 sal_Bool GetCachable() const; 205 sal_Bool GetVolatile() const; 206 sal_Bool GetToggle() const; 207 sal_Bool GetAutoUpdate() const; 208 209 sal_Bool GetSynchron() const; 210 sal_Bool GetAsynchron() const; 211 212 sal_Bool GetRecordPerItem() const; 213 sal_Bool GetRecordPerSet() const; 214 sal_Bool GetRecordManual() const; 215 sal_Bool GetNoRecord() const; 216 sal_Bool GetRecordAbsolute() const; 217 218 sal_Bool GetHasDialog() const; 219 const ByteString & GetPseudoPrefix() const; 220 const ByteString & GetUnoName() const; 221 sal_Bool GetMenuConfig() const; 222 sal_Bool GetToolBoxConfig() const; 223 sal_Bool GetStatusBarConfig() const; 224 sal_Bool GetAccelConfig() const; 225 sal_Bool GetFastCall() const; 226 sal_Bool GetContainer() const; 227 sal_Bool GetImageRotation() const; 228 sal_Bool GetImageReflection() const; 229 SvMetaSlot* GetLinkedSlot() const 230 { return pLinkedSlot; } 231 SvMetaSlot* GetNextSlot() const 232 { return pNextSlot; } 233 sal_uLong GetListPos() const 234 { return nListPos; } 235 void SetListPos(sal_uLong n) 236 { nListPos = n; } 237 void ResetSlotPointer() 238 { pNextSlot = pLinkedSlot = 0; } 239 240 // void FillSbxObject( SvIdlDataBase & rBase, SbxObject *, sal_Bool bProp ); 241 #ifdef IDL_COMPILER 242 SvMetaEnumValue* GetEnumValue() const 243 { return pEnumValue; } 244 virtual sal_Bool Test( SvIdlDataBase &, SvTokenStream & rInStm ); 245 virtual void ReadAttributesSvIdl( SvIdlDataBase & rBase, 246 SvTokenStream & rInStm ); 247 virtual void WriteAttributesSvIdl( SvIdlDataBase & rBase, 248 SvStream & rOutStm, sal_uInt16 nTab ); 249 virtual sal_Bool ReadSvIdl( SvIdlDataBase &, SvTokenStream & rInStm ); 250 virtual void WriteSvIdl( SvIdlDataBase & rBase, 251 SvStream & rOutStm, sal_uInt16 nTab ); 252 virtual void Insert( SvSlotElementList&, const ByteString & rPrefix, 253 SvIdlDataBase& ); 254 void WriteSlotStubs( const ByteString & rShellName, 255 ByteStringList & rList, 256 SvStream & rOutStm ); 257 sal_uInt16 WriteSlotMap( const ByteString & rShellName, 258 sal_uInt16 nCount, 259 SvSlotElementList&, 260 const ByteString &, 261 SvIdlDataBase & rBase, 262 SvStream & rOutStm ); 263 sal_uInt16 WriteSlotParamArray( SvIdlDataBase & rBase, 264 SvStream & rOutStm ); 265 virtual void WriteHelpId( SvIdlDataBase & rBase, SvStream & rOutStm, 266 Table * pIdTable ); 267 virtual void WriteSrc( SvIdlDataBase & rBase, SvStream & rOutStm, 268 Table * pIdTable ); 269 virtual void WriteCSV( SvIdlDataBase&, SvStream& ); 270 #endif 271 }; 272 SV_DECL_IMPL_REF(SvMetaSlot) 273 SV_DECL_IMPL_PERSIST_LIST(SvMetaSlot,SvMetaSlot *) 274 275 #endif // _SLOT_HXX 276