/************************************************************** * * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. * *************************************************************/ #ifndef _TXTATR_HXX #define _TXTATR_HXX #include // SwTxtAttr/SwTxtAttrEnd #include class SwTxtNode; // fuer SwTxtFld class SwCharFmt; namespace sw { class MetaFieldManager; } // ATT_CHARFMT ********************************************* class SwTxtCharFmt : public SwTxtAttrEnd { SwTxtNode * m_pTxtNode; sal_uInt16 m_nSortNumber; public: SwTxtCharFmt( SwFmtCharFmt& rAttr, xub_StrLen nStart, xub_StrLen nEnd ); virtual ~SwTxtCharFmt( ); // werden vom SwFmtCharFmt hierher weitergeleitet (no derivation from SwClient!) void ModifyNotification( const SfxPoolItem*, const SfxPoolItem* ); bool GetInfo( SfxPoolItem& rInfo ) const; // get and set TxtNode pointer void ChgTxtNode( SwTxtNode* pNew ) { m_pTxtNode = pNew; } void SetSortNumber( sal_uInt16 nSortNumber ) { m_nSortNumber = nSortNumber; } sal_uInt16 GetSortNumber() const { return m_nSortNumber; } }; // ****************************** class SwTxtAttrNesting : public SwTxtAttrEnd { protected: SwTxtAttrNesting( SfxPoolItem & i_rAttr, const xub_StrLen i_nStart, const xub_StrLen i_nEnd ); virtual ~SwTxtAttrNesting(); }; class SwTxtMeta : public SwTxtAttrNesting { private: SwTxtMeta( SwFmtMeta & i_rAttr, const xub_StrLen i_nStart, const xub_StrLen i_nEnd ); public: static SwTxtMeta * CreateTxtMeta( ::sw::MetaFieldManager & i_rTargetDocManager, SwTxtNode *const i_pTargetTxtNode, SwFmtMeta & i_rAttr, xub_StrLen const i_nStart, xub_StrLen const i_nEnd, bool const i_bIsCopy); virtual ~SwTxtMeta(); void ChgTxtNode(SwTxtNode * const pNode); }; // ****************************** class SW_DLLPUBLIC SwTxtRuby : public SwTxtAttrNesting, public SwClient { SwTxtNode* m_pTxtNode; protected: virtual void Modify( const SfxPoolItem* pOld, const SfxPoolItem *pNew); public: SwTxtRuby( SwFmtRuby& rAttr, xub_StrLen nStart, xub_StrLen nEnd ); virtual ~SwTxtRuby(); TYPEINFO(); virtual sal_Bool GetInfo( SfxPoolItem& rInfo ) const; SW_DLLPRIVATE void InitRuby(SwTxtNode & rNode); /// get and set TxtNode pointer const SwTxtNode* GetpTxtNode() const { return m_pTxtNode; } inline const SwTxtNode& GetTxtNode() const; void ChgTxtNode( SwTxtNode* pNew ) { m_pTxtNode = pNew; } SwCharFmt* GetCharFmt(); const SwCharFmt* GetCharFmt() const { return (const_cast(this))->GetCharFmt(); } }; // --------------- Inline Implementierungen ------------------------ inline const SwTxtNode& SwTxtRuby::GetTxtNode() const { ASSERT( m_pTxtNode, "SwTxtRuby: where is my TxtNode?" ); return *m_pTxtNode; } #endif