Files
libreoffice/svx/source/dialog/chardlg.hxx
Rüdiger Timm 66df5f6a3e INTEGRATION: CWS ooo19126 (1.2.896); FILE MERGED
2005/09/05 14:19:08 rt 1.2.896.1: #i54170# Change license header: remove SISSL
2005-09-08 19:40:40 +00:00

374 lines
13 KiB
C++

/*************************************************************************
*
* OpenOffice.org - a multi-platform office productivity suite
*
* $RCSfile: chardlg.hxx,v $
*
* $Revision: 1.3 $
*
* last change: $Author: rt $ $Date: 2005-09-08 20:40:40 $
*
* The Contents of this file are made available subject to
* the terms of GNU Lesser General Public License Version 2.1.
*
*
* GNU Lesser General Public License Version 2.1
* =============================================
* Copyright 2005 by Sun Microsystems, Inc.
* 901 San Antonio Road, Palo Alto, CA 94303, USA
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License version 2.1, as published by the Free Software Foundation.
*
* This library 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 for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston,
* MA 02111-1307 USA
*
************************************************************************/
#ifndef _SVX_CHARDLG_HXX
#define _SVX_CHARDLG_HXX
// include ---------------------------------------------------------------
#ifndef _CTRLBOX_HXX //autogen
#include <svtools/ctrlbox.hxx>
#endif
#ifndef _STDCTRL_HXX //autogen
#include <svtools/stdctrl.hxx>
#endif
#ifndef _SFXTABDLG_HXX //autogen
#include <sfx2/tabdlg.hxx>
#endif
#ifndef _SVX_FNTCTRL_HXX
#include <fntctrl.hxx>
#endif
#include "checklbx.hxx"
#include "langbox.hxx"
// 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();
virtual void ActivatePage( const SfxItemSet& rSet );
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();
};
// 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* );
protected:
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); //add CHINA001
};
// class SvxCharEffectsPage ----------------------------------------------
class SvxCharEffectsPage : public SvxCharBasePage
{
private:
FixedText m_aUnderlineFT;
ListBox m_aUnderlineLB;
FixedText m_aColorFT;
ColorListBox m_aColorLB;
FixedText m_aStrikeoutFT;
ListBox m_aStrikeoutLB;
CheckBox m_aIndividualWordsBtn;
FixedText m_aEmphasisFT;
ListBox m_aEmphasisLB;
FixedText m_aPositionFT;
ListBox m_aPositionLB;
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;
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* );
protected:
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); //add CHINA001
};
// 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* );
protected:
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); //add CHINA001
};
// 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;
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* );
protected:
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); //add CHINA001
};
#endif // #ifndef _SVX_CHARDLG_HXX