Line data Source code
1 : /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 : /*
3 : * This file is part of the LibreOffice project.
4 : *
5 : * This Source Code Form is subject to the terms of the Mozilla Public
6 : * License, v. 2.0. If a copy of the MPL was not distributed with this
7 : * file, You can obtain one at http://mozilla.org/MPL/2.0/.
8 : *
9 : * This file incorporates work covered by the following license notice:
10 : *
11 : * Licensed to the Apache Software Foundation (ASF) under one or more
12 : * contributor license agreements. See the NOTICE file distributed
13 : * with this work for additional information regarding copyright
14 : * ownership. The ASF licenses this file to you under the Apache
15 : * License, Version 2.0 (the "License"); you may not use this file
16 : * except in compliance with the License. You may obtain a copy of
17 : * the License at http://www.apache.org/licenses/LICENSE-2.0 .
18 : */
19 : #ifndef INCLUDED_SW_SOURCE_UIBASE_INC_OPTPAGE_HXX
20 : #define INCLUDED_SW_SOURCE_UIBASE_INC_OPTPAGE_HXX
21 : #include <sfx2/tabdlg.hxx>
22 :
23 : #include <vcl/group.hxx>
24 :
25 : #include <vcl/button.hxx>
26 :
27 : #include <vcl/lstbox.hxx>
28 :
29 : #include <vcl/field.hxx>
30 :
31 : #include <vcl/fixed.hxx>
32 : #include <svtools/ctrlbox.hxx>
33 : #include <svx/fntctrl.hxx>
34 : #include <fontcfg.hxx>
35 : class SfxPrinter;
36 : class SwStdFontConfig;
37 : class SwWrtShell;
38 : class FontList;
39 :
40 : // Tools->Options->Writer->View
41 : // Tools->Options->Writer/Web->View
42 : class SwContentOptPage : public SfxTabPage
43 : {
44 : CheckBox* m_pCrossCB;
45 :
46 : CheckBox* m_pHScrollBox;
47 : CheckBox* m_pVScrollBox;
48 : CheckBox* m_pAnyRulerCB;
49 : CheckBox* m_pHRulerCBox;
50 : ListBox* m_pHMetric;
51 : CheckBox* m_pVRulerCBox;
52 : CheckBox* m_pVRulerRightCBox;
53 : ListBox* m_pVMetric;
54 : CheckBox* m_pSmoothCBox;
55 :
56 : CheckBox* m_pGrfCB;
57 : CheckBox* m_pTblCB;
58 : CheckBox* m_pDrwCB;
59 : CheckBox* m_pFldNameCB;
60 : CheckBox* m_pPostItCB;
61 :
62 : VclFrame* m_pSettingsFrame;
63 : FixedText* m_pSettingsLabel;
64 : FixedText* m_pMetricLabel;
65 : ListBox* m_pMetricLB;
66 :
67 : DECL_LINK(VertRulerHdl, CheckBox*);
68 : DECL_LINK(AnyRulerHdl, CheckBox*);
69 : public:
70 : SwContentOptPage( vcl::Window* pParent,
71 : const SfxItemSet& rSet );
72 : virtual ~SwContentOptPage();
73 :
74 : static SfxTabPage* Create( vcl::Window* pParent,
75 : const SfxItemSet* rAttrSet);
76 :
77 : virtual bool FillItemSet( SfxItemSet* rSet ) SAL_OVERRIDE;
78 : virtual void Reset( const SfxItemSet* rSet ) SAL_OVERRIDE;
79 :
80 : };
81 :
82 : // TabPage printer settings additions
83 0 : class SwAddPrinterTabPage : public SfxTabPage
84 : {
85 : CheckBox* m_pGrfCB;
86 : CheckBox* m_pCtrlFldCB;
87 : CheckBox* m_pBackgroundCB;
88 : CheckBox* m_pBlackFontCB;
89 : CheckBox* m_pPrintHiddenTextCB;
90 : CheckBox* m_pPrintTextPlaceholderCB;
91 :
92 : VclFrame* m_pPagesFrame;
93 : CheckBox* m_pLeftPageCB;
94 : CheckBox* m_pRightPageCB;
95 : CheckBox* m_pProspectCB;
96 : CheckBox* m_pProspectCB_RTL;
97 :
98 : VclFrame* m_pCommentsFrame;
99 : RadioButton* m_pNoRB;
100 : RadioButton* m_pOnlyRB;
101 : RadioButton* m_pEndRB;
102 : RadioButton* m_pEndPageRB;
103 : RadioButton* m_pInMarginsRB;
104 :
105 : CheckBox* m_pPrintEmptyPagesCB;
106 : CheckBox* m_pPaperFromSetupCB;
107 : ListBox* m_pFaxLB;
108 :
109 : OUString sNone;
110 :
111 : bool bAttrModified;
112 : bool bPreview;
113 :
114 : void Init();
115 : DECL_LINK(AutoClickHdl, void *);
116 : DECL_LINK(SelectHdl, void *);
117 :
118 : SwAddPrinterTabPage( vcl::Window* pParent,
119 : const SfxItemSet& rSet );
120 : public:
121 :
122 : static SfxTabPage* Create( vcl::Window* pParent,
123 : const SfxItemSet* rAttrSet );
124 :
125 : virtual bool FillItemSet( SfxItemSet* rSet ) SAL_OVERRIDE;
126 : virtual void Reset( const SfxItemSet* rSet ) SAL_OVERRIDE;
127 : void SetFax( const std::vector<OUString>& );
128 : void SelectFax( const OUString& );
129 : void SetPreview(bool bPrev);
130 : virtual void PageCreated( const SfxAllItemSet& aSet) SAL_OVERRIDE;
131 :
132 : };
133 :
134 : class SwStdFontTabPage : public SfxTabPage
135 : {
136 : FixedText* pLabelFT;
137 :
138 : ComboBox* pStandardBox;
139 : FontSizeBox* pStandardHeightLB;
140 : ComboBox* pTitleBox ;
141 : FontSizeBox* pTitleHeightLB;
142 : ComboBox* pListBox ;
143 : FontSizeBox* pListHeightLB;
144 : ComboBox* pLabelBox ;
145 : FontSizeBox* pLabelHeightLB;
146 : ComboBox* pIdxBox ;
147 : FontSizeBox* pIndexHeightLB;
148 : CheckBox* pDocOnlyCB ;
149 : PushButton* pStandardPB;
150 :
151 : OUString sShellStd;
152 : OUString sShellTitle;
153 : OUString sShellList;
154 : OUString sShellLabel;
155 : OUString sShellIndex;
156 :
157 : SfxPrinter* pPrt;
158 : FontList* pFontList;
159 : SwStdFontConfig* pFontConfig;
160 : SwWrtShell* pWrtShell;
161 : LanguageType eLanguage;
162 : // only defaults were there? they were signed with the boxes
163 : bool bListDefault :1;
164 : bool bSetListDefault :1;
165 : bool bLabelDefault :1;
166 : bool bSetLabelDefault :1;
167 : bool bIdxDefault :1;
168 : bool bSetIdxDefault :1;
169 : bool bDeletePrinter :1;
170 :
171 : bool bListHeightDefault :1;
172 : bool bSetListHeightDefault :1;
173 : bool bLabelHeightDefault :1;
174 : bool bSetLabelHeightDefault :1;
175 : bool bIndexHeightDefault :1;
176 : bool bSetIndexHeightDefault :1;
177 :
178 : sal_uInt8 nFontGroup; //fontcfg.hxx: FONT_GROUP_[STANDARD|CJK|CTL]
179 :
180 : OUString sScriptWestern;
181 : OUString sScriptAsian;
182 : OUString sScriptComplex;
183 :
184 : DECL_LINK(StandardHdl, void *);
185 : DECL_LINK( ModifyHdl, ComboBox * );
186 : DECL_LINK( ModifyHeightHdl, FontSizeBox * );
187 : DECL_LINK( LoseFocusHdl, ComboBox * );
188 :
189 : SwStdFontTabPage( vcl::Window* pParent,
190 : const SfxItemSet& rSet );
191 : virtual ~SwStdFontTabPage();
192 :
193 : public:
194 : static SfxTabPage* Create( vcl::Window* pParent,
195 : const SfxItemSet* rAttrSet );
196 :
197 : virtual bool FillItemSet( SfxItemSet* rSet ) SAL_OVERRIDE;
198 : virtual void Reset( const SfxItemSet* rSet ) SAL_OVERRIDE;
199 :
200 0 : void SetFontMode(sal_uInt8 nGroup) {nFontGroup = nGroup;}
201 : virtual void PageCreated( const SfxAllItemSet& aSet ) SAL_OVERRIDE;
202 : };
203 :
204 : class SwTableOptionsTabPage : public SfxTabPage
205 : {
206 : CheckBox* pHeaderCB;
207 : CheckBox* pRepeatHeaderCB;
208 : CheckBox* pDontSplitCB;
209 : CheckBox* pBorderCB;
210 :
211 : CheckBox* pNumFormattingCB;
212 : CheckBox* pNumFmtFormattingCB;
213 : CheckBox* pNumAlignmentCB;
214 :
215 : MetricField* pRowMoveMF;
216 : MetricField* pColMoveMF;
217 :
218 : MetricField* pRowInsertMF;
219 : MetricField* pColInsertMF;
220 :
221 : RadioButton* pFixRB;
222 : RadioButton* pFixPropRB;
223 : RadioButton* pVarRB;
224 :
225 : SwWrtShell* pWrtShell;
226 : bool bHTMLMode;
227 :
228 : DECL_LINK(CheckBoxHdl, void *);
229 :
230 : SwTableOptionsTabPage( vcl::Window* pParent,
231 : const SfxItemSet& rSet );
232 : virtual ~SwTableOptionsTabPage();
233 :
234 : public:
235 :
236 : static SfxTabPage* Create( vcl::Window* pParent,
237 : const SfxItemSet* rAttrSet );
238 :
239 : virtual bool FillItemSet( SfxItemSet* rSet ) SAL_OVERRIDE;
240 : virtual void Reset( const SfxItemSet* rSet ) SAL_OVERRIDE;
241 :
242 0 : void SetWrtShell(SwWrtShell* pSh) {pWrtShell = pSh;}
243 : virtual void PageCreated( const SfxAllItemSet& aSet) SAL_OVERRIDE;
244 :
245 : };
246 :
247 : // TabPage for ShadowCrsr
248 : class SwShdwCrsrOptionsTabPage : public SfxTabPage
249 : {
250 : //nonprinting characters
251 : CheckBox* m_pParaCB;
252 : CheckBox* m_pSHyphCB;
253 : CheckBox* m_pSpacesCB;
254 : CheckBox* m_pHSpacesCB;
255 : CheckBox* m_pTabCB;
256 : CheckBox* m_pBreakCB;
257 : CheckBox* m_pCharHiddenCB;
258 : CheckBox* m_pFldHiddenCB;
259 : CheckBox* m_pFldHiddenParaCB;
260 :
261 : VclFrame* m_pDirectCursorFrame;
262 : CheckBox* m_pOnOffCB;
263 :
264 : RadioButton* m_pFillMarginRB;
265 : RadioButton* m_pFillIndentRB;
266 : RadioButton* m_pFillTabRB;
267 : RadioButton* m_pFillSpaceRB;
268 :
269 : VclFrame* m_pCursorProtFrame;
270 : CheckBox* m_pCrsrInProtCB;
271 :
272 : CheckBox* m_pMathBaselineAlignmentCB;
273 :
274 : SwWrtShell * m_pWrtShell;
275 :
276 : SwShdwCrsrOptionsTabPage( vcl::Window* pParent, const SfxItemSet& rSet );
277 : virtual ~SwShdwCrsrOptionsTabPage();
278 :
279 : public:
280 :
281 : static SfxTabPage* Create( vcl::Window* pParent, const SfxItemSet* rAttrSet );
282 :
283 : virtual bool FillItemSet( SfxItemSet* rSet ) SAL_OVERRIDE;
284 : virtual void Reset( const SfxItemSet* rSet ) SAL_OVERRIDE;
285 :
286 0 : void SetWrtShell( SwWrtShell * pSh ) { m_pWrtShell = pSh; }
287 : virtual void PageCreated( const SfxAllItemSet& aSet ) SAL_OVERRIDE;
288 : };
289 :
290 : // mark preview
291 : class SwMarkPreview : public vcl::Window
292 : {
293 : Size m_aInitialSize;
294 :
295 : Color m_aBgCol; // background
296 : Color m_aTransCol; // transparency
297 : Color m_aMarkCol; // marks
298 : Color m_aLineCol; // general lines
299 : Color m_aShadowCol; // shadow
300 : Color m_aTxtCol; // text
301 : Color m_aPrintAreaCol; // frame for print area
302 :
303 : Rectangle aPage;
304 : Rectangle aLeftPagePrtArea;
305 : Rectangle aRightPagePrtArea;
306 :
307 : sal_uInt16 nMarkPos;
308 :
309 : using OutputDevice::DrawRect;
310 : void DrawRect(const Rectangle &rRect, const Color &rFillColor, const Color &rLineColor);
311 :
312 : void Paint(const Rectangle&) SAL_OVERRIDE;
313 : void PaintPage(const Rectangle &rRect);
314 : void InitColors( void );
315 :
316 : protected:
317 : virtual void DataChanged( const DataChangedEvent& rDCEvt ) SAL_OVERRIDE;
318 :
319 : public:
320 : SwMarkPreview(vcl::Window* pParent, WinBits nWinBits);
321 : virtual ~SwMarkPreview();
322 :
323 0 : inline void SetColor(const Color& rCol) { m_aMarkCol = rCol; }
324 0 : inline void SetMarkPos(sal_uInt16 nPos) { nMarkPos = nPos; }
325 : virtual Size GetOptimalSize() const SAL_OVERRIDE;
326 : };
327 :
328 : // redlining options
329 : class SwRedlineOptionsTabPage : public SfxTabPage
330 : {
331 : ListBox* pInsertLB;
332 : ColorListBox* pInsertColorLB;
333 : SvxFontPrevWindow* pInsertedPreviewWN;
334 :
335 : ListBox* pDeletedLB;
336 : ColorListBox* pDeletedColorLB;
337 : SvxFontPrevWindow* pDeletedPreviewWN;
338 :
339 : ListBox* pChangedLB;
340 : ColorListBox* pChangedColorLB;
341 : SvxFontPrevWindow* pChangedPreviewWN;
342 :
343 : ListBox* pMarkPosLB;
344 : ColorListBox* pMarkColorLB;
345 : SwMarkPreview* pMarkPreviewWN;
346 :
347 : OUString sAuthor;
348 : OUString sNone;
349 :
350 : SwRedlineOptionsTabPage( vcl::Window* pParent, const SfxItemSet& rSet );
351 : virtual ~SwRedlineOptionsTabPage();
352 :
353 : DECL_LINK( AttribHdl, ListBox *pLB );
354 : DECL_LINK(ChangedMaskPrevHdl, void * = 0);
355 : DECL_LINK( ColorHdl, ColorListBox *pColorLB );
356 :
357 : void InitFontStyle(SvxFontPrevWindow& rExampleWin);
358 :
359 : public:
360 :
361 : static SfxTabPage* Create( vcl::Window* pParent, const SfxItemSet* rAttrSet );
362 :
363 : virtual bool FillItemSet( SfxItemSet* rSet ) SAL_OVERRIDE;
364 : virtual void Reset( const SfxItemSet* rSet ) SAL_OVERRIDE;
365 : };
366 :
367 : // TabPage test settings for SW
368 :
369 : #ifdef DBG_UTIL
370 :
371 : class SwTestTabPage : public SfxTabPage
372 : {
373 : public:
374 : SwTestTabPage( vcl::Window* pParent,
375 : const SfxItemSet& rSet );
376 :
377 : static SfxTabPage* Create( vcl::Window* pParent,
378 : const SfxItemSet* rAttrSet );
379 :
380 : virtual bool FillItemSet( SfxItemSet* rSet ) SAL_OVERRIDE;
381 : virtual void Reset( const SfxItemSet* rSet ) SAL_OVERRIDE;
382 :
383 : private:
384 : CheckBox* m_pTest1CBox;
385 : CheckBox* m_pTest2CBox;
386 : CheckBox* m_pTest3CBox;
387 : CheckBox* m_pTest4CBox;
388 : CheckBox* m_pTest5CBox;
389 : CheckBox* m_pTest6CBox;
390 : CheckBox* m_pTest7CBox;
391 : CheckBox* m_pTest8CBox;
392 : CheckBox* m_pTest9CBox;
393 : CheckBox* m_pTest10CBox;
394 :
395 : bool bAttrModified;
396 :
397 : void Init();
398 : DECL_LINK(AutoClickHdl, void *);
399 :
400 : };
401 : #endif // DBG_UTIL
402 :
403 : class SwCompareOptionsTabPage : public SfxTabPage
404 : {
405 : RadioButton* m_pAutoRB;
406 : RadioButton* m_pWordRB;
407 : RadioButton* m_pCharRB;
408 :
409 : CheckBox* m_pRsidCB;
410 : CheckBox* m_pIgnoreCB;
411 : NumericField* m_pLenNF;
412 :
413 : SwCompareOptionsTabPage( vcl::Window* pParent, const SfxItemSet& rSet );
414 : virtual ~SwCompareOptionsTabPage();
415 :
416 : DECL_LINK(ComparisonHdl, void *);
417 : DECL_LINK(IgnoreHdl, void *);
418 :
419 : public:
420 :
421 : static SfxTabPage* Create( vcl::Window* pParent, const SfxItemSet* rAttrSet );
422 :
423 : virtual bool FillItemSet( SfxItemSet* rSet ) SAL_OVERRIDE;
424 : virtual void Reset( const SfxItemSet* rSet ) SAL_OVERRIDE;
425 : };
426 :
427 : #endif
428 : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|