xref: /aoo4110/main/cui/source/inc/numfmt.hxx (revision b1cdbd2c)
1*b1cdbd2cSJim Jagielski /**************************************************************
2*b1cdbd2cSJim Jagielski  *
3*b1cdbd2cSJim Jagielski  * Licensed to the Apache Software Foundation (ASF) under one
4*b1cdbd2cSJim Jagielski  * or more contributor license agreements.  See the NOTICE file
5*b1cdbd2cSJim Jagielski  * distributed with this work for additional information
6*b1cdbd2cSJim Jagielski  * regarding copyright ownership.  The ASF licenses this file
7*b1cdbd2cSJim Jagielski  * to you under the Apache License, Version 2.0 (the
8*b1cdbd2cSJim Jagielski  * "License"); you may not use this file except in compliance
9*b1cdbd2cSJim Jagielski  * with the License.  You may obtain a copy of the License at
10*b1cdbd2cSJim Jagielski  *
11*b1cdbd2cSJim Jagielski  *   http://www.apache.org/licenses/LICENSE-2.0
12*b1cdbd2cSJim Jagielski  *
13*b1cdbd2cSJim Jagielski  * Unless required by applicable law or agreed to in writing,
14*b1cdbd2cSJim Jagielski  * software distributed under the License is distributed on an
15*b1cdbd2cSJim Jagielski  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*b1cdbd2cSJim Jagielski  * KIND, either express or implied.  See the License for the
17*b1cdbd2cSJim Jagielski  * specific language governing permissions and limitations
18*b1cdbd2cSJim Jagielski  * under the License.
19*b1cdbd2cSJim Jagielski  *
20*b1cdbd2cSJim Jagielski  *************************************************************/
21*b1cdbd2cSJim Jagielski 
22*b1cdbd2cSJim Jagielski 
23*b1cdbd2cSJim Jagielski #ifndef _SVX_NUMFMT_HXX
24*b1cdbd2cSJim Jagielski #define _SVX_NUMFMT_HXX
25*b1cdbd2cSJim Jagielski 
26*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------
27*b1cdbd2cSJim Jagielski 
28*b1cdbd2cSJim Jagielski #include <vcl/window.hxx>
29*b1cdbd2cSJim Jagielski #include <tools/color.hxx>
30*b1cdbd2cSJim Jagielski #include <tools/string.hxx>
31*b1cdbd2cSJim Jagielski #include <sfx2/tabdlg.hxx>
32*b1cdbd2cSJim Jagielski #include <vcl/fixed.hxx>
33*b1cdbd2cSJim Jagielski #include <vcl/lstbox.hxx>
34*b1cdbd2cSJim Jagielski #include <vcl/edit.hxx>
35*b1cdbd2cSJim Jagielski #include <vcl/toolbox.hxx>
36*b1cdbd2cSJim Jagielski #include <vcl/field.hxx>
37*b1cdbd2cSJim Jagielski #include <svx/langbox.hxx>
38*b1cdbd2cSJim Jagielski #include <svx/fontlb.hxx>
39*b1cdbd2cSJim Jagielski 
40*b1cdbd2cSJim Jagielski //CHINA001 #define SVX_NUMVAL_STANDARD		-1234.12345678901234
41*b1cdbd2cSJim Jagielski //CHINA001 #define SVX_NUMVAL_CURRENCY		-1234
42*b1cdbd2cSJim Jagielski //CHINA001 #define SVX_NUMVAL_PERCENT		-0.1295
43*b1cdbd2cSJim Jagielski //CHINA001 #define SVX_NUMVAL_TIME 		36525.5678935185
44*b1cdbd2cSJim Jagielski //CHINA001 #define SVX_NUMVAL_DATE 		36525.5678935185
45*b1cdbd2cSJim Jagielski //CHINA001 #define SVX_NUMVAL_BOOLEAN 		1
46*b1cdbd2cSJim Jagielski 
47*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------
48*b1cdbd2cSJim Jagielski 
49*b1cdbd2cSJim Jagielski class SvxNumberFormatShell;
50*b1cdbd2cSJim Jagielski class SvxNumberInfoItem;
51*b1cdbd2cSJim Jagielski 
52*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------
53*b1cdbd2cSJim Jagielski 
54*b1cdbd2cSJim Jagielski class SvxNumberPreviewImpl : public Window
55*b1cdbd2cSJim Jagielski {
56*b1cdbd2cSJim Jagielski private:
57*b1cdbd2cSJim Jagielski 	String			aPrevStr;
58*b1cdbd2cSJim Jagielski 	Color			aPrevCol;
59*b1cdbd2cSJim Jagielski 
60*b1cdbd2cSJim Jagielski 	void			InitSettings( sal_Bool bForeground, sal_Bool bBackground );
61*b1cdbd2cSJim Jagielski 
62*b1cdbd2cSJim Jagielski protected:
63*b1cdbd2cSJim Jagielski 	virtual void	Paint( const Rectangle& rRect );
64*b1cdbd2cSJim Jagielski 	virtual void	StateChanged( StateChangedType nStateChange );
65*b1cdbd2cSJim Jagielski 	virtual void	DataChanged( const DataChangedEvent& rDCEvt );
66*b1cdbd2cSJim Jagielski 
67*b1cdbd2cSJim Jagielski public:
68*b1cdbd2cSJim Jagielski 	SvxNumberPreviewImpl( Window* pParent, const ResId& rResId );
69*b1cdbd2cSJim Jagielski 	~SvxNumberPreviewImpl();
70*b1cdbd2cSJim Jagielski 
71*b1cdbd2cSJim Jagielski     void            NotifyChange( const String& rPrevStr, const Color* pColor = NULL );
72*b1cdbd2cSJim Jagielski };
73*b1cdbd2cSJim Jagielski 
74*b1cdbd2cSJim Jagielski // -----------------------------------------------------------------------
75*b1cdbd2cSJim Jagielski 
76*b1cdbd2cSJim Jagielski #include <sfx2/layout.hxx>
77*b1cdbd2cSJim Jagielski #include <layout/layout-pre.hxx>
78*b1cdbd2cSJim Jagielski 
79*b1cdbd2cSJim Jagielski class SvxNumberFormatTabPage : public SfxTabPage
80*b1cdbd2cSJim Jagielski {
81*b1cdbd2cSJim Jagielski 	using SfxTabPage::DeactivatePage;
82*b1cdbd2cSJim Jagielski 
83*b1cdbd2cSJim Jagielski public:
84*b1cdbd2cSJim Jagielski 	~SvxNumberFormatTabPage();
85*b1cdbd2cSJim Jagielski 
86*b1cdbd2cSJim Jagielski 	static SfxTabPage*		Create( Window* pParent,
87*b1cdbd2cSJim Jagielski 									const SfxItemSet& rAttrSet );
88*b1cdbd2cSJim Jagielski 	static sal_uInt16*			GetRanges();
89*b1cdbd2cSJim Jagielski 
90*b1cdbd2cSJim Jagielski 	virtual	sal_Bool 			FillItemSet( SfxItemSet& rSet );
91*b1cdbd2cSJim Jagielski 	virtual	void 			Reset( const SfxItemSet& rSet );
92*b1cdbd2cSJim Jagielski 	virtual int 			DeactivatePage	( SfxItemSet* pSet = NULL );
93*b1cdbd2cSJim Jagielski 
94*b1cdbd2cSJim Jagielski 	void					SetInfoItem( const SvxNumberInfoItem& rItem );
SetNumberFormatList(const SvxNumberInfoItem & rItem)95*b1cdbd2cSJim Jagielski 	void					SetNumberFormatList( const SvxNumberInfoItem& rItem )
96*b1cdbd2cSJim Jagielski 								{ SetInfoItem( rItem ); }
97*b1cdbd2cSJim Jagielski 
98*b1cdbd2cSJim Jagielski 	void					SetOkHdl( const Link& rOkHandler );
99*b1cdbd2cSJim Jagielski 	void					HideLanguage(sal_Bool nFlag=sal_True);
100*b1cdbd2cSJim Jagielski 	virtual long			PreNotify( NotifyEvent& rNEvt );
101*b1cdbd2cSJim Jagielski 	virtual void			PageCreated (SfxAllItemSet aSet); //add CHINA001
102*b1cdbd2cSJim Jagielski private:
103*b1cdbd2cSJim Jagielski 	SvxNumberFormatTabPage( Window*	pParent,
104*b1cdbd2cSJim Jagielski 							const SfxItemSet& rCoreAttrs );
105*b1cdbd2cSJim Jagielski 	FixedText				aFtCategory;
106*b1cdbd2cSJim Jagielski 	ListBox					aLbCategory;
107*b1cdbd2cSJim Jagielski 	FixedText				aFtFormat;
108*b1cdbd2cSJim Jagielski 	ListBox					aLbCurrency;
109*b1cdbd2cSJim Jagielski 	SvxFontListBox			aLbFormat;
110*b1cdbd2cSJim Jagielski 	FixedText				aFtLanguage;
111*b1cdbd2cSJim Jagielski 	SvxLanguageBox			aLbLanguage;
112*b1cdbd2cSJim Jagielski     CheckBox                aCbSourceFormat;
113*b1cdbd2cSJim Jagielski 	SvxNumberPreviewImpl	aWndPreview;
114*b1cdbd2cSJim Jagielski 	FixedLine               aFlOptions;
115*b1cdbd2cSJim Jagielski 	FixedText				aFtDecimals;
116*b1cdbd2cSJim Jagielski 	NumericField			aEdDecimals;
117*b1cdbd2cSJim Jagielski 	CheckBox				aBtnNegRed;
118*b1cdbd2cSJim Jagielski 	FixedText				aFtLeadZeroes;
119*b1cdbd2cSJim Jagielski 	NumericField			aEdLeadZeroes;
120*b1cdbd2cSJim Jagielski 	CheckBox				aBtnThousand;
121*b1cdbd2cSJim Jagielski 
122*b1cdbd2cSJim Jagielski 	FixedText				aFtEdFormat;
123*b1cdbd2cSJim Jagielski 	Edit					aEdFormat;
124*b1cdbd2cSJim Jagielski 	ImageButton				aIbAdd;
125*b1cdbd2cSJim Jagielski 	ImageButton				aIbInfo;
126*b1cdbd2cSJim Jagielski 	ImageButton				aIbRemove;
127*b1cdbd2cSJim Jagielski 
128*b1cdbd2cSJim Jagielski 	FixedText				aFtComment;
129*b1cdbd2cSJim Jagielski 	Edit					aEdComment;
130*b1cdbd2cSJim Jagielski 	Timer					aResetWinTimer;
131*b1cdbd2cSJim Jagielski 
132*b1cdbd2cSJim Jagielski 
133*b1cdbd2cSJim Jagielski 	SvxNumberInfoItem*		pNumItem;
134*b1cdbd2cSJim Jagielski 	SvxNumberFormatShell* 	pNumFmtShell;
135*b1cdbd2cSJim Jagielski 	sal_uLong					nInitFormat;
136*b1cdbd2cSJim Jagielski 	Link					fnOkHdl;
137*b1cdbd2cSJim Jagielski 
138*b1cdbd2cSJim Jagielski 	sal_Bool					bNumItemFlag; //Fuer Handling mit DocShell
139*b1cdbd2cSJim Jagielski 	sal_Bool					bOneAreaFlag;
140*b1cdbd2cSJim Jagielski 	short					nFixedCategory;
141*b1cdbd2cSJim Jagielski 
142*b1cdbd2cSJim Jagielski 	long					nCatHeight;
143*b1cdbd2cSJim Jagielski 
144*b1cdbd2cSJim Jagielski 	long					nCurFormatY;
145*b1cdbd2cSJim Jagielski 	long					nCurFormatHeight;
146*b1cdbd2cSJim Jagielski 	long					nStdFormatY;
147*b1cdbd2cSJim Jagielski 	long					nStdFormatHeight;
148*b1cdbd2cSJim Jagielski     LocalizedString sAutomaticEntry;
149*b1cdbd2cSJim Jagielski 
150*b1cdbd2cSJim Jagielski 	Window*					pLastActivWindow;
151*b1cdbd2cSJim Jagielski 
152*b1cdbd2cSJim Jagielski #ifdef _SVX_NUMFMT_CXX
153*b1cdbd2cSJim Jagielski 	void 	Init_Impl();
154*b1cdbd2cSJim Jagielski 	void	FillCurrencyBox();
155*b1cdbd2cSJim Jagielski 	void 	FillFormatListBox_Impl( SvxDelStrgs& rEntries );
156*b1cdbd2cSJim Jagielski 	void 	UpdateOptions_Impl( sal_Bool bCheckCatChange );
157*b1cdbd2cSJim Jagielski 	void	UpdateFormatListBox_Impl( sal_uInt16 bCat, sal_Bool bUpdateEdit );
158*b1cdbd2cSJim Jagielski 	void	DeleteEntryList_Impl( SvxDelStrgs& rEntries );
159*b1cdbd2cSJim Jagielski 	void	Obstructing();
160*b1cdbd2cSJim Jagielski     void    EnableBySourceFormat_Impl();
161*b1cdbd2cSJim Jagielski 	void	SetCategory( sal_uInt16 nPos );
162*b1cdbd2cSJim Jagielski     String  GetExpColorString( Color*& rpPreviewColor, const String& aFormatStr, short nTmpCatPos );
163*b1cdbd2cSJim Jagielski     void    MakePreviewText( const String& rFormat );
164*b1cdbd2cSJim Jagielski     void    ChangePreviewText( sal_uInt16 nPos );
165*b1cdbd2cSJim Jagielski     void    AddAutomaticLanguage_Impl(LanguageType eAutoLang, sal_Bool bSelect);
166*b1cdbd2cSJim Jagielski 	// Handler
167*b1cdbd2cSJim Jagielski 	DECL_LINK( LostFocusHdl_Impl, Edit* pEd );
168*b1cdbd2cSJim Jagielski 	DECL_LINK( DoubleClickHdl_Impl, SvxFontListBox* pLb );
169*b1cdbd2cSJim Jagielski 	DECL_LINK( SelFormatHdl_Impl, void * );
170*b1cdbd2cSJim Jagielski 	DECL_LINK( ClickHdl_Impl, ImageButton* pIB );
171*b1cdbd2cSJim Jagielski 	DECL_LINK( EditHdl_Impl, Edit* pEdFormat );
172*b1cdbd2cSJim Jagielski 	DECL_LINK( OptHdl_Impl, void * );
173*b1cdbd2cSJim Jagielski 	DECL_LINK( TimeHdl_Impl, Timer * );
174*b1cdbd2cSJim Jagielski 
175*b1cdbd2cSJim Jagielski #endif
176*b1cdbd2cSJim Jagielski };
177*b1cdbd2cSJim Jagielski 
178*b1cdbd2cSJim Jagielski #include <layout/layout-post.hxx>
179*b1cdbd2cSJim Jagielski 
180*b1cdbd2cSJim Jagielski #endif
181*b1cdbd2cSJim Jagielski 
182