blob: a07170b36710b1fdb727a6b06a1d180f429559bc [file] [log] [blame]
/**************************************************************
*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*
*************************************************************/
#ifndef _SVX_CHARDLG_HXX
#define _SVX_CHARDLG_HXX
// include ---------------------------------------------------------------
#include <svtools/ctrlbox.hxx>
#include <svtools/stdctrl.hxx>
#include <sfx2/tabdlg.hxx>
#include <svx/fntctrl.hxx>
#include <svx/checklbx.hxx>
#include <svx/langbox.hxx>
// forward ---------------------------------------------------------------
class SvxFontListItem;
class FontList;
// -----------------------------------------------------------------------
#define DISABLE_CASEMAP ((sal_uInt16)0x0001)
#define DISABLE_WORDLINE ((sal_uInt16)0x0002)
#define DISABLE_BLINK ((sal_uInt16)0x0004)
#define DISABLE_UNDERLINE_COLOR ((sal_uInt16)0x0008)
#define DISABLE_LANGUAGE ((sal_uInt16)0x0010)
#define DISABLE_HIDE_LANGUAGE ((sal_uInt16)0x0020)
// class SvxCharBasePage -------------------------------------------------
class SvxCharBasePage : public SfxTabPage
{
protected:
SvxFontPrevWindow m_aPreviewWin;
FixedInfo m_aFontTypeFT;
sal_Bool m_bPreviewBackgroundToCharacter;
SvxCharBasePage( Window* pParent, const ResId& rResIdTabPage, const SfxItemSet&,
sal_uInt16 nResIdPrewievWin, sal_uInt16 nResIdFontTypeFT );
virtual ~SvxCharBasePage();
void SetPrevFontSize( const SfxItemSet& rSet, sal_uInt16 nSlot, SvxFont& rFont );
void SetPrevFont( const SfxItemSet& rSet, sal_uInt16 nSlot, SvxFont& rFont );
void SetPrevFontStyle( const SfxItemSet& rSet, sal_uInt16 nSlotPosture, sal_uInt16 nSlotWeight, SvxFont& rFont ); // posture/weight
void SetPrevFontWidthScale( const SfxItemSet& rSet );
void SetPrevFontEscapement( sal_uInt8 nProp, sal_uInt8 nEscProp, short nEsc );
inline SvxFont& GetPreviewFont();
inline SvxFont& GetPreviewCJKFont();
inline SvxFont& GetPreviewCTLFont();
public:
using SfxTabPage::ActivatePage;
using SfxTabPage::DeactivatePage;
virtual void ActivatePage( const SfxItemSet& rSet );
// virtual int DeactivatePage( SfxItemSet* pSet = 0 );
};
// class SvxCharNamePage -------------------------------------------------
struct SvxCharNamePage_Impl;
class SvxCharNamePage : public SvxCharBasePage
{
private:
FixedLine* m_pWestLine;
FixedText* m_pWestFontNameFT;
FontNameBox* m_pWestFontNameLB;
FixedText* m_pWestFontStyleFT;
FontStyleBox* m_pWestFontStyleLB;
FixedText* m_pWestFontSizeFT;
FontSizeBox* m_pWestFontSizeLB;
FixedText* m_pWestFontLanguageFT;
SvxLanguageBox* m_pWestFontLanguageLB;
FixedLine* m_pEastLine;
FixedText* m_pEastFontNameFT;
FontNameBox* m_pEastFontNameLB;
FixedText* m_pEastFontStyleFT;
FontStyleBox* m_pEastFontStyleLB;
FixedText* m_pEastFontSizeFT;
FontSizeBox* m_pEastFontSizeLB;
FixedText* m_pEastFontLanguageFT;
SvxLanguageBox* m_pEastFontLanguageLB;
FixedLine* m_pCTLLine;
FixedText* m_pCTLFontNameFT;
FontNameBox* m_pCTLFontNameLB;
FixedText* m_pCTLFontStyleFT;
FontStyleBox* m_pCTLFontStyleLB;
FixedText* m_pCTLFontSizeFT;
FontSizeBox* m_pCTLFontSizeLB;
FixedText* m_pCTLFontLanguageFT;
SvxLanguageBox* m_pCTLFontLanguageLB;
FixedLine* m_pColorFL;
FixedText* m_pColorFT;
ColorListBox* m_pColorLB;
SvxCharNamePage_Impl* m_pImpl;
SvxCharNamePage( Window* pParent, const SfxItemSet& rSet );
void Initialize();
const FontList* GetFontList() const;
void UpdatePreview_Impl();
void FillStyleBox_Impl( const FontNameBox* rBox );
void FillSizeBox_Impl( const FontNameBox* rBox );
enum LanguageGroup
{
/** Language for western text.
*/
Western = 0,
/** Language for asian text.
*/
Asian,
/** Language for ctl text.
*/
Ctl
};
void Reset_Impl( const SfxItemSet& rSet, LanguageGroup eLangGrp );
sal_Bool FillItemSet_Impl( SfxItemSet& rSet, LanguageGroup eLangGrp );
void ResetColor_Impl( const SfxItemSet& rSet );
DECL_LINK( UpdateHdl_Impl, Timer* );
DECL_LINK( FontModifyHdl_Impl, void* );
DECL_LINK( ColorBoxSelectHdl_Impl, ColorListBox* );
public:
using SfxTabPage::ActivatePage;
using SfxTabPage::DeactivatePage;
virtual void ActivatePage( const SfxItemSet& rSet );
virtual int DeactivatePage( SfxItemSet* pSet = 0 );
public:
~SvxCharNamePage();
static SfxTabPage* Create( Window* pParent, const SfxItemSet& rSet );
static sal_uInt16* GetRanges();
virtual void Reset( const SfxItemSet& rSet );
virtual sal_Bool FillItemSet( SfxItemSet& rSet );
void SetFontList( const SvxFontListItem& rItem );
void EnableRelativeMode();
void EnableSearchMode();
// the writer uses SID_ATTR_BRUSH as font background
void SetPreviewBackgroundToCharacter();
void DisableControls( sal_uInt16 nDisable );
virtual void PageCreated (SfxAllItemSet aSet);
};
// class SvxCharEffectsPage ----------------------------------------------
class SvxCharEffectsPage : public SvxCharBasePage
{
private:
FixedText m_aFontColorFT;
ColorListBox m_aFontColorLB;
FixedText m_aEffectsFT;
SvxCheckListBox m_aEffectsLB;
ListBox m_aEffects2LB;
FixedText m_aReliefFT;
ListBox m_aReliefLB;
TriStateBox m_aOutlineBtn;
TriStateBox m_aShadowBtn;
TriStateBox m_aBlinkingBtn;
TriStateBox m_aHiddenBtn;
FixedLine m_aVerticalLine;
FixedText m_aOverlineFT;
ListBox m_aOverlineLB;
FixedText m_aOverlineColorFT;
ColorListBox m_aOverlineColorLB;
FixedText m_aStrikeoutFT;
ListBox m_aStrikeoutLB;
FixedText m_aUnderlineFT;
ListBox m_aUnderlineLB;
FixedText m_aUnderlineColorFT;
ColorListBox m_aUnderlineColorLB;
CheckBox m_aIndividualWordsBtn;
FixedLine m_aAsianLine;
FixedText m_aEmphasisFT;
ListBox m_aEmphasisLB;
FixedText m_aPositionFT;
ListBox m_aPositionLB;
sal_uInt16 m_nHtmlMode;
String m_aTransparentColorName;
SvxCharEffectsPage( Window* pParent, const SfxItemSet& rSet );
void Initialize();
void UpdatePreview_Impl();
void SetCaseMap_Impl( SvxCaseMap eCaseMap );
void ResetColor_Impl( const SfxItemSet& rSet );
sal_Bool FillItemSetColor_Impl( SfxItemSet& rSet );
DECL_LINK( SelectHdl_Impl, ListBox* );
DECL_LINK( CbClickHdl_Impl, CheckBox* );
DECL_LINK( TristClickHdl_Impl, TriStateBox* );
DECL_LINK( UpdatePreview_Impl, ListBox* );
DECL_LINK( ColorBoxSelectHdl_Impl, ColorListBox* );
public:
// using SfxTabPage::ActivatePage;
using SfxTabPage::DeactivatePage;
// virtual void ActivatePage( const SfxItemSet& rSet );
virtual int DeactivatePage( SfxItemSet* pSet = 0 );
public:
static SfxTabPage* Create( Window* pParent, const SfxItemSet& rSet );
static sal_uInt16* GetRanges();
virtual void Reset( const SfxItemSet& rSet );
virtual sal_Bool FillItemSet( SfxItemSet& rSet );
void DisableControls( sal_uInt16 nDisable );
void EnableFlash();
// the writer uses SID_ATTR_BRUSH as font background
void SetPreviewBackgroundToCharacter();
virtual void PageCreated (SfxAllItemSet aSet);
};
// class SvxCharPositionPage ---------------------------------------------
class SvxCharPositionPage : public SvxCharBasePage
{
private:
FixedLine m_aPositionLine;
RadioButton m_aHighPosBtn;
RadioButton m_aNormalPosBtn;
RadioButton m_aLowPosBtn;
FixedText m_aHighLowFT;
MetricField m_aHighLowEdit;
CheckBox m_aHighLowRB;
FixedText m_aFontSizeFT;
MetricField m_aFontSizeEdit;
FixedLine m_aRotationScalingFL;
FixedLine m_aScalingFL;
RadioButton m_a0degRB;
RadioButton m_a90degRB;
RadioButton m_a270degRB;
CheckBox m_aFitToLineCB;
FixedText m_aScaleWidthFT;
MetricField m_aScaleWidthMF;
FixedLine m_aKerningLine;
ListBox m_aKerningLB;
FixedText m_aKerningFT;
MetricField m_aKerningEdit;
CheckBox m_aPairKerningBtn;
short m_nSuperEsc;
short m_nSubEsc;
sal_uInt16 m_nScaleWidthItemSetVal;
sal_uInt16 m_nScaleWidthInitialVal;
sal_uInt8 m_nSuperProp;
sal_uInt8 m_nSubProp;
SvxCharPositionPage( Window* pParent, const SfxItemSet& rSet );
void Initialize();
void UpdatePreview_Impl( sal_uInt8 nProp, sal_uInt8 nEscProp, short nEsc );
void SetEscapement_Impl( sal_uInt16 nEsc );
DECL_LINK( PositionHdl_Impl, RadioButton* );
DECL_LINK( RotationHdl_Impl, RadioButton* );
DECL_LINK( FontModifyHdl_Impl, MetricField* );
DECL_LINK( AutoPositionHdl_Impl, CheckBox* );
DECL_LINK( FitToLineHdl_Impl, CheckBox* );
DECL_LINK( KerningSelectHdl_Impl, ListBox* );
DECL_LINK( KerningModifyHdl_Impl, MetricField* );
DECL_LINK( PairKerningHdl_Impl, CheckBox* );
DECL_LINK( LoseFocusHdl_Impl, MetricField* );
DECL_LINK( ScaleWidthModifyHdl_Impl, MetricField* );
public:
using SfxTabPage::ActivatePage;
using SfxTabPage::DeactivatePage;
virtual int DeactivatePage( SfxItemSet* pSet = 0 );
virtual void ActivatePage( const SfxItemSet& rSet );
public:
static SfxTabPage* Create( Window* pParent, const SfxItemSet& rSet );
static sal_uInt16* GetRanges();
virtual void Reset( const SfxItemSet& rSet );
virtual sal_Bool FillItemSet( SfxItemSet& rSet );
virtual void FillUserData();
// the writer uses SID_ATTR_BRUSH as font background
void SetPreviewBackgroundToCharacter();
virtual void PageCreated (SfxAllItemSet aSet);
};
// class SvxCharTwoLinesPage ---------------------------------------------
class SvxCharTwoLinesPage : public SvxCharBasePage
{
private:
FixedLine m_aSwitchOnLine;
CheckBox m_aTwoLinesBtn;
FixedLine m_aEncloseLine;
FixedText m_aStartBracketFT;
ListBox m_aStartBracketLB;
FixedText m_aEndBracketFT;
ListBox m_aEndBracketLB;
sal_uInt16 m_nStartBracketPosition;
sal_uInt16 m_nEndBracketPosition;
SvxCharTwoLinesPage( Window* pParent, const SfxItemSet& rSet );
void UpdatePreview_Impl();
void Initialize();
void SelectCharacter( ListBox* pBox );
void SetBracket( sal_Unicode cBracket, sal_Bool bStart );
DECL_LINK( TwoLinesHdl_Impl, CheckBox* );
DECL_LINK( CharacterMapHdl_Impl, ListBox* );
public:
using SfxTabPage::ActivatePage;
using SfxTabPage::DeactivatePage;
virtual void ActivatePage( const SfxItemSet& rSet );
virtual int DeactivatePage( SfxItemSet* pSet = 0 );
public:
static SfxTabPage* Create( Window* pParent, const SfxItemSet& rSet );
static sal_uInt16* GetRanges();
virtual void Reset( const SfxItemSet& rSet );
virtual sal_Bool FillItemSet( SfxItemSet& rSet );
// the writer uses SID_ATTR_BRUSH as font background
void SetPreviewBackgroundToCharacter();
virtual void PageCreated (SfxAllItemSet aSet);
};
#endif // #ifndef _SVX_CHARDLG_HXX