LCOV - code coverage report
Current view: top level - lotuswordpro/source/filter - lwpfribptr.cxx (source / functions) Hit Total Coverage
Test: commit e02a6cb2c3e2b23b203b422e4e0680877f232636 Lines: 0 286 0.0 %
Date: 2014-04-14 Functions: 0 10 0.0 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
       2             : /*************************************************************************
       3             :  *
       4             :  *  The Contents of this file are made available subject to the terms of
       5             :  *  either of the following licenses
       6             :  *
       7             :  *         - GNU Lesser General Public License Version 2.1
       8             :  *         - Sun Industry Standards Source License Version 1.1
       9             :  *
      10             :  *  Sun Microsystems Inc., October, 2000
      11             :  *
      12             :  *  GNU Lesser General Public License Version 2.1
      13             :  *  =============================================
      14             :  *  Copyright 2000 by Sun Microsystems, Inc.
      15             :  *  901 San Antonio Road, Palo Alto, CA 94303, USA
      16             :  *
      17             :  *  This library is free software; you can redistribute it and/or
      18             :  *  modify it under the terms of the GNU Lesser General Public
      19             :  *  License version 2.1, as published by the Free Software Foundation.
      20             :  *
      21             :  *  This library is distributed in the hope that it will be useful,
      22             :  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
      23             :  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
      24             :  *  Lesser General Public License for more details.
      25             :  *
      26             :  *  You should have received a copy of the GNU Lesser General Public
      27             :  *  License along with this library; if not, write to the Free Software
      28             :  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston,
      29             :  *  MA  02111-1307  USA
      30             :  *
      31             :  *
      32             :  *  Sun Industry Standards Source License Version 1.1
      33             :  *  =================================================
      34             :  *  The contents of this file are subject to the Sun Industry Standards
      35             :  *  Source License Version 1.1 (the "License"); You may not use this file
      36             :  *  except in compliance with the License. You may obtain a copy of the
      37             :  *  License at http://www.openoffice.org/license.html.
      38             :  *
      39             :  *  Software provided under this License is provided on an "AS IS" basis,
      40             :  *  WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
      41             :  *  WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
      42             :  *  MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
      43             :  *  See the License for the specific provisions governing your rights and
      44             :  *  obligations concerning the Software.
      45             :  *
      46             :  *  The Initial Developer of the Original Code is: IBM Corporation
      47             :  *
      48             :  *  Copyright: 2008 by IBM Corporation
      49             :  *
      50             :  *  All Rights Reserved.
      51             :  *
      52             :  *  Contributor(s): _______________________________________
      53             :  *
      54             :  *
      55             :  ************************************************************************/
      56             : /*************************************************************************
      57             :  * @file
      58             :  *  For LWP filter architecture prototype
      59             :  ************************************************************************/
      60             : /*************************************************************************
      61             :  * Change History
      62             :  Jan 2005           Created
      63             :  ************************************************************************/
      64             : 
      65             : #include "lwpfribptr.hxx"
      66             : 
      67             : #include "lwpfribheader.hxx"
      68             : #include "lwpfribtext.hxx"
      69             : #include "lwppara.hxx"
      70             : #include "lwpstory.hxx"
      71             : #include "xfilter/xftextspan.hxx"
      72             : #include "xfilter/xftextcontent.hxx"
      73             : #include "xfilter/xftabstop.hxx"
      74             : #include "xfilter/xflinebreak.hxx"
      75             : #include "lwpfribsection.hxx"
      76             : #include "lwpsection.hxx"
      77             : #include "lwpfribbreaks.hxx"
      78             : #include "lwpfribframe.hxx"
      79             : #include "lwpfribtable.hxx"
      80             : #include "xfilter/xfstylemanager.hxx"
      81             : #include "lwphyperlinkmgr.hxx"
      82             : #include "xfilter/xfhyperlink.hxx"
      83             : #include "lwpfootnote.hxx"
      84             : #include "lwpnotes.hxx"
      85             : #include "lwpfribmark.hxx"
      86             : #include "xfilter/xfchange.hxx"
      87             : #include "lwpchangemgr.hxx"
      88             : #include "lwpglobalmgr.hxx"
      89             : 
      90           0 : LwpFribPtr::LwpFribPtr()
      91           0 :     : m_pFribs(NULL),m_pXFPara(NULL),m_pPara(NULL)
      92             : {
      93           0 : }
      94             : 
      95           0 : LwpFribPtr::~LwpFribPtr()
      96             : {
      97           0 :     LwpFrib* pNextFrib = m_pFribs;
      98           0 :     LwpFrib* pCurFrib = m_pFribs;
      99           0 :     while(pCurFrib)
     100             :     {
     101           0 :         pNextFrib = pCurFrib -> GetNext();
     102           0 :         delete pCurFrib;
     103           0 :         pCurFrib = pNextFrib;
     104             :     }
     105           0 : }
     106             : 
     107           0 : void LwpFribPtr::ReadPara(LwpObjectStream* pObjStrm)
     108             : {
     109           0 :     LwpFrib* pCurFrib = m_pFribs = NULL;
     110             :     for(;;)
     111             :     {
     112             :         // Get the frib type
     113           0 :         sal_uInt8 FribTag = pObjStrm->QuickReaduInt8();
     114             : 
     115           0 :         sal_uInt8 FribType = FribTag & ~FRIB_TAG_TYPEMASK;
     116             : 
     117             :         // Stop when we hit Elvis
     118           0 :         if (FribType == FRIB_TAG_ELVIS)
     119           0 :             break;
     120             : 
     121             :         // skip the editor ID
     122             :         //pObjStrm->SeekRel(sizeof(sal_uInt8));
     123           0 :         sal_uInt8 FribEditor = pObjStrm->QuickReaduInt8();
     124           0 :         if( FribType != FT_MAXIMUM )
     125             :         {
     126           0 :             LwpFrib* pFrib = LwpFrib::CreateFrib( m_pPara, pObjStrm, FribTag,FribEditor);
     127           0 :             if(!m_pFribs)
     128             :             {
     129           0 :                 m_pFribs = pFrib;
     130             :             }
     131           0 :             if(pCurFrib)
     132             :             {
     133           0 :                 pCurFrib->SetNext(pFrib);
     134             :             }
     135             :             else//frist frib in the para,add by  2/1
     136             :             {
     137           0 :                 if (pFrib->GetType() == FRIB_TAG_TEXT)
     138             :                 {
     139           0 :                     LwpFribText* pText = static_cast<LwpFribText*>(pFrib);
     140           0 :                     if (pFrib->GetModifiers())
     141           0 :                         m_pPara->SetFirstFrib(pText->GetText(),pText->GetModifiers()->FontID);
     142             :                     else
     143           0 :                         m_pPara->SetFirstFrib(pText->GetText(),0);
     144             :                 }
     145             :             }
     146           0 :             pCurFrib = pFrib;
     147             :         }
     148           0 :     }
     149           0 : }
     150             : 
     151             : #include "lwpdropcapmgr.hxx"
     152           0 : void LwpFribPtr::XFConvert()
     153             : {
     154           0 :     LwpFrib* pFrib = m_pFribs;
     155           0 :     while(pFrib)
     156             :     {
     157           0 :         sal_uInt8 nFribType = pFrib->GetType();
     158           0 :         sal_Bool bRevisionFlag = pFrib->GetRevisionFlag();
     159           0 :         OUString sChangeID;
     160           0 :         if (bRevisionFlag)
     161             :         {
     162           0 :             if ( nFribType!= FRIB_TAG_TABLE && nFribType != FRIB_TAG_FIELD
     163           0 :                     && nFribType != FRIB_TAG_FRAME)
     164             :             {
     165             :                 //sal_uInt8 nRevisionType = pFrib->GetRevisionType();
     166           0 :                 LwpGlobalMgr* pGlobal = LwpGlobalMgr::GetInstance();
     167           0 :                 LwpChangeMgr* pChangeMgr = pGlobal->GetLwpChangeMgr();
     168           0 :                 sChangeID = pChangeMgr->GetChangeID(pFrib);
     169           0 :                 if (!sChangeID.isEmpty())
     170             :                 {
     171             :                 /// if (nRevisionType == LwpFrib::REV_INSERT)
     172             :                 /// {
     173           0 :                         XFChangeStart* pChangeStart = new XFChangeStart;
     174           0 :                         pChangeStart->SetChangeID(sChangeID);
     175           0 :                         m_pXFPara->Add(pChangeStart);
     176             :                 /// }
     177             :                 /// else if (nRevisionType == LwpFrib::REV_DELETE)
     178             :                 /// {
     179             :                 ///     XFChange* pChange = new XFChange;
     180             :                 ///     pChange->SetChangeID(sChangeID);
     181             :                 ///     m_pXFPara->Add(pChange);
     182             :                 ///     pFrib = pFrib->GetNext();
     183             :                 ///     continue;
     184             :                 /// }
     185             :                 }
     186             :             }
     187             :         }
     188             : 
     189           0 :             switch(nFribType)
     190             :             {
     191             :         case FRIB_TAG_TEXT:
     192             :         {
     193           0 :             LwpFribText* textFrib= static_cast<LwpFribText*>(pFrib);
     194           0 :             textFrib->XFConvert(m_pXFPara,m_pPara->GetStory());
     195             :         }
     196           0 :             break;
     197             :         case FRIB_TAG_TAB:
     198             :         {
     199           0 :             LwpFribTab* tabFrib = static_cast<LwpFribTab*>(pFrib);
     200           0 :             if (pFrib->m_ModFlag)
     201             :             {
     202           0 :                 XFTextSpan *pSpan = new XFTextSpan();
     203           0 :                 pSpan->SetStyleName(tabFrib->GetStyleName());
     204           0 :                 XFTabStop *pTab = new XFTabStop();
     205           0 :                 pSpan->Add(pTab);
     206           0 :                 m_pXFPara->Add(pSpan);
     207             :             }
     208             :             else
     209             :             {
     210           0 :                 XFTabStop *pTab = new XFTabStop();
     211           0 :                 m_pXFPara->Add(pTab);
     212             :             }
     213             :         }
     214           0 :             break;
     215             :         case FRIB_TAG_SECTION:
     216             :         {
     217           0 :             LwpFribSection* pSectionFrib = static_cast<LwpFribSection*>(pFrib);
     218           0 :             pSectionFrib->ParseSection();
     219             :         }
     220           0 :         break;
     221             : 
     222             :         case FRIB_TAG_PAGEBREAK:
     223             :         {
     224           0 :             LwpFribPageBreak* pPageBreak = static_cast<LwpFribPageBreak*>(pFrib);
     225           0 :             LwpPageLayout* pLayout = dynamic_cast<LwpPageLayout*>(pPageBreak->GetLayout()->obj());
     226           0 :             if(pLayout)
     227             :             {
     228           0 :                 pPageBreak->ParseLayout();
     229             :             }
     230             :             else
     231             :             {
     232           0 :                 if (pPageBreak->IsLastFrib() == sal_True)
     233             :                 {
     234           0 :                     m_pXFPara->SetStyleName( pPageBreak->GetStyleName() );
     235             :                 }
     236             :                 else
     237             :                 {
     238             :                     //parse pagebreak
     239           0 :                     XFParagraph *pPara = new XFParagraph();
     240           0 :                     pPara->SetStyleName(pFrib->GetStyleName());
     241           0 :                     SetXFPara(pPara);
     242           0 :                     m_pPara->AddXFContent(pPara);
     243             :                 }
     244             :             }
     245             :         }
     246           0 :             break;
     247             :         case FRIB_TAG_COLBREAK:
     248             :         {
     249           0 :             XFParagraph *pPara = new XFParagraph();
     250           0 :             pPara->SetStyleName(pFrib->GetStyleName());
     251           0 :             SetXFPara(pPara);
     252           0 :             m_pPara->AddXFContent(pPara);
     253             :         }
     254           0 :             break;
     255             :         case FRIB_TAG_LINEBREAK:
     256             :         {
     257           0 :             XFLineBreak *pLineBreak = new XFLineBreak();
     258           0 :             m_pXFPara->Add(pLineBreak);
     259             :         }
     260           0 :             break;
     261             :         case FRIB_TAG_UNICODE: //fall through
     262             :         case FRIB_TAG_UNICODE2: //fall through
     263             :         case FRIB_TAG_UNICODE3: //fall through
     264             :         {
     265           0 :             LwpFribUnicode* unicodeFrib= static_cast<LwpFribUnicode*>(pFrib);
     266           0 :             unicodeFrib->XFConvert(m_pXFPara,m_pPara->GetStory());
     267             :         }
     268           0 :             break;
     269             :         case FRIB_TAG_HARDSPACE:
     270             :         {
     271           0 :             OUString sHardSpace(sal_Unicode(0x00a0));
     272             :             LwpHyperlinkMgr* pHyperlink =
     273           0 :                     m_pPara->GetStory()->GetHyperlinkMgr();
     274           0 :             if (pHyperlink->GetHyperlinkFlag())
     275           0 :                 pFrib->ConvertHyperLink(m_pXFPara,pHyperlink,sHardSpace);
     276             :             else
     277           0 :                 pFrib->ConvertChars(m_pXFPara,sHardSpace);
     278             :         }
     279           0 :             break;
     280             :         case FRIB_TAG_SOFTHYPHEN:
     281             :         {
     282           0 :             OUString sSoftHyphen(sal_Unicode(0x00ad));
     283           0 :             pFrib->ConvertChars(m_pXFPara,sSoftHyphen);
     284             :         }
     285           0 :             break;
     286             :         case FRIB_TAG_FRAME:
     287             :         {
     288           0 :             LwpFribFrame* frameFrib= static_cast<LwpFribFrame*>(pFrib);
     289           0 :             LwpObject* pLayout = frameFrib->GetLayout();
     290           0 :             if (pLayout && pLayout->GetTag() == VO_DROPCAPLAYOUT)
     291           0 :                 m_pPara->GetFoundry()->GetDropcapMgr()->SetXFPara(m_pXFPara);
     292           0 :             frameFrib->XFConvert(m_pXFPara);
     293             :         }
     294           0 :             break;
     295             :         case FRIB_TAG_CHBLOCK:
     296             :         {
     297           0 :             LwpFribCHBlock* chbFrib = static_cast<LwpFribCHBlock*>(pFrib);
     298           0 :             chbFrib->XFConvert(m_pXFPara,m_pPara->GetStory());
     299             :         }
     300           0 :             break;
     301             :         case FRIB_TAG_TABLE:
     302             :         {
     303           0 :             LwpFribTable* tableFrib = static_cast<LwpFribTable*>(pFrib);
     304             :             //tableFrib->XFConvert(m_pPara->GetXFContainer());
     305           0 :             tableFrib->XFConvert(m_pXFPara);
     306             :         }
     307           0 :             break;
     308             :         case FRIB_TAG_BOOKMARK:
     309             :         {
     310           0 :             LwpFribBookMark* bookmarkFrib = static_cast<LwpFribBookMark*>(pFrib);
     311           0 :             bookmarkFrib->XFConvert(m_pXFPara);
     312             :         }
     313           0 :         break;
     314             :         case FRIB_TAG_FOOTNOTE:
     315             :         {
     316           0 :             LwpFribFootnote* pFootnoteFrib = static_cast<LwpFribFootnote*>(pFrib);
     317           0 :             pFootnoteFrib->XFConvert(m_pXFPara);
     318           0 :             break;
     319             :         }
     320             :         case FRIB_TAG_FIELD:
     321             :         {
     322           0 :             LwpFribField* fieldFrib = static_cast<LwpFribField*>(pFrib);
     323           0 :             fieldFrib->XFConvert(m_pXFPara);
     324           0 :             break;
     325             :         }
     326             :         case FRIB_TAG_NOTE:
     327             :         {
     328           0 :             LwpFribNote* pNoteFrib = static_cast<LwpFribNote*>(pFrib);
     329           0 :             pNoteFrib->XFConvert(m_pXFPara);
     330           0 :             break;
     331             :         }
     332             :         case FRIB_TAG_PAGENUMBER:
     333             :         {
     334           0 :             LwpFribPageNumber* pagenumFrib = static_cast<LwpFribPageNumber*>(pFrib);
     335           0 :             pagenumFrib->XFConvert(m_pXFPara);
     336           0 :             break;
     337             :         }
     338             :         case FRIB_TAG_DOCVAR:
     339             :         {
     340           0 :             LwpFribDocVar* docFrib = static_cast<LwpFribDocVar*>(pFrib);
     341           0 :             docFrib->XFConvert(m_pXFPara);
     342           0 :             break;
     343             :         }
     344             :         case FRIB_TAG_RUBYMARKER:
     345             :         {
     346           0 :             LwpFribRubyMarker* rubyFrib = static_cast<LwpFribRubyMarker*>(pFrib);
     347           0 :             rubyFrib->XFConvert(m_pXFPara);
     348           0 :             break;
     349             :         }
     350             :         case FRIB_TAG_RUBYFRAME:
     351             :         {
     352           0 :             LwpFribRubyFrame* rubyfrmeFrib = static_cast<LwpFribRubyFrame*>(pFrib);
     353           0 :             rubyfrmeFrib->XFConvert(m_pXFPara);
     354           0 :             break;
     355             :         }
     356             :         default :
     357           0 :             break;
     358             :         }
     359             : 
     360           0 :         if (bRevisionFlag )//&& pFrib->GetRevisionType() == LwpFrib::REV_INSERT)
     361             :         {
     362           0 :             if (nFribType!= FRIB_TAG_TABLE && nFribType != FRIB_TAG_FIELD
     363           0 :                     && nFribType != FRIB_TAG_FRAME)
     364             :             {
     365           0 :                 if (!sChangeID.isEmpty())
     366             :                 {
     367           0 :                     XFChangeEnd* pChangeEnd = new XFChangeEnd;
     368           0 :                     pChangeEnd->SetChangeID(sChangeID);
     369           0 :                     m_pXFPara->Add(pChangeEnd);
     370             :                 }
     371             :             }
     372             :         }
     373           0 :         pFrib = pFrib->GetNext();
     374           0 :     }
     375             : 
     376           0 : }
     377             : 
     378           0 : void LwpFribPtr::FindLayouts()
     379             : {
     380           0 :     LwpFrib* pFrib = m_pFribs;
     381           0 :     while(pFrib)
     382             :     {
     383           0 :         switch(pFrib->GetType())
     384             :         {
     385             :             case FRIB_TAG_SECTION:
     386             :             {
     387           0 :                 LwpFribSection* pSectionFrib = static_cast<LwpFribSection*>(pFrib);
     388           0 :                 LwpSection* pSection = pSectionFrib->GetSection();
     389           0 :                 if(pSection)
     390             :                 {
     391           0 :                     LwpPageLayout* pLayout = pSection->GetPageLayout();
     392           0 :                     if(pLayout)
     393             :                     {
     394           0 :                         LwpLayout::UseWhenType eSectionType = pLayout->GetUseWhenType();
     395           0 :                         if(eSectionType==LwpLayout::StartWithinColume)
     396             :                         {
     397             :                             //StartWithinColume type not support now
     398           0 :                             break;
     399             :                         }
     400           0 :                         LwpStory* pStory = dynamic_cast<LwpStory*>(m_pPara->GetStoryID()->obj());
     401           0 :                         if (pStory)
     402           0 :                             pStory->AddPageLayout(pSection->GetPageLayout());
     403             :                     }
     404             :                 }
     405             : 
     406           0 :                 break;
     407             :             }
     408             :             case FRIB_TAG_PAGEBREAK:
     409             :             {
     410           0 :                 LwpFribPageBreak* pPageBreak = static_cast<LwpFribPageBreak*>(pFrib);
     411           0 :                 LwpPageLayout* pLayout = dynamic_cast<LwpPageLayout*>(pPageBreak->GetLayout()->obj());
     412           0 :                 if(pLayout)
     413             :                 {
     414           0 :                     LwpStory* pStory = dynamic_cast<LwpStory*>(m_pPara->GetStoryID()->obj());
     415           0 :                     if (pStory)
     416           0 :                         pStory->AddPageLayout(pLayout);
     417             :                 }
     418           0 :                 break;
     419             :             }
     420             :             default:
     421           0 :                 break;
     422             :         }
     423           0 :         pFrib = pFrib->GetNext();
     424             :     }
     425           0 : }
     426             : /**************************************************************************
     427             :  * @descr:  Whether has a frib which type is nType
     428             :  * @param:
     429             :  * @param:
     430             :  * @return:
     431             : **************************************************************************/
     432           0 : LwpFrib* LwpFribPtr::HasFrib(sal_uInt8 nType)
     433             : {
     434           0 :     LwpFrib* pFrib = m_pFribs;
     435           0 :     while(pFrib)
     436             :     {
     437           0 :         if(pFrib->GetType()==nType)
     438             :         {
     439           0 :             return pFrib;
     440             :         }
     441           0 :         pFrib = pFrib->GetNext();
     442             :     }
     443           0 :     return NULL;
     444             : }
     445             : 
     446           0 : void LwpFribPtr::GatherAllText()
     447             : {
     448           0 :     LwpFrib* pFrib = m_pFribs;
     449           0 :     while(pFrib)
     450             :     {
     451           0 :         switch(pFrib->GetType())
     452             :         {
     453             :         case FRIB_TAG_TEXT:
     454             :         {
     455           0 :             OUString sText = static_cast<LwpFribText*>(pFrib)->GetText();
     456           0 :             m_pPara->SetAllText(sText);
     457           0 :             break;
     458             :         }
     459             :         case FRIB_TAG_UNICODE: //fall through
     460             :         case FRIB_TAG_UNICODE2: //fall through
     461             :         case FRIB_TAG_UNICODE3: //fall through  :
     462             :         {
     463           0 :             OUString sText = static_cast<LwpFribText*>(pFrib)->GetText();
     464           0 :             m_pPara->SetAllText(sText);
     465           0 :             break;
     466             :         }
     467             :         default :
     468           0 :             break;
     469             :     }
     470           0 :         pFrib = pFrib->GetNext();
     471             :     }
     472           0 : }
     473             : 
     474           0 : void LwpFribPtr::RegisterStyle()
     475             : {
     476           0 :     LwpFrib* pFrib = m_pFribs;
     477           0 :     while(pFrib)
     478             :     {
     479           0 :         switch(pFrib->GetType())
     480             :         {
     481             :         case FRIB_TAG_TEXT:
     482             :         {
     483           0 :             pFrib->RegisterStyle(m_pPara->GetFoundry());
     484           0 :             OUString sText = static_cast<LwpFribText*>(pFrib)->GetText();
     485           0 :             ProcessDropcap(m_pPara->GetStory(), pFrib,sText.getLength());
     486           0 :             break;
     487             :         }
     488             :         case FRIB_TAG_TAB:
     489           0 :             pFrib->RegisterStyle(m_pPara->GetFoundry());
     490           0 :             break;
     491             :         case FRIB_TAG_SECTION:
     492             :             {
     493             :                 //section registerstyle here;
     494           0 :                 LwpFribSection* pSectionFrib = static_cast<LwpFribSection*>(pFrib);
     495           0 :                 pSectionFrib->RegisterSectionStyle();
     496             :                 //for bullet
     497           0 :                 pSectionFrib->SetSectionName();
     498             :             }
     499           0 :             break;
     500             :         case FRIB_TAG_PAGEBREAK:
     501             :         {
     502           0 :             LwpFribPageBreak* breakFrib = static_cast<LwpFribPageBreak*>(pFrib);
     503           0 :             breakFrib->RegisterBreakStyle(m_pPara);
     504             :         }
     505           0 :             break;
     506             :         case FRIB_TAG_COLBREAK:
     507             :         {
     508           0 :             LwpFribColumnBreak* breakFrib = static_cast<LwpFribColumnBreak*>(pFrib);
     509           0 :             breakFrib->RegisterBreakStyle(m_pPara);
     510             :         }
     511           0 :             break;
     512             :         case FRIB_TAG_UNICODE: //fall through
     513             :         case FRIB_TAG_UNICODE2: //fall through
     514             :         case FRIB_TAG_UNICODE3: //fall through  :
     515             :         {
     516           0 :             pFrib->RegisterStyle(m_pPara->GetFoundry());
     517           0 :             OUString sText = static_cast<LwpFribUnicode*>(pFrib)->GetText();
     518           0 :             ProcessDropcap(m_pPara->GetStory(), pFrib,sText.getLength());
     519           0 :             break;
     520             :         }
     521             :         case FRIB_TAG_HARDSPACE:
     522           0 :             pFrib->RegisterStyle(m_pPara->GetFoundry());
     523           0 :             ProcessDropcap(m_pPara->GetStory(),pFrib,1);
     524           0 :             break;
     525             :         case FRIB_TAG_SOFTHYPHEN:
     526           0 :             pFrib->RegisterStyle(m_pPara->GetFoundry());
     527           0 :             break;
     528             :         case FRIB_TAG_FRAME:
     529             :         {
     530           0 :             LwpFribFrame* frameFrib = static_cast<LwpFribFrame*>(pFrib);
     531           0 :             frameFrib->SetParaDropcap(m_pPara);
     532           0 :             frameFrib->RegisterStyle(m_pPara->GetFoundry());
     533             :             //register framelayout style, ,03/09/2005
     534             :             //frameFrib->GetLayout()->RegisterStyle();
     535             :                 }
     536           0 :                     break;
     537             :                 case FRIB_TAG_CHBLOCK:
     538           0 :                     break;
     539             :                 case FRIB_TAG_TABLE:
     540             :                 {
     541           0 :                     LwpFribTable* tableFrib = static_cast<LwpFribTable*>(pFrib);
     542           0 :                     tableFrib->RegisterNewStyle();
     543             :                 }
     544           0 :                     break;
     545             :         case FRIB_TAG_FOOTNOTE:
     546             :         {
     547           0 :             LwpFribFootnote* pFribFootnote = static_cast<LwpFribFootnote*>(pFrib);
     548           0 :             pFribFootnote->RegisterNewStyle();
     549             :         }
     550           0 :             break;
     551             :         case FRIB_TAG_NOTE:
     552             :         {
     553           0 :             LwpFribNote* pNoteFrib = static_cast<LwpFribNote*>(pFrib);
     554           0 :             pNoteFrib->RegisterNewStyle();
     555           0 :             break;
     556             :         }
     557             :         case FRIB_TAG_PAGENUMBER:
     558             :         {
     559           0 :             pFrib->RegisterStyle(m_pPara->GetFoundry());
     560           0 :             break;
     561             :         }
     562             :         case FRIB_TAG_DOCVAR:
     563             :         {
     564           0 :             LwpFribDocVar* docFrib = static_cast<LwpFribDocVar*>(pFrib);
     565           0 :             docFrib->RegisterStyle(m_pPara->GetFoundry());
     566           0 :             break;
     567             :         }
     568             :         case FRIB_TAG_FIELD:
     569             :         {
     570           0 :             LwpFribField* fieldFrib = static_cast<LwpFribField*>(pFrib);
     571           0 :             fieldFrib->RegisterStyle(m_pPara->GetFoundry());
     572           0 :             break;
     573             :         }
     574             :         case FRIB_TAG_BOOKMARK:
     575             :         {
     576           0 :             LwpFribBookMark* bookmarkFrib = static_cast<LwpFribBookMark*>(pFrib);
     577           0 :             bookmarkFrib->RegisterStyle(m_pPara->GetFoundry());
     578           0 :             break;
     579             :         }
     580             :         case FRIB_TAG_RUBYFRAME:
     581             :         {
     582           0 :             LwpFribRubyFrame* rubyfrmeFrib = static_cast<LwpFribRubyFrame*>(pFrib);
     583           0 :             rubyfrmeFrib->RegisterStyle(m_pPara->GetFoundry());
     584           0 :             break;
     585             :         }
     586             :         default :
     587           0 :             break;
     588             :         }
     589           0 :         if (pFrib->GetRevisionFlag() && pFrib->GetType()!= FRIB_TAG_FIELD)
     590             :         {
     591           0 :             LwpGlobalMgr* pGlobal = LwpGlobalMgr::GetInstance();
     592           0 :             LwpChangeMgr* pChangeMgr = pGlobal->GetLwpChangeMgr();
     593           0 :             pChangeMgr->AddChangeFrib(pFrib);
     594             :         }
     595             : 
     596           0 :         pFrib = pFrib->GetNext();
     597             :     }
     598           0 : }
     599             : 
     600           0 : void LwpFribPtr::ProcessDropcap(LwpStory* pStory,LwpFrib* pFrib,sal_uInt32 nLen)
     601             : {
     602           0 :     if (pStory)
     603             :     {
     604           0 :         if (pStory->GetDropcapFlag() == sal_True)
     605             :         {
     606           0 :             XFStyleManager* pXFStyleManager = LwpGlobalMgr::GetInstance()->GetXFStyleManager();
     607           0 :             XFTextStyle* pFribStyle = pXFStyleManager->FindTextStyle(pFrib->GetStyleName());
     608           0 :             pFribStyle->GetFont()->SetFontSize(0);
     609             : 
     610           0 :             LwpDropcapLayout* pObj = dynamic_cast<LwpDropcapLayout*>(pStory->GetLayoutsWithMe()->GetOnlyLayout()->obj());
     611           0 :             if (pObj)
     612           0 :                 pObj->SetChars(nLen);
     613             :         }
     614             :     }
     615           0 : }
     616             : /**
     617             :  * @descr:  If the position of pPreLayout is earlier than pNextLayout, return true, or return false, defalut return true
     618             :  *
     619             : */
     620           0 : sal_Bool LwpFribPtr::ComparePagePosition(LwpVirtualLayout* pPreLayout, LwpVirtualLayout* pNextLayout)
     621             : {
     622           0 :     if(!pPreLayout || !pNextLayout)
     623           0 :         return sal_True;
     624             : 
     625           0 :     LwpFrib* pFrib = m_pFribs;
     626           0 :     LwpVirtualLayout* pLayout = NULL;
     627           0 :     while(pFrib)
     628             :     {
     629           0 :         switch(pFrib->GetType())
     630             :             {
     631             :             case FRIB_TAG_SECTION:
     632             :             {
     633           0 :                 LwpFribSection* pSectionFrib = static_cast<LwpFribSection*>(pFrib);
     634           0 :                 LwpSection* pSection = pSectionFrib->GetSection();
     635           0 :                 if(pSection)
     636             :                 {
     637           0 :                     pLayout = pSection->GetPageLayout();
     638             :                 }
     639             : 
     640           0 :                 break;
     641             :             }
     642             :             case FRIB_TAG_PAGEBREAK:
     643             :             {
     644           0 :                 LwpFribPageBreak* pPageBreak = static_cast<LwpFribPageBreak*>(pFrib);
     645           0 :                 pLayout = dynamic_cast<LwpVirtualLayout*>(pPageBreak->GetLayout()->obj());
     646           0 :                 break;
     647             :             }
     648             :             default:
     649           0 :                 break;
     650             :         }
     651             : 
     652           0 :         if(pLayout)
     653             :         {
     654           0 :             if(pPreLayout == pLayout)
     655           0 :                 return sal_True;
     656           0 :             if(pNextLayout == pLayout)
     657           0 :                 return sal_False;
     658             :         }
     659           0 :         pFrib = pFrib->GetNext();
     660             :     }
     661             : 
     662           0 :     return sal_True;
     663             : }
     664             : 
     665             : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */

Generated by: LCOV version 1.10