f00cd93a66
e.g. no ImageRadioButton is now loaded from any res/rsc file, so that ctor and associated code paths can be stripped out Change-Id: Ic4cf19d45adb7c734f150e0b89eef193157a74a7
392 lines
14 KiB
C++
392 lines
14 KiB
C++
/*
|
|
* This file is part of the LibreOffice project.
|
|
*
|
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
*
|
|
* This file incorporates work covered by the following license notice:
|
|
*
|
|
* 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 .
|
|
*/
|
|
#ifndef _NBDTMG_HXX
|
|
#define _NBDTMG_HXX
|
|
#include "svx/svxdllapi.h"
|
|
#include <boost/shared_ptr.hpp>
|
|
#include <vector>
|
|
#include <editeng/numitem.hxx>
|
|
#include <vcl/font.hxx>
|
|
|
|
namespace svx { namespace sidebar {
|
|
|
|
#define DEFAULT_BULLET_TYPES 8
|
|
#define DEFAULT_NONE 10
|
|
#define DEFAULT_NUM_TYPE_MEMBER 5
|
|
#define DEFAULT_NUM_VALUSET_COUNT 8
|
|
#define DEFAULT_NUMBERING_CACHE_FORMAT_VERSION 0x10
|
|
|
|
typedef sal_uInt16 NBOType;
|
|
namespace eNBOType
|
|
{
|
|
const NBOType BULLETS = 0x01;
|
|
const NBOType GRAPHICBULLETS = 0x02;
|
|
const NBOType NUMBERING = 0x03;
|
|
const NBOType OUTLINE = 0x04;
|
|
const NBOType MIXBULLETS = 0x05;
|
|
}
|
|
|
|
typedef sal_uInt16 NBType;
|
|
namespace eNBType
|
|
{
|
|
const NBOType BULLETS = 0x01;
|
|
const NBOType GRAPHICBULLETS = 0x02;
|
|
}
|
|
|
|
class SVX_DLLPUBLIC NumSettings_Impl
|
|
{
|
|
public:
|
|
short nNumberType;
|
|
short nParentNumbering;
|
|
SvxNumberFormat::LabelFollowedBy eLabelFollowedBy;
|
|
long nTabValue;
|
|
SvxAdjust eNumAlign;
|
|
long nNumAlignAt;
|
|
long nNumIndentAt;
|
|
rtl::OUString sPrefix;
|
|
rtl::OUString sSuffix;
|
|
rtl::OUString sBulletChar;
|
|
rtl::OUString sBulletFont;
|
|
SvxBrushItem *pBrushItem;
|
|
Size aSize;
|
|
|
|
public:
|
|
NumSettings_Impl()
|
|
: nNumberType(0)
|
|
, nParentNumbering(0)
|
|
, pBrushItem(0)
|
|
, aSize(0,0)
|
|
{}
|
|
~NumSettings_Impl(){}
|
|
};
|
|
|
|
typedef NumSettings_Impl* NumSettings_ImplPtr;
|
|
typedef std::vector< boost::shared_ptr<NumSettings_Impl> > NumSettingsArr_Impl;
|
|
|
|
class SVX_DLLPUBLIC BulletsSettings
|
|
{
|
|
public:
|
|
sal_Bool bIsCustomized;
|
|
rtl::OUString sDescription;
|
|
NBType eType;
|
|
public:
|
|
BulletsSettings(NBType eTy) :
|
|
bIsCustomized(sal_False),
|
|
eType(eTy)
|
|
{}
|
|
virtual ~BulletsSettings(){}
|
|
};
|
|
|
|
class SVX_DLLPUBLIC BulletsSettings_Impl:public BulletsSettings
|
|
{
|
|
public:
|
|
sal_Unicode cBulletChar;
|
|
//rtl::OUString sBulletFont;
|
|
Font aFont;
|
|
|
|
public:
|
|
BulletsSettings_Impl(NBType eTy) :
|
|
BulletsSettings(eTy)
|
|
{}
|
|
virtual ~BulletsSettings_Impl(){}
|
|
};
|
|
|
|
class SVX_DLLPUBLIC GrfBulDataRelation: public BulletsSettings
|
|
{
|
|
public:
|
|
String sGrfName;
|
|
sal_uInt16 nTabIndex;
|
|
sal_uInt16 nGallaryIndex;
|
|
const Graphic* pGrfObj;
|
|
Size aSize;
|
|
GrfBulDataRelation(NBType eTy):
|
|
BulletsSettings(eTy),
|
|
nTabIndex((sal_uInt16)0xFFFF),
|
|
nGallaryIndex((sal_uInt16)0xFFFF),
|
|
pGrfObj(0),
|
|
aSize(0,0)
|
|
{}
|
|
virtual ~GrfBulDataRelation(){}
|
|
};
|
|
|
|
class SVX_DLLPUBLIC MixBulletsSettings_Impl
|
|
{
|
|
public:
|
|
NBType eType;
|
|
sal_uInt16 nIndex; //index in the tab page display
|
|
sal_uInt16 nIndexDefault;
|
|
BulletsSettings* pBullets;
|
|
public:
|
|
MixBulletsSettings_Impl(NBType eTy) :
|
|
eType(eTy),
|
|
nIndex((sal_uInt16)0xFFFF),
|
|
nIndexDefault((sal_uInt16)0xFFFF),
|
|
pBullets(0)
|
|
{}
|
|
~MixBulletsSettings_Impl(){}
|
|
};
|
|
|
|
class SVX_DLLPUBLIC NumberSettings_Impl
|
|
{
|
|
public:
|
|
sal_Bool bIsCustomized;
|
|
rtl::OUString sDescription;
|
|
sal_uInt16 nIndex; //index in the tab page display
|
|
sal_uInt16 nIndexDefault;
|
|
NumSettings_Impl *pNumSetting;
|
|
public:
|
|
NumberSettings_Impl() :
|
|
bIsCustomized(sal_False),
|
|
nIndex((sal_uInt16)0xFFFF),
|
|
nIndexDefault((sal_uInt16)0xFFFF),
|
|
pNumSetting(NULL)
|
|
{}
|
|
~NumberSettings_Impl(){}
|
|
};
|
|
|
|
typedef NumberSettings_Impl* NumberSettings_ImplPtr;
|
|
typedef std::vector< boost::shared_ptr<NumberSettings_Impl> > NumberSettingsArr_Impl;
|
|
|
|
class SVX_DLLPUBLIC OutlineSettings_Impl
|
|
{
|
|
public:
|
|
sal_Bool bIsCustomized;
|
|
rtl::OUString sDescription;
|
|
NumSettingsArr_Impl *pNumSettingsArr;
|
|
public:
|
|
OutlineSettings_Impl() :
|
|
bIsCustomized(sal_False),
|
|
pNumSettingsArr(NULL)
|
|
{}
|
|
~OutlineSettings_Impl(){
|
|
}
|
|
};
|
|
|
|
class SVX_DLLPUBLIC NBOTypeMgrBase
|
|
{
|
|
public:
|
|
NBOType eType;
|
|
private:
|
|
const SfxItemSet* pSet;
|
|
SfxMapUnit eCoreUnit;
|
|
//Sym3_2508 store the attributes passed from pSet
|
|
String aNumCharFmtName;
|
|
void StoreBulCharFmtName_impl();
|
|
void StoreMapUnit_impl();
|
|
|
|
public:
|
|
NBOTypeMgrBase(const NBOType aType)
|
|
: eType(aType)
|
|
, pSet(0)
|
|
, eCoreUnit(SFX_MAPUNIT_TWIP)
|
|
, aNumCharFmtName(String())
|
|
, bIsLoading(false)
|
|
{}
|
|
NBOTypeMgrBase(const NBOType aType,const SfxItemSet* pArg)
|
|
: eType(aType)
|
|
, pSet(pArg)
|
|
, eCoreUnit(SFX_MAPUNIT_TWIP)
|
|
, aNumCharFmtName(String())
|
|
, bIsLoading(false)
|
|
{}
|
|
NBOTypeMgrBase(const NBOTypeMgrBase& aTypeMgr)
|
|
{
|
|
eType = aTypeMgr.eType;
|
|
pSet = aTypeMgr.pSet;
|
|
eCoreUnit = aTypeMgr.eCoreUnit;
|
|
aNumCharFmtName = aTypeMgr.aNumCharFmtName;
|
|
bIsLoading = false;
|
|
}
|
|
virtual ~NBOTypeMgrBase() {}
|
|
virtual void Init()=0;
|
|
virtual sal_uInt16 GetNBOIndexForNumRule(SvxNumRule& aNum,sal_uInt16 mLevel,sal_uInt16 nFromIndex=0)=0;
|
|
virtual sal_Bool RelplaceNumRule(SvxNumRule& aNum,sal_uInt16 nIndex,sal_uInt16 mLevel=(sal_uInt16)0xFFFF)=0;
|
|
virtual sal_Bool ApplyNumRule(SvxNumRule& aNum,sal_uInt16 nIndex,sal_uInt16 mLevel=(sal_uInt16)0xFFFF, sal_Bool isDefault=false,sal_Bool isResetSize=false)=0;
|
|
virtual String GetDescription(sal_uInt16 nIndex,sal_Bool isDefault=false)=0;
|
|
virtual sal_Bool IsCustomized(sal_uInt16 nIndex)=0;
|
|
sal_uInt16 IsSingleLevel(sal_uInt16 nCurLevel);
|
|
const SfxItemSet* GetItems() { return pSet;}
|
|
//Sym3_2508 store the attributes passed from pSet
|
|
void SetItems(const SfxItemSet* pArg) { pSet = pArg;StoreBulCharFmtName_impl();StoreMapUnit_impl();}
|
|
protected:
|
|
String GetBulCharFmtName();
|
|
SfxMapUnit GetMapUnit();
|
|
protected:
|
|
bool bIsLoading;
|
|
void ImplLoad(String filename);
|
|
void ImplStore(String filename);
|
|
|
|
};
|
|
|
|
|
|
class SVX_DLLPUBLIC BulletsTypeMgr: public NBOTypeMgrBase
|
|
{
|
|
friend class OutlineTypeMgr;
|
|
friend class NumberingTypeMgr;
|
|
public:
|
|
static sal_Unicode aDynamicBulletTypes[DEFAULT_BULLET_TYPES];
|
|
static sal_Unicode aDynamicRTLBulletTypes[DEFAULT_BULLET_TYPES];
|
|
static BulletsSettings_Impl* pActualBullets[DEFAULT_BULLET_TYPES];
|
|
static BulletsTypeMgr* _instance;
|
|
public:
|
|
BulletsTypeMgr(const NBOType aType);
|
|
BulletsTypeMgr(const NBOType aType,const SfxItemSet* pArg);
|
|
BulletsTypeMgr(const BulletsTypeMgr& aTypeMgr);
|
|
virtual ~BulletsTypeMgr() {}
|
|
virtual void Init();
|
|
virtual sal_uInt16 GetNBOIndexForNumRule(SvxNumRule& aNum,sal_uInt16 mLevel,sal_uInt16 nFromIndex=0);
|
|
virtual sal_Bool RelplaceNumRule(SvxNumRule& aNum,sal_uInt16 nIndex,sal_uInt16 mLevel=(sal_uInt16)0xFFFF);
|
|
virtual sal_Bool ApplyNumRule(SvxNumRule& aNum,sal_uInt16 nIndex,sal_uInt16 mLevel=(sal_uInt16)0xFFFF,sal_Bool isDefault=false,sal_Bool isResetSize=false);
|
|
virtual String GetDescription(sal_uInt16 nIndex,sal_Bool isDefault=false);
|
|
virtual sal_Bool IsCustomized(sal_uInt16 nIndex);
|
|
sal_Unicode GetBulChar(sal_uInt16 nIndex);
|
|
Font GetBulCharFont(sal_uInt16 nIndex);
|
|
static BulletsTypeMgr* GetInstance()
|
|
{
|
|
if ( _instance == 0 )
|
|
{
|
|
_instance = new BulletsTypeMgr(eNBOType::BULLETS);
|
|
}
|
|
|
|
return _instance;
|
|
}
|
|
|
|
};
|
|
|
|
class SVX_DLLPUBLIC GraphyicBulletsTypeMgr: public NBOTypeMgrBase
|
|
{
|
|
friend class OutlineTypeMgr;
|
|
friend class NumberingTypeMgr;
|
|
public:
|
|
typedef std::vector<GrfBulDataRelation*> ListType;
|
|
ListType aGrfDataLst;
|
|
static GraphyicBulletsTypeMgr* _instance;
|
|
public:
|
|
GraphyicBulletsTypeMgr(const NBOType aType);
|
|
GraphyicBulletsTypeMgr(const NBOType aType,const SfxItemSet* pArg);
|
|
GraphyicBulletsTypeMgr(const GraphyicBulletsTypeMgr& aTypeMgr);
|
|
virtual ~GraphyicBulletsTypeMgr();
|
|
virtual void Init();
|
|
virtual sal_uInt16 GetNBOIndexForNumRule(SvxNumRule& aNum,sal_uInt16 mLevel,sal_uInt16 nFromIndex=0);
|
|
virtual sal_Bool RelplaceNumRule(SvxNumRule& aNum,sal_uInt16 nIndex,sal_uInt16 mLevel=(sal_uInt16)0xFFFF);
|
|
virtual sal_Bool ApplyNumRule(SvxNumRule& aNum,sal_uInt16 nIndex,sal_uInt16 mLevel=(sal_uInt16)0xFFFF,sal_Bool isDefault=false,sal_Bool isResetSize=false);
|
|
virtual String GetDescription(sal_uInt16 nIndex,sal_Bool isDefault=false);
|
|
virtual sal_Bool IsCustomized(sal_uInt16 nIndex);
|
|
String GetGrfName(sal_uInt16 nIndex);
|
|
static GraphyicBulletsTypeMgr* GetInstance()
|
|
{
|
|
if ( _instance == 0 )
|
|
{
|
|
_instance = new GraphyicBulletsTypeMgr(eNBOType::BULLETS);
|
|
}
|
|
|
|
return _instance;
|
|
}
|
|
|
|
};
|
|
|
|
class SVX_DLLPUBLIC MixBulletsTypeMgr: public NBOTypeMgrBase
|
|
{
|
|
friend class OutlineTypeMgr;
|
|
friend class NumberingTypeMgr;
|
|
public:
|
|
static MixBulletsSettings_Impl* pActualBullets[DEFAULT_BULLET_TYPES];
|
|
static MixBulletsSettings_Impl* pDefaultActualBullets[DEFAULT_BULLET_TYPES];
|
|
static MixBulletsTypeMgr* _instance;
|
|
public:
|
|
MixBulletsTypeMgr(const NBOType aType);
|
|
MixBulletsTypeMgr(const MixBulletsTypeMgr& aTypeMgr);
|
|
virtual ~MixBulletsTypeMgr() {}
|
|
virtual void Init();
|
|
virtual sal_uInt16 GetNBOIndexForNumRule(SvxNumRule& aNum,sal_uInt16 mLevel,sal_uInt16 nFromIndex=0);
|
|
virtual sal_Bool RelplaceNumRule(SvxNumRule& aNum,sal_uInt16 nIndex,sal_uInt16 mLevel=(sal_uInt16)0xFFFF);
|
|
virtual sal_Bool ApplyNumRule(SvxNumRule& aNum,sal_uInt16 nIndex,sal_uInt16 mLevel=(sal_uInt16)0xFFFF,sal_Bool isDefault=false,sal_Bool isResetSize=false);
|
|
virtual String GetDescription(sal_uInt16 nIndex,sal_Bool isDefault=false);
|
|
virtual sal_Bool IsCustomized(sal_uInt16 nIndex);
|
|
static MixBulletsTypeMgr* GetInstance()
|
|
{
|
|
if ( _instance == 0 )
|
|
{
|
|
_instance = new MixBulletsTypeMgr(eNBOType::MIXBULLETS);
|
|
}
|
|
|
|
return _instance;
|
|
}
|
|
|
|
};
|
|
|
|
class SVX_DLLPUBLIC NumberingTypeMgr: public NBOTypeMgrBase
|
|
{
|
|
public:
|
|
//NumSettingsArr_Impl* pNumSettingsArr;
|
|
NumberSettingsArr_Impl* pNumberSettingsArr;
|
|
NumberSettingsArr_Impl* pDefaultNumberSettingsArr;
|
|
static NumberingTypeMgr* _instance;
|
|
public:
|
|
NumberingTypeMgr(const NBOType aType);
|
|
NumberingTypeMgr(const NumberingTypeMgr& aTypeMgr);
|
|
virtual ~NumberingTypeMgr() {}
|
|
virtual void Init();
|
|
virtual sal_uInt16 GetNBOIndexForNumRule(SvxNumRule& aNum,sal_uInt16 mLevel,sal_uInt16 nFromIndex=0);
|
|
virtual sal_Bool RelplaceNumRule(SvxNumRule& aNum,sal_uInt16 nIndex,sal_uInt16 mLevel=(sal_uInt16)0xFFFF);
|
|
virtual sal_Bool ApplyNumRule(SvxNumRule& aNum,sal_uInt16 nIndex,sal_uInt16 mLevel=(sal_uInt16)0xFFFF,sal_Bool isDefault=false,sal_Bool isResetSize=false);
|
|
virtual String GetDescription(sal_uInt16 nIndex,sal_Bool isDefault=false);
|
|
virtual sal_Bool IsCustomized(sal_uInt16 nIndex);
|
|
sal_uInt16 GetNumCount() const;
|
|
NumberSettings_Impl* GetNumSettingByIndex(sal_uInt16 nIndex) const;
|
|
static NumberingTypeMgr* GetInstance()
|
|
{
|
|
if ( _instance == 0 )
|
|
{
|
|
_instance = new NumberingTypeMgr(eNBOType::NUMBERING);
|
|
}
|
|
|
|
return _instance;
|
|
}
|
|
};
|
|
|
|
class SVX_DLLPUBLIC OutlineTypeMgr: public NBOTypeMgrBase
|
|
{
|
|
public:
|
|
//NumSettingsArr_Impl* pNumSettingsArrs[DEFAULT_NUM_VALUSET_COUNT];
|
|
OutlineSettings_Impl* pOutlineSettingsArrs[DEFAULT_NUM_VALUSET_COUNT];
|
|
OutlineSettings_Impl* pDefaultOutlineSettingsArrs[DEFAULT_NUM_VALUSET_COUNT];
|
|
static OutlineTypeMgr* _instance;
|
|
public:
|
|
OutlineTypeMgr(const NBOType aType);
|
|
OutlineTypeMgr(const OutlineTypeMgr& aTypeMgr);
|
|
virtual ~OutlineTypeMgr() {}
|
|
virtual void Init();
|
|
virtual sal_uInt16 GetNBOIndexForNumRule(SvxNumRule& aNum,sal_uInt16 mLevel,sal_uInt16 nFromIndex=0);
|
|
virtual sal_Bool RelplaceNumRule(SvxNumRule& aNum,sal_uInt16 nIndex,sal_uInt16 mLevel=(sal_uInt16)0xFFFF);
|
|
virtual sal_Bool ApplyNumRule(SvxNumRule& aNum,sal_uInt16 nIndex,sal_uInt16 mLevel=(sal_uInt16)0xFFFF,sal_Bool isDefault=false,sal_Bool isResetSize=false);
|
|
virtual String GetDescription(sal_uInt16 nIndex,sal_Bool isDefault=false);
|
|
virtual sal_Bool IsCustomized(sal_uInt16 nIndex);
|
|
static OutlineTypeMgr* GetInstance()
|
|
{
|
|
if ( _instance == 0 )
|
|
{
|
|
_instance = new OutlineTypeMgr(eNBOType::OUTLINE);
|
|
}
|
|
|
|
return _instance;
|
|
}
|
|
};
|
|
}}
|
|
#endif
|
|
|