1*1d2dbeb0SAndrew Rist /************************************************************** 2cdf0e10cSrcweir * 3*1d2dbeb0SAndrew Rist * Licensed to the Apache Software Foundation (ASF) under one 4*1d2dbeb0SAndrew Rist * or more contributor license agreements. See the NOTICE file 5*1d2dbeb0SAndrew Rist * distributed with this work for additional information 6*1d2dbeb0SAndrew Rist * regarding copyright ownership. The ASF licenses this file 7*1d2dbeb0SAndrew Rist * to you under the Apache License, Version 2.0 (the 8*1d2dbeb0SAndrew Rist * "License"); you may not use this file except in compliance 9*1d2dbeb0SAndrew Rist * with the License. You may obtain a copy of the License at 10cdf0e10cSrcweir * 11*1d2dbeb0SAndrew Rist * http://www.apache.org/licenses/LICENSE-2.0 12cdf0e10cSrcweir * 13*1d2dbeb0SAndrew Rist * Unless required by applicable law or agreed to in writing, 14*1d2dbeb0SAndrew Rist * software distributed under the License is distributed on an 15*1d2dbeb0SAndrew Rist * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16*1d2dbeb0SAndrew Rist * KIND, either express or implied. See the License for the 17*1d2dbeb0SAndrew Rist * specific language governing permissions and limitations 18*1d2dbeb0SAndrew Rist * under the License. 19cdf0e10cSrcweir * 20*1d2dbeb0SAndrew Rist *************************************************************/ 21*1d2dbeb0SAndrew Rist 22*1d2dbeb0SAndrew Rist 23cdf0e10cSrcweir 24cdf0e10cSrcweir #ifndef _SECTION_HXX 25cdf0e10cSrcweir #define _SECTION_HXX 26cdf0e10cSrcweir 27cdf0e10cSrcweir #include <boost/utility.hpp> 28cdf0e10cSrcweir 29cdf0e10cSrcweir #include <com/sun/star/uno/Sequence.h> 30cdf0e10cSrcweir 31cdf0e10cSrcweir #include <tools/rtti.hxx> 32cdf0e10cSrcweir #include <tools/ref.hxx> 33cdf0e10cSrcweir #include <svl/svarray.hxx> 34713b4dcdSMichael Stahl // --> OD #i117863# 35713b4dcdSMichael Stahl #include <svl/smplhint.hxx> 36713b4dcdSMichael Stahl // <-- 37cdf0e10cSrcweir #include <sfx2/lnkbase.hxx> 38cdf0e10cSrcweir #include <sfx2/Metadatable.hxx> 39cdf0e10cSrcweir 40cdf0e10cSrcweir #include <frmfmt.hxx> 41cdf0e10cSrcweir 42cdf0e10cSrcweir 43cdf0e10cSrcweir namespace com { namespace sun { namespace star { 44cdf0e10cSrcweir namespace text { class XTextSection; } 45cdf0e10cSrcweir } } } 46cdf0e10cSrcweir 47cdf0e10cSrcweir // Forward Deklaration 48cdf0e10cSrcweir class SwSectionFmt; 49cdf0e10cSrcweir class SwDoc; 50cdf0e10cSrcweir class SwSection; 51cdf0e10cSrcweir class SwSectionNode; 52cdf0e10cSrcweir class SwTOXBase; 53cdf0e10cSrcweir 54cdf0e10cSrcweir #ifndef SW_DECL_SWSERVEROBJECT_DEFINED 55cdf0e10cSrcweir #define SW_DECL_SWSERVEROBJECT_DEFINED 56cdf0e10cSrcweir SV_DECL_REF( SwServerObject ) 57cdf0e10cSrcweir #endif 58cdf0e10cSrcweir 59cdf0e10cSrcweir SV_DECL_PTRARR( SwSections, SwSection*, 0, 4 ) 60cdf0e10cSrcweir 61cdf0e10cSrcweir enum SectionType { CONTENT_SECTION, 62cdf0e10cSrcweir TOX_HEADER_SECTION, 63cdf0e10cSrcweir TOX_CONTENT_SECTION, 64cdf0e10cSrcweir DDE_LINK_SECTION = OBJECT_CLIENT_DDE, 65cdf0e10cSrcweir FILE_LINK_SECTION = OBJECT_CLIENT_FILE 66cdf0e10cSrcweir /* 67cdf0e10cSrcweir // verbleiben noch: 68cdf0e10cSrcweir OBJECT_CLIENT_SO = 0x80, 69cdf0e10cSrcweir OBJECT_CLIENT_OLE = 0x82, 70cdf0e10cSrcweir OBJECT_CLIENT_OLE_CACHE = 0x83, 71cdf0e10cSrcweir */ 72cdf0e10cSrcweir }; 73cdf0e10cSrcweir 74cdf0e10cSrcweir enum LinkCreateType 75cdf0e10cSrcweir { 76cdf0e10cSrcweir CREATE_NONE, // nichts weiter tun 77cdf0e10cSrcweir CREATE_CONNECT, // Link gleich connecten 78cdf0e10cSrcweir CREATE_UPDATE // Link connecten und updaten 79cdf0e10cSrcweir }; 80cdf0e10cSrcweir 81cdf0e10cSrcweir class SW_DLLPUBLIC SwSectionData 82cdf0e10cSrcweir { 83cdf0e10cSrcweir private: 84cdf0e10cSrcweir SectionType m_eType; 85cdf0e10cSrcweir 86cdf0e10cSrcweir String m_sSectionName; 87cdf0e10cSrcweir String m_sCondition; 88cdf0e10cSrcweir String m_sLinkFileName; 89cdf0e10cSrcweir String m_sLinkFilePassword; // JP 27.02.2001: must be changed to Sequence 90cdf0e10cSrcweir ::com::sun::star::uno::Sequence <sal_Int8> m_Password; 91cdf0e10cSrcweir 92cdf0e10cSrcweir /// it seems this flag caches the current final "hidden" state 93cdf0e10cSrcweir bool m_bHiddenFlag : 1; 94cdf0e10cSrcweir /// flags that correspond to attributes in the format: 95cdf0e10cSrcweir /// may have different value than format attribute: 96cdf0e10cSrcweir /// format attr has value for this section, while flag is 97cdf0e10cSrcweir /// effectively ORed with parent sections! 98cdf0e10cSrcweir bool m_bProtectFlag : 1; 99cdf0e10cSrcweir // --> FME 2004-06-22 #114856# edit in readonly sections 100cdf0e10cSrcweir bool m_bEditInReadonlyFlag : 1; 101cdf0e10cSrcweir // <-- 102cdf0e10cSrcweir bool m_bHidden : 1; // all paragraphs hidden? 103cdf0e10cSrcweir bool m_bCondHiddenFlag : 1; // Hiddenflag for condition 104cdf0e10cSrcweir bool m_bConnectFlag : 1; // connected to server? 105cdf0e10cSrcweir 106cdf0e10cSrcweir public: 107cdf0e10cSrcweir 108cdf0e10cSrcweir SwSectionData(SectionType const eType, String const& rName); 109cdf0e10cSrcweir explicit SwSectionData(SwSection const&); 110cdf0e10cSrcweir SwSectionData(SwSectionData const&); 111cdf0e10cSrcweir SwSectionData & operator=(SwSectionData const&); 112cdf0e10cSrcweir bool operator==(SwSectionData const&) const; 113cdf0e10cSrcweir 114cdf0e10cSrcweir String const& GetSectionName() const { return m_sSectionName; } 115cdf0e10cSrcweir void SetSectionName(String const& rName){ m_sSectionName = rName; } 116cdf0e10cSrcweir SectionType GetType() const { return m_eType; } 117cdf0e10cSrcweir void SetType(SectionType const eNew) { m_eType = eNew; } 118cdf0e10cSrcweir 119cdf0e10cSrcweir bool IsHidden() const { return m_bHidden; } 120cdf0e10cSrcweir void SetHidden(bool const bFlag = true) { m_bHidden = bFlag; } 121cdf0e10cSrcweir 122cdf0e10cSrcweir bool IsHiddenFlag() const { return m_bHiddenFlag; } 123cdf0e10cSrcweir SW_DLLPRIVATE void 124cdf0e10cSrcweir SetHiddenFlag(bool const bFlag) { m_bHiddenFlag = bFlag; } 125cdf0e10cSrcweir bool IsProtectFlag() const { return m_bProtectFlag; } 126cdf0e10cSrcweir SW_DLLPRIVATE void 127cdf0e10cSrcweir SetProtectFlag(bool const bFlag) { m_bProtectFlag = bFlag; } 128cdf0e10cSrcweir // --> FME 2004-06-22 #114856# edit in readonly sections 129cdf0e10cSrcweir bool IsEditInReadonlyFlag() const { return m_bEditInReadonlyFlag; } 130cdf0e10cSrcweir void SetEditInReadonlyFlag(bool const bFlag) 131cdf0e10cSrcweir { m_bEditInReadonlyFlag = bFlag; } 132cdf0e10cSrcweir // <-- 133cdf0e10cSrcweir 134cdf0e10cSrcweir void SetCondHidden(bool const bFlag = true) { m_bCondHiddenFlag = bFlag; }; 135cdf0e10cSrcweir bool IsCondHidden() const { return m_bCondHiddenFlag; } 136cdf0e10cSrcweir 137cdf0e10cSrcweir String const& GetCondition() const { return m_sCondition; } 138cdf0e10cSrcweir void SetCondition(String const& rNew) { m_sCondition = rNew; } 139cdf0e10cSrcweir 140cdf0e10cSrcweir String const& GetLinkFileName() const { return m_sLinkFileName; }; 141cdf0e10cSrcweir void SetLinkFileName(String const& rNew, String const* pPassWd = 0) 142cdf0e10cSrcweir { 143cdf0e10cSrcweir m_sLinkFileName = rNew; 144cdf0e10cSrcweir if (pPassWd) { SetLinkFilePassword(*pPassWd); } 145cdf0e10cSrcweir } 146cdf0e10cSrcweir 147cdf0e10cSrcweir String const& GetLinkFilePassword() const { return m_sLinkFilePassword; } 148cdf0e10cSrcweir void SetLinkFilePassword(String const& rS) { m_sLinkFilePassword = rS; } 149cdf0e10cSrcweir 150cdf0e10cSrcweir ::com::sun::star::uno::Sequence<sal_Int8> const& GetPassword() const 151cdf0e10cSrcweir { return m_Password; } 152cdf0e10cSrcweir void SetPassword(::com::sun::star::uno::Sequence<sal_Int8> const& rNew) 153cdf0e10cSrcweir { m_Password = rNew; } 154cdf0e10cSrcweir bool IsLinkType() const 155cdf0e10cSrcweir { return (DDE_LINK_SECTION == m_eType) || (FILE_LINK_SECTION == m_eType); } 156cdf0e10cSrcweir 157cdf0e10cSrcweir bool IsConnectFlag() const { return m_bConnectFlag; } 158cdf0e10cSrcweir void SetConnectFlag(bool const bFlag = true){ m_bConnectFlag = bFlag; } 159cdf0e10cSrcweir }; 160cdf0e10cSrcweir 161cdf0e10cSrcweir class SW_DLLPUBLIC SwSection 162cdf0e10cSrcweir : public SwClient 163cdf0e10cSrcweir { 164cdf0e10cSrcweir // damit beim Anlegen/Loeschen von Frames das Flag richtig gepflegt wird! 165cdf0e10cSrcweir friend class SwSectionNode; 166cdf0e10cSrcweir // the "read CTOR" of SwSectionFrm have to change the Hiddenflag 167cdf0e10cSrcweir friend class SwSectionFrm; 168cdf0e10cSrcweir 169cdf0e10cSrcweir private: 170cdf0e10cSrcweir SwSectionData m_Data; 171cdf0e10cSrcweir 172cdf0e10cSrcweir SwServerObjectRef m_RefObj; // set if DataServer 173cdf0e10cSrcweir ::sfx2::SvBaseLinkRef m_RefLink; 174cdf0e10cSrcweir 175cdf0e10cSrcweir SW_DLLPRIVATE void ImplSetHiddenFlag( 176cdf0e10cSrcweir bool const bHidden, bool const bCondition); 177cdf0e10cSrcweir 178cdf0e10cSrcweir protected: 179cdf0e10cSrcweir virtual void Modify( const SfxPoolItem* pOld, const SfxPoolItem* pNew ); 180cdf0e10cSrcweir 181cdf0e10cSrcweir public: 182cdf0e10cSrcweir TYPEINFO(); // rtti 183cdf0e10cSrcweir 184cdf0e10cSrcweir SwSection(SectionType const eType, String const& rName, 185cdf0e10cSrcweir SwSectionFmt & rFormat); 186cdf0e10cSrcweir virtual ~SwSection(); 187cdf0e10cSrcweir 188cdf0e10cSrcweir bool DataEquals(SwSectionData const& rCmp) const; 189cdf0e10cSrcweir 190cdf0e10cSrcweir void SetSectionData(SwSectionData const& rData); 191cdf0e10cSrcweir 192cdf0e10cSrcweir String const& GetSectionName() const { return m_Data.GetSectionName(); } 193cdf0e10cSrcweir void SetSectionName(String const& rName){ m_Data.SetSectionName(rName); } 194cdf0e10cSrcweir SectionType GetType() const { return m_Data.GetType(); } 195cdf0e10cSrcweir void SetType(SectionType const eType) { return m_Data.SetType(eType); } 196cdf0e10cSrcweir 197cdf0e10cSrcweir SwSectionFmt* GetFmt() { return (SwSectionFmt*)GetRegisteredIn(); } 198cdf0e10cSrcweir SwSectionFmt* GetFmt() const { return (SwSectionFmt*)GetRegisteredIn(); } 199cdf0e10cSrcweir 200cdf0e10cSrcweir // setze die Hidden/Protected -> gesamten Baum updaten ! 201cdf0e10cSrcweir // (Attribute/Flags werden gesetzt/erfragt) 202cdf0e10cSrcweir bool IsHidden() const { return m_Data.IsHidden(); } 203cdf0e10cSrcweir void SetHidden (bool const bFlag = true); 204cdf0e10cSrcweir bool IsProtect() const; 205cdf0e10cSrcweir void SetProtect(bool const bFlag = true); 206cdf0e10cSrcweir // --> FME 2004-06-22 #114856# edit in readonly sections 207cdf0e10cSrcweir bool IsEditInReadonly() const; 208cdf0e10cSrcweir void SetEditInReadonly(bool const bFlag = true); 209cdf0e10cSrcweir // <-- 210cdf0e10cSrcweir 211cdf0e10cSrcweir // erfrage die internen Flags (Zustand inklusive Parents nicht, was 212cdf0e10cSrcweir // aktuell an der Section gesetzt ist!!) 213cdf0e10cSrcweir bool IsHiddenFlag() const { return m_Data.IsHiddenFlag(); } 214cdf0e10cSrcweir bool IsProtectFlag() const { return m_Data.IsProtectFlag(); } 215cdf0e10cSrcweir // --> FME 2004-06-22 #114856# edit in readonly sections 216cdf0e10cSrcweir bool IsEditInReadonlyFlag() const { return m_Data.IsEditInReadonlyFlag(); } 217cdf0e10cSrcweir // <-- 218cdf0e10cSrcweir 219cdf0e10cSrcweir void SetCondHidden(bool const bFlag = true); 220cdf0e10cSrcweir bool IsCondHidden() const { return m_Data.IsCondHidden(); } 221cdf0e10cSrcweir // erfrage (auch ueber die Parents), ob diese Section versteckt sein soll. 222cdf0e10cSrcweir sal_Bool CalcHiddenFlag() const; 223cdf0e10cSrcweir 224cdf0e10cSrcweir 225cdf0e10cSrcweir inline SwSection* GetParent() const; 226cdf0e10cSrcweir 227cdf0e10cSrcweir String const& GetCondition() const { return m_Data.GetCondition(); } 228cdf0e10cSrcweir void SetCondition(String const& rNew) { m_Data.SetCondition(rNew); } 229cdf0e10cSrcweir 230cdf0e10cSrcweir const String& GetLinkFileName() const; 231cdf0e10cSrcweir void SetLinkFileName(String const& rNew, String const*const pPassWd = 0); 232cdf0e10cSrcweir // password of linked file (only valid during runtime!) 233cdf0e10cSrcweir String const& GetLinkFilePassword() const 234cdf0e10cSrcweir { return m_Data.GetLinkFilePassword(); } 235cdf0e10cSrcweir void SetLinkFilePassword(String const& rS) 236cdf0e10cSrcweir { m_Data.SetLinkFilePassword(rS); } 237cdf0e10cSrcweir 238cdf0e10cSrcweir // get / set password of this section 239cdf0e10cSrcweir ::com::sun::star::uno::Sequence<sal_Int8> const& GetPassword() const 240cdf0e10cSrcweir { return m_Data.GetPassword(); } 241cdf0e10cSrcweir void SetPassword(::com::sun::star::uno::Sequence <sal_Int8> const& rNew) 242cdf0e10cSrcweir { m_Data.SetPassword(rNew); } 243cdf0e10cSrcweir 244cdf0e10cSrcweir // Daten Server-Methoden 245cdf0e10cSrcweir void SetRefObject( SwServerObject* pObj ); 246cdf0e10cSrcweir const SwServerObject* GetObject() const { return & m_RefObj; } 247cdf0e10cSrcweir SwServerObject* GetObject() { return & m_RefObj; } 248cdf0e10cSrcweir bool IsServer() const { return m_RefObj.Is(); } 249cdf0e10cSrcweir 250cdf0e10cSrcweir // Methoden fuer gelinkte Bereiche 251cdf0e10cSrcweir sal_uInt16 GetUpdateType() const { return m_RefLink->GetUpdateMode(); } 252cdf0e10cSrcweir void SetUpdateType(sal_uInt16 const nType ) 253cdf0e10cSrcweir { m_RefLink->SetUpdateMode(nType); } 254cdf0e10cSrcweir 255cdf0e10cSrcweir bool IsConnected() const { return m_RefLink.Is(); } 256cdf0e10cSrcweir void UpdateNow() { m_RefLink->Update(); } 257cdf0e10cSrcweir void Disconnect() { m_RefLink->Disconnect(); } 258cdf0e10cSrcweir 259cdf0e10cSrcweir const ::sfx2::SvBaseLink& GetBaseLink() const { return *m_RefLink; } 260cdf0e10cSrcweir ::sfx2::SvBaseLink& GetBaseLink() { return *m_RefLink; } 261cdf0e10cSrcweir 262cdf0e10cSrcweir void CreateLink( LinkCreateType eType ); 263cdf0e10cSrcweir 264cdf0e10cSrcweir void MakeChildLinksVisible( const SwSectionNode& rSectNd ); 265cdf0e10cSrcweir 266cdf0e10cSrcweir bool IsLinkType() const { return m_Data.IsLinkType(); } 267cdf0e10cSrcweir 268cdf0e10cSrcweir // Flags fuer UI - Verbindung geklappt? 269cdf0e10cSrcweir bool IsConnectFlag() const { return m_Data.IsConnectFlag(); } 270cdf0e10cSrcweir void SetConnectFlag(bool const bFlag = true) 271cdf0e10cSrcweir { m_Data.SetConnectFlag(bFlag); } 272cdf0e10cSrcweir 273cdf0e10cSrcweir // return the TOX base class if the section is a TOX section 274cdf0e10cSrcweir const SwTOXBase* GetTOXBase() const; 275cdf0e10cSrcweir 276cdf0e10cSrcweir // --> OD 2007-02-14 #b6521322# 277cdf0e10cSrcweir void BreakLink(); 278cdf0e10cSrcweir // <-- 279cdf0e10cSrcweir 280cdf0e10cSrcweir }; 281cdf0e10cSrcweir 282713b4dcdSMichael Stahl // --> OD #i117863# 283713b4dcdSMichael Stahl class SwSectionFrmMoveAndDeleteHint : public SfxSimpleHint 284713b4dcdSMichael Stahl { 285713b4dcdSMichael Stahl public: 286713b4dcdSMichael Stahl SwSectionFrmMoveAndDeleteHint( const sal_Bool bSaveCntnt ) 287713b4dcdSMichael Stahl : SfxSimpleHint( SFX_HINT_DYING ) 288713b4dcdSMichael Stahl , mbSaveCntnt( bSaveCntnt ) 289713b4dcdSMichael Stahl {} 290713b4dcdSMichael Stahl 291713b4dcdSMichael Stahl ~SwSectionFrmMoveAndDeleteHint() 292713b4dcdSMichael Stahl {} 293713b4dcdSMichael Stahl 294713b4dcdSMichael Stahl sal_Bool IsSaveCntnt() const 295713b4dcdSMichael Stahl { 296713b4dcdSMichael Stahl return mbSaveCntnt; 297713b4dcdSMichael Stahl } 298713b4dcdSMichael Stahl 299713b4dcdSMichael Stahl private: 300713b4dcdSMichael Stahl const sal_Bool mbSaveCntnt; 301713b4dcdSMichael Stahl }; 302713b4dcdSMichael Stahl // <-- 303cdf0e10cSrcweir 304cdf0e10cSrcweir enum SectionSort { SORTSECT_NOT, SORTSECT_NAME, SORTSECT_POS }; 305cdf0e10cSrcweir 306cdf0e10cSrcweir class SW_DLLPUBLIC SwSectionFmt 307cdf0e10cSrcweir : public SwFrmFmt 308cdf0e10cSrcweir , public ::sfx2::Metadatable 309cdf0e10cSrcweir { 310cdf0e10cSrcweir friend class SwDoc; 311cdf0e10cSrcweir 312cdf0e10cSrcweir /** why does this exist in addition to the m_wXObject in SwFrmFmt? 313cdf0e10cSrcweir in case of an index, both a SwXDocumentIndex and a SwXTextSection 314cdf0e10cSrcweir register at this SwSectionFmt, so we need to have two refs. 315cdf0e10cSrcweir */ 316cdf0e10cSrcweir ::com::sun::star::uno::WeakReference< 317cdf0e10cSrcweir ::com::sun::star::text::XTextSection> m_wXTextSection; 318cdf0e10cSrcweir 319cdf0e10cSrcweir SW_DLLPRIVATE void UpdateParent(); // Parent wurde veraendert 320cdf0e10cSrcweir 321cdf0e10cSrcweir protected: 322cdf0e10cSrcweir SwSectionFmt( SwSectionFmt* pDrvdFrm, SwDoc *pDoc ); 323cdf0e10cSrcweir virtual void Modify( const SfxPoolItem* pOld, const SfxPoolItem* pNew ); 324cdf0e10cSrcweir 325cdf0e10cSrcweir public: 326cdf0e10cSrcweir TYPEINFO(); //Bereits in Basisklasse Client drin. 327cdf0e10cSrcweir ~SwSectionFmt(); 328cdf0e10cSrcweir 329cdf0e10cSrcweir //Vernichtet alle Frms in aDepend (Frms werden per PTR_CAST erkannt). 330cdf0e10cSrcweir virtual void DelFrms(); 331cdf0e10cSrcweir 332cdf0e10cSrcweir //Erzeugt die Ansichten 333cdf0e10cSrcweir virtual void MakeFrms(); 334cdf0e10cSrcweir 335cdf0e10cSrcweir // erfrage vom Format Informationen 336cdf0e10cSrcweir virtual sal_Bool GetInfo( SfxPoolItem& ) const; 337cdf0e10cSrcweir 338cdf0e10cSrcweir SwSection* GetSection() const; 339cdf0e10cSrcweir inline SwSectionFmt* GetParent() const; 340cdf0e10cSrcweir inline SwSection* GetParentSection() const; 341cdf0e10cSrcweir 342cdf0e10cSrcweir // alle Sections, die von dieser abgeleitet sind 343cdf0e10cSrcweir // - sortiert nach : Name oder Position oder unsortiert 344cdf0e10cSrcweir // - alle oder nur die, die sich im normalten Nodes-Array befinden 345cdf0e10cSrcweir sal_uInt16 GetChildSections( SwSections& rArr, 346cdf0e10cSrcweir SectionSort eSort = SORTSECT_NOT, 347cdf0e10cSrcweir sal_Bool bAllSections = sal_True ) const; 348cdf0e10cSrcweir 349cdf0e10cSrcweir // erfrage, ob sich die Section im Nodes-Array oder UndoNodes-Array 350cdf0e10cSrcweir // befindet. 351cdf0e10cSrcweir sal_Bool IsInNodesArr() const; 352cdf0e10cSrcweir 353cdf0e10cSrcweir SwSectionNode* GetSectionNode(bool const bEvenIfInUndo = false); 354cdf0e10cSrcweir const SwSectionNode* GetSectionNode(bool const bEvenIfInUndo = false) const 355cdf0e10cSrcweir { return const_cast<SwSectionFmt *>(this) 356cdf0e10cSrcweir ->GetSectionNode(bEvenIfInUndo); } 357cdf0e10cSrcweir 358cdf0e10cSrcweir // ist die Section eine gueltige fuers GlobalDocument? 359cdf0e10cSrcweir const SwSection* GetGlobalDocSection() const; 360cdf0e10cSrcweir 361cdf0e10cSrcweir SW_DLLPRIVATE ::com::sun::star::uno::WeakReference< 362cdf0e10cSrcweir ::com::sun::star::text::XTextSection> const& GetXTextSection() const 363cdf0e10cSrcweir { return m_wXTextSection; } 364cdf0e10cSrcweir SW_DLLPRIVATE void SetXTextSection(::com::sun::star::uno::Reference< 365cdf0e10cSrcweir ::com::sun::star::text::XTextSection> const& xTextSection) 366cdf0e10cSrcweir { m_wXTextSection = xTextSection; } 367cdf0e10cSrcweir 368cdf0e10cSrcweir // sfx2::Metadatable 369cdf0e10cSrcweir virtual ::sfx2::IXmlIdRegistry& GetRegistry(); 370cdf0e10cSrcweir virtual bool IsInClipboard() const; 371cdf0e10cSrcweir virtual bool IsInUndo() const; 372cdf0e10cSrcweir virtual bool IsInContent() const; 373cdf0e10cSrcweir virtual ::com::sun::star::uno::Reference< 374cdf0e10cSrcweir ::com::sun::star::rdf::XMetadatable > MakeUnoObject(); 375cdf0e10cSrcweir 376cdf0e10cSrcweir }; 377cdf0e10cSrcweir 378cdf0e10cSrcweir // -------------- inlines --------------------------------- 379cdf0e10cSrcweir 380cdf0e10cSrcweir inline SwSection* SwSection::GetParent() const 381cdf0e10cSrcweir { 382cdf0e10cSrcweir SwSectionFmt* pFmt = GetFmt(); 383cdf0e10cSrcweir SwSection* pRet = 0; 384cdf0e10cSrcweir if( pFmt ) 385cdf0e10cSrcweir pRet = pFmt->GetParentSection(); 386cdf0e10cSrcweir return pRet; 387cdf0e10cSrcweir } 388cdf0e10cSrcweir 389cdf0e10cSrcweir inline SwSectionFmt* SwSectionFmt::GetParent() const 390cdf0e10cSrcweir { 391cdf0e10cSrcweir SwSectionFmt* pRet = 0; 392cdf0e10cSrcweir if( GetRegisteredIn() ) 393cdf0e10cSrcweir pRet = PTR_CAST( SwSectionFmt, GetRegisteredIn() ); 394cdf0e10cSrcweir return pRet; 395cdf0e10cSrcweir } 396cdf0e10cSrcweir 397cdf0e10cSrcweir inline SwSection* SwSectionFmt::GetParentSection() const 398cdf0e10cSrcweir { 399cdf0e10cSrcweir SwSectionFmt* pParent = GetParent(); 400cdf0e10cSrcweir SwSection* pRet = 0; 401cdf0e10cSrcweir if( pParent ) 402cdf0e10cSrcweir { 403cdf0e10cSrcweir pRet = pParent->GetSection(); 404cdf0e10cSrcweir } 405cdf0e10cSrcweir return pRet; 406cdf0e10cSrcweir } 407cdf0e10cSrcweir 408cdf0e10cSrcweir 409cdf0e10cSrcweir #endif /* _SECTION_HXX */ 410