/************************************************************************* * * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * Copyright 2000, 2010 Oracle and/or its affiliates. * * OpenOffice.org - a multi-platform office productivity suite * * This file is part of OpenOffice.org. * * OpenOffice.org is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License version 3 * only, as published by the Free Software Foundation. * * OpenOffice.org is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License version 3 for more details * (a copy is included in the LICENSE file that accompanied this code). * * You should have received a copy of the GNU Lesser General Public License * version 3 along with OpenOffice.org. If not, see * * for a copy of the LGPLv3 License. * ************************************************************************/ #ifndef _SVX_CHARDLG_HXX #define _SVX_CHARDLG_HXX // include --------------------------------------------------------------- #include #include #include #include #include #include // forward --------------------------------------------------------------- class SvxFontListItem; class FontList; // ----------------------------------------------------------------------- #define DISABLE_CASEMAP ((USHORT)0x0001) #define DISABLE_WORDLINE ((USHORT)0x0002) #define DISABLE_BLINK ((USHORT)0x0004) #define DISABLE_UNDERLINE_COLOR ((USHORT)0x0008) #define DISABLE_LANGUAGE ((USHORT)0x0010) #define DISABLE_HIDE_LANGUAGE ((USHORT)0x0020) // class SvxCharBasePage ------------------------------------------------- class SvxCharBasePage : public SfxTabPage { protected: SvxFontPrevWindow m_aPreviewWin; FixedInfo m_aFontTypeFT; BOOL m_bPreviewBackgroundToCharacter; SvxCharBasePage( Window* pParent, const ResId& rResIdTabPage, const SfxItemSet&, USHORT nResIdPrewievWin, USHORT nResIdFontTypeFT ); virtual ~SvxCharBasePage(); void SetPrevFontSize( const SfxItemSet& rSet, USHORT nSlot, SvxFont& rFont ); void SetPrevFont( const SfxItemSet& rSet, USHORT nSlot, SvxFont& rFont ); void SetPrevFontStyle( const SfxItemSet& rSet, USHORT nSlotPosture, USHORT nSlotWeight, SvxFont& rFont ); // posture/weight void SetPrevFontWidthScale( const SfxItemSet& rSet ); void SetPrevFontEscapement( BYTE nProp, BYTE 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 ); BOOL FillItemSet_Impl( SfxItemSet& rSet, LanguageGroup eLangGrp ); void ResetColor_Impl( const SfxItemSet& rSet ); BOOL FillItemSetColor_Impl( 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 USHORT* GetRanges(); virtual void Reset( const SfxItemSet& rSet ); virtual 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( USHORT 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; USHORT 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 ); 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 USHORT* GetRanges(); virtual void Reset( const SfxItemSet& rSet ); virtual BOOL FillItemSet( SfxItemSet& rSet ); void DisableControls( USHORT 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; UINT16 m_nScaleWidthItemSetVal; UINT16 m_nScaleWidthInitialVal; BYTE m_nSuperProp; BYTE m_nSubProp; SvxCharPositionPage( Window* pParent, const SfxItemSet& rSet ); void Initialize(); void UpdatePreview_Impl( BYTE nProp, BYTE nEscProp, short nEsc ); void SetEscapement_Impl( USHORT 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 USHORT* GetRanges(); virtual void Reset( const SfxItemSet& rSet ); virtual 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; USHORT m_nStartBracketPosition; USHORT m_nEndBracketPosition; SvxCharTwoLinesPage( Window* pParent, const SfxItemSet& rSet ); void UpdatePreview_Impl(); void Initialize(); void SelectCharacter( ListBox* pBox ); void SetBracket( sal_Unicode cBracket, 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 USHORT* GetRanges(); virtual void Reset( const SfxItemSet& rSet ); virtual 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