LCOV - code coverage report
Current view: top level - usr/local/src/libreoffice/include/svx - nbdtmg.hxx (source / functions) Hit Total Coverage
Test: libreoffice_filtered.info Lines: 0 66 0.0 %
Date: 2013-07-09 Functions: 0 34 0.0 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : /*
       2             :  * This file is part of the LibreOffice project.
       3             :  *
       4             :  * This Source Code Form is subject to the terms of the Mozilla Public
       5             :  * License, v. 2.0. If a copy of the MPL was not distributed with this
       6             :  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
       7             :  *
       8             :  * This file incorporates work covered by the following license notice:
       9             :  *
      10             :  *   Licensed to the Apache Software Foundation (ASF) under one or more
      11             :  *   contributor license agreements. See the NOTICE file distributed
      12             :  *   with this work for additional information regarding copyright
      13             :  *   ownership. The ASF licenses this file to you under the Apache
      14             :  *   License, Version 2.0 (the "License"); you may not use this file
      15             :  *   except in compliance with the License. You may obtain a copy of
      16             :  *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
      17             :  */
      18             : #ifndef _NBDTMG_HXX
      19             : #define _NBDTMG_HXX
      20             : #include "svx/svxdllapi.h"
      21             : #include <boost/shared_ptr.hpp>
      22             : #include <vector>
      23             : #include <editeng/numitem.hxx>
      24             : #include <vcl/font.hxx>
      25             : 
      26             : namespace svx { namespace sidebar {
      27             : 
      28             : #define DEFAULT_BULLET_TYPES                            8
      29             : #define DEFAULT_NONE                                    10
      30             : #define DEFAULT_NUM_TYPE_MEMBER                         5
      31             : #define DEFAULT_NUM_VALUSET_COUNT                       8
      32             : #define DEFAULT_NUMBERING_CACHE_FORMAT_VERSION          0x10
      33             : 
      34             : typedef sal_uInt16 NBOType;
      35             : namespace eNBOType
      36             : {
      37             :     const NBOType BULLETS = 0x01;
      38             :     const NBOType GRAPHICBULLETS = 0x02;
      39             :     const NBOType NUMBERING = 0x03;
      40             :     const NBOType OUTLINE = 0x04;
      41             :     const NBOType MIXBULLETS = 0x05;
      42             : }
      43             : 
      44             : typedef sal_uInt16 NBType;
      45             : namespace eNBType
      46             : {
      47             :     const NBOType BULLETS = 0x01;
      48             :     const NBOType GRAPHICBULLETS = 0x02;
      49             : }
      50             : 
      51             : class  SVX_DLLPUBLIC NumSettings_Impl
      52             : {
      53             :     public:
      54             :         short       nNumberType;
      55             :         short       nParentNumbering;
      56             :         SvxNumberFormat::LabelFollowedBy eLabelFollowedBy;
      57             :         long        nTabValue;
      58             :         SvxAdjust   eNumAlign;
      59             :         long            nNumAlignAt;
      60             :         long            nNumIndentAt;
      61             :         rtl::OUString   sPrefix;
      62             :         rtl::OUString   sSuffix;
      63             :         rtl::OUString   sBulletChar;
      64             :         rtl::OUString   sBulletFont;
      65             :         SvxBrushItem   *pBrushItem;
      66             :         Size            aSize;
      67             : 
      68             :     public:
      69           0 :         NumSettings_Impl()
      70             :             : nNumberType(0)
      71             :             , nParentNumbering(0)
      72             :             , pBrushItem(0)
      73           0 :             , aSize(0,0)
      74           0 :         {}
      75           0 :         ~NumSettings_Impl(){}
      76             : };
      77             : 
      78             : typedef NumSettings_Impl* NumSettings_ImplPtr;
      79             : typedef std::vector< boost::shared_ptr<NumSettings_Impl> > NumSettingsArr_Impl;
      80             : 
      81             : class  SVX_DLLPUBLIC BulletsSettings
      82             : {
      83             :     public:
      84             :         sal_Bool        bIsCustomized;
      85             :         rtl::OUString   sDescription;
      86             :         NBType      eType;
      87             :     public:
      88           0 :         BulletsSettings(NBType eTy) :
      89             :             bIsCustomized(sal_False),
      90           0 :             eType(eTy)
      91           0 :             {}
      92           0 :         virtual ~BulletsSettings(){}
      93             : };
      94             : 
      95             : class  SVX_DLLPUBLIC BulletsSettings_Impl:public BulletsSettings
      96             : {
      97             :     public:
      98             :         sal_Unicode cBulletChar;
      99             :         //rtl::OUString sBulletFont;
     100             :         Font            aFont;
     101             : 
     102             :     public:
     103           0 :         BulletsSettings_Impl(NBType eTy) :
     104           0 :             BulletsSettings(eTy)
     105           0 :             {}
     106           0 :         virtual ~BulletsSettings_Impl(){}
     107             : };
     108             : 
     109             : class  SVX_DLLPUBLIC GrfBulDataRelation: public BulletsSettings
     110             : {
     111             :     public:
     112             :         String  sGrfName;
     113             :         sal_uInt16  nTabIndex;
     114             :         sal_uInt16  nGallaryIndex;
     115             :         const Graphic*  pGrfObj;
     116             :         Size aSize;
     117           0 :     GrfBulDataRelation(NBType eTy):
     118             :         BulletsSettings(eTy),
     119             :         nTabIndex((sal_uInt16)0xFFFF),
     120             :         nGallaryIndex((sal_uInt16)0xFFFF),
     121             :         pGrfObj(0),
     122           0 :         aSize(0,0)
     123           0 :     {}
     124           0 :     virtual ~GrfBulDataRelation(){}
     125             : };
     126             : 
     127             : class  SVX_DLLPUBLIC MixBulletsSettings_Impl
     128             : {
     129             :     public:
     130             :         NBType          eType;
     131             :         sal_uInt16          nIndex; //index in the tab page display
     132             :         sal_uInt16          nIndexDefault;
     133             :         BulletsSettings*    pBullets;
     134             :     public:
     135           0 :         MixBulletsSettings_Impl(NBType eTy) :
     136             :             eType(eTy),
     137             :             nIndex((sal_uInt16)0xFFFF),
     138             :             nIndexDefault((sal_uInt16)0xFFFF),
     139           0 :             pBullets(0)
     140           0 :             {}
     141             :         ~MixBulletsSettings_Impl(){}
     142             : };
     143             : 
     144             : class  SVX_DLLPUBLIC NumberSettings_Impl
     145             : {
     146             :     public:
     147             :         sal_Bool        bIsCustomized;
     148             :         rtl::OUString   sDescription;
     149             :         sal_uInt16      nIndex; //index in the tab page display
     150             :         sal_uInt16      nIndexDefault;
     151             :         NumSettings_Impl    *pNumSetting;
     152             :     public:
     153           0 :         NumberSettings_Impl() :
     154             :             bIsCustomized(sal_False),
     155             :             nIndex((sal_uInt16)0xFFFF),
     156             :             nIndexDefault((sal_uInt16)0xFFFF),
     157           0 :             pNumSetting(NULL)
     158           0 :             {}
     159           0 :         ~NumberSettings_Impl(){}
     160             : };
     161             : 
     162             : typedef NumberSettings_Impl* NumberSettings_ImplPtr;
     163             : typedef std::vector< boost::shared_ptr<NumberSettings_Impl> > NumberSettingsArr_Impl;
     164             : 
     165             : class  SVX_DLLPUBLIC OutlineSettings_Impl
     166             : {
     167             :     public:
     168             :         sal_Bool        bIsCustomized;
     169             :         rtl::OUString   sDescription;
     170             :         NumSettingsArr_Impl *pNumSettingsArr;
     171             :     public:
     172           0 :         OutlineSettings_Impl() :
     173             :             bIsCustomized(sal_False),
     174           0 :             pNumSettingsArr(NULL)
     175           0 :             {}
     176             :         ~OutlineSettings_Impl(){
     177             :         }
     178             : };
     179             : 
     180             : class SVX_DLLPUBLIC NBOTypeMgrBase
     181             : {
     182             :     public:
     183             :         NBOType         eType;
     184             :     private:
     185             :         const SfxItemSet*   pSet;
     186             :         SfxMapUnit      eCoreUnit;
     187             :         //Sym3_2508    store the attributes passed from pSet
     188             :         String          aNumCharFmtName;
     189             :         void            StoreBulCharFmtName_impl();
     190             :         void            StoreMapUnit_impl();
     191             : 
     192             :     public:
     193           0 :         NBOTypeMgrBase(const NBOType aType)
     194             :             : eType(aType)
     195             :             , pSet(0)
     196             :             , eCoreUnit(SFX_MAPUNIT_TWIP)
     197             :             , aNumCharFmtName(String())
     198           0 :             , bIsLoading(false)
     199           0 :         {}
     200           0 :         NBOTypeMgrBase(const NBOType aType,const SfxItemSet* pArg)
     201             :             : eType(aType)
     202             :             , pSet(pArg)
     203             :             , eCoreUnit(SFX_MAPUNIT_TWIP)
     204             :             , aNumCharFmtName(String())
     205           0 :             , bIsLoading(false)
     206           0 :         {}
     207           0 :         NBOTypeMgrBase(const NBOTypeMgrBase& aTypeMgr)
     208           0 :         {
     209           0 :             eType = aTypeMgr.eType;
     210           0 :             pSet = aTypeMgr.pSet;
     211           0 :             eCoreUnit = aTypeMgr.eCoreUnit;
     212           0 :             aNumCharFmtName = aTypeMgr.aNumCharFmtName;
     213           0 :             bIsLoading = false;
     214           0 :         }
     215           0 :         virtual ~NBOTypeMgrBase() {}
     216             :         virtual void Init()=0;
     217             :         virtual sal_uInt16 GetNBOIndexForNumRule(SvxNumRule& aNum,sal_uInt16 mLevel,sal_uInt16 nFromIndex=0)=0;
     218             :         virtual sal_Bool RelplaceNumRule(SvxNumRule& aNum,sal_uInt16 nIndex,sal_uInt16 mLevel=(sal_uInt16)0xFFFF)=0;
     219             :         virtual sal_Bool ApplyNumRule(SvxNumRule& aNum,sal_uInt16 nIndex,sal_uInt16 mLevel=(sal_uInt16)0xFFFF, sal_Bool isDefault=false,sal_Bool isResetSize=false)=0;
     220             :         virtual String GetDescription(sal_uInt16 nIndex,sal_Bool isDefault=false)=0;
     221             :         virtual sal_Bool IsCustomized(sal_uInt16 nIndex)=0;
     222             :         sal_uInt16 IsSingleLevel(sal_uInt16 nCurLevel);
     223             :         const SfxItemSet* GetItems() { return pSet;}
     224             :         //Sym3_2508    store the attributes passed from pSet
     225           0 :         void SetItems(const SfxItemSet* pArg) { pSet = pArg;StoreBulCharFmtName_impl();StoreMapUnit_impl();}
     226             :     protected:
     227             :         String GetBulCharFmtName();
     228             :         SfxMapUnit GetMapUnit();
     229             :     protected:
     230             :         bool    bIsLoading;
     231             :         void    ImplLoad(String filename);
     232             :         void    ImplStore(String filename);
     233             : 
     234             : };
     235             : 
     236             : 
     237             : class SVX_DLLPUBLIC BulletsTypeMgr: public NBOTypeMgrBase
     238             : {
     239             :     friend class OutlineTypeMgr;
     240             :     friend class NumberingTypeMgr;
     241             :     public:
     242             :         static sal_Unicode aDynamicBulletTypes[DEFAULT_BULLET_TYPES];
     243             :         static sal_Unicode aDynamicRTLBulletTypes[DEFAULT_BULLET_TYPES];
     244             :         static BulletsSettings_Impl* pActualBullets[DEFAULT_BULLET_TYPES];
     245             :         static BulletsTypeMgr* _instance;
     246             :     public:
     247             :         BulletsTypeMgr(const NBOType aType);
     248             :         BulletsTypeMgr(const NBOType aType,const SfxItemSet* pArg);
     249             :         BulletsTypeMgr(const BulletsTypeMgr& aTypeMgr);
     250           0 :         virtual ~BulletsTypeMgr() {}
     251             :         virtual void Init();
     252             :         virtual sal_uInt16 GetNBOIndexForNumRule(SvxNumRule& aNum,sal_uInt16 mLevel,sal_uInt16 nFromIndex=0);
     253             :         virtual sal_Bool RelplaceNumRule(SvxNumRule& aNum,sal_uInt16 nIndex,sal_uInt16 mLevel=(sal_uInt16)0xFFFF);
     254             :         virtual sal_Bool ApplyNumRule(SvxNumRule& aNum,sal_uInt16 nIndex,sal_uInt16 mLevel=(sal_uInt16)0xFFFF,sal_Bool isDefault=false,sal_Bool isResetSize=false);
     255             :         virtual String GetDescription(sal_uInt16 nIndex,sal_Bool isDefault=false);
     256             :         virtual sal_Bool IsCustomized(sal_uInt16 nIndex);
     257             :         sal_Unicode GetBulChar(sal_uInt16 nIndex);
     258             :         Font GetBulCharFont(sal_uInt16 nIndex);
     259           0 :         static BulletsTypeMgr* GetInstance()
     260             :         {
     261           0 :              if ( _instance == 0 )
     262             :                     {
     263           0 :                         _instance = new BulletsTypeMgr(eNBOType::BULLETS);
     264             :                     }
     265             : 
     266           0 :                     return _instance;
     267             :         }
     268             : 
     269             : };
     270             : 
     271             : class SVX_DLLPUBLIC GraphyicBulletsTypeMgr: public NBOTypeMgrBase
     272             : {
     273             :     friend class OutlineTypeMgr;
     274             :     friend class NumberingTypeMgr;
     275             :     public:
     276             :         typedef std::vector<GrfBulDataRelation*> ListType;
     277             :         ListType aGrfDataLst;
     278             :         static GraphyicBulletsTypeMgr* _instance;
     279             :     public:
     280             :         GraphyicBulletsTypeMgr(const NBOType aType);
     281             :         GraphyicBulletsTypeMgr(const NBOType aType,const SfxItemSet* pArg);
     282             :         GraphyicBulletsTypeMgr(const GraphyicBulletsTypeMgr& aTypeMgr);
     283             :         virtual ~GraphyicBulletsTypeMgr();
     284             :         virtual void Init();
     285             :         virtual sal_uInt16 GetNBOIndexForNumRule(SvxNumRule& aNum,sal_uInt16 mLevel,sal_uInt16 nFromIndex=0);
     286             :         virtual sal_Bool RelplaceNumRule(SvxNumRule& aNum,sal_uInt16 nIndex,sal_uInt16 mLevel=(sal_uInt16)0xFFFF);
     287             :         virtual sal_Bool ApplyNumRule(SvxNumRule& aNum,sal_uInt16 nIndex,sal_uInt16 mLevel=(sal_uInt16)0xFFFF,sal_Bool isDefault=false,sal_Bool isResetSize=false);
     288             :         virtual String GetDescription(sal_uInt16 nIndex,sal_Bool isDefault=false);
     289             :         virtual sal_Bool IsCustomized(sal_uInt16 nIndex);
     290             :         String GetGrfName(sal_uInt16 nIndex);
     291           0 :         static GraphyicBulletsTypeMgr* GetInstance()
     292             :         {
     293           0 :              if ( _instance == 0 )
     294             :                     {
     295           0 :                         _instance = new GraphyicBulletsTypeMgr(eNBOType::BULLETS);
     296             :                     }
     297             : 
     298           0 :                     return _instance;
     299             :         }
     300             : 
     301             : };
     302             : 
     303             : class SVX_DLLPUBLIC MixBulletsTypeMgr: public NBOTypeMgrBase
     304             : {
     305             :     friend class OutlineTypeMgr;
     306             :     friend class NumberingTypeMgr;
     307             :     public:
     308             :         static MixBulletsSettings_Impl* pActualBullets[DEFAULT_BULLET_TYPES];
     309             :         static MixBulletsSettings_Impl* pDefaultActualBullets[DEFAULT_BULLET_TYPES];
     310             :         static MixBulletsTypeMgr* _instance;
     311             :     public:
     312             :         MixBulletsTypeMgr(const NBOType aType);
     313             :         MixBulletsTypeMgr(const NBOType aType,const SfxItemSet* pArg);
     314             :         MixBulletsTypeMgr(const MixBulletsTypeMgr& aTypeMgr);
     315           0 :         virtual ~MixBulletsTypeMgr() {}
     316             :         virtual void Init();
     317             :         virtual sal_uInt16 GetNBOIndexForNumRule(SvxNumRule& aNum,sal_uInt16 mLevel,sal_uInt16 nFromIndex=0);
     318             :         virtual sal_Bool RelplaceNumRule(SvxNumRule& aNum,sal_uInt16 nIndex,sal_uInt16 mLevel=(sal_uInt16)0xFFFF);
     319             :         virtual sal_Bool ApplyNumRule(SvxNumRule& aNum,sal_uInt16 nIndex,sal_uInt16 mLevel=(sal_uInt16)0xFFFF,sal_Bool isDefault=false,sal_Bool isResetSize=false);
     320             :         virtual String GetDescription(sal_uInt16 nIndex,sal_Bool isDefault=false);
     321             :         virtual sal_Bool IsCustomized(sal_uInt16 nIndex);
     322           0 :         static MixBulletsTypeMgr* GetInstance()
     323             :         {
     324           0 :              if ( _instance == 0 )
     325             :                     {
     326           0 :                         _instance = new MixBulletsTypeMgr(eNBOType::MIXBULLETS);
     327             :                     }
     328             : 
     329           0 :                     return _instance;
     330             :         }
     331             : 
     332             : };
     333             : 
     334             : class SVX_DLLPUBLIC NumberingTypeMgr: public NBOTypeMgrBase
     335             : {
     336             :     public:
     337             :         //NumSettingsArr_Impl*      pNumSettingsArr;
     338             :         NumberSettingsArr_Impl*     pNumberSettingsArr;
     339             :         NumberSettingsArr_Impl*     pDefaultNumberSettingsArr;
     340             :         static NumberingTypeMgr*    _instance;
     341             :     public:
     342             :         NumberingTypeMgr(const NBOType aType);
     343             :         NumberingTypeMgr(const NBOType aType,const SfxItemSet* pArg);
     344             :         NumberingTypeMgr(const NumberingTypeMgr& aTypeMgr);
     345           0 :         virtual ~NumberingTypeMgr() {}
     346             :         virtual void Init();
     347             :         virtual sal_uInt16 GetNBOIndexForNumRule(SvxNumRule& aNum,sal_uInt16 mLevel,sal_uInt16 nFromIndex=0);
     348             :         virtual sal_Bool RelplaceNumRule(SvxNumRule& aNum,sal_uInt16 nIndex,sal_uInt16 mLevel=(sal_uInt16)0xFFFF);
     349             :         virtual sal_Bool ApplyNumRule(SvxNumRule& aNum,sal_uInt16 nIndex,sal_uInt16 mLevel=(sal_uInt16)0xFFFF,sal_Bool isDefault=false,sal_Bool isResetSize=false);
     350             :         virtual String GetDescription(sal_uInt16 nIndex,sal_Bool isDefault=false);
     351             :         virtual sal_Bool IsCustomized(sal_uInt16 nIndex);
     352             :         sal_uInt16 GetNumCount() const;
     353             :         NumberSettings_Impl* GetNumSettingByIndex(sal_uInt16 nIndex) const;
     354           0 :         static NumberingTypeMgr* GetInstance()
     355             :         {
     356           0 :              if ( _instance == 0 )
     357             :                     {
     358           0 :                         _instance = new NumberingTypeMgr(eNBOType::NUMBERING);
     359             :                     }
     360             : 
     361           0 :                     return _instance;
     362             :         }
     363             : };
     364             : 
     365             : class SVX_DLLPUBLIC OutlineTypeMgr: public NBOTypeMgrBase
     366             : {
     367             :     public:
     368             :         //NumSettingsArr_Impl*      pNumSettingsArrs[DEFAULT_NUM_VALUSET_COUNT];
     369             :         OutlineSettings_Impl*       pOutlineSettingsArrs[DEFAULT_NUM_VALUSET_COUNT];
     370             :         OutlineSettings_Impl*       pDefaultOutlineSettingsArrs[DEFAULT_NUM_VALUSET_COUNT];
     371             :         static OutlineTypeMgr*  _instance;
     372             :     public:
     373             :         OutlineTypeMgr(const NBOType aType);
     374             :         OutlineTypeMgr(const NBOType aType,const SfxItemSet* pArg);
     375             :         OutlineTypeMgr(const OutlineTypeMgr& aTypeMgr);
     376           0 :         virtual ~OutlineTypeMgr() {}
     377             :         virtual void Init();
     378             :         virtual sal_uInt16 GetNBOIndexForNumRule(SvxNumRule& aNum,sal_uInt16 mLevel,sal_uInt16 nFromIndex=0);
     379             :         virtual sal_Bool RelplaceNumRule(SvxNumRule& aNum,sal_uInt16 nIndex,sal_uInt16 mLevel=(sal_uInt16)0xFFFF);
     380             :         virtual sal_Bool ApplyNumRule(SvxNumRule& aNum,sal_uInt16 nIndex,sal_uInt16 mLevel=(sal_uInt16)0xFFFF,sal_Bool isDefault=false,sal_Bool isResetSize=false);
     381             :         virtual String GetDescription(sal_uInt16 nIndex,sal_Bool isDefault=false);
     382             :         virtual sal_Bool IsCustomized(sal_uInt16 nIndex);
     383           0 :         static OutlineTypeMgr* GetInstance()
     384             :         {
     385           0 :              if ( _instance == 0 )
     386             :                     {
     387           0 :                         _instance = new OutlineTypeMgr(eNBOType::OUTLINE);
     388             :                     }
     389             : 
     390           0 :                     return _instance;
     391             :         }
     392             : };
     393             : }}
     394             : #endif
     395             : 

Generated by: LCOV version 1.10