xref: /aoo4110/main/sw/source/ui/inc/frmpage.hxx (revision b1cdbd2c)
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 
24 #ifndef _FRMPAGE_HXX
25 #define _FRMPAGE_HXX
26 
27 #include <vcl/fixed.hxx>
28 #include <vcl/button.hxx>
29 #include <vcl/lstbox.hxx>
30 #include <vcl/field.hxx>
31 #include <sfx2/tabdlg.hxx>
32 #include <svx/swframeposstrings.hxx>
33 #include <swtypes.hxx>
34 #include <bmpwin.hxx>
35 #include <svx/swframeexample.hxx>
36 #include <prcntfld.hxx>
37 #include <globals.hrc>
38 
39 
40 namespace sfx2{class FileDialogHelper;}
41 class SwWrtShell;
42 struct FrmMap;
43 // OD 12.11.2003 #i22341#
44 struct SwPosition;
45 
46 /*--------------------------------------------------------------------
47 	 Beschreibung:	Rahmendialog
48  --------------------------------------------------------------------*/
49 
50 class SwFrmPage: public SfxTabPage
51 {
52 	// Size
53 	FixedLine       aSizeFL;
54 	FixedText		aWidthFT;
55 	FixedText		aWidthAutoFT;
56 	PercentField 	aWidthED;
57 	CheckBox		aRelWidthCB;
58 	CheckBox		aAutoWidthCB;
59 	FixedText		aHeightFT;
60 	FixedText		aHeightAutoFT;
61 	PercentField 	aHeightED;
62 	CheckBox		aRelHeightCB;
63 	CheckBox		aAutoHeightCB;
64 	CheckBox		aFixedRatioCB;
65 	PushButton		aRealSizeBT;
66 
67 	// Anker
68     FixedLine       aTypeSepFL;
69 	FixedLine       aTypeFL;
70 	RadioButton		aAnchorAtPageRB;
71 	RadioButton		aAnchorAtParaRB;
72 	RadioButton		aAnchorAtCharRB;
73 	RadioButton		aAnchorAsCharRB;
74 	RadioButton		aAnchorAtFrameRB;
75 
76 	// Position
77 	FixedLine       aPositionFL;
78 	FixedText		aHorizontalFT;
79 	ListBox 		aHorizontalDLB;
80 	FixedText		aAtHorzPosFT;
81 	MetricField 	aAtHorzPosED;
82 	FixedText		aHoriRelationFT;
83 	ListBox			aHoriRelationLB;
84 	CheckBox		aMirrorPagesCB;
85 	FixedText		aVerticalFT;
86 	ListBox 		aVerticalDLB;
87 	FixedText		aAtVertPosFT;
88 	MetricField 	aAtVertPosED;
89 	FixedText		aVertRelationFT;
90 	ListBox			aVertRelationLB;
91     // OD 02.10.2003 #i18732# - check box for new option 'FollowTextFlow'
92     CheckBox        aFollowTextFlowCB;
93 
94 	// Example
95     SvxSwFrameExample   aExampleWN;
96 
97     //'string provider'
98     SvxSwFramePosString aFramePosString;
99 
100     sal_Bool            bAtHorzPosModified;
101     sal_Bool            bAtVertPosModified;
102 
103     sal_Bool            bFormat;
104 	sal_Bool			bNew;
105 	sal_Bool			bNoModifyHdl;
106     sal_Bool            bVerticalChanged;  //check done whether frame is in vertical environment
107     sal_Bool            bIsVerticalFrame;  //current frame is in vertical environment - strings are exchanged
108     // --> OD 2009-08-31 #mongolianlayou#
109     sal_Bool            bIsVerticalL2R;
110     // <--
111     sal_Bool            bIsInRightToLeft; // current frame is in right-to-left environment - strings are exchanged
112     sal_Bool            bHtmlMode;
113     sal_uInt16          nHtmlMode;
114 	sal_uInt16			nDlgType;
115 	Size			aGrfSize;
116 	Size			aWrap;
117 	SwTwips			nUpperBorder;
118 	SwTwips			nLowerBorder;
119     double          fWidthHeightRatio; //width-to-height ratio to support the KeepRatio button
120 
121     // OD 12.11.2003 #i22341# - keep content position of character for
122     // to character anchored objects.
123     const SwPosition* mpToCharCntntPos;
124 
125 	// Die alten Ausrichtungen
126     short        nOldH;
127     short    nOldHRel;
128     short        nOldV;
129     short    nOldVRel;
130 
131     FrmMap* pVMap;
132     FrmMap* pHMap;
133 
134     bool    m_bAllowVertPositioning;
135     bool    m_bIsMathOLE;
136     bool    m_bIsMathBaselineAlignment;
137 
138     virtual void    ActivatePage(const SfxItemSet& rSet);
139 	virtual int 	DeactivatePage(SfxItemSet *pSet);
140 
141 
142 	DECL_LINK( RangeModifyHdl, Edit * );
143 	DECL_LINK( AnchorTypeHdl, RadioButton * );
144 	DECL_LINK( PosHdl, ListBox * );
145 	DECL_LINK( RelHdl, ListBox * );
146     void            InitPos(RndStdIds eId, sal_uInt16 nH, sal_uInt16 nHRel,
147 							sal_uInt16 nV,	sal_uInt16 nVRel,
148 							long   nX,	long   nY);
149 
150 	DECL_LINK( RealSizeHdl, Button * );
151 	DECL_LINK( RelSizeClickHdl, CheckBox * );
152 	DECL_LINK( MirrorHdl, CheckBox * );
153 
154 	DECL_LINK( AutoWidthClickHdl, void* );
155 	DECL_LINK( AutoHeightClickHdl, void* );
156 
157 	// Beispiel aktualisieren
158 	void			UpdateExample();
159 	DECL_LINK( ModifyHdl, Edit * );
160 
161 	void			Init(const SfxItemSet& rSet, sal_Bool bReset = sal_False);
162     // OD 12.11.2003 #i22341# - adjustment to handle maps, that are ambigous
163     //                          in the alignment.
164     sal_uInt16          FillPosLB( const FrmMap* _pMap,
165                                const sal_uInt16 _nAlign,
166                                const sal_uInt16 _nRel,
167                                ListBox& _rLB );
168     // OD 14.11.2003 #i22341# - adjustment to handle maps, that are ambigous
169     //                          in their string entries.
170     sal_uLong           FillRelLB( const FrmMap* _pMap,
171                                const sal_uInt16 _nLBSelPos,
172                                const sal_uInt16 _nAlign,
173                                sal_uInt16 _nRel,
174                                ListBox& _rLB,
175                                FixedText& _rFT );
176     sal_uInt16          GetMapPos( const FrmMap *pMap, ListBox &rAlignLB );
177     short           GetAlignment(FrmMap *pMap, sal_uInt16 nMapPos, ListBox &rAlignLB, ListBox &rRelationLB);
178     short           GetRelation(FrmMap *pMap, ListBox &rRelationLB);
179     RndStdIds       GetAnchor();
180 
181 	void			EnableGraficMode( void );	// hides auto check boxes and re-org controls for "Real Size" button
182 
183 	SwFrmPage(Window *pParent, const SfxItemSet &rSet);
184 	~SwFrmPage();
185 
186     using SfxTabPage::ActivatePage;
187     using SfxTabPage::DeactivatePage;
188 
189 public:
190 
191     static SfxTabPage *Create(Window *pParent, const SfxItemSet &rSet);
192 	static sal_uInt16* GetRanges();
193 
194 	virtual sal_Bool FillItemSet(SfxItemSet &rSet);
195 	virtual void Reset(const SfxItemSet &rSet);
196 
SetNewFrame(sal_Bool bNewFrame)197 	void 			SetNewFrame(sal_Bool bNewFrame) { bNew		= bNewFrame; }
198 	void			SetFormatUsed(sal_Bool bFmt);
SetFrmType(sal_uInt16 nType)199 	void			SetFrmType(sal_uInt16 nType) 	{ nDlgType 	= nType;	 }
IsInGraficMode(void)200 	inline sal_Bool		IsInGraficMode( void )		{ return nDlgType == DLG_FRM_GRF || nDlgType == DLG_FRM_OLE; }
201     void            EnableVerticalPositioning( bool bEnable );
202 };
203 
204 class SwGrfExtPage: public SfxTabPage
205 {
206 	// Spiegeln
207     FixedLine       aMirrorFL;
208 	CheckBox		aMirrorVertBox;
209 	CheckBox		aMirrorHorzBox;
210 	RadioButton 	aAllPagesRB;
211 	RadioButton 	aLeftPagesRB;
212 	RadioButton 	aRightPagesRB;
213 	BmpWindow		aBmpWin;
214 
215     FixedLine       aConnectFL;
216 	FixedText		aConnectFT;
217 	Edit			aConnectED;
218 	PushButton		aBrowseBT;
219 
220 	String			aFilterName;
221 	String			aGrfName, aNewGrfName;
222 
223     ::sfx2::FileDialogHelper*     pGrfDlg;
224 
225 	sal_Bool 			bHtmlMode;
226 
227 	// Handler fuer Spiegeln
228 	DECL_LINK( MirrorHdl, CheckBox * );
229 	DECL_LINK( BrowseHdl, Button * );
230 
231 	virtual void 	ActivatePage(const SfxItemSet& rSet);
232 	SwGrfExtPage(Window *pParent, const SfxItemSet &rSet);
233 	~SwGrfExtPage();
234 
235     using SfxTabPage::ActivatePage;
236     using SfxTabPage::DeactivatePage;
237 
238 public:
239 
240     static SfxTabPage *Create(Window *pParent, const SfxItemSet &rSet);
241 
242 	virtual sal_Bool FillItemSet(SfxItemSet &rSet);
243 	virtual void Reset(const SfxItemSet &rSet);
244 	virtual int  DeactivatePage(SfxItemSet *pSet);
245 };
246 
247 
248 class SwFrmURLPage : public SfxTabPage
249 {
250 	//Hyperlink
251     FixedLine       aHyperLinkFL;
252 	FixedText		aURLFT;
253 	Edit			aURLED;
254 	PushButton		aSearchPB;
255 	FixedText		aNameFT;
256 	Edit			aNameED;
257 	FixedText		aFrameFT;
258 	ComboBox		aFrameCB;
259 
260 	//Image map
261     FixedLine       aImageFL;
262 	CheckBox		aServerCB;
263 	CheckBox		aClientCB;
264 
265 	DECL_LINK( InsertFileHdl, PushButton * );
266 
267 
268 	SwFrmURLPage(Window *pParent, const SfxItemSet &rSet);
269 	~SwFrmURLPage();
270 
271     using SfxTabPage::ActivatePage;
272     using SfxTabPage::DeactivatePage;
273 
274 public:
275 
276     static SfxTabPage *Create(Window *pParent, const SfxItemSet &rSet);
277 
278 	virtual sal_Bool FillItemSet(SfxItemSet &rSet);
279 	virtual void Reset(const SfxItemSet &rSet);
280 };
281 
282 /*-----------------13.11.96 12.59-------------------
283 
284 --------------------------------------------------*/
285 
286 class SwFrmAddPage : public SfxTabPage
287 {
288       FixedLine   aNamesFL;
289 	FixedText 	aNameFT;
290 	Edit		aNameED;
291 	FixedText	aAltNameFT;
292 	Edit		aAltNameED;
293 	FixedText 	aPrevFT;
294     ListBox     aPrevLB;
295 	FixedText 	aNextFT;
296     ListBox     aNextLB;
297     	FixedLine   aProtectFL;
298 
299 	CheckBox	aProtectContentCB;
300 	CheckBox	aProtectFrameCB;
301 	CheckBox	aProtectSizeCB;
302 	FixedLine   aExtFL;
303 
304 	CheckBox	aEditInReadonlyCB;
305 	CheckBox	aPrintFrameCB;
306 	FixedText   aTextFlowFT;
307 	ListBox     aTextFlowLB;
308 
309 
310 	SwWrtShell* pWrtSh;
311 
312 	sal_uInt16		nDlgType;
313 	sal_Bool 		bHtmlMode;
314 	sal_Bool 		bFormat;
315 	sal_Bool 		bNew;
316 
317 	DECL_LINK(EditModifyHdl, Edit*);
318     DECL_LINK(ChainModifyHdl, ListBox*);
319 
320 	SwFrmAddPage(Window *pParent, const SfxItemSet &rSet);
321 	~SwFrmAddPage();
322 
323 public:
324 
325 	static SfxTabPage*	Create(Window *pParent, const SfxItemSet &rSet);
326 	static sal_uInt16* 		GetRanges();
327 
328 	virtual sal_Bool FillItemSet(SfxItemSet &rSet);
329 	virtual void Reset(const SfxItemSet &rSet);
330 
331 	void			SetFormatUsed(sal_Bool bFmt);
SetFrmType(sal_uInt16 nType)332 	void			SetFrmType(sal_uInt16 nType) { nDlgType = nType; }
SetNewFrame(sal_Bool bNewFrame)333 	void 			SetNewFrame(sal_Bool bNewFrame) { bNew  = bNewFrame; }
SetShell(SwWrtShell * pSh)334 	void			SetShell(SwWrtShell* pSh) { pWrtSh  = pSh; }
335 
336 };
337 
338 #endif // _FRMPAGE_HXX
339