LCOV - code coverage report
Current view: top level - lotuswordpro/source/filter - lwpfoundry.cxx (source / functions) Hit Total Coverage
Test: commit c8344322a7af75b84dd3ca8f78b05543a976dfd5 Lines: 172 243 70.8 %
Date: 2015-06-13 12:38:46 Functions: 17 26 65.4 %
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 "lwpfoundry.hxx"
      66             : #include "lwpfilehdr.hxx"
      67             : #include "lwpdoc.hxx"
      68             : #include "lwpmarker.hxx"
      69             : #include "lwpholder.hxx"
      70             : #include "lwpbulletstylemgr.hxx"
      71             : #include "lwpcontent.hxx"
      72             : #include "lwpvpointer.hxx"
      73             : #include "lwpsection.hxx"
      74             : #include "lwpcharacterstyle.hxx"
      75             : #include "lwpglobalmgr.hxx"
      76             : 
      77             : #include <osl/diagnose.h>
      78             : 
      79             : 
      80           9 : LwpFoundry::LwpFoundry(LwpObjectStream *pStrm, LwpDocument* pDoc)
      81             :     : m_pDoc(pDoc)
      82             :     , m_bRegisteredAll(false)
      83             :     , m_pPieceMgr(NULL)
      84           9 :     , m_pStyleMgr(NULL)
      85             : {
      86           9 :     Read(pStrm);
      87           9 :     m_pDropcapMgr = new LwpDropcapMgr;
      88           9 :     m_pBulletStyleMgr = new LwpBulletStyleMgr();
      89           9 :     m_pBulletStyleMgr->SetFoundry(this);
      90           9 : }
      91             : 
      92          18 : LwpFoundry::~LwpFoundry()
      93             : {
      94           9 :     if(m_pPieceMgr)
      95             :     {
      96           5 :         delete m_pPieceMgr;
      97             :     }
      98           9 :     if(m_pStyleMgr)
      99             :     {
     100           9 :         delete m_pStyleMgr;
     101             :     }
     102           9 :     if (m_pDropcapMgr)
     103           9 :         delete m_pDropcapMgr;
     104           9 :     if (m_pBulletStyleMgr)
     105             :     {
     106           9 :         delete m_pBulletStyleMgr;
     107             :     }
     108           9 : }
     109             : 
     110           9 : void LwpFoundry::Read(LwpObjectStream *pStrm)
     111             : {
     112           9 :     if (!m_pDoc->IsChildDoc())
     113             :     {
     114           5 :         LwpVersionManager::Read(pStrm);
     115             :     }
     116           9 :     m_ObjMgr.Read(pStrm);
     117             : 
     118           9 :     m_MarkerHead.ReadIndexed(pStrm);
     119           9 :     m_FootnoteMgr.ReadIndexed(pStrm);
     120             : 
     121           9 :     m_NumMgr.Read(pStrm);
     122           9 :     m_BulMgr.Read(pStrm);
     123             : 
     124           9 :     m_SectionList.Read(pStrm);
     125           9 :     m_Layout.ReadIndexed(pStrm);
     126             : 
     127           9 :     ReadStyles(pStrm);
     128             : 
     129           9 :     m_BookMarkHead.ReadIndexed(pStrm);
     130           9 :     m_DdeLinkHead.ReadIndexed(pStrm);
     131           9 :     m_DirtBagHead.ReadIndexed(pStrm);
     132           9 :     m_NamedOutlineSeqHead.ReadIndexed(pStrm);
     133             : 
     134           9 :     m_EnumLayoutHead.ReadIndexed(pStrm);
     135           9 :     m_EnumLayoutTail.ReadIndexed(pStrm);
     136           9 :     m_NamedObjects.ReadIndexed(pStrm);
     137             : 
     138           9 :     m_nLastClickHere = pStrm->QuickReaduInt32();
     139           9 :     m_SmartTextMgr.ReadIndexed(pStrm);
     140             : 
     141           9 :     m_ContentMgr.Read(pStrm);
     142           9 :     m_FontMgr.Read(pStrm);
     143             : 
     144           9 :     if (!m_pDoc->IsChildDoc() && LwpFileHeader::m_nFileRevision >= 0x000B)
     145             :     {
     146           5 :         m_pPieceMgr = new LwpPieceManager();
     147             : 
     148           5 :         m_pPieceMgr->Read(pStrm);
     149             :     }
     150             : 
     151           9 :     if( LwpFileHeader::m_nFileRevision >= 0x000B)
     152             :     {
     153           9 :         m_DftDropCapStyle.ReadIndexed(pStrm);
     154             :     }
     155           9 :     if( LwpFileHeader::m_nFileRevision >= 0x000F)
     156             :     {
     157           9 :         m_DftHeaderStyle.ReadIndexed(pStrm);
     158           9 :         m_DftFooterStyle.ReadIndexed(pStrm);
     159             :     }
     160           9 :     pStrm->SkipExtra();
     161             : 
     162           9 :     m_pStyleMgr = new LwpStyleManager();
     163           9 :     m_pStyleMgr->SetFoundry(this);
     164           9 : }
     165             : 
     166           9 : void LwpFoundry::ReadStyles(LwpObjectStream *pStrm)
     167             : {
     168           9 :     m_TextStyle.ReadIndexed(pStrm);
     169           9 :     m_DefaultTextStyle.ReadIndexed(pStrm);
     170           9 :     m_DefaultClickStyle.ReadIndexed(pStrm);
     171           9 :     m_PageStyle.ReadIndexed(pStrm);
     172           9 :     m_FrameStyle.ReadIndexed(pStrm);
     173             : 
     174           9 :     m_TableStyle.ReadIndexed(pStrm);
     175           9 :     m_CellStyle.ReadIndexed(pStrm);
     176           9 :     m_DftFrameStyle.ReadIndexed(pStrm);
     177           9 :     m_DftPageStyle.ReadIndexed(pStrm);
     178           9 :     m_DftTableStyle.ReadIndexed(pStrm);
     179             : 
     180           9 :     m_DftCellStyle.ReadIndexed(pStrm);
     181           9 :     m_DftColumnStyle.ReadIndexed(pStrm);
     182           9 :     m_DftLeftColumnStyle.ReadIndexed(pStrm);
     183           9 :     m_DftRighColumnStyle.ReadIndexed(pStrm);
     184             : 
     185           9 : }
     186             : 
     187             : #include "xfilter/xfstylemanager.hxx"
     188             : #include "lwplayout.hxx"
     189             : 
     190           8 : void LwpFoundry::RegisterAllLayouts()
     191             : {
     192           8 :     if (m_bRegisteredAll)
     193             :     {
     194             :         OSL_FAIL("recursive LwpFoundry::RegisterAllLayouts!\n");
     195           8 :         return;
     196             :     }
     197             : 
     198           8 :     m_bRegisteredAll = true;
     199             : 
     200             :     //Register CellStyle
     201           8 :     rtl::Reference<LwpObject> pStyle = m_CellStyle.obj();
     202           8 :     if( pStyle.is() )
     203             :     {
     204           8 :         pStyle->SetFoundry(this);
     205           8 :         pStyle->RegisterStyle();
     206             :     }
     207             : 
     208             :     //register content page layout list: Layout
     209           8 :     pStyle = m_Layout.obj();
     210           8 :     if( pStyle.is() )
     211             :     {
     212           8 :         pStyle->SetFoundry(this);
     213           8 :         pStyle->RegisterStyle();
     214             :     }
     215             : 
     216             :     //Register page style layout list: PageStyle, such as "Default Page"
     217           8 :     pStyle = m_PageStyle.obj();
     218           8 :     if( pStyle.is() )
     219             :     {
     220           8 :         pStyle->SetFoundry(this);
     221           8 :         pStyle->RegisterStyle();
     222             :     }
     223             : 
     224             :     //Register FrameStyle
     225           8 :     pStyle = m_FrameStyle.obj();
     226           8 :     if( pStyle.is() )
     227             :     {
     228           8 :         pStyle->SetFoundry(this);
     229           8 :         pStyle->RegisterStyle();
     230           8 :     }
     231             : 
     232             : }
     233             : 
     234           0 : LwpBookMark* LwpFoundry::GetBookMark(LwpObjectID objMarker)
     235             : {
     236             :     LwpDLVListHeadHolder* pHeadHolder= static_cast
     237           0 :                     <LwpDLVListHeadHolder*>(m_BookMarkHead.obj().get());
     238           0 :     LwpObjectID& rObjID = pHeadHolder->GetHeadID();
     239             :     LwpBookMark* pBookMark;
     240           0 :     pBookMark = static_cast<LwpBookMark*>(rObjID.obj().get());
     241             : 
     242           0 :     while (pBookMark)
     243             :     {
     244           0 :         if (pBookMark->IsRightMarker(objMarker))
     245           0 :             return pBookMark;
     246           0 :         rObjID = pBookMark->GetNext();
     247           0 :         pBookMark = static_cast<LwpBookMark*>(rObjID.obj().get());
     248             :     }
     249           0 :     return NULL;
     250             : }
     251             : 
     252             : /**
     253             : * @descr:   Get next content
     254             : *
     255             : */
     256           0 : LwpContent* LwpFoundry::EnumContents(LwpContent * pContent)
     257             : {
     258           0 :     return GetContentManager().EnumContents(pContent);
     259             : }
     260             : 
     261             : /**
     262             : * @descr:   Get next section
     263             : *
     264             : */
     265           0 : LwpSection* LwpFoundry::EnumSections(LwpSection * pSection)
     266             : {
     267           0 :     return static_cast<LwpSection*>(m_SectionList.Enumerate(pSection));
     268             : }
     269             : 
     270             : /**
     271             : * @descr:   Get default text style id
     272             : *
     273             : */
     274           0 : LwpObjectID * LwpFoundry::GetDefaultTextStyle()
     275             : {
     276           0 :     LwpVersionedPointer * pPointer = static_cast<LwpVersionedPointer *>(m_DefaultTextStyle.obj().get());
     277           0 :     if (!pPointer)
     278           0 :         return NULL;
     279             : 
     280           0 :     return &pPointer->GetPointer();
     281             : }
     282             : 
     283             : /**
     284             : * @descr:   Get paragraph style object id according to its style name
     285             : *
     286             : */
     287           0 : LwpObjectID * LwpFoundry::FindParaStyleByName(const OUString& name)
     288             : {
     289             :     //Register all text styles: para styles, character styles
     290           0 :     LwpDLVListHeadHolder* pParaStyleHolder = static_cast<LwpDLVListHeadHolder*>(GetTextStyleHead().obj().get());
     291           0 :     if(pParaStyleHolder)
     292             :     {
     293           0 :         LwpTextStyle* pParaStyle = static_cast<LwpTextStyle*> (pParaStyleHolder->GetHeadID().obj().get());
     294           0 :         while(pParaStyle)
     295             :         {
     296           0 :             OUString strName = pParaStyle->GetName().str();
     297           0 :             if(strName == name)
     298           0 :                 return &pParaStyle->GetObjectID();
     299           0 :             pParaStyle = static_cast<LwpTextStyle*>(pParaStyle->GetNext().obj().get());
     300           0 :         }
     301             :     }
     302             : 
     303           0 :     return NULL;
     304             : }
     305             : 
     306             : /**
     307             : * @descr:   Get style name registered according the original style name
     308             : *
     309             : */
     310           0 : OUString LwpFoundry::FindActuralStyleName(const OUString& name)
     311             : {
     312           0 :     LwpObjectID* pID = FindParaStyleByName(name);
     313           0 :     if(pID)
     314             :     {
     315           0 :         IXFStyle* pStyle = GetStyleManager()->GetStyle(*pID);
     316           0 :         if(pStyle)
     317             :         {
     318           0 :             return pStyle->GetStyleName();
     319             :         }
     320             :     }
     321             : 
     322           0 :     return name;
     323             : }
     324             : 
     325           5 : void LwpVersionManager::Read(LwpObjectStream *pStrm)
     326             : {
     327             :     // TODO: skip the data for prototype
     328           5 :     Skip(pStrm);
     329           5 : }
     330             : 
     331           5 : void LwpVersionManager::Skip(LwpObjectStream *pStrm)
     332             : {
     333           5 :     pStrm->QuickReaduInt32();
     334           5 :     sal_uInt16 Count = pStrm->QuickReaduInt16();
     335             : 
     336          15 :     while(Count--)
     337             :     {
     338           5 :         sal_uInt32 tag = pStrm->QuickReaduInt32();
     339           5 :         switch(tag)
     340             :         {
     341             :             case TAG_USER_VERSION:
     342             :                 // TODO: skip the CUserVersionControl
     343           5 :                 pStrm->SeekRel(pStrm->QuickReaduInt16());
     344           5 :                 break;
     345             : 
     346             :             default:
     347           0 :                 pStrm->SeekRel(pStrm->QuickReaduInt16());
     348           0 :                 pStrm->SkipExtra();
     349           0 :                 break;
     350             :         }
     351             :     }
     352           5 :     pStrm->SkipExtra();
     353           5 : }
     354             : 
     355           9 : void LwpObjectManager::Read(LwpObjectStream *pStrm)
     356             : {
     357             : 
     358           9 :     LwpObjectID dummy;
     359           9 :     dummy.Read(pStrm);
     360             :     // TODO: judge if we need to set the cDelta by the dummy id
     361             : 
     362           9 :     m_Division.ReadIndexed(pStrm);
     363           9 :     pStrm->SkipExtra();
     364           9 : }
     365             : 
     366           9 : void LwpNumberManager::Read(LwpObjectStream *pStrm)
     367             : {
     368           9 :     m_TableRange.ReadIndexed(pStrm);
     369           9 :     pStrm->SkipExtra();
     370           9 : }
     371             : 
     372           9 : void LwpBulletManager::Read(LwpObjectStream *pStrm)
     373             : {
     374           9 :     m_Head.ReadIndexed(pStrm);
     375           9 :     pStrm->SkipExtra();
     376           9 : }
     377             : 
     378           9 : void LwpContentManager::Read(LwpObjectStream *pStrm)
     379             : {
     380           9 :     m_ContentList.ReadIndexed(pStrm);
     381             : 
     382             :     // TODO:  to judge the file revision
     383             : 
     384           9 :     m_EnumHead.ReadIndexed(pStrm);
     385           9 :     m_EnumTail.ReadIndexed(pStrm);
     386             : 
     387           9 :     m_OleObjCount.ReadIndexed(pStrm);
     388             : 
     389           9 :     if( LwpFileHeader::m_nFileRevision >= 0x000B)
     390             :     {
     391           9 :         m_GrapHead.ReadIndexed(pStrm);
     392           9 :         m_GrapTail.ReadIndexed(pStrm);
     393           9 :         m_OleHead.ReadIndexed(pStrm);
     394           9 :         m_OleTail.ReadIndexed(pStrm);
     395             :     }
     396             : 
     397           9 :     pStrm->SkipExtra();
     398           9 : }
     399             : 
     400             : /**
     401             : * @descr:   Get next content
     402             : *
     403             : */
     404           0 : LwpContent* LwpContentManager::EnumContents(LwpContent* pContent)
     405             : {
     406           0 :     if(pContent)
     407           0 :         return pContent->GetNextEnumerated();
     408           0 :     LwpVersionedPointer* pPointer = static_cast<LwpVersionedPointer*>(m_EnumHead.obj().get());
     409           0 :     return pPointer ? static_cast<LwpContent*>(pPointer->GetPointer().obj().get()) : NULL;
     410             : }
     411             : 
     412           5 : void LwpPieceManager::Read(LwpObjectStream *pStrm)
     413             : {
     414           5 :     m_GeometryPieceList.ReadIndexed(pStrm);
     415           5 :     m_ScalePieceList.ReadIndexed(pStrm);
     416           5 :     m_MarginsPieceList.ReadIndexed(pStrm);
     417           5 :     m_ColumnsPieceList.ReadIndexed(pStrm);
     418           5 :     m_BorderStuffPieceList.ReadIndexed(pStrm);
     419             : 
     420           5 :     m_GutterStuffPieceList.ReadIndexed(pStrm);
     421           5 :     m_BackgroundStuffPieceList.ReadIndexed(pStrm);
     422           5 :     m_JoinStuffPieceList.ReadIndexed(pStrm);
     423           5 :     m_ShadowPieceList.ReadIndexed(pStrm);
     424           5 :     m_NumericsPieceList.ReadIndexed(pStrm);
     425             : 
     426           5 :     m_RelativityPieceList.ReadIndexed(pStrm);
     427           5 :     m_AlignmentPieceList.ReadIndexed(pStrm);
     428           5 :     m_IndentPieceList.ReadIndexed(pStrm);
     429           5 :     m_ParaBorderPieceList.ReadIndexed(pStrm);
     430           5 :     m_SpacingPieceList.ReadIndexed(pStrm);
     431             : 
     432           5 :     m_BreaksPieceList.ReadIndexed(pStrm);
     433           5 :     m_NumberingPieceList.ReadIndexed(pStrm);
     434           5 :     m_TabPieceList.ReadIndexed(pStrm);
     435           5 :     m_CharacterBorderPieceList.ReadIndexed(pStrm);
     436           5 :     m_AmikakePieceList.ReadIndexed(pStrm);
     437             : 
     438           5 :     if(pStrm->CheckExtra())
     439             :     {
     440           4 :         m_ParaBackgroundPieceList.ReadIndexed(pStrm);
     441           4 :         m_ExternalBorderStuffPieceList.ReadIndexed(pStrm);
     442           4 :         m_ExternalJoinStuffPieceList.ReadIndexed(pStrm);
     443           4 :         pStrm->SkipExtra();
     444             :     }
     445           5 : }
     446             : 
     447           9 : void LwpOrderedObjectManager::Read(LwpObjectStream *pStrm)
     448             : {
     449           9 :     m_Head.ReadIndexed(pStrm);
     450           9 : }
     451             : 
     452             : /**
     453             : * @descr:   Get next orderedobject, copy from lwp source code
     454             : *
     455             : */
     456           0 : LwpOrderedObject* LwpOrderedObjectManager::Enumerate(LwpOrderedObject * pLast)
     457             : {
     458             :     // If Last has a next, return it.
     459           0 :     if(pLast && !pLast->GetNext().IsNull())
     460           0 :         return static_cast<LwpOrderedObject*>(pLast->GetNext().obj().get());
     461             : 
     462           0 :     LwpListList* pList = NULL;
     463           0 :     if(pLast)
     464             :     {
     465             :         // We're at the end of Last's list (not Liszt's list).
     466             :         // Start with the next active list
     467           0 :         pList = static_cast<LwpListList*>(pLast->GetListList().obj().get());
     468           0 :         pList= GetNextActiveListList(pList);
     469             :     }
     470             :     else
     471             :     {
     472             :         // Start with the first active ListList
     473           0 :         pList = GetNextActiveListList(NULL);
     474             :     }
     475             : 
     476           0 :     if(pList)
     477             :     {
     478           0 :         return static_cast<LwpOrderedObject*>(pList->GetHead().obj().get());
     479             :     }
     480             : 
     481           0 :     return NULL;
     482             : }
     483             : 
     484             : /**
     485             : * @descr:   Get next listlist object, copy from lwp source code
     486             : *
     487             : */
     488           0 : LwpListList* LwpOrderedObjectManager::GetNextActiveListList(LwpListList * pLast)
     489             : {
     490           0 :     LwpListList* pList = NULL;
     491           0 :     if(pLast)
     492           0 :         pList = static_cast<LwpListList*>(pLast->GetNext().obj().get());
     493             :     else
     494             :     {
     495           0 :         LwpDLVListHeadHolder* pHeadHolder= static_cast<LwpDLVListHeadHolder*>(m_Head.obj().get());
     496           0 :         if(pHeadHolder)
     497             :         {
     498           0 :             pList = static_cast<LwpListList*>(pHeadHolder->GetHeadID().obj().get());
     499             :         }
     500             :     }
     501             : 
     502           0 :     while(pList)
     503             :     {
     504           0 :         LwpContent* pContent = static_cast<LwpContent*>(pList->GetObject().obj().get());
     505           0 :         if(pContent && pContent->HasNonEmbeddedLayouts() &&
     506           0 :             !pContent->IsStyleContent())
     507           0 :             return pList;
     508           0 :         pList = static_cast<LwpListList*>(pList->GetNext().obj().get());
     509             :     }
     510           0 :     return NULL;
     511             : }
     512             : 
     513           9 : LwpStyleManager::LwpStyleManager()
     514           9 :     : m_pFoundry(0)
     515             : {
     516           9 : }
     517             : 
     518          18 : LwpStyleManager::~LwpStyleManager()
     519             : {
     520           9 :     m_StyleList.clear();
     521           9 : }
     522             : 
     523             : /*
     524             : VO_PARASTYLE/VO_CHARACTERSTYLE call this method to add its created style to XFStyleManager
     525             : 1. Add the style to XFStyleManager, and return the <office:styles> style name
     526             : 2. Add it to LwpParaStyleMap.
     527             : Prerequisite: pStyle has been created and all properties has been set to it.
     528             : Return the XFStyle* added by XFStyleManager
     529             : */
     530          68 : IXFStyle* LwpStyleManager::AddStyle(LwpObjectID styleObjID, IXFStyle* pStyle)
     531             : {
     532             :     assert(pStyle);
     533             :     //pStyle may change if same style is found in XFStyleManager
     534          68 :     XFStyleManager* pXFStyleManager = LwpGlobalMgr::GetInstance()->GetXFStyleManager();
     535          68 :     pStyle = pXFStyleManager->AddStyle(pStyle).m_pStyle;
     536          68 :     m_StyleList.insert(LwpStyleMap::value_type(styleObjID, pStyle));
     537          68 :     return pStyle;
     538             : }
     539             : 
     540             : /*
     541             : Called by VO_PARA  or other objects to get style name based on the Style object ID
     542             : 1) Get style from LwpParaStyleMap based on the LwpObjectID of VO_PARASTYLE.
     543             : Prerequisite: VO_PARASTYLE/VO_CHARACTERSTYLE should call AddStyle first.
     544             : Return empty string if no style found.
     545             : */
     546         259 : IXFStyle* LwpStyleManager::GetStyle(const LwpObjectID &styleObjID)
     547             : {
     548         259 :     LwpStyleMap::const_iterator it =  m_StyleList.find(styleObjID);
     549         259 :     if (it != m_StyleList.end()) {
     550         259 :         return((*it).second);
     551             :     }
     552           0 :     return NULL;
     553             : }
     554             : 
     555             : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */

Generated by: LCOV version 1.11