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 : VclPtr<CheckBox> m_pCrossCB;
45 :
46 : VclPtr<CheckBox> m_pHScrollBox;
47 : VclPtr<CheckBox> m_pVScrollBox;
48 : VclPtr<CheckBox> m_pAnyRulerCB;
49 : VclPtr<CheckBox> m_pHRulerCBox;
50 : VclPtr<ListBox> m_pHMetric;
51 : VclPtr<CheckBox> m_pVRulerCBox;
52 : VclPtr<CheckBox> m_pVRulerRightCBox;
53 : VclPtr<ListBox> m_pVMetric;
54 : VclPtr<CheckBox> m_pSmoothCBox;
55 :
56 : VclPtr<CheckBox> m_pGrfCB;
57 : VclPtr<CheckBox> m_pTableCB;
58 : VclPtr<CheckBox> m_pDrwCB;
59 : VclPtr<CheckBox> m_pFieldNameCB;
60 : VclPtr<CheckBox> m_pPostItCB;
61 :
62 : VclPtr<VclFrame> m_pSettingsFrame;
63 : VclPtr<FixedText> m_pSettingsLabel;
64 : VclPtr<FixedText> m_pMetricLabel;
65 : VclPtr<ListBox> m_pMetricLB;
66 :
67 : DECL_LINK(VertRulerHdl, CheckBox*);
68 : DECL_LINK(AnyRulerHdl, CheckBox*);
69 : public:
70 : SwContentOptPage( vcl::Window* pParent, const SfxItemSet& rSet);
71 : virtual ~SwContentOptPage();
72 :
73 : virtual void dispose() SAL_OVERRIDE;
74 :
75 : static VclPtr<SfxTabPage> Create(vcl::Window* pParent, const SfxItemSet* rAttrSet);
76 :
77 : virtual bool FillItemSet(SfxItemSet* rSet) SAL_OVERRIDE;
78 : virtual void Reset(const SfxItemSet* rSet) SAL_OVERRIDE;
79 : };
80 :
81 : // TabPage printer settings additions
82 : class SwAddPrinterTabPage : public SfxTabPage
83 : {
84 : VclPtr<CheckBox> m_pGrfCB;
85 : VclPtr<CheckBox> m_pCtrlFieldCB;
86 : VclPtr<CheckBox> m_pBackgroundCB;
87 : VclPtr<CheckBox> m_pBlackFontCB;
88 : VclPtr<CheckBox> m_pPrintHiddenTextCB;
89 : VclPtr<CheckBox> m_pPrintTextPlaceholderCB;
90 :
91 : VclPtr<VclFrame> m_pPagesFrame;
92 : VclPtr<CheckBox> m_pLeftPageCB;
93 : VclPtr<CheckBox> m_pRightPageCB;
94 : VclPtr<CheckBox> m_pProspectCB;
95 : VclPtr<CheckBox> m_pProspectCB_RTL;
96 :
97 : VclPtr<VclFrame> m_pCommentsFrame;
98 : VclPtr<RadioButton> m_pNoRB;
99 : VclPtr<RadioButton> m_pOnlyRB;
100 : VclPtr<RadioButton> m_pEndRB;
101 : VclPtr<RadioButton> m_pEndPageRB;
102 : VclPtr<RadioButton> m_pInMarginsRB;
103 :
104 : VclPtr<CheckBox> m_pPrintEmptyPagesCB;
105 : VclPtr<CheckBox> m_pPaperFromSetupCB;
106 : VclPtr<ListBox> m_pFaxLB;
107 :
108 : OUString sNone;
109 :
110 : bool bAttrModified;
111 : bool bPreview;
112 :
113 : DECL_LINK(AutoClickHdl, void *);
114 : DECL_LINK(SelectHdl, void *);
115 :
116 : public:
117 : SwAddPrinterTabPage(vcl::Window* pParent, const SfxItemSet& rSet);
118 : virtual ~SwAddPrinterTabPage();
119 : virtual void dispose() SAL_OVERRIDE;
120 :
121 : static VclPtr<SfxTabPage> Create(vcl::Window* pParent, const SfxItemSet* rAttrSet);
122 :
123 : virtual bool FillItemSet(SfxItemSet* rSet) SAL_OVERRIDE;
124 : virtual void Reset(const SfxItemSet* rSet) SAL_OVERRIDE;
125 : void SetFax(const std::vector<OUString>& );
126 : void SelectFax(const OUString& rString);
127 : void SetPreview(bool bPrev);
128 : virtual void PageCreated(const SfxAllItemSet& aSet) SAL_OVERRIDE;
129 : };
130 :
131 : class SwStdFontTabPage : public SfxTabPage
132 : {
133 : friend class VclPtr<SwStdFontTabPage>;
134 : VclPtr<FixedText> pLabelFT;
135 :
136 : VclPtr<ComboBox> pStandardBox;
137 : VclPtr<FontSizeBox> pStandardHeightLB;
138 : VclPtr<ComboBox> pTitleBox ;
139 : VclPtr<FontSizeBox> pTitleHeightLB;
140 : VclPtr<ComboBox> pListBox ;
141 : VclPtr<FontSizeBox> pListHeightLB;
142 : VclPtr<ComboBox> pLabelBox ;
143 : VclPtr<FontSizeBox> pLabelHeightLB;
144 : VclPtr<ComboBox> pIdxBox ;
145 : VclPtr<FontSizeBox> pIndexHeightLB;
146 : VclPtr<CheckBox> pDocOnlyCB ;
147 : VclPtr<PushButton> pStandardPB;
148 :
149 : OUString sShellStd;
150 : OUString sShellTitle;
151 : OUString sShellList;
152 : OUString sShellLabel;
153 : OUString sShellIndex;
154 :
155 : VclPtr<SfxPrinter> pPrt;
156 : FontList* pFontList;
157 : SwStdFontConfig* pFontConfig;
158 : SwWrtShell* pWrtShell;
159 : LanguageType eLanguage;
160 :
161 : // only defaults were there? they were signed with the boxes
162 : bool bListDefault :1;
163 : bool bSetListDefault :1;
164 : bool bLabelDefault :1;
165 : bool bSetLabelDefault :1;
166 : bool bIdxDefault :1;
167 : bool bSetIdxDefault :1;
168 : bool bDeletePrinter :1;
169 :
170 : bool bListHeightDefault :1;
171 : bool bSetListHeightDefault :1;
172 : bool bLabelHeightDefault :1;
173 : bool bSetLabelHeightDefault :1;
174 : bool bIndexHeightDefault :1;
175 : bool bSetIndexHeightDefault :1;
176 :
177 : sal_uInt8 nFontGroup; //fontcfg.hxx: FONT_GROUP_[STANDARD|CJK|CTL]
178 :
179 : OUString sScriptWestern;
180 : OUString sScriptAsian;
181 : OUString sScriptComplex;
182 :
183 : DECL_LINK(StandardHdl, void *);
184 : DECL_LINK(ModifyHdl, ComboBox * );
185 : DECL_LINK(ModifyHeightHdl, FontSizeBox * );
186 : DECL_LINK(LoseFocusHdl, ComboBox * );
187 :
188 : SwStdFontTabPage(vcl::Window* pParent, const SfxItemSet& rSet);
189 : virtual ~SwStdFontTabPage();
190 : virtual void dispose() SAL_OVERRIDE;
191 :
192 : public:
193 : static VclPtr<SfxTabPage> Create(vcl::Window* pParent, const SfxItemSet* rAttrSet);
194 :
195 : virtual bool FillItemSet(SfxItemSet* rSet) SAL_OVERRIDE;
196 : virtual void Reset(const SfxItemSet* rSet) SAL_OVERRIDE;
197 :
198 0 : void SetFontMode(sal_uInt8 nGroup)
199 : {
200 0 : nFontGroup = nGroup;
201 0 : }
202 : virtual void PageCreated(const SfxAllItemSet& aSet) SAL_OVERRIDE;
203 : };
204 :
205 : class SwTableOptionsTabPage : public SfxTabPage
206 : {
207 : VclPtr<CheckBox> pHeaderCB;
208 : VclPtr<CheckBox> pRepeatHeaderCB;
209 : VclPtr<CheckBox> pDontSplitCB;
210 : VclPtr<CheckBox> pBorderCB;
211 :
212 : VclPtr<CheckBox> pNumFormattingCB;
213 : VclPtr<CheckBox> pNumFormatFormattingCB;
214 : VclPtr<CheckBox> pNumAlignmentCB;
215 :
216 : VclPtr<MetricField> pRowMoveMF;
217 : VclPtr<MetricField> pColMoveMF;
218 :
219 : VclPtr<MetricField> pRowInsertMF;
220 : VclPtr<MetricField> pColInsertMF;
221 :
222 : VclPtr<RadioButton> pFixRB;
223 : VclPtr<RadioButton> pFixPropRB;
224 : VclPtr<RadioButton> pVarRB;
225 :
226 : SwWrtShell* pWrtShell;
227 : bool bHTMLMode;
228 :
229 : DECL_LINK(CheckBoxHdl, void *);
230 :
231 : public:
232 : SwTableOptionsTabPage(vcl::Window* pParent, const SfxItemSet& rSet);
233 : virtual ~SwTableOptionsTabPage();
234 : virtual void dispose() SAL_OVERRIDE;
235 :
236 : static VclPtr<SfxTabPage> Create(vcl::Window* pParent, const SfxItemSet* rAttrSet);
237 :
238 : virtual bool FillItemSet(SfxItemSet* rSet) SAL_OVERRIDE;
239 : virtual void Reset(const SfxItemSet* rSet) SAL_OVERRIDE;
240 :
241 0 : void SetWrtShell(SwWrtShell* pSh) { pWrtShell = pSh; }
242 : virtual void PageCreated( const SfxAllItemSet& aSet) SAL_OVERRIDE;
243 :
244 : };
245 :
246 : // TabPage for ShadowCrsr
247 : class SwShdwCrsrOptionsTabPage : public SfxTabPage
248 : {
249 : //nonprinting characters
250 : VclPtr<CheckBox> m_pParaCB;
251 : VclPtr<CheckBox> m_pSHyphCB;
252 : VclPtr<CheckBox> m_pSpacesCB;
253 : VclPtr<CheckBox> m_pHSpacesCB;
254 : VclPtr<CheckBox> m_pTabCB;
255 : VclPtr<CheckBox> m_pBreakCB;
256 : VclPtr<CheckBox> m_pCharHiddenCB;
257 : VclPtr<CheckBox> m_pFieldHiddenCB;
258 : VclPtr<CheckBox> m_pFieldHiddenParaCB;
259 :
260 : VclPtr<VclFrame> m_pDirectCursorFrame;
261 : VclPtr<CheckBox> m_pOnOffCB;
262 :
263 : VclPtr<RadioButton> m_pFillMarginRB;
264 : VclPtr<RadioButton> m_pFillIndentRB;
265 : VclPtr<RadioButton> m_pFillTabRB;
266 : VclPtr<RadioButton> m_pFillSpaceRB;
267 :
268 : VclPtr<VclFrame> m_pCursorProtFrame;
269 : VclPtr<CheckBox> m_pCrsrInProtCB;
270 : VclPtr<CheckBox> m_pIgnoreProtCB;
271 :
272 : VclPtr<CheckBox> m_pMathBaselineAlignmentCB;
273 :
274 : SwWrtShell * m_pWrtShell;
275 :
276 : public:
277 : SwShdwCrsrOptionsTabPage( vcl::Window* pParent, const SfxItemSet& rSet );
278 : virtual ~SwShdwCrsrOptionsTabPage();
279 : virtual void dispose() SAL_OVERRIDE;
280 :
281 : static VclPtr<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)
287 : {
288 0 : m_pWrtShell = pSh;
289 0 : }
290 : virtual void PageCreated( const SfxAllItemSet& aSet ) SAL_OVERRIDE;
291 : };
292 :
293 : // mark preview
294 : class SwMarkPreview : public vcl::Window
295 : {
296 : Size m_aInitialSize;
297 :
298 : Color m_aBgCol; // background
299 : Color m_aTransCol; // transparency
300 : Color m_aMarkCol; // marks
301 : Color m_aLineCol; // general lines
302 : Color m_aShadowCol; // shadow
303 : Color m_aTextCol; // text
304 : Color m_aPrintAreaCol; // frame for print area
305 :
306 : Rectangle aPage;
307 : Rectangle aLeftPagePrtArea;
308 : Rectangle aRightPagePrtArea;
309 :
310 : sal_uInt16 nMarkPos;
311 :
312 : void Paint(vcl::RenderContext& rRenderContext, const Rectangle&) SAL_OVERRIDE;
313 : void PaintPage(vcl::RenderContext& rRenderContext, const Rectangle &rRect);
314 : void InitColors();
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 : VclPtr<ListBox> pInsertLB;
332 : VclPtr<ColorListBox> pInsertColorLB;
333 : VclPtr<SvxFontPrevWindow> pInsertedPreviewWN;
334 :
335 : VclPtr<ListBox> pDeletedLB;
336 : VclPtr<ColorListBox> pDeletedColorLB;
337 : VclPtr<SvxFontPrevWindow> pDeletedPreviewWN;
338 :
339 : VclPtr<ListBox> pChangedLB;
340 : VclPtr<ColorListBox> pChangedColorLB;
341 : VclPtr<SvxFontPrevWindow> pChangedPreviewWN;
342 :
343 : VclPtr<ListBox> pMarkPosLB;
344 : VclPtr<ColorListBox> pMarkColorLB;
345 : VclPtr<SwMarkPreview> pMarkPreviewWN;
346 :
347 : OUString sAuthor;
348 : OUString sNone;
349 :
350 : DECL_LINK(AttribHdl, ListBox* pLB);
351 : DECL_LINK(ChangedMaskPrevHdl, void* = 0);
352 : DECL_LINK(ColorHdl, ColorListBox* pColorLB);
353 :
354 : static void InitFontStyle(SvxFontPrevWindow& rExampleWin);
355 :
356 : public:
357 : SwRedlineOptionsTabPage(vcl::Window* pParent, const SfxItemSet& rSet);
358 : virtual ~SwRedlineOptionsTabPage();
359 : virtual void dispose() SAL_OVERRIDE;
360 :
361 : static VclPtr<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, const SfxItemSet& rSet);
375 : virtual ~SwTestTabPage();
376 : virtual void dispose() SAL_OVERRIDE;
377 :
378 : static VclPtr<SfxTabPage> Create(vcl::Window* pParent, 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 : VclPtr<CheckBox> m_pTest1CBox;
385 : VclPtr<CheckBox> m_pTest2CBox;
386 : VclPtr<CheckBox> m_pTest3CBox;
387 : VclPtr<CheckBox> m_pTest4CBox;
388 : VclPtr<CheckBox> m_pTest5CBox;
389 : VclPtr<CheckBox> m_pTest6CBox;
390 : VclPtr<CheckBox> m_pTest7CBox;
391 : VclPtr<CheckBox> m_pTest8CBox;
392 : VclPtr<CheckBox> m_pTest9CBox;
393 : VclPtr<CheckBox> m_pTest10CBox;
394 :
395 : bool bAttrModified;
396 :
397 : void Init();
398 : DECL_LINK(AutoClickHdl, void*);
399 : };
400 : #endif // DBG_UTIL
401 :
402 : class SwCompareOptionsTabPage : public SfxTabPage
403 : {
404 : VclPtr<RadioButton> m_pAutoRB;
405 : VclPtr<RadioButton> m_pWordRB;
406 : VclPtr<RadioButton> m_pCharRB;
407 :
408 : VclPtr<CheckBox> m_pRsidCB;
409 : VclPtr<CheckBox> m_pIgnoreCB;
410 : VclPtr<NumericField> m_pLenNF;
411 : VclPtr<CheckBox> m_pStoreRsidCB;
412 :
413 : DECL_LINK(ComparisonHdl, void *);
414 : DECL_LINK(IgnoreHdl, void *);
415 :
416 : public:
417 : SwCompareOptionsTabPage( vcl::Window* pParent, const SfxItemSet& rSet );
418 : virtual ~SwCompareOptionsTabPage();
419 : virtual void dispose() SAL_OVERRIDE;
420 :
421 : static VclPtr<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: */
|