xref: /aoo42x/main/cui/source/inc/page.hxx (revision c4eee24d)
1 /**************************************************************
2  *
3  * Licensed to the Apache Software Foundation (ASF) under one
4  * or more contributor license agreements.  See the NOTICE file
5  * distributed with this work for additional information
6  * regarding copyright ownership.  The ASF licenses this file
7  * to you under the Apache License, Version 2.0 (the
8  * "License"); you may not use this file except in compliance
9  * with the License.  You may obtain a copy of the License at
10  *
11  *   http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing,
14  * software distributed under the License is distributed on an
15  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16  * KIND, either express or implied.  See the License for the
17  * specific language governing permissions and limitations
18  * under the License.
19  *
20  *************************************************************/
21 
22 
23 #ifndef _SVX_PAGE_HXX
24 #define _SVX_PAGE_HXX
25 
26 
27 #include <sfx2/tabdlg.hxx>
28 #include <vcl/field.hxx>
29 #include <vcl/fixed.hxx>
30 #include <vcl/group.hxx>
31 #include <vcl/lstbox.hxx>
32 #include <svtools/stdctrl.hxx>
33 #include <svx/pagectrl.hxx>
34 #include <svx/frmdirlbox.hxx>
35 #include <editeng/svxenum.hxx>
36 #include <i18npool/paper.hxx>
37 #include <svx/flagsdef.hxx>
38 
39 // enum ------------------------------------------------------------------
40 
41 //CHINA001 enum SvxModeType
42 //CHINA001 {
43 //CHINA001 	SVX_PAGE_MODE_STANDARD,
44 //CHINA001 	SVX_PAGE_MODE_CENTER,
45 //CHINA001 	SVX_PAGE_MODE_PRESENTATION
46 //CHINA001 };
47 
48 // class SvxPageDescPage -------------------------------------------------
49 
50 /*  {k:\svx\prototyp\dialog\page.bmp}
51 
52 	[Beschreibung]
53 	TabPage zur Einstellung einer Seite (Groesse, Raender, ...)
54 
55 	[Items]
56 	<SvxPageItem>:          <SID_ATTR_PAGE>
57 	<SvxSizeItem>:          <SID_ATTR_SIZE>
58 	<SvxSizeItem>:          <SID_ATTR_MAXSIZE>
59 	<SvxULSpaceItem>:       <SID_ATTR_LRSPACE>
60 	<SvxLRSpaceItem>:       <SID_ATTR_ULSPACE>
61 	<SfxAllEnumItem>:       <SID_ATTR_PAPERTRAY>
62 	<SvxPaperBinItem>:      <SID_ATTR_PAPERBIN>
63 	<SvxBoolItem>:          <SID_ATTR_EXT1>
64 	<SvxBoolItem>:          <SID_ATTR_EXT2>
65 
66 	<SfxSetItem>:           <SID_ATTR_HEADERSET>
67 		<SfxBoolItem>:          <SID_ATTR_ON>
68 		<SfxBoolItem>:          <SID_ATTR_DYNAMIC>
69 		<SfxBoolItem>:          <SID_ATTR_SHARED>
70 		<SvxSizeItem>:          <SID_ATTR_SIZE>
71 		<SvxULSpaceItem>:       <SID_ATTR_ULSPACE>
72 		<SvxLRSpaceItem>:       <SID_ATTR_LRSPACE>
73 
74 	<SfxSetItem>:           <SID_ATTR_FOOTERSET>
75 		<SfxBoolItem>:          <SID_ATTR_ON>
76 		<SfxBoolItem>:          <SID_ATTR_DYNAMIC>
77 		<SfxBoolItem>:          <SID_ATTR_SHARED>
78 		<SvxSizeItem>:          <SID_ATTR_SIZE>
79 		<SvxULSpaceItem>:       <SID_ATTR_ULSPACE>
80 		<SvxLRSpaceItem>:       <SID_ATTR_LRSPACE>
81 */
82 
83 struct	SvxPage_Impl;
84 typedef	sal_uInt16 MarginPosition;
85 
86 class SvxPageDescPage : public SfxTabPage
87 {
88 	using TabPage::ActivatePage;
89 	using TabPage::DeactivatePage;
90 
91     // paper format
92     FixedLine           aPaperSizeFl;
93     FixedText           aPaperFormatText;
94 	ListBox             aPaperSizeBox;
95 
96     FixedText           aPaperWidthText;
97 	MetricField         aPaperWidthEdit;
98 	FixedText           aPaperHeightText;
99 	MetricField         aPaperHeightEdit;
100 
101     FixedText           aOrientationFT;
102     RadioButton         aPortraitBtn;
103 	RadioButton         aLandscapeBtn;
104 
105     SvxPageWindow       aBspWin;
106 
107     FixedText           		aTextFlowLbl;
108     svx::FrameDirectionListBox	aTextFlowBox;
109 
110     FixedText           aPaperTrayLbl;
111 	ListBox             aPaperTrayBox;
112 
113     // Margins
114     FixedLine           aMarginFl;
115     FixedText           aLeftMarginLbl;
116 	MetricField         aLeftMarginEdit;
117 	FixedText           aRightMarginLbl;
118 	MetricField         aRightMarginEdit;
119 	FixedText           aTopMarginLbl;
120 	MetricField         aTopMarginEdit;
121 	FixedText           aBottomMarginLbl;
122 	MetricField         aBottomMarginEdit;
123 
124 	FixedLine           aBottomSeparatorFl;
125     // layout settings
126     FixedLine           aLayoutFL;
127 	FixedText           aPageText;
128     ListBox             aLayoutBox;
129 	FixedText			aNumberFormatText;
130     ListBox             aNumberFormatBox;
131 
132 
133     //Extras Calc
134     FixedText           aTblAlignFT;
135     CheckBox            aHorzBox;
136 	CheckBox            aVertBox;
137 
138     // Impress and Draw
139 	CheckBox            aAdaptBox;
140 
141 	//Register Writer
142 	CheckBox			aRegisterCB;
143 	FixedText			aRegisterFT;
144 	ListBox				aRegisterLB;
145 
146 	String				sStandardRegister;
147 
148 	String              aInsideText;
149 	String              aOutsideText;
150 	String              aLeftText;
151 	String              aRightText;
152 	String				aPrintRangeQueryText;
153 
154 	long				nFirstLeftMargin;
155 	long				nFirstRightMargin;
156 	long				nFirstTopMargin;
157 	long				nFirstBottomMargin;
158 	long				nLastLeftMargin;
159 	long				nLastRightMargin;
160 	long				nLastTopMargin;
161 	long				nLastBottomMargin;
162 
163 	Size                aMaxSize;
164 	sal_Bool                bLandscape;
165 	FASTBOOL            bBorderModified;
166 	SvxModeType         eMode;
167 	Paper               ePaperStart;
168 	Paper               ePaperEnd;
169 
170 	SvxPage_Impl*		pImpl;
171 
172 #ifdef _SVX_PAGE_CXX
173 	void                Init_Impl();
174 	DECL_LINK( 			LayoutHdl_Impl, ListBox* );
175 	DECL_LINK( 			PaperBinHdl_Impl, ListBox* );
176 	DECL_LINK( 			SwapOrientation_Impl, RadioButton* );
177 	void                SwapFirstValues_Impl( FASTBOOL bSet );
178 	DECL_LINK( 			BorderModify_Impl, MetricField* );
179 	void                InitHeadFoot_Impl( const SfxItemSet& rSet );
180 	DECL_LINK( 			CenterHdl_Impl, CheckBox* );
181     void                UpdateExample_Impl( bool bResetbackground = false );
182 
183 	// Papiergroesse
184 	DECL_LINK(			PaperSizeSelect_Impl, ListBox* );
185 	DECL_LINK(			PaperSizeModify_Impl, Edit* );
186 
187     DECL_LINK(			FrameDirectionModify_Impl, ListBox* );
188 
189     // Hintergrund
190 	void                ResetBackground_Impl( const SfxItemSet& rSet );
191 
192 	// Grenzwerte
193 	DECL_LINK(			RangeHdl_Impl, Edit* );
194 	void                CalcMargin_Impl();
195 
196 	// Registerhaltigkeit
197 	DECL_LINK(			RegisterModify, CheckBox * );
198 
199     // page direction
200     /** Disables vertical page direction entries in the text flow listbox. */
201     void                DisableVerticalPageDir();
202 
203 	bool				IsPrinterRangeOverflow( MetricField& rField, long nFirstMargin,
204 												long nLastMargin, MarginPosition nPos );
205 	void				CheckMarginEdits( bool _bClear );
206 	bool				IsMarginOutOfRange();
207 #endif
208 
209 	SvxPageDescPage( Window* pParent, const SfxItemSet& rSet );
210 
211 protected:
212 	virtual void        ActivatePage( const SfxItemSet& rSet );
213 	virtual int         DeactivatePage( SfxItemSet* pSet = 0 );
214 
215 public:
216 	static SfxTabPage*  Create( Window* pParent, const SfxItemSet& rSet );
217 	static sal_uInt16*      GetRanges();
218 
219 	virtual sal_Bool        FillItemSet( SfxItemSet& rOutSet );
220 	virtual void        Reset( const SfxItemSet& rSet );
221 	virtual void        FillUserData();
222 
223 	virtual ~SvxPageDescPage();
224 
225 	void                SetMode( SvxModeType eMType ) { eMode = eMType; }
226 	void                SetPaperFormatRanges( Paper eStart, Paper eEnd )
227 							{ ePaperStart = eStart, ePaperEnd = eEnd; }
228 
229 	void				SetCollectionList(const List* pList);
230 	virtual void		PageCreated (SfxAllItemSet aSet); //add CHINA001
231 };
232 
233 #endif // #ifndef _SVX_PAGE_HXX
234 
235