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 :
20 : #include <config_folders.h>
21 :
22 : #include <officecfg/Office/Common.hxx>
23 :
24 : #ifdef WNT
25 : #include "win/svsys.h"
26 : #endif
27 :
28 : #include "comphelper/processfactory.hxx"
29 : #include <rtl/bootstrap.hxx>
30 : #include "tools/debug.hxx"
31 :
32 : #include "i18nlangtag/mslangid.hxx"
33 : #include "i18nlangtag/languagetag.hxx"
34 :
35 : #include <vcl/graphicfilter.hxx>
36 : #include <vcl/IconThemeScanner.hxx>
37 : #include <vcl/IconThemeSelector.hxx>
38 : #include <vcl/IconThemeInfo.hxx>
39 : #include <vcl/svapp.hxx>
40 : #include <vcl/event.hxx>
41 : #include <vcl/settings.hxx>
42 : #include <vcl/i18nhelp.hxx>
43 : #include <vcl/configsettings.hxx>
44 : #include <vcl/gradient.hxx>
45 : #include <vcl/outdev.hxx>
46 :
47 : #include "unotools/fontcfg.hxx"
48 : #include "unotools/localedatawrapper.hxx"
49 : #include "unotools/collatorwrapper.hxx"
50 : #include "unotools/confignode.hxx"
51 : #include "unotools/syslocaleoptions.hxx"
52 :
53 : using namespace ::com::sun::star;
54 :
55 : #include "svdata.hxx"
56 : #include "impimagetree.hxx"
57 :
58 : #include <boost/make_shared.hpp>
59 :
60 : struct ImplMouseData
61 : {
62 : ImplMouseData();
63 : ImplMouseData( const ImplMouseData& rData );
64 :
65 : sal_uLong mnOptions;
66 : sal_uLong mnDoubleClkTime;
67 : long mnDoubleClkWidth;
68 : long mnDoubleClkHeight;
69 : long mnStartDragWidth;
70 : long mnStartDragHeight;
71 : sal_uInt16 mnStartDragCode;
72 : sal_uInt16 mnContextMenuCode;
73 : sal_uInt16 mnContextMenuClicks;
74 : sal_uLong mnScrollRepeat;
75 : sal_uLong mnButtonStartRepeat;
76 : sal_uLong mnButtonRepeat;
77 : sal_uLong mnActionDelay;
78 : sal_uLong mnMenuDelay;
79 : sal_uLong mnFollow;
80 : sal_uInt16 mnMiddleButtonAction;
81 : sal_uInt16 mnWheelBehavior;
82 : };
83 :
84 80958 : struct ImplStyleData
85 : {
86 : ImplStyleData();
87 : ImplStyleData( const ImplStyleData& rData );
88 :
89 : void SetStandardStyles();
90 :
91 : Color maActiveBorderColor;
92 : Color maActiveColor;
93 : Color maActiveColor2;
94 : Color maActiveTextColor;
95 : Color maRowColor;
96 : Color maAlternatingRowColor;
97 : Color maButtonTextColor;
98 : Color maButtonRolloverTextColor;
99 : Color maCheckedColor;
100 : Color maDarkShadowColor;
101 : Color maDeactiveBorderColor;
102 : Color maDeactiveColor;
103 : Color maDeactiveColor2;
104 : Color maDeactiveTextColor;
105 : Color maDialogColor;
106 : Color maDialogTextColor;
107 : Color maDisableColor;
108 : Color maFaceColor;
109 : Color maFieldColor;
110 : Color maFieldTextColor;
111 : Color maFieldRolloverTextColor;
112 : Color maFontColor;
113 : Color maGroupTextColor;
114 : Color maHelpColor;
115 : Color maHelpTextColor;
116 : Color maHighlightColor;
117 : Color maHighlightLinkColor;
118 : Color maHighlightTextColor;
119 : Color maInfoTextColor;
120 : Color maLabelTextColor;
121 : Color maLightBorderColor;
122 : Color maLightColor;
123 : Color maLinkColor;
124 : Color maMenuBarColor;
125 : Color maMenuBarRolloverColor;
126 : Color maMenuBorderColor;
127 : Color maMenuColor;
128 : Color maMenuHighlightColor;
129 : Color maMenuHighlightTextColor;
130 : Color maMenuTextColor;
131 : Color maMenuBarTextColor;
132 : Color maMenuBarRolloverTextColor;
133 : Color maMonoColor;
134 : Color maRadioCheckTextColor;
135 : Color maShadowColor;
136 : Color maVisitedLinkColor;
137 : Color maWindowColor;
138 : Color maWindowTextColor;
139 : Color maWorkspaceColor;
140 : Color maActiveTabColor;
141 : Color maInactiveTabColor;
142 : vcl::Font maAppFont;
143 : vcl::Font maHelpFont;
144 : vcl::Font maTitleFont;
145 : vcl::Font maFloatTitleFont;
146 : vcl::Font maMenuFont;
147 : vcl::Font maToolFont;
148 : vcl::Font maLabelFont;
149 : vcl::Font maInfoFont;
150 : vcl::Font maRadioCheckFont;
151 : vcl::Font maPushButtonFont;
152 : vcl::Font maFieldFont;
153 : vcl::Font maIconFont;
154 : vcl::Font maGroupFont;
155 : long mnBorderSize;
156 : long mnTitleHeight;
157 : long mnFloatTitleHeight;
158 : long mnTearOffTitleHeight;
159 : long mnScrollBarSize;
160 : long mnSplitSize;
161 : long mnSpinSize;
162 : long mnCursorSize;
163 : long mnAntialiasedMin;
164 : sal_uLong mnCursorBlinkTime;
165 : sal_uLong mnDragFullOptions;
166 : sal_uLong mnSelectionOptions;
167 : sal_uLong mnDisplayOptions;
168 : sal_uLong mnToolbarIconSize;
169 : bool mnUseFlatMenus;
170 : sal_uLong mnOptions;
171 : sal_uInt16 mnScreenZoom;
172 : sal_uInt16 mnScreenFontZoom;
173 : bool mbHighContrast;
174 : bool mbUseSystemUIFonts;
175 : bool mbAutoMnemonic;
176 : TriState meUseImagesInMenus;
177 : bool mnUseFlatBorders;
178 : bool mbPreferredUseImagesInMenus;
179 : long mnMinThumbSize;
180 : boost::shared_ptr<vcl::IconThemeScanner>
181 : mIconThemeScanner;
182 : boost::shared_ptr<vcl::IconThemeSelector>
183 : mIconThemeSelector;
184 :
185 : rtl::OUString mIconTheme;
186 : bool mbSkipDisabledInMenus;
187 : bool mbHideDisabledMenuItems;
188 : bool mbAcceleratorsInContextMenus;
189 : //mbPrimaryButtonWarpsSlider == true for "jump to here" behavior for primary button, otherwise
190 : //primary means scroll by single page. Secondary button takes the alternative behaviour
191 : bool mbPrimaryButtonWarpsSlider;
192 : DialogStyle maDialogStyle;
193 : FrameStyle maFrameStyle;
194 : const void* mpFontOptions;
195 :
196 : sal_uInt16 mnEdgeBlending;
197 : Color maEdgeBlendingTopLeftColor;
198 : Color maEdgeBlendingBottomRightColor;
199 : sal_uInt16 mnListBoxMaximumLineCount;
200 : sal_uInt16 mnColorValueSetColumnCount;
201 : sal_uInt16 mnColorValueSetMaximumRowCount;
202 : Size maListBoxPreviewDefaultLogicSize;
203 : Size maListBoxPreviewDefaultPixelSize;
204 : sal_uInt16 mnListBoxPreviewDefaultLineWidth;
205 : bool mbPreviewUsesCheckeredBackground;
206 :
207 : OUString maPersonaHeaderFooter; ///< Cache the settings to detect changes.
208 :
209 : BitmapEx maPersonaHeaderBitmap; ///< Cache the header bitmap.
210 : BitmapEx maPersonaFooterBitmap; ///< Cache the footer bitmap.
211 : boost::optional<Color> maPersonaMenuBarTextColor; ///< Cache the menubar color.
212 : };
213 :
214 : struct ImplMiscData
215 : {
216 : ImplMiscData();
217 : ImplMiscData( const ImplMiscData& rData );
218 : TriState mnEnableATT;
219 : bool mbEnableLocalizedDecimalSep;
220 : TriState mnDisablePrinting;
221 : bool mbPseudoHeadless;
222 : };
223 :
224 : struct ImplHelpData
225 : {
226 : ImplHelpData();
227 : ImplHelpData( const ImplHelpData& rData );
228 :
229 : sal_uLong mnTipDelay;
230 : sal_uLong mnTipTimeout;
231 : sal_uLong mnBalloonDelay;
232 : };
233 :
234 : struct ImplAllSettingsData
235 : {
236 : ImplAllSettingsData();
237 : ImplAllSettingsData( const ImplAllSettingsData& rData );
238 : ~ImplAllSettingsData();
239 :
240 : MouseSettings maMouseSettings;
241 : StyleSettings maStyleSettings;
242 : MiscSettings maMiscSettings;
243 : HelpSettings maHelpSettings;
244 : LanguageTag maLocale;
245 : sal_uLong mnWindowUpdate;
246 : LanguageTag maUILocale;
247 : LocaleDataWrapper* mpLocaleDataWrapper;
248 : LocaleDataWrapper* mpUILocaleDataWrapper;
249 : vcl::I18nHelper* mpI18nHelper;
250 : vcl::I18nHelper* mpUII18nHelper;
251 : SvtSysLocale maSysLocale;
252 : };
253 :
254 677 : ImplMouseData::ImplMouseData()
255 : {
256 677 : mnOptions = 0;
257 677 : mnDoubleClkTime = 500;
258 677 : mnDoubleClkWidth = 2;
259 677 : mnDoubleClkHeight = 2;
260 677 : mnStartDragWidth = 2;
261 677 : mnStartDragHeight = 2;
262 677 : mnStartDragCode = MOUSE_LEFT;
263 677 : mnContextMenuCode = MOUSE_RIGHT;
264 677 : mnContextMenuClicks = 1;
265 677 : mnMiddleButtonAction = MOUSE_MIDDLE_AUTOSCROLL;
266 677 : mnScrollRepeat = 100;
267 677 : mnButtonStartRepeat = 370;
268 677 : mnButtonRepeat = 90;
269 677 : mnActionDelay = 250;
270 677 : mnMenuDelay = 150;
271 677 : mnFollow = MOUSE_FOLLOW_MENU | MOUSE_FOLLOW_DDLIST;
272 677 : mnWheelBehavior = MOUSE_WHEEL_ALWAYS;
273 677 : }
274 :
275 5877 : ImplMouseData::ImplMouseData( const ImplMouseData& rData )
276 : {
277 5877 : mnOptions = rData.mnOptions;
278 5877 : mnDoubleClkTime = rData.mnDoubleClkTime;
279 5877 : mnDoubleClkWidth = rData.mnDoubleClkWidth;
280 5877 : mnDoubleClkHeight = rData.mnDoubleClkHeight;
281 5877 : mnStartDragWidth = rData.mnStartDragWidth;
282 5877 : mnStartDragHeight = rData.mnStartDragHeight;
283 5877 : mnStartDragCode = rData.mnStartDragCode;
284 5877 : mnContextMenuCode = rData.mnContextMenuCode;
285 5877 : mnContextMenuClicks = rData.mnContextMenuClicks;
286 5877 : mnMiddleButtonAction = rData.mnMiddleButtonAction;
287 5877 : mnScrollRepeat = rData.mnScrollRepeat;
288 5877 : mnButtonStartRepeat = rData.mnButtonStartRepeat;
289 5877 : mnButtonRepeat = rData.mnButtonRepeat;
290 5877 : mnActionDelay = rData.mnActionDelay;
291 5877 : mnMenuDelay = rData.mnMenuDelay;
292 5877 : mnFollow = rData.mnFollow;
293 5877 : mnWheelBehavior = rData.mnWheelBehavior;
294 5877 : }
295 :
296 : void
297 160 : MouseSettings::SetOptions(sal_uLong nOptions)
298 : {
299 160 : CopyData();
300 160 : mpData->mnOptions = nOptions;
301 160 : }
302 :
303 : sal_uLong
304 166 : MouseSettings::GetOptions() const
305 : {
306 166 : return mpData->mnOptions;
307 : }
308 :
309 : void
310 0 : MouseSettings::SetDoubleClickTime( sal_uLong nDoubleClkTime )
311 : {
312 0 : CopyData();
313 0 : mpData->mnDoubleClkTime = nDoubleClkTime;
314 0 : }
315 :
316 : sal_uLong
317 1430 : MouseSettings::GetDoubleClickTime() const
318 : {
319 1430 : return mpData->mnDoubleClkTime;
320 : }
321 :
322 : void
323 0 : MouseSettings::SetDoubleClickWidth( long nDoubleClkWidth )
324 : {
325 0 : CopyData();
326 0 : mpData->mnDoubleClkWidth = nDoubleClkWidth;
327 0 : }
328 :
329 : long
330 0 : MouseSettings::GetDoubleClickWidth() const
331 : {
332 0 : return mpData->mnDoubleClkWidth;
333 : }
334 :
335 : void
336 0 : MouseSettings::SetDoubleClickHeight( long nDoubleClkHeight )
337 : {
338 0 : CopyData();
339 0 : mpData->mnDoubleClkHeight = nDoubleClkHeight;
340 0 : }
341 :
342 : long
343 0 : MouseSettings::GetDoubleClickHeight() const
344 : {
345 0 : return mpData->mnDoubleClkHeight;
346 : }
347 :
348 : void
349 0 : MouseSettings::SetStartDragWidth( long nDragWidth )
350 : {
351 0 : CopyData();
352 0 : mpData->mnStartDragWidth = nDragWidth;
353 0 : }
354 :
355 : long
356 0 : MouseSettings::GetStartDragWidth() const
357 : {
358 0 : return mpData->mnStartDragWidth;
359 : }
360 :
361 : void
362 0 : MouseSettings::SetStartDragHeight( long nDragHeight )
363 : {
364 0 : CopyData();
365 0 : mpData->mnStartDragHeight = nDragHeight;
366 0 : }
367 :
368 : long
369 0 : MouseSettings::GetStartDragHeight() const
370 : {
371 0 : return mpData->mnStartDragHeight;
372 : }
373 :
374 : sal_uInt16
375 0 : MouseSettings::GetStartDragCode() const
376 : {
377 0 : return mpData->mnStartDragCode;
378 : }
379 :
380 : sal_uInt16
381 0 : MouseSettings::GetContextMenuCode() const
382 : {
383 0 : return mpData->mnContextMenuCode;
384 : }
385 :
386 : sal_uInt16
387 0 : MouseSettings::GetContextMenuClicks() const
388 : {
389 0 : return mpData->mnContextMenuClicks;
390 : }
391 :
392 : sal_uLong
393 0 : MouseSettings::GetScrollRepeat() const
394 : {
395 0 : return mpData->mnScrollRepeat;
396 : }
397 :
398 : sal_uLong
399 4002 : MouseSettings::GetButtonStartRepeat() const
400 : {
401 4002 : return mpData->mnButtonStartRepeat;
402 : }
403 :
404 : void
405 453 : MouseSettings::SetButtonRepeat( sal_uLong nRepeat )
406 : {
407 453 : CopyData();
408 453 : mpData->mnButtonRepeat = nRepeat;
409 453 : }
410 :
411 : sal_uLong
412 41 : MouseSettings::GetButtonRepeat() const
413 : {
414 41 : return mpData->mnButtonRepeat;
415 : }
416 :
417 : sal_uLong
418 0 : MouseSettings::GetActionDelay() const
419 : {
420 0 : return mpData->mnActionDelay;
421 : }
422 :
423 : void
424 32 : MouseSettings::SetMenuDelay( sal_uLong nDelay )
425 : {
426 32 : CopyData();
427 32 : mpData->mnMenuDelay = nDelay;
428 32 : }
429 :
430 : sal_uLong
431 48 : MouseSettings::GetMenuDelay() const
432 : {
433 48 : return mpData->mnMenuDelay;
434 : }
435 :
436 : void
437 320 : MouseSettings::SetFollow( sal_uLong nFollow )
438 : {
439 320 : CopyData();
440 320 : mpData->mnFollow = nFollow;
441 320 : }
442 :
443 : sal_uLong
444 320 : MouseSettings::GetFollow() const
445 : {
446 320 : return mpData->mnFollow;
447 : }
448 :
449 : void
450 160 : MouseSettings::SetMiddleButtonAction( sal_uInt16 nAction )
451 : {
452 160 : CopyData();
453 160 : mpData->mnMiddleButtonAction = nAction;
454 160 : }
455 :
456 : sal_uInt16
457 0 : MouseSettings::GetMiddleButtonAction() const
458 : {
459 0 : return mpData->mnMiddleButtonAction;
460 : }
461 :
462 : void
463 5072 : MouseSettings::SetWheelBehavior( sal_uInt16 nBehavior )
464 : {
465 5072 : CopyData();
466 5072 : mpData->mnWheelBehavior = nBehavior;
467 5072 : }
468 :
469 : sal_uInt16
470 4676 : MouseSettings::GetWheelBehavior() const
471 : {
472 4676 : return mpData->mnWheelBehavior;
473 : }
474 :
475 : bool
476 88953 : MouseSettings::operator !=( const MouseSettings& rSet ) const
477 : {
478 88953 : return !(*this == rSet);
479 : }
480 :
481 677 : MouseSettings::MouseSettings()
482 677 : : mpData(boost::make_shared<ImplMouseData>())
483 : {
484 677 : }
485 :
486 91227 : MouseSettings::~MouseSettings()
487 : {
488 91227 : }
489 :
490 6197 : void MouseSettings::CopyData()
491 : {
492 : // copy if other references exist
493 6197 : if ( ! mpData.unique() ) {
494 5877 : mpData = boost::make_shared<ImplMouseData>(*mpData);
495 : }
496 6197 : }
497 :
498 88953 : bool MouseSettings::operator ==( const MouseSettings& rSet ) const
499 : {
500 88953 : if ( mpData == rSet.mpData )
501 85141 : return true;
502 :
503 11436 : if ( (mpData->mnOptions == rSet.mpData->mnOptions) &&
504 7624 : (mpData->mnDoubleClkTime == rSet.mpData->mnDoubleClkTime) &&
505 7624 : (mpData->mnDoubleClkWidth == rSet.mpData->mnDoubleClkWidth) &&
506 7624 : (mpData->mnDoubleClkHeight == rSet.mpData->mnDoubleClkHeight) &&
507 7624 : (mpData->mnStartDragWidth == rSet.mpData->mnStartDragWidth) &&
508 7624 : (mpData->mnStartDragHeight == rSet.mpData->mnStartDragHeight) &&
509 7624 : (mpData->mnStartDragCode == rSet.mpData->mnStartDragCode) &&
510 7624 : (mpData->mnContextMenuCode == rSet.mpData->mnContextMenuCode) &&
511 7624 : (mpData->mnContextMenuClicks == rSet.mpData->mnContextMenuClicks) &&
512 7144 : (mpData->mnMiddleButtonAction == rSet.mpData->mnMiddleButtonAction) &&
513 6664 : (mpData->mnScrollRepeat == rSet.mpData->mnScrollRepeat) &&
514 6664 : (mpData->mnButtonStartRepeat == rSet.mpData->mnButtonStartRepeat) &&
515 5174 : (mpData->mnButtonRepeat == rSet.mpData->mnButtonRepeat) &&
516 3684 : (mpData->mnActionDelay == rSet.mpData->mnActionDelay) &&
517 3652 : (mpData->mnMenuDelay == rSet.mpData->mnMenuDelay) &&
518 7432 : (mpData->mnFollow == rSet.mpData->mnFollow) &&
519 1810 : (mpData->mnWheelBehavior == rSet.mpData->mnWheelBehavior ) )
520 780 : return true;
521 : else
522 3032 : return false;
523 : }
524 :
525 677 : ImplStyleData::ImplStyleData() :
526 : mIconThemeScanner(vcl::IconThemeScanner::Create(vcl::IconThemeScanner::GetStandardIconThemePath())),
527 0 : mIconThemeSelector(new vcl::IconThemeSelector()),
528 : maPersonaHeaderFooter(),
529 : maPersonaHeaderBitmap(),
530 : maPersonaFooterBitmap(),
531 677 : maPersonaMenuBarTextColor()
532 : {
533 677 : mnScrollBarSize = 16;
534 677 : mnMinThumbSize = 16;
535 677 : mnSplitSize = 3;
536 677 : mnSpinSize = 16;
537 677 : mnAntialiasedMin = 0;
538 677 : mnCursorSize = 2;
539 677 : mnCursorBlinkTime = STYLE_CURSOR_NOBLINKTIME;
540 677 : mnScreenZoom = 100;
541 677 : mnScreenFontZoom = 100;
542 677 : mnDragFullOptions = DRAGFULL_OPTION_ALL;
543 677 : mnSelectionOptions = 0;
544 677 : mnDisplayOptions = 0;
545 677 : mnOptions = 0;
546 677 : mbAutoMnemonic = true;
547 677 : mnToolbarIconSize = STYLE_TOOLBAR_ICONSIZE_UNKNOWN;
548 677 : meUseImagesInMenus = TRISTATE_INDET;
549 677 : mpFontOptions = NULL;
550 677 : mnEdgeBlending = 35;
551 677 : maEdgeBlendingTopLeftColor = RGB_COLORDATA(0xC0, 0xC0, 0xC0);
552 677 : maEdgeBlendingBottomRightColor = RGB_COLORDATA(0x40, 0x40, 0x40);
553 677 : mnListBoxMaximumLineCount = 25;
554 677 : mnColorValueSetColumnCount = 12;
555 677 : mnColorValueSetMaximumRowCount = 20;
556 677 : maListBoxPreviewDefaultLogicSize = Size(15, 7);
557 677 : maListBoxPreviewDefaultPixelSize = Size(0, 0); // on-demand calculated in GetListBoxPreviewDefaultPixelSize()
558 677 : mnListBoxPreviewDefaultLineWidth = 1;
559 677 : mbPreviewUsesCheckeredBackground = true;
560 :
561 677 : SetStandardStyles();
562 677 : }
563 :
564 80364 : ImplStyleData::ImplStyleData( const ImplStyleData& rData ) :
565 : maActiveBorderColor( rData.maActiveBorderColor ),
566 : maActiveColor( rData.maActiveColor ),
567 : maActiveColor2( rData.maActiveColor2 ),
568 : maActiveTextColor( rData.maActiveTextColor ),
569 : maRowColor( rData.maRowColor ),
570 : maAlternatingRowColor( rData.maAlternatingRowColor ),
571 : maButtonTextColor( rData.maButtonTextColor ),
572 : maButtonRolloverTextColor( rData.maButtonRolloverTextColor ),
573 : maCheckedColor( rData.maCheckedColor ),
574 : maDarkShadowColor( rData.maDarkShadowColor ),
575 : maDeactiveBorderColor( rData.maDeactiveBorderColor ),
576 : maDeactiveColor( rData.maDeactiveColor ),
577 : maDeactiveColor2( rData.maDeactiveColor2 ),
578 : maDeactiveTextColor( rData.maDeactiveTextColor ),
579 : maDialogColor( rData.maDialogColor ),
580 : maDialogTextColor( rData.maDialogTextColor ),
581 : maDisableColor( rData.maDisableColor ),
582 : maFaceColor( rData.maFaceColor ),
583 : maFieldColor( rData.maFieldColor ),
584 : maFieldTextColor( rData.maFieldTextColor ),
585 : maFieldRolloverTextColor( rData.maFieldRolloverTextColor ),
586 : maFontColor( rData.maFontColor ),
587 : maGroupTextColor( rData.maGroupTextColor ),
588 : maHelpColor( rData.maHelpColor ),
589 : maHelpTextColor( rData.maHelpTextColor ),
590 : maHighlightColor( rData.maHighlightColor ),
591 : maHighlightLinkColor( rData.maHighlightLinkColor ),
592 : maHighlightTextColor( rData.maHighlightTextColor ),
593 : maInfoTextColor( rData.maInfoTextColor ),
594 : maLabelTextColor( rData.maLabelTextColor ),
595 : maLightBorderColor( rData.maLightBorderColor ),
596 : maLightColor( rData.maLightColor ),
597 : maLinkColor( rData.maLinkColor ),
598 : maMenuBarColor( rData.maMenuBarColor ),
599 : maMenuBarRolloverColor( rData.maMenuBarRolloverColor ),
600 : maMenuBorderColor( rData.maMenuBorderColor ),
601 : maMenuColor( rData.maMenuColor ),
602 : maMenuHighlightColor( rData.maMenuHighlightColor ),
603 : maMenuHighlightTextColor( rData.maMenuHighlightTextColor ),
604 : maMenuTextColor( rData.maMenuTextColor ),
605 : maMenuBarTextColor( rData.maMenuBarTextColor ),
606 : maMenuBarRolloverTextColor( rData.maMenuBarRolloverTextColor ),
607 : maMonoColor( rData.maMonoColor ),
608 : maRadioCheckTextColor( rData.maRadioCheckTextColor ),
609 : maShadowColor( rData.maShadowColor ),
610 : maVisitedLinkColor( rData.maVisitedLinkColor ),
611 : maWindowColor( rData.maWindowColor ),
612 : maWindowTextColor( rData.maWindowTextColor ),
613 : maWorkspaceColor( rData.maWorkspaceColor ),
614 : maActiveTabColor( rData.maActiveTabColor ),
615 : maInactiveTabColor( rData.maInactiveTabColor ),
616 : maAppFont( rData.maAppFont ),
617 : maHelpFont( rData.maAppFont ),
618 : maTitleFont( rData.maTitleFont ),
619 : maFloatTitleFont( rData.maFloatTitleFont ),
620 : maMenuFont( rData.maMenuFont ),
621 : maToolFont( rData.maToolFont ),
622 : maLabelFont( rData.maLabelFont ),
623 : maInfoFont( rData.maInfoFont ),
624 : maRadioCheckFont( rData.maRadioCheckFont ),
625 : maPushButtonFont( rData.maPushButtonFont ),
626 : maFieldFont( rData.maFieldFont ),
627 : maIconFont( rData.maIconFont ),
628 : maGroupFont( rData.maGroupFont ),
629 : mIconTheme(rData.mIconTheme),
630 : maDialogStyle( rData.maDialogStyle ),
631 : maFrameStyle( rData.maFrameStyle ),
632 : maPersonaHeaderFooter( rData.maPersonaHeaderFooter ),
633 : maPersonaHeaderBitmap( rData.maPersonaHeaderBitmap ),
634 : maPersonaFooterBitmap( rData.maPersonaFooterBitmap ),
635 80364 : maPersonaMenuBarTextColor( rData.maPersonaMenuBarTextColor )
636 : {
637 80364 : mnBorderSize = rData.mnBorderSize;
638 80364 : mnTitleHeight = rData.mnTitleHeight;
639 80364 : mnFloatTitleHeight = rData.mnFloatTitleHeight;
640 80364 : mnTearOffTitleHeight = rData.mnTearOffTitleHeight;
641 80364 : mnScrollBarSize = rData.mnScrollBarSize;
642 80364 : mnMinThumbSize = rData.mnMinThumbSize;
643 80364 : mnSplitSize = rData.mnSplitSize;
644 80364 : mnSpinSize = rData.mnSpinSize;
645 80364 : mnAntialiasedMin = rData.mnAntialiasedMin;
646 80364 : mnCursorSize = rData.mnCursorSize;
647 80364 : mnCursorBlinkTime = rData.mnCursorBlinkTime;
648 80364 : mnScreenZoom = rData.mnScreenZoom;
649 80364 : mnScreenFontZoom = rData.mnScreenFontZoom;
650 80364 : mnDragFullOptions = rData.mnDragFullOptions;
651 80364 : mnSelectionOptions = rData.mnSelectionOptions;
652 80364 : mnDisplayOptions = rData.mnDisplayOptions;
653 80364 : mnOptions = rData.mnOptions;
654 80364 : mbHighContrast = rData.mbHighContrast;
655 80364 : mbUseSystemUIFonts = rData.mbUseSystemUIFonts;
656 80364 : mnUseFlatBorders = rData.mnUseFlatBorders;
657 80364 : mnUseFlatMenus = rData.mnUseFlatMenus;
658 80364 : mbAutoMnemonic = rData.mbAutoMnemonic;
659 80364 : meUseImagesInMenus = rData.meUseImagesInMenus;
660 80364 : mbPreferredUseImagesInMenus = rData.mbPreferredUseImagesInMenus;
661 80364 : mbSkipDisabledInMenus = rData.mbSkipDisabledInMenus;
662 80364 : mbHideDisabledMenuItems = rData.mbHideDisabledMenuItems;
663 80364 : mbAcceleratorsInContextMenus = rData.mbAcceleratorsInContextMenus;
664 80364 : mbPrimaryButtonWarpsSlider = rData.mbPrimaryButtonWarpsSlider;
665 80364 : mnToolbarIconSize = rData.mnToolbarIconSize;
666 80364 : mIconThemeScanner.reset(new vcl::IconThemeScanner(*rData.mIconThemeScanner));
667 80364 : mIconThemeSelector.reset(new vcl::IconThemeSelector(*rData.mIconThemeSelector));
668 80364 : mpFontOptions = rData.mpFontOptions;
669 80364 : mnEdgeBlending = rData.mnEdgeBlending;
670 80364 : maEdgeBlendingTopLeftColor = rData.maEdgeBlendingTopLeftColor;
671 80364 : maEdgeBlendingBottomRightColor = rData.maEdgeBlendingBottomRightColor;
672 80364 : mnListBoxMaximumLineCount = rData.mnListBoxMaximumLineCount;
673 80364 : mnColorValueSetColumnCount = rData.mnColorValueSetColumnCount;
674 80364 : mnColorValueSetMaximumRowCount = rData.mnColorValueSetMaximumRowCount;
675 80364 : maListBoxPreviewDefaultLogicSize = rData.maListBoxPreviewDefaultLogicSize;
676 80364 : maListBoxPreviewDefaultPixelSize = rData.maListBoxPreviewDefaultPixelSize;
677 80364 : mnListBoxPreviewDefaultLineWidth = rData.mnListBoxPreviewDefaultLineWidth;
678 80364 : mbPreviewUsesCheckeredBackground = rData.mbPreviewUsesCheckeredBackground;
679 80364 : }
680 :
681 837 : void ImplStyleData::SetStandardStyles()
682 : {
683 837 : vcl::Font aStdFont( FAMILY_SWISS, Size( 0, 8 ) );
684 837 : aStdFont.SetCharSet( osl_getThreadTextEncoding() );
685 837 : aStdFont.SetWeight( WEIGHT_NORMAL );
686 837 : aStdFont.SetName( utl::DefaultFontConfiguration::get().getUserInterfaceFont( LanguageTag("en")) );
687 837 : maAppFont = aStdFont;
688 837 : maHelpFont = aStdFont;
689 837 : maMenuFont = aStdFont;
690 837 : maToolFont = aStdFont;
691 837 : maGroupFont = aStdFont;
692 837 : maLabelFont = aStdFont;
693 837 : maInfoFont = aStdFont;
694 837 : maRadioCheckFont = aStdFont;
695 837 : maPushButtonFont = aStdFont;
696 837 : maFieldFont = aStdFont;
697 837 : maIconFont = aStdFont;
698 837 : aStdFont.SetWeight( WEIGHT_BOLD );
699 837 : maFloatTitleFont = aStdFont;
700 837 : maTitleFont = aStdFont;
701 :
702 837 : maFaceColor = Color( COL_LIGHTGRAY );
703 837 : maCheckedColor = Color( 0xCC, 0xCC, 0xCC );
704 837 : maLightColor = Color( COL_WHITE );
705 837 : maLightBorderColor = Color( COL_LIGHTGRAY );
706 837 : maShadowColor = Color( COL_GRAY );
707 837 : maDarkShadowColor = Color( COL_BLACK );
708 837 : maButtonTextColor = Color( COL_BLACK );
709 837 : maButtonRolloverTextColor = Color( COL_BLACK );
710 837 : maRadioCheckTextColor = Color( COL_BLACK );
711 837 : maGroupTextColor = Color( COL_BLACK );
712 837 : maLabelTextColor = Color( COL_BLACK );
713 837 : maInfoTextColor = Color( COL_BLACK );
714 837 : maWindowColor = Color( COL_WHITE );
715 837 : maWindowTextColor = Color( COL_BLACK );
716 837 : maDialogColor = Color( COL_LIGHTGRAY );
717 837 : maDialogTextColor = Color( COL_BLACK );
718 837 : maWorkspaceColor = Color( 0xCF, 0xCF, 0xCF );
719 837 : maMonoColor = Color( COL_BLACK );
720 837 : maFieldColor = Color( COL_WHITE );
721 837 : maFieldTextColor = Color( COL_BLACK );
722 837 : maFieldRolloverTextColor = Color( COL_BLACK );
723 837 : maActiveColor = Color( COL_BLUE );
724 837 : maActiveColor2 = Color( COL_BLACK );
725 837 : maActiveTextColor = Color( COL_WHITE );
726 837 : maActiveBorderColor = Color( COL_LIGHTGRAY );
727 837 : maDeactiveColor = Color( COL_GRAY );
728 837 : maDeactiveColor2 = Color( COL_BLACK );
729 837 : maDeactiveTextColor = Color( COL_LIGHTGRAY );
730 837 : maDeactiveBorderColor = Color( COL_LIGHTGRAY );
731 837 : maMenuColor = Color( COL_LIGHTGRAY );
732 837 : maMenuBarColor = Color( COL_LIGHTGRAY );
733 837 : maMenuBarRolloverColor = Color( COL_BLUE );
734 837 : maMenuBorderColor = Color( COL_LIGHTGRAY );
735 837 : maMenuTextColor = Color( COL_BLACK );
736 837 : maMenuBarTextColor = Color( COL_BLACK );
737 837 : maMenuBarRolloverTextColor = Color( COL_WHITE );
738 837 : maMenuHighlightColor = Color( COL_BLUE );
739 837 : maMenuHighlightTextColor = Color( COL_WHITE );
740 837 : maHighlightColor = Color( COL_BLUE );
741 837 : maHighlightTextColor = Color( COL_WHITE );
742 837 : maActiveTabColor = Color( COL_WHITE );
743 837 : maInactiveTabColor = Color( COL_LIGHTGRAY );
744 837 : maDisableColor = Color( COL_GRAY );
745 837 : maHelpColor = Color( 0xFF, 0xFF, 0xE0 );
746 837 : maHelpTextColor = Color( COL_BLACK );
747 837 : maLinkColor = Color( COL_BLUE );
748 837 : maVisitedLinkColor = Color( 0x00, 0x00, 0xCC );
749 837 : maHighlightLinkColor = Color( COL_LIGHTBLUE );
750 837 : maFontColor = Color( COL_BLACK );
751 837 : maRowColor = Color( COL_WHITE );
752 837 : maAlternatingRowColor = Color( 0xEE, 0xEE, 0xEE );
753 :
754 837 : mnBorderSize = 1;
755 837 : mnTitleHeight = 18;
756 837 : mnFloatTitleHeight = 13;
757 837 : mnTearOffTitleHeight = 8;
758 837 : mbHighContrast = false;
759 837 : mbUseSystemUIFonts = true;
760 837 : mnUseFlatBorders = false;
761 837 : mnUseFlatMenus = false;
762 837 : mbPreferredUseImagesInMenus = true;
763 837 : mbSkipDisabledInMenus = false;
764 837 : mbHideDisabledMenuItems = false;
765 837 : mbAcceleratorsInContextMenus = true;
766 837 : mbPrimaryButtonWarpsSlider = false;
767 837 : }
768 :
769 677 : StyleSettings::StyleSettings()
770 677 : : mpData(boost::make_shared<ImplStyleData>())
771 : {
772 677 : }
773 :
774 443313 : StyleSettings::~StyleSettings()
775 : {
776 443313 : }
777 :
778 : void
779 134 : StyleSettings::SetFaceColor( const Color& rColor )
780 : {
781 134 : CopyData();
782 134 : mpData->maFaceColor = rColor;
783 134 : }
784 :
785 : const Color&
786 1670041 : StyleSettings::GetFaceColor() const
787 : {
788 1670041 : return mpData->maFaceColor;
789 : }
790 :
791 : void
792 134 : StyleSettings::SetCheckedColor( const Color& rColor )
793 : {
794 134 : CopyData();
795 134 : mpData->maCheckedColor = rColor;
796 134 : }
797 :
798 : const Color&
799 59218 : StyleSettings::GetCheckedColor() const
800 : {
801 59218 : return mpData->maCheckedColor;
802 : }
803 :
804 : void
805 4 : StyleSettings::SetLightColor( const Color& rColor )
806 : {
807 4 : CopyData();
808 4 : mpData->maLightColor = rColor;
809 4 : }
810 :
811 : const Color&
812 232690 : StyleSettings::GetLightColor() const
813 : {
814 232690 : return mpData->maLightColor;
815 : }
816 :
817 : void
818 4 : StyleSettings::SetLightBorderColor( const Color& rColor )
819 : {
820 4 : CopyData();
821 4 : mpData->maLightBorderColor = rColor;
822 4 : }
823 :
824 : const Color&
825 143721 : StyleSettings::GetLightBorderColor() const
826 : {
827 143721 : return mpData->maLightBorderColor;
828 : }
829 :
830 : void
831 134 : StyleSettings::SetShadowColor( const Color& rColor )
832 : {
833 134 : CopyData();
834 134 : mpData->maShadowColor = rColor;
835 134 : }
836 :
837 : const Color&
838 781569 : StyleSettings::GetShadowColor() const
839 : {
840 781569 : return mpData->maShadowColor;
841 : }
842 :
843 : void
844 4 : StyleSettings::SetDarkShadowColor( const Color& rColor )
845 : {
846 4 : CopyData();
847 4 : mpData->maDarkShadowColor = rColor;
848 4 : }
849 :
850 : const Color&
851 422256 : StyleSettings::GetDarkShadowColor() const
852 : {
853 422256 : return mpData->maDarkShadowColor;
854 : }
855 :
856 : void
857 134 : StyleSettings::SetButtonTextColor( const Color& rColor )
858 : {
859 134 : CopyData();
860 134 : mpData->maButtonTextColor = rColor;
861 134 : }
862 :
863 : const Color&
864 520042 : StyleSettings::GetButtonTextColor() const
865 : {
866 520042 : return mpData->maButtonTextColor;
867 : }
868 :
869 : void
870 0 : StyleSettings::SetButtonRolloverTextColor( const Color& rColor )
871 : {
872 0 : CopyData();
873 0 : mpData->maButtonRolloverTextColor = rColor;
874 0 : }
875 :
876 : const Color&
877 0 : StyleSettings::GetButtonRolloverTextColor() const
878 : {
879 0 : return mpData->maButtonRolloverTextColor;
880 : }
881 :
882 : void
883 0 : StyleSettings::SetRadioCheckTextColor( const Color& rColor )
884 : {
885 0 : CopyData();
886 0 : mpData->maRadioCheckTextColor = rColor;
887 0 : }
888 :
889 : const Color&
890 8849 : StyleSettings::GetRadioCheckTextColor() const
891 : {
892 8849 : return mpData->maRadioCheckTextColor;
893 : }
894 :
895 : void
896 0 : StyleSettings::SetGroupTextColor( const Color& rColor )
897 : {
898 0 : CopyData();
899 0 : mpData->maGroupTextColor = rColor;
900 0 : }
901 :
902 : const Color&
903 936 : StyleSettings::GetGroupTextColor() const
904 : {
905 936 : return mpData->maGroupTextColor;
906 : }
907 :
908 : void
909 0 : StyleSettings::SetLabelTextColor( const Color& rColor )
910 : {
911 0 : CopyData();
912 0 : mpData->maLabelTextColor = rColor;
913 0 : }
914 :
915 : const Color&
916 7879 : StyleSettings::GetLabelTextColor() const
917 : {
918 7879 : return mpData->maLabelTextColor;
919 : }
920 :
921 : void
922 0 : StyleSettings::SetInfoTextColor( const Color& rColor )
923 : {
924 0 : CopyData();
925 0 : mpData->maInfoTextColor = rColor;
926 0 : }
927 :
928 : const Color&
929 0 : StyleSettings::GetInfoTextColor() const
930 : {
931 0 : return mpData->maInfoTextColor;
932 : }
933 :
934 : void
935 0 : StyleSettings::SetWindowColor( const Color& rColor )
936 : {
937 0 : CopyData();
938 0 : mpData->maWindowColor = rColor;
939 0 : }
940 :
941 : const Color&
942 153594 : StyleSettings::GetWindowColor() const
943 : {
944 153594 : return mpData->maWindowColor;
945 : }
946 :
947 : void
948 0 : StyleSettings::SetWindowTextColor( const Color& rColor )
949 : {
950 0 : CopyData();
951 0 : mpData->maWindowTextColor = rColor;
952 0 : }
953 :
954 : const Color&
955 104983 : StyleSettings::GetWindowTextColor() const
956 : {
957 104983 : return mpData->maWindowTextColor;
958 : }
959 :
960 : void
961 0 : StyleSettings::SetDialogColor( const Color& rColor )
962 : {
963 0 : CopyData();
964 0 : mpData->maDialogColor = rColor;
965 0 : }
966 :
967 : const Color&
968 30297 : StyleSettings::GetDialogColor() const
969 : {
970 30297 : return mpData->maDialogColor;
971 : }
972 :
973 : void
974 0 : StyleSettings::SetDialogTextColor( const Color& rColor )
975 : {
976 0 : CopyData();
977 0 : mpData->maDialogTextColor = rColor;
978 0 : }
979 :
980 : const Color&
981 0 : StyleSettings::GetDialogTextColor() const
982 : {
983 0 : return mpData->maDialogTextColor;
984 : }
985 :
986 : void
987 0 : StyleSettings::SetWorkspaceColor( const Color& rColor )
988 : {
989 0 : CopyData();
990 0 : mpData->maWorkspaceColor = rColor;
991 0 : }
992 :
993 : const Color&
994 17404 : StyleSettings::GetWorkspaceColor() const
995 : {
996 17404 : return mpData->maWorkspaceColor;
997 : }
998 :
999 : void
1000 0 : StyleSettings::SetFieldColor( const Color& rColor )
1001 : {
1002 0 : CopyData();
1003 0 : mpData->maFieldColor = rColor;
1004 0 : }
1005 :
1006 : const Color&
1007 125783 : StyleSettings::GetFieldColor() const
1008 : {
1009 125783 : return mpData->maFieldColor;
1010 : }
1011 :
1012 : void
1013 260 : StyleSettings::SetFieldTextColor( const Color& rColor )
1014 : {
1015 260 : CopyData();
1016 260 : mpData->maFieldTextColor = rColor;
1017 260 : }
1018 :
1019 : const Color&
1020 58974 : StyleSettings::GetFieldTextColor() const
1021 : {
1022 58974 : return mpData->maFieldTextColor;
1023 : }
1024 :
1025 : void
1026 0 : StyleSettings::SetFieldRolloverTextColor( const Color& rColor )
1027 : {
1028 0 : CopyData();
1029 0 : mpData->maFieldRolloverTextColor = rColor;
1030 0 : }
1031 :
1032 : const Color&
1033 0 : StyleSettings::GetFieldRolloverTextColor() const
1034 : {
1035 0 : return mpData->maFieldRolloverTextColor;
1036 : }
1037 :
1038 : void
1039 0 : StyleSettings::SetActiveColor( const Color& rColor )
1040 : {
1041 0 : CopyData();
1042 0 : mpData->maActiveColor = rColor;
1043 0 : }
1044 :
1045 : const Color&
1046 0 : StyleSettings::GetActiveColor() const
1047 : {
1048 0 : return mpData->maActiveColor;
1049 : }
1050 :
1051 : void
1052 0 : StyleSettings::SetActiveColor2( const Color& rColor )
1053 : {
1054 0 : CopyData();
1055 0 : mpData->maActiveColor2 = rColor;
1056 0 : }
1057 :
1058 : const Color&
1059 0 : StyleSettings::GetActiveColor2() const
1060 : {
1061 0 : return mpData->maActiveColor2;
1062 : }
1063 :
1064 : void
1065 0 : StyleSettings::SetActiveTextColor( const Color& rColor )
1066 : {
1067 0 : CopyData();
1068 0 : mpData->maActiveTextColor = rColor;
1069 0 : }
1070 :
1071 : const Color&
1072 328 : StyleSettings::GetActiveTextColor() const
1073 : {
1074 328 : return mpData->maActiveTextColor;
1075 : }
1076 :
1077 : void
1078 0 : StyleSettings::SetActiveBorderColor( const Color& rColor )
1079 : {
1080 0 : CopyData();
1081 0 : mpData->maActiveBorderColor = rColor;
1082 0 : }
1083 :
1084 : const Color&
1085 280 : StyleSettings::GetActiveBorderColor() const
1086 : {
1087 280 : return mpData->maActiveBorderColor;
1088 : }
1089 :
1090 : void
1091 0 : StyleSettings::SetDeactiveColor( const Color& rColor )
1092 : {
1093 0 : CopyData();
1094 0 : mpData->maDeactiveColor = rColor;
1095 0 : }
1096 :
1097 : const Color&
1098 0 : StyleSettings::GetDeactiveColor() const
1099 : {
1100 0 : return mpData->maDeactiveColor;
1101 : }
1102 :
1103 : void
1104 0 : StyleSettings::SetDeactiveColor2( const Color& rColor )
1105 : {
1106 0 : CopyData();
1107 0 : mpData->maDeactiveColor2 = rColor;
1108 0 : }
1109 :
1110 : const Color&
1111 0 : StyleSettings::GetDeactiveColor2() const
1112 : {
1113 0 : return mpData->maDeactiveColor2;
1114 : }
1115 :
1116 : void
1117 0 : StyleSettings::SetDeactiveTextColor( const Color& rColor )
1118 : {
1119 0 : CopyData();
1120 0 : mpData->maDeactiveTextColor = rColor;
1121 0 : }
1122 :
1123 : const Color&
1124 0 : StyleSettings::GetDeactiveTextColor() const
1125 : {
1126 0 : return mpData->maDeactiveTextColor;
1127 : }
1128 :
1129 : void
1130 0 : StyleSettings::SetDeactiveBorderColor( const Color& rColor )
1131 : {
1132 0 : CopyData();
1133 0 : mpData->maDeactiveBorderColor = rColor;
1134 0 : }
1135 :
1136 : const Color&
1137 0 : StyleSettings::GetDeactiveBorderColor() const
1138 : {
1139 0 : return mpData->maDeactiveBorderColor;
1140 : }
1141 :
1142 : void
1143 0 : StyleSettings::SetHighlightColor( const Color& rColor )
1144 : {
1145 0 : CopyData();
1146 0 : mpData->maHighlightColor = rColor;
1147 0 : }
1148 :
1149 : const Color&
1150 24353 : StyleSettings::GetHighlightColor() const
1151 : {
1152 24353 : return mpData->maHighlightColor;
1153 : }
1154 :
1155 : void
1156 0 : StyleSettings::SetHighlightTextColor( const Color& rColor )
1157 : {
1158 0 : CopyData();
1159 0 : mpData->maHighlightTextColor = rColor;
1160 0 : }
1161 :
1162 : const Color&
1163 7742 : StyleSettings::GetHighlightTextColor() const
1164 : {
1165 7742 : return mpData->maHighlightTextColor;
1166 : }
1167 :
1168 : void
1169 0 : StyleSettings::SetDisableColor( const Color& rColor )
1170 : {
1171 0 : CopyData();
1172 0 : mpData->maDisableColor = rColor;
1173 0 : }
1174 :
1175 : const Color&
1176 2211 : StyleSettings::GetDisableColor() const
1177 : {
1178 2211 : return mpData->maDisableColor;
1179 : }
1180 :
1181 : void
1182 0 : StyleSettings::SetHelpColor( const Color& rColor )
1183 : {
1184 0 : CopyData();
1185 0 : mpData->maHelpColor = rColor;
1186 0 : }
1187 :
1188 : const Color&
1189 6 : StyleSettings::GetHelpColor() const
1190 : {
1191 6 : return mpData->maHelpColor;
1192 : }
1193 :
1194 : void
1195 0 : StyleSettings::SetHelpTextColor( const Color& rColor )
1196 : {
1197 0 : CopyData();
1198 0 : mpData->maHelpTextColor = rColor;
1199 0 : }
1200 :
1201 : const Color&
1202 0 : StyleSettings::GetHelpTextColor() const
1203 : {
1204 0 : return mpData->maHelpTextColor;
1205 : }
1206 :
1207 : void
1208 0 : StyleSettings::SetMenuColor( const Color& rColor )
1209 : {
1210 0 : CopyData();
1211 0 : mpData->maMenuColor = rColor;
1212 0 : }
1213 :
1214 : const Color&
1215 1819 : StyleSettings::GetMenuColor() const
1216 : {
1217 1819 : return mpData->maMenuColor;
1218 : }
1219 :
1220 : void
1221 0 : StyleSettings::SetMenuBarColor( const Color& rColor )
1222 : {
1223 0 : CopyData();
1224 0 : mpData->maMenuBarColor = rColor;
1225 0 : }
1226 :
1227 : const Color&
1228 2 : StyleSettings::GetMenuBarColor() const
1229 : {
1230 2 : return mpData->maMenuBarColor;
1231 : }
1232 :
1233 : void
1234 0 : StyleSettings::SetMenuBarRolloverColor( const Color& rColor )
1235 : {
1236 0 : CopyData();
1237 0 : mpData->maMenuBarRolloverColor = rColor;
1238 0 : }
1239 :
1240 : const Color&
1241 0 : StyleSettings::GetMenuBarRolloverColor() const
1242 : {
1243 0 : return mpData->maMenuBarRolloverColor;
1244 : }
1245 :
1246 : void
1247 0 : StyleSettings::SetMenuBorderColor( const Color& rColor )
1248 : {
1249 0 : CopyData();
1250 0 : mpData->maMenuBorderColor = rColor;
1251 0 : }
1252 :
1253 : const Color&
1254 14 : StyleSettings::GetMenuBorderColor() const
1255 : {
1256 14 : return mpData->maMenuBorderColor;
1257 : }
1258 :
1259 : void
1260 0 : StyleSettings::SetMenuTextColor( const Color& rColor )
1261 : {
1262 0 : CopyData();
1263 0 : mpData->maMenuTextColor = rColor;
1264 0 : }
1265 :
1266 : const Color&
1267 18 : StyleSettings::GetMenuTextColor() const
1268 : {
1269 18 : return mpData->maMenuTextColor;
1270 : }
1271 :
1272 : void
1273 0 : StyleSettings::SetMenuBarTextColor( const Color& rColor )
1274 : {
1275 0 : CopyData();
1276 0 : mpData->maMenuBarTextColor = rColor;
1277 0 : }
1278 :
1279 : const Color&
1280 5510 : StyleSettings::GetMenuBarTextColor() const
1281 : {
1282 5510 : return mpData->maMenuBarTextColor;
1283 : }
1284 :
1285 : void
1286 0 : StyleSettings::SetMenuBarRolloverTextColor( const Color& rColor )
1287 : {
1288 0 : CopyData();
1289 0 : mpData->maMenuBarRolloverTextColor = rColor;
1290 0 : }
1291 :
1292 : const Color&
1293 0 : StyleSettings::GetMenuBarRolloverTextColor() const
1294 : {
1295 0 : return mpData->maMenuBarRolloverTextColor;
1296 : }
1297 :
1298 : void
1299 0 : StyleSettings::SetMenuHighlightColor( const Color& rColor )
1300 : {
1301 0 : CopyData();
1302 0 : mpData->maMenuHighlightColor = rColor;
1303 0 : }
1304 :
1305 : const Color&
1306 408 : StyleSettings::GetMenuHighlightColor() const
1307 : {
1308 408 : return mpData->maMenuHighlightColor;
1309 : }
1310 :
1311 : void
1312 0 : StyleSettings::SetMenuHighlightTextColor( const Color& rColor )
1313 : {
1314 0 : CopyData();
1315 0 : mpData->maMenuHighlightTextColor = rColor;
1316 0 : }
1317 :
1318 : const Color&
1319 30 : StyleSettings::GetMenuHighlightTextColor() const
1320 : {
1321 30 : return mpData->maMenuHighlightTextColor;
1322 : }
1323 :
1324 : void
1325 0 : StyleSettings::SetLinkColor( const Color& rColor )
1326 : {
1327 0 : CopyData();
1328 0 : mpData->maLinkColor = rColor;
1329 0 : }
1330 :
1331 : const Color&
1332 218 : StyleSettings::GetLinkColor() const
1333 : {
1334 218 : return mpData->maLinkColor;
1335 : }
1336 :
1337 : void
1338 0 : StyleSettings::SetVisitedLinkColor( const Color& rColor )
1339 : {
1340 0 : CopyData();
1341 0 : mpData->maVisitedLinkColor = rColor;
1342 0 : }
1343 :
1344 : const Color&
1345 182 : StyleSettings::GetVisitedLinkColor() const
1346 : {
1347 182 : return mpData->maVisitedLinkColor;
1348 : }
1349 :
1350 : const Color&
1351 7 : StyleSettings::GetHighlightLinkColor() const
1352 : {
1353 7 : return mpData->maHighlightLinkColor;
1354 : }
1355 :
1356 : void
1357 605 : StyleSettings::SetMonoColor( const Color& rColor )
1358 : {
1359 605 : CopyData();
1360 605 : mpData->maMonoColor = rColor;
1361 605 : }
1362 :
1363 : const Color&
1364 1437 : StyleSettings::GetMonoColor() const
1365 : {
1366 1437 : return mpData->maMonoColor;
1367 : }
1368 :
1369 : void
1370 0 : StyleSettings::SetActiveTabColor( const Color& rColor )
1371 : {
1372 0 : CopyData();
1373 0 : mpData->maActiveTabColor = rColor;
1374 0 : }
1375 :
1376 : const Color&
1377 636 : StyleSettings::GetActiveTabColor() const
1378 : {
1379 636 : return mpData->maActiveTabColor;
1380 : }
1381 :
1382 : void
1383 0 : StyleSettings::SetInactiveTabColor( const Color& rColor )
1384 : {
1385 0 : CopyData();
1386 0 : mpData->maInactiveTabColor = rColor;
1387 0 : }
1388 :
1389 : const Color&
1390 544 : StyleSettings::GetInactiveTabColor() const
1391 : {
1392 544 : return mpData->maInactiveTabColor;
1393 : }
1394 :
1395 : void
1396 0 : StyleSettings::SetRowColor( const Color& rColor )
1397 : {
1398 0 : CopyData();
1399 0 : mpData->maRowColor = rColor;
1400 0 : }
1401 :
1402 : const Color&
1403 1720 : StyleSettings::GetRowColor() const
1404 : {
1405 1720 : return mpData->maRowColor;
1406 : }
1407 :
1408 : void
1409 0 : StyleSettings::SetAlternatingRowColor( const Color& rColor )
1410 : {
1411 0 : CopyData();
1412 0 : mpData->maAlternatingRowColor = rColor;
1413 0 : }
1414 :
1415 : const Color&
1416 0 : StyleSettings::GetAlternatingRowColor() const
1417 : {
1418 0 : return mpData->maAlternatingRowColor;
1419 : }
1420 :
1421 : void
1422 160 : StyleSettings::SetUseSystemUIFonts( bool bUseSystemUIFonts )
1423 : {
1424 160 : CopyData();
1425 160 : mpData->mbUseSystemUIFonts = bUseSystemUIFonts;
1426 160 : }
1427 :
1428 : bool
1429 1460 : StyleSettings::GetUseSystemUIFonts() const
1430 : {
1431 1460 : return mpData->mbUseSystemUIFonts;
1432 : }
1433 :
1434 : void
1435 0 : StyleSettings::SetUseFlatBorders( bool bUseFlatBorders )
1436 : {
1437 0 : CopyData();
1438 0 : mpData->mnUseFlatBorders = bUseFlatBorders;
1439 0 : }
1440 :
1441 : bool
1442 114437 : StyleSettings::GetUseFlatBorders() const
1443 : {
1444 114437 : return (bool) mpData->mnUseFlatBorders;
1445 : }
1446 :
1447 : void
1448 0 : StyleSettings::SetUseFlatMenus( bool bUseFlatMenus )
1449 : {
1450 0 : CopyData();
1451 0 : mpData->mnUseFlatMenus = bUseFlatMenus;
1452 0 : }
1453 :
1454 : bool
1455 14 : StyleSettings::GetUseFlatMenus() const
1456 : {
1457 14 : return (bool) mpData->mnUseFlatMenus;
1458 : }
1459 :
1460 : void
1461 160 : StyleSettings::SetUseImagesInMenus( TriState eUseImagesInMenus )
1462 : {
1463 160 : CopyData();
1464 160 : mpData->meUseImagesInMenus = eUseImagesInMenus;
1465 160 : }
1466 :
1467 : void
1468 0 : StyleSettings::SetPreferredUseImagesInMenus( bool bPreferredUseImagesInMenus )
1469 : {
1470 0 : CopyData();
1471 0 : mpData->mbPreferredUseImagesInMenus = bPreferredUseImagesInMenus;
1472 0 : }
1473 :
1474 : bool
1475 69540 : StyleSettings::GetPreferredUseImagesInMenus() const
1476 : {
1477 69540 : return mpData->mbPreferredUseImagesInMenus;
1478 : }
1479 :
1480 : void
1481 0 : StyleSettings::SetSkipDisabledInMenus( bool bSkipDisabledInMenus )
1482 : {
1483 0 : CopyData();
1484 0 : mpData->mbSkipDisabledInMenus = bSkipDisabledInMenus;
1485 0 : }
1486 :
1487 : bool
1488 0 : StyleSettings::GetSkipDisabledInMenus() const
1489 : {
1490 0 : return mpData->mbSkipDisabledInMenus;
1491 : }
1492 :
1493 : void
1494 0 : StyleSettings::SetHideDisabledMenuItems( bool bHideDisabledMenuItems )
1495 : {
1496 0 : CopyData();
1497 0 : mpData->mbHideDisabledMenuItems = bHideDisabledMenuItems;
1498 0 : }
1499 :
1500 : bool
1501 0 : StyleSettings::GetHideDisabledMenuItems() const
1502 : {
1503 0 : return mpData->mbHideDisabledMenuItems;
1504 : }
1505 :
1506 : void
1507 0 : StyleSettings::SetAcceleratorsInContextMenus( bool bAcceleratorsInContextMenus )
1508 : {
1509 0 : CopyData();
1510 0 : mpData->mbAcceleratorsInContextMenus = bAcceleratorsInContextMenus;
1511 0 : }
1512 :
1513 : bool
1514 0 : StyleSettings::GetAcceleratorsInContextMenus() const
1515 : {
1516 0 : return mpData->mbAcceleratorsInContextMenus;
1517 : }
1518 :
1519 : void
1520 0 : StyleSettings::SetPrimaryButtonWarpsSlider( bool bPrimaryButtonWarpsSlider )
1521 : {
1522 0 : CopyData();
1523 0 : mpData->mbPrimaryButtonWarpsSlider = bPrimaryButtonWarpsSlider;
1524 0 : }
1525 :
1526 : bool
1527 0 : StyleSettings::GetPrimaryButtonWarpsSlider() const
1528 : {
1529 0 : return mpData->mbPrimaryButtonWarpsSlider;
1530 : }
1531 :
1532 : void
1533 0 : StyleSettings::SetCairoFontOptions( const void *pOptions )
1534 : {
1535 0 : CopyData();
1536 0 : mpData->mpFontOptions = pOptions;
1537 0 : }
1538 :
1539 : const void*
1540 0 : StyleSettings::GetCairoFontOptions() const
1541 : {
1542 0 : return mpData->mpFontOptions;
1543 : }
1544 :
1545 : void
1546 1140 : StyleSettings::SetAppFont( const vcl::Font& rFont )
1547 : {
1548 1140 : CopyData();
1549 1140 : mpData->maAppFont = rFont;
1550 1140 : }
1551 :
1552 : const vcl::Font&
1553 452253 : StyleSettings::GetAppFont() const
1554 : {
1555 452253 : return mpData->maAppFont;
1556 : }
1557 :
1558 : void
1559 0 : StyleSettings::SetHelpFont( const vcl::Font& rFont )
1560 : {
1561 0 : CopyData();
1562 0 : mpData->maHelpFont = rFont;
1563 0 : }
1564 :
1565 : const vcl::Font&
1566 0 : StyleSettings::GetHelpFont() const
1567 : {
1568 0 : return mpData->maHelpFont;
1569 : }
1570 :
1571 : void
1572 1140 : StyleSettings::SetTitleFont( const vcl::Font& rFont )
1573 : {
1574 1140 : CopyData();
1575 1140 : mpData->maTitleFont = rFont;
1576 1140 : }
1577 :
1578 : const vcl::Font&
1579 1140 : StyleSettings::GetTitleFont() const
1580 : {
1581 1140 : return mpData->maTitleFont;
1582 : }
1583 :
1584 : void
1585 1140 : StyleSettings::SetFloatTitleFont( const vcl::Font& rFont )
1586 : {
1587 1140 : CopyData();
1588 1140 : mpData->maFloatTitleFont = rFont;
1589 1140 : }
1590 :
1591 : const vcl::Font&
1592 1140 : StyleSettings::GetFloatTitleFont() const
1593 : {
1594 1140 : return mpData->maFloatTitleFont;
1595 : }
1596 :
1597 : void
1598 0 : StyleSettings::SetMenuFont( const vcl::Font& rFont )
1599 : {
1600 0 : CopyData();
1601 0 : mpData->maMenuFont = rFont;
1602 0 : }
1603 :
1604 : const vcl::Font&
1605 6642 : StyleSettings::GetMenuFont() const
1606 : {
1607 6642 : return mpData->maMenuFont;
1608 : }
1609 :
1610 : void
1611 1140 : StyleSettings::SetToolFont( const vcl::Font& rFont )
1612 : {
1613 1140 : CopyData();
1614 1140 : mpData->maToolFont = rFont;
1615 1140 : }
1616 :
1617 : const vcl::Font&
1618 84429 : StyleSettings::GetToolFont() const
1619 : {
1620 84429 : return mpData->maToolFont;
1621 : }
1622 :
1623 : void
1624 1140 : StyleSettings::SetGroupFont( const vcl::Font& rFont )
1625 : {
1626 1140 : CopyData();
1627 1140 : mpData->maGroupFont = rFont;
1628 1140 : }
1629 :
1630 : const vcl::Font&
1631 2076 : StyleSettings::GetGroupFont() const
1632 : {
1633 2076 : return mpData->maGroupFont;
1634 : }
1635 :
1636 : void
1637 1140 : StyleSettings::SetLabelFont( const vcl::Font& rFont )
1638 : {
1639 1140 : CopyData();
1640 1140 : mpData->maLabelFont = rFont;
1641 1140 : }
1642 :
1643 : const vcl::Font&
1644 9027 : StyleSettings::GetLabelFont() const
1645 : {
1646 9027 : return mpData->maLabelFont;
1647 : }
1648 :
1649 : void
1650 1140 : StyleSettings::SetInfoFont( const vcl::Font& rFont )
1651 : {
1652 1140 : CopyData();
1653 1140 : mpData->maInfoFont = rFont;
1654 1140 : }
1655 :
1656 : const vcl::Font&
1657 1140 : StyleSettings::GetInfoFont() const
1658 : {
1659 1140 : return mpData->maInfoFont;
1660 : }
1661 :
1662 : void
1663 1140 : StyleSettings::SetRadioCheckFont( const vcl::Font& rFont )
1664 : {
1665 1140 : CopyData();
1666 1140 : mpData->maRadioCheckFont = rFont;
1667 1140 : }
1668 :
1669 : const vcl::Font&
1670 10231 : StyleSettings::GetRadioCheckFont() const
1671 : {
1672 10231 : return mpData->maRadioCheckFont;
1673 : }
1674 :
1675 : void
1676 1140 : StyleSettings::SetPushButtonFont( const vcl::Font& rFont )
1677 : {
1678 1140 : CopyData();
1679 1140 : mpData->maPushButtonFont = rFont;
1680 1140 : }
1681 :
1682 : const vcl::Font&
1683 25273 : StyleSettings::GetPushButtonFont() const
1684 : {
1685 25273 : return mpData->maPushButtonFont;
1686 : }
1687 :
1688 : void
1689 1400 : StyleSettings::SetFieldFont( const vcl::Font& rFont )
1690 : {
1691 1400 : CopyData();
1692 1400 : mpData->maFieldFont = rFont;
1693 1400 : }
1694 :
1695 : const vcl::Font&
1696 41875 : StyleSettings::GetFieldFont() const
1697 : {
1698 41875 : return mpData->maFieldFont;
1699 : }
1700 :
1701 : void
1702 1140 : StyleSettings::SetIconFont( const vcl::Font& rFont )
1703 : {
1704 1140 : CopyData();
1705 1140 : mpData->maIconFont = rFont;
1706 1140 : }
1707 :
1708 : const vcl::Font&
1709 1140 : StyleSettings::GetIconFont() const
1710 : {
1711 1140 : return mpData->maIconFont;
1712 : }
1713 :
1714 : long
1715 0 : StyleSettings::GetBorderSize() const
1716 : {
1717 0 : return mpData->mnBorderSize;
1718 : }
1719 :
1720 : void
1721 0 : StyleSettings::SetTitleHeight( long nSize )
1722 : {
1723 0 : CopyData();
1724 0 : mpData->mnTitleHeight = nSize;
1725 0 : }
1726 :
1727 : long
1728 134 : StyleSettings::GetTitleHeight() const
1729 : {
1730 134 : return mpData->mnTitleHeight;
1731 : }
1732 :
1733 : void
1734 0 : StyleSettings::SetFloatTitleHeight( long nSize )
1735 : {
1736 0 : CopyData();
1737 0 : mpData->mnFloatTitleHeight = nSize;
1738 0 : }
1739 :
1740 : long
1741 0 : StyleSettings::GetFloatTitleHeight() const
1742 : {
1743 0 : return mpData->mnFloatTitleHeight;
1744 : }
1745 :
1746 : long
1747 0 : StyleSettings::GetTearOffTitleHeight() const
1748 : {
1749 0 : return mpData->mnTearOffTitleHeight;
1750 : }
1751 :
1752 : void
1753 0 : StyleSettings::SetScrollBarSize( long nSize )
1754 : {
1755 0 : CopyData();
1756 0 : mpData->mnScrollBarSize = nSize;
1757 0 : }
1758 :
1759 : long
1760 146994 : StyleSettings::GetScrollBarSize() const
1761 : {
1762 146994 : return mpData->mnScrollBarSize;
1763 : }
1764 :
1765 : void
1766 0 : StyleSettings::SetMinThumbSize( long nSize )
1767 : {
1768 0 : CopyData();
1769 0 : mpData->mnMinThumbSize = nSize;
1770 0 : }
1771 :
1772 : long
1773 51217 : StyleSettings::GetMinThumbSize() const
1774 : {
1775 51217 : return mpData->mnMinThumbSize;
1776 : }
1777 :
1778 : void
1779 0 : StyleSettings::SetSpinSize( long nSize )
1780 : {
1781 0 : CopyData();
1782 0 : mpData->mnSpinSize = nSize;
1783 0 : }
1784 :
1785 : long
1786 34168 : StyleSettings::GetSpinSize() const
1787 : {
1788 34168 : return mpData->mnSpinSize;
1789 : }
1790 :
1791 : long
1792 1110 : StyleSettings::GetSplitSize() const
1793 : {
1794 1110 : return mpData->mnSplitSize;
1795 : }
1796 :
1797 : void
1798 0 : StyleSettings::SetCursorSize( long nSize )
1799 : {
1800 0 : CopyData();
1801 0 : mpData->mnCursorSize = nSize;
1802 0 : }
1803 :
1804 : long
1805 55136 : StyleSettings::GetCursorSize() const
1806 : {
1807 55136 : return mpData->mnCursorSize;
1808 : }
1809 :
1810 : void
1811 76236 : StyleSettings::SetCursorBlinkTime( long nBlinkTime )
1812 : {
1813 76236 : CopyData();
1814 76236 : mpData->mnCursorBlinkTime = nBlinkTime;
1815 76236 : }
1816 :
1817 : long
1818 202992 : StyleSettings::GetCursorBlinkTime() const
1819 : {
1820 202992 : return (long) mpData->mnCursorBlinkTime;
1821 : }
1822 :
1823 : void
1824 160 : StyleSettings::SetScreenZoom( sal_uInt16 nPercent )
1825 : {
1826 160 : CopyData();
1827 160 : mpData->mnScreenZoom = nPercent;
1828 160 : }
1829 :
1830 : sal_uInt16
1831 443986 : StyleSettings::GetScreenZoom() const
1832 : {
1833 443986 : return mpData->mnScreenZoom;
1834 : }
1835 :
1836 : void
1837 160 : StyleSettings::SetScreenFontZoom( sal_uInt16 nPercent )
1838 : {
1839 160 : CopyData();
1840 160 : mpData->mnScreenFontZoom = nPercent;
1841 160 : }
1842 :
1843 : sal_uInt16
1844 613638 : StyleSettings::GetScreenFontZoom() const
1845 : {
1846 613638 : return mpData->mnScreenFontZoom;
1847 : }
1848 :
1849 : void
1850 162 : StyleSettings::SetDragFullOptions( sal_uLong nOptions )
1851 : {
1852 162 : CopyData();
1853 162 : mpData->mnDragFullOptions = nOptions;
1854 162 : }
1855 :
1856 : sal_uLong
1857 14615 : StyleSettings::GetDragFullOptions() const
1858 : {
1859 14615 : return mpData->mnDragFullOptions;
1860 : }
1861 :
1862 : void
1863 62 : StyleSettings::SetSelectionOptions( sal_uLong nOptions )
1864 : {
1865 62 : CopyData();
1866 62 : mpData->mnSelectionOptions = nOptions;
1867 62 : }
1868 :
1869 : sal_uLong
1870 208 : StyleSettings::GetSelectionOptions() const
1871 : {
1872 208 : return mpData->mnSelectionOptions;
1873 : }
1874 :
1875 : void
1876 160 : StyleSettings::SetDisplayOptions( sal_uLong nOptions )
1877 : {
1878 160 : CopyData();
1879 160 : mpData->mnDisplayOptions = nOptions;
1880 160 : }
1881 :
1882 : sal_uLong
1883 289719 : StyleSettings::GetDisplayOptions() const
1884 : {
1885 289719 : return mpData->mnDisplayOptions;
1886 : }
1887 :
1888 : void
1889 160 : StyleSettings::SetAntialiasingMinPixelHeight( long nMinPixel )
1890 : {
1891 160 : CopyData();
1892 160 : mpData->mnAntialiasedMin = nMinPixel;
1893 160 : }
1894 :
1895 : sal_uLong
1896 289719 : StyleSettings::GetAntialiasingMinPixelHeight() const
1897 : {
1898 289719 : return mpData->mnAntialiasedMin;
1899 : }
1900 :
1901 : void
1902 112 : StyleSettings::SetOptions( sal_uLong nOptions )
1903 : {
1904 112 : CopyData();
1905 112 : mpData->mnOptions = nOptions;
1906 112 : }
1907 :
1908 : void
1909 303 : StyleSettings::SetAutoMnemonic( bool bAutoMnemonic )
1910 : {
1911 303 : CopyData();
1912 303 : mpData->mbAutoMnemonic = bAutoMnemonic;
1913 303 : }
1914 :
1915 : bool
1916 954 : StyleSettings::GetAutoMnemonic() const
1917 : {
1918 954 : return mpData->mbAutoMnemonic;
1919 : }
1920 :
1921 : void
1922 0 : StyleSettings::SetFontColor( const Color& rColor )
1923 : {
1924 0 : CopyData();
1925 0 : mpData->maFontColor = rColor;
1926 0 : }
1927 :
1928 : const Color&
1929 410 : StyleSettings::GetFontColor() const
1930 : {
1931 410 : return mpData->maFontColor;
1932 : }
1933 :
1934 : void
1935 0 : StyleSettings::SetToolbarIconSize( sal_uLong nSize )
1936 : {
1937 0 : CopyData();
1938 0 : mpData->mnToolbarIconSize = nSize;
1939 0 : }
1940 :
1941 : sal_uLong
1942 25557 : StyleSettings::GetToolbarIconSize() const
1943 : {
1944 25557 : return mpData->mnToolbarIconSize;
1945 : }
1946 :
1947 : const DialogStyle&
1948 0 : StyleSettings::GetDialogStyle() const
1949 : {
1950 0 : return mpData->maDialogStyle;
1951 : }
1952 :
1953 : void
1954 0 : StyleSettings::SetDialogStyle( const DialogStyle& rStyle )
1955 : {
1956 0 : CopyData();
1957 0 : mpData->maDialogStyle = rStyle;
1958 0 : }
1959 :
1960 : const FrameStyle&
1961 0 : StyleSettings::GetFrameStyle() const
1962 : {
1963 0 : return mpData->maFrameStyle;
1964 : }
1965 :
1966 : void
1967 0 : StyleSettings::SetFrameStyle( const FrameStyle& rStyle )
1968 : {
1969 0 : CopyData();
1970 0 : mpData->maFrameStyle = rStyle;
1971 0 : }
1972 :
1973 : void
1974 0 : StyleSettings::SetEdgeBlending(sal_uInt16 nCount)
1975 : {
1976 0 : CopyData();
1977 0 : mpData->mnEdgeBlending = nCount;
1978 0 : }
1979 :
1980 : sal_uInt16
1981 275 : StyleSettings::GetEdgeBlending() const
1982 : {
1983 275 : return mpData->mnEdgeBlending;
1984 : }
1985 :
1986 : const Color&
1987 115 : StyleSettings::GetEdgeBlendingTopLeftColor() const
1988 : {
1989 115 : return mpData->maEdgeBlendingTopLeftColor;
1990 : }
1991 :
1992 : const Color&
1993 115 : StyleSettings::GetEdgeBlendingBottomRightColor() const
1994 : {
1995 115 : return mpData->maEdgeBlendingBottomRightColor;
1996 : }
1997 :
1998 : void
1999 0 : StyleSettings::SetListBoxMaximumLineCount(sal_uInt16 nCount)
2000 : {
2001 0 : CopyData();
2002 0 : mpData->mnListBoxMaximumLineCount = nCount;
2003 0 : }
2004 :
2005 : sal_uInt16
2006 448 : StyleSettings::GetListBoxMaximumLineCount() const
2007 : {
2008 448 : return mpData->mnListBoxMaximumLineCount;
2009 : }
2010 :
2011 : void
2012 0 : StyleSettings::SetColorValueSetColumnCount(sal_uInt16 nCount)
2013 : {
2014 0 : CopyData();
2015 0 : mpData->mnColorValueSetColumnCount = nCount;
2016 0 : }
2017 :
2018 : sal_uInt16
2019 6890 : StyleSettings::GetColorValueSetColumnCount() const
2020 : {
2021 6890 : return mpData->mnColorValueSetColumnCount;
2022 : }
2023 :
2024 : sal_uInt16
2025 0 : StyleSettings::GetColorValueSetMaximumRowCount() const
2026 : {
2027 0 : return mpData->mnColorValueSetMaximumRowCount;
2028 : }
2029 :
2030 : sal_uInt16
2031 1155 : StyleSettings::GetListBoxPreviewDefaultLineWidth() const
2032 : {
2033 1155 : return mpData->mnListBoxPreviewDefaultLineWidth;
2034 : }
2035 :
2036 : void
2037 160 : StyleSettings::SetPreviewUsesCheckeredBackground(bool bNew)
2038 : {
2039 160 : CopyData();
2040 160 : mpData->mbPreviewUsesCheckeredBackground = bNew;
2041 160 : }
2042 :
2043 : bool
2044 1315 : StyleSettings::GetPreviewUsesCheckeredBackground() const
2045 : {
2046 1315 : return mpData->mbPreviewUsesCheckeredBackground;
2047 : }
2048 :
2049 : bool
2050 88953 : StyleSettings::operator !=( const StyleSettings& rSet ) const
2051 : {
2052 88953 : return !(*this == rSet);
2053 : }
2054 :
2055 1281 : const Size& StyleSettings::GetListBoxPreviewDefaultPixelSize() const
2056 : {
2057 1281 : if(0 == mpData->maListBoxPreviewDefaultPixelSize.Width() || 0 == mpData->maListBoxPreviewDefaultPixelSize.Height())
2058 : {
2059 16 : const_cast< StyleSettings* >(this)->mpData->maListBoxPreviewDefaultPixelSize =
2060 16 : Application::GetDefaultDevice()->LogicToPixel(mpData->maListBoxPreviewDefaultLogicSize, MAP_APPFONT);
2061 : }
2062 :
2063 1281 : return mpData->maListBoxPreviewDefaultPixelSize;
2064 : }
2065 :
2066 222 : void StyleSettings::Set3DColors( const Color& rColor )
2067 : {
2068 222 : CopyData();
2069 222 : mpData->maFaceColor = rColor;
2070 222 : mpData->maLightBorderColor = rColor;
2071 222 : mpData->maMenuBorderColor = rColor;
2072 222 : mpData->maDarkShadowColor = Color( COL_BLACK );
2073 222 : if ( rColor != Color( COL_LIGHTGRAY ) )
2074 : {
2075 222 : mpData->maLightColor = rColor;
2076 222 : mpData->maShadowColor = rColor;
2077 222 : mpData->maDarkShadowColor=rColor;
2078 222 : mpData->maLightColor.IncreaseLuminance( 64 );
2079 222 : mpData->maShadowColor.DecreaseLuminance( 64 );
2080 222 : mpData->maDarkShadowColor.DecreaseLuminance( 100 );
2081 222 : sal_uLong nRed = mpData->maLightColor.GetRed();
2082 222 : sal_uLong nGreen = mpData->maLightColor.GetGreen();
2083 222 : sal_uLong nBlue = mpData->maLightColor.GetBlue();
2084 222 : nRed += (sal_uLong)(mpData->maShadowColor.GetRed());
2085 222 : nGreen += (sal_uLong)(mpData->maShadowColor.GetGreen());
2086 222 : nBlue += (sal_uLong)(mpData->maShadowColor.GetBlue());
2087 222 : mpData->maCheckedColor = Color( (sal_uInt8)(nRed/2), (sal_uInt8)(nGreen/2), (sal_uInt8)(nBlue/2) );
2088 : }
2089 : else
2090 : {
2091 0 : mpData->maCheckedColor = Color( 0x99, 0x99, 0x99 );
2092 0 : mpData->maLightColor = Color( COL_WHITE );
2093 0 : mpData->maShadowColor = Color( COL_GRAY );
2094 : }
2095 222 : }
2096 :
2097 0 : void StyleSettings::SetCheckedColorSpecialCase( )
2098 : {
2099 0 : CopyData();
2100 : // Light gray checked color special case
2101 0 : if ( GetFaceColor() == COL_LIGHTGRAY )
2102 0 : mpData->maCheckedColor = Color( 0xCC, 0xCC, 0xCC );
2103 : else
2104 : {
2105 0 : sal_uInt8 nRed = (sal_uInt8)(((sal_uInt16)mpData->maFaceColor.GetRed() + (sal_uInt16)mpData->maLightColor.GetRed())/2);
2106 0 : sal_uInt8 nGreen = (sal_uInt8)(((sal_uInt16)mpData->maFaceColor.GetGreen() + (sal_uInt16)mpData->maLightColor.GetGreen())/2);
2107 0 : sal_uInt8 nBlue = (sal_uInt8)(((sal_uInt16)mpData->maFaceColor.GetBlue() + (sal_uInt16)mpData->maLightColor.GetBlue())/2);
2108 0 : mpData->maCheckedColor = Color( nRed, nGreen, nBlue );
2109 : }
2110 0 : }
2111 :
2112 69380 : bool StyleSettings::GetUseImagesInMenus() const
2113 : {
2114 : // icon mode selected in Tools -> Options... -> OpenOffice.org -> View
2115 69380 : switch (mpData->meUseImagesInMenus) {
2116 : case TRISTATE_FALSE:
2117 0 : return false;
2118 : case TRISTATE_TRUE:
2119 0 : return true;
2120 : default: // TRISTATE_INDET:
2121 69380 : return GetPreferredUseImagesInMenus();
2122 : }
2123 : }
2124 :
2125 0 : static BitmapEx readBitmapEx( const OUString& rPath )
2126 : {
2127 0 : OUString aPath( rPath );
2128 0 : rtl::Bootstrap::expandMacros( aPath );
2129 :
2130 : // import the image
2131 0 : Graphic aGraphic;
2132 0 : if ( GraphicFilter::LoadGraphic( aPath, OUString(), aGraphic ) != GRFILTER_OK )
2133 0 : return BitmapEx();
2134 0 : return aGraphic.GetBitmapEx();
2135 : }
2136 :
2137 : enum WhichPersona { PERSONA_HEADER, PERSONA_FOOTER };
2138 :
2139 : /** Update the setting of the Persona header / footer in ImplStyleData */
2140 340658 : static void setupPersonaHeaderFooter( WhichPersona eWhich, OUString& rHeaderFooter, BitmapEx& rHeaderFooterBitmap, boost::optional<Color>& rMenuBarTextColor )
2141 : {
2142 340658 : uno::Reference< uno::XComponentContext > xContext( comphelper::getProcessComponentContext() );
2143 340658 : if ( !xContext.is() )
2144 0 : return;
2145 :
2146 : // don't burn time loading images we don't need.
2147 340658 : if ( Application::IsHeadlessModeEnabled() )
2148 340354 : return;
2149 :
2150 : // read from the configuration
2151 396 : OUString aPersona( officecfg::Office::Common::Misc::Persona::get( xContext ) );
2152 396 : OUString aPersonaSettings( officecfg::Office::Common::Misc::PersonaSettings::get( xContext ) );
2153 :
2154 : // have the settings changed? marks if header /footer prepared before
2155 : //should maybe extended to a flag that marks if header /footer /both are loaded
2156 396 : OUString aOldValue= eWhich==PERSONA_HEADER?OUString(aPersona + ";" + aPersonaSettings+";h" ):OUString(aPersona + ";" + aPersonaSettings+";f" );
2157 304 : if ( rHeaderFooter == aOldValue )
2158 212 : return;
2159 :
2160 92 : rHeaderFooter = aOldValue;
2161 92 : rHeaderFooterBitmap = BitmapEx();
2162 92 : rMenuBarTextColor = boost::none;
2163 :
2164 : // now read the new values and setup bitmaps
2165 184 : OUString aHeader, aFooter;
2166 92 : if ( aPersona == "own" || aPersona == "default" )
2167 : {
2168 4 : sal_Int32 nIndex = 0;
2169 4 : aHeader = aPersonaSettings.getToken( 0, ';', nIndex );
2170 4 : if ( nIndex > 0 )
2171 0 : aFooter = aPersonaSettings.getToken( 0, ';', nIndex );
2172 :
2173 : // change menu text color, advance nIndex to skip the '#'
2174 4 : if ( nIndex > 0 )
2175 : {
2176 0 : OUString aColor = aPersonaSettings.getToken( 0, ';', ++nIndex );
2177 0 : rMenuBarTextColor = Color( aColor.toUInt64( 16 ) );
2178 : }
2179 : }
2180 :
2181 184 : OUString aName;
2182 92 : switch ( eWhich ) {
2183 50 : case PERSONA_HEADER: aName = aHeader; break;
2184 42 : case PERSONA_FOOTER: aName = aFooter; break;
2185 : }
2186 :
2187 92 : if ( !aName.isEmpty() )
2188 : {
2189 0 : OUString gallery("");
2190 : // try the gallery first, then the program path:
2191 0 : if ( aPersona == "own" && !aPersonaSettings.startsWith( "vnd.sun.star.expand" ) )
2192 : {
2193 0 : gallery = "${$BRAND_BASE_DIR/" LIBO_ETC_FOLDER "/" SAL_CONFIGFILE( "bootstrap") "::UserInstallation}";
2194 0 : rtl::Bootstrap::expandMacros( gallery );
2195 0 : gallery += "/user/gallery/personas/";
2196 : }
2197 0 : else if ( aPersona == "default" )
2198 : {
2199 0 : gallery = "$BRAND_BASE_DIR/" LIBO_SHARE_FOLDER;
2200 0 : gallery += "/gallery/personas/";
2201 : }
2202 0 : rHeaderFooterBitmap = readBitmapEx( gallery + aName );
2203 :
2204 0 : if ( rHeaderFooterBitmap.IsEmpty() )
2205 0 : rHeaderFooterBitmap = readBitmapEx( "$BRAND_BASE_DIR/" LIBO_ETC_FOLDER "/" + aName );
2206 : }
2207 :
2208 : // Something went wrong. Probably, the images are missing. Clear the persona properties in the registry.
2209 :
2210 92 : if( rHeaderFooterBitmap.IsEmpty() )
2211 : {
2212 92 : boost::shared_ptr< comphelper::ConfigurationChanges > batch( comphelper::ConfigurationChanges::create() );
2213 92 : officecfg::Office::Common::Misc::Persona::set( "no", batch );
2214 92 : officecfg::Office::Common::Misc::PersonaSettings::set( "", batch );
2215 92 : batch->commit();
2216 92 : }
2217 : }
2218 :
2219 251891 : const BitmapEx StyleSettings::GetPersonaHeader() const
2220 : {
2221 251891 : setupPersonaHeaderFooter( PERSONA_HEADER, mpData->maPersonaHeaderFooter, mpData->maPersonaHeaderBitmap, mpData->maPersonaMenuBarTextColor );
2222 251891 : return mpData->maPersonaHeaderBitmap;
2223 : }
2224 :
2225 88767 : const BitmapEx StyleSettings::GetPersonaFooter() const
2226 : {
2227 88767 : setupPersonaHeaderFooter( PERSONA_FOOTER, mpData->maPersonaHeaderFooter, mpData->maPersonaFooterBitmap, mpData->maPersonaMenuBarTextColor );
2228 88767 : return mpData->maPersonaFooterBitmap;
2229 : }
2230 :
2231 0 : const boost::optional<Color>& StyleSettings::GetPersonaMenuBarTextColor() const
2232 : {
2233 0 : GetPersonaHeader();
2234 0 : return mpData->maPersonaMenuBarTextColor;
2235 : }
2236 :
2237 160 : void StyleSettings::SetStandardStyles()
2238 : {
2239 160 : CopyData();
2240 160 : mpData->SetStandardStyles();
2241 160 : }
2242 :
2243 295224 : Color StyleSettings::GetFaceGradientColor() const
2244 : {
2245 : // compute a brighter face color that can be used in gradients
2246 : // for a convex look (eg toolbars)
2247 :
2248 : sal_uInt16 h, s, b;
2249 295224 : GetFaceColor().RGBtoHSB( h, s, b );
2250 295224 : if( s > 1) s=1;
2251 295224 : if( b < 98) b=98;
2252 295224 : return Color( Color::HSBtoRGB( h, s, b ) );
2253 : }
2254 :
2255 27408 : Color StyleSettings::GetSeparatorColor() const
2256 : {
2257 : // compute a brighter shadow color for separators (used in toolbars or between menubar and toolbars on Windows XP)
2258 : sal_uInt16 h, s, b;
2259 27408 : GetShadowColor().RGBtoHSB( h, s, b );
2260 27408 : b += b/4;
2261 27408 : s -= s/4;
2262 27408 : return Color( Color::HSBtoRGB( h, s, b ) );
2263 : }
2264 :
2265 93134 : void StyleSettings::CopyData()
2266 : {
2267 : // copy if other references exist
2268 93134 : if ( ! mpData.unique() ) {
2269 80364 : mpData = boost::make_shared<ImplStyleData>(*mpData);
2270 : }
2271 93134 : }
2272 :
2273 88953 : bool StyleSettings::operator ==( const StyleSettings& rSet ) const
2274 : {
2275 88953 : if ( mpData == rSet.mpData )
2276 3866 : return true;
2277 :
2278 85087 : if (mpData->mIconTheme != rSet.mpData->mIconTheme) {
2279 3988 : return false;
2280 : }
2281 :
2282 81099 : if (*mpData->mIconThemeSelector != *rSet.mpData->mIconThemeSelector) {
2283 0 : return false;
2284 : }
2285 :
2286 243269 : if ( (mpData->mnOptions == rSet.mpData->mnOptions) &&
2287 162142 : (mpData->mbAutoMnemonic == rSet.mpData->mbAutoMnemonic) &&
2288 162138 : (mpData->mnDragFullOptions == rSet.mpData->mnDragFullOptions) &&
2289 162072 : (mpData->mnSelectionOptions == rSet.mpData->mnSelectionOptions) &&
2290 162010 : (mpData->mnDisplayOptions == rSet.mpData->mnDisplayOptions) &&
2291 162010 : (mpData->mnCursorSize == rSet.mpData->mnCursorSize) &&
2292 162010 : (mpData->mnCursorBlinkTime == rSet.mpData->mnCursorBlinkTime) &&
2293 162010 : (mpData->mnBorderSize == rSet.mpData->mnBorderSize) &&
2294 162010 : (mpData->mnTitleHeight == rSet.mpData->mnTitleHeight) &&
2295 162010 : (mpData->mnFloatTitleHeight == rSet.mpData->mnFloatTitleHeight) &&
2296 162010 : (mpData->mnTearOffTitleHeight == rSet.mpData->mnTearOffTitleHeight) &&
2297 162010 : (mpData->mnScrollBarSize == rSet.mpData->mnScrollBarSize) &&
2298 162010 : (mpData->mnMinThumbSize == rSet.mpData->mnMinThumbSize) &&
2299 162010 : (mpData->mnSplitSize == rSet.mpData->mnSplitSize) &&
2300 162010 : (mpData->mnSpinSize == rSet.mpData->mnSpinSize) &&
2301 161530 : (mpData->mnAntialiasedMin == rSet.mpData->mnAntialiasedMin) &&
2302 161050 : (mpData->mnScreenZoom == rSet.mpData->mnScreenZoom) &&
2303 161050 : (mpData->mnScreenFontZoom == rSet.mpData->mnScreenFontZoom) &&
2304 161050 : (mpData->mbHighContrast == rSet.mpData->mbHighContrast) &&
2305 161050 : (mpData->mbUseSystemUIFonts == rSet.mpData->mbUseSystemUIFonts) &&
2306 161050 : (mpData->mnUseFlatBorders == rSet.mpData->mnUseFlatBorders) &&
2307 161050 : (mpData->mnUseFlatMenus == rSet.mpData->mnUseFlatMenus) &&
2308 160920 : (mpData->maFaceColor == rSet.mpData->maFaceColor) &&
2309 160790 : (mpData->maCheckedColor == rSet.mpData->maCheckedColor) &&
2310 160790 : (mpData->maLightColor == rSet.mpData->maLightColor) &&
2311 160790 : (mpData->maLightBorderColor == rSet.mpData->maLightBorderColor) &&
2312 160790 : (mpData->maShadowColor == rSet.mpData->maShadowColor) &&
2313 160790 : (mpData->maDarkShadowColor == rSet.mpData->maDarkShadowColor) &&
2314 160790 : (mpData->maButtonTextColor == rSet.mpData->maButtonTextColor) &&
2315 160790 : (mpData->maRadioCheckTextColor == rSet.mpData->maRadioCheckTextColor) &&
2316 160790 : (mpData->maGroupTextColor == rSet.mpData->maGroupTextColor) &&
2317 160790 : (mpData->maLabelTextColor == rSet.mpData->maLabelTextColor) &&
2318 160790 : (mpData->maInfoTextColor == rSet.mpData->maInfoTextColor) &&
2319 160790 : (mpData->maWindowColor == rSet.mpData->maWindowColor) &&
2320 160790 : (mpData->maWindowTextColor == rSet.mpData->maWindowTextColor) &&
2321 160790 : (mpData->maDialogColor == rSet.mpData->maDialogColor) &&
2322 160790 : (mpData->maDialogTextColor == rSet.mpData->maDialogTextColor) &&
2323 160790 : (mpData->maWorkspaceColor == rSet.mpData->maWorkspaceColor) &&
2324 160694 : (mpData->maMonoColor == rSet.mpData->maMonoColor) &&
2325 160598 : (mpData->maFieldColor == rSet.mpData->maFieldColor) &&
2326 160338 : (mpData->maFieldTextColor == rSet.mpData->maFieldTextColor) &&
2327 160078 : (mpData->maActiveColor == rSet.mpData->maActiveColor) &&
2328 160078 : (mpData->maActiveColor2 == rSet.mpData->maActiveColor2) &&
2329 160078 : (mpData->maActiveTextColor == rSet.mpData->maActiveTextColor) &&
2330 160078 : (mpData->maActiveBorderColor == rSet.mpData->maActiveBorderColor) &&
2331 160078 : (mpData->maDeactiveColor == rSet.mpData->maDeactiveColor) &&
2332 160078 : (mpData->maDeactiveColor2 == rSet.mpData->maDeactiveColor2) &&
2333 160078 : (mpData->maDeactiveTextColor == rSet.mpData->maDeactiveTextColor) &&
2334 160078 : (mpData->maDeactiveBorderColor == rSet.mpData->maDeactiveBorderColor) &&
2335 160078 : (mpData->maMenuColor == rSet.mpData->maMenuColor) &&
2336 160078 : (mpData->maMenuBarColor == rSet.mpData->maMenuBarColor) &&
2337 160078 : (mpData->maMenuBarRolloverColor == rSet.mpData->maMenuBarRolloverColor) &&
2338 160078 : (mpData->maMenuBorderColor == rSet.mpData->maMenuBorderColor) &&
2339 160078 : (mpData->maMenuTextColor == rSet.mpData->maMenuTextColor) &&
2340 160078 : (mpData->maMenuBarTextColor == rSet.mpData->maMenuBarTextColor) &&
2341 160078 : (mpData->maMenuBarRolloverTextColor == rSet.mpData->maMenuBarRolloverTextColor) &&
2342 160078 : (mpData->maMenuHighlightColor == rSet.mpData->maMenuHighlightColor) &&
2343 160078 : (mpData->maMenuHighlightTextColor == rSet.mpData->maMenuHighlightTextColor) &&
2344 160078 : (mpData->maHighlightColor == rSet.mpData->maHighlightColor) &&
2345 160078 : (mpData->maHighlightTextColor == rSet.mpData->maHighlightTextColor) &&
2346 160078 : (mpData->maActiveTabColor == rSet.mpData->maActiveTabColor) &&
2347 160078 : (mpData->maInactiveTabColor == rSet.mpData->maInactiveTabColor) &&
2348 160078 : (mpData->maDisableColor == rSet.mpData->maDisableColor) &&
2349 160078 : (mpData->maHelpColor == rSet.mpData->maHelpColor) &&
2350 160078 : (mpData->maHelpTextColor == rSet.mpData->maHelpTextColor) &&
2351 160078 : (mpData->maLinkColor == rSet.mpData->maLinkColor) &&
2352 160078 : (mpData->maVisitedLinkColor == rSet.mpData->maVisitedLinkColor) &&
2353 160078 : (mpData->maHighlightLinkColor == rSet.mpData->maHighlightLinkColor) &&
2354 160078 : (mpData->maAppFont == rSet.mpData->maAppFont) &&
2355 160078 : (mpData->maHelpFont == rSet.mpData->maHelpFont) &&
2356 160078 : (mpData->maTitleFont == rSet.mpData->maTitleFont) &&
2357 160078 : (mpData->maFloatTitleFont == rSet.mpData->maFloatTitleFont) &&
2358 160078 : (mpData->maMenuFont == rSet.mpData->maMenuFont) &&
2359 160078 : (mpData->maToolFont == rSet.mpData->maToolFont) &&
2360 160078 : (mpData->maGroupFont == rSet.mpData->maGroupFont) &&
2361 160078 : (mpData->maLabelFont == rSet.mpData->maLabelFont) &&
2362 160078 : (mpData->maInfoFont == rSet.mpData->maInfoFont) &&
2363 160078 : (mpData->maRadioCheckFont == rSet.mpData->maRadioCheckFont) &&
2364 160078 : (mpData->maPushButtonFont == rSet.mpData->maPushButtonFont) &&
2365 160078 : (mpData->maFieldFont == rSet.mpData->maFieldFont) &&
2366 160078 : (mpData->maIconFont == rSet.mpData->maIconFont) &&
2367 160078 : (mpData->meUseImagesInMenus == rSet.mpData->meUseImagesInMenus) &&
2368 160078 : (mpData->mbPreferredUseImagesInMenus == rSet.mpData->mbPreferredUseImagesInMenus) &&
2369 160078 : (mpData->mbSkipDisabledInMenus == rSet.mpData->mbSkipDisabledInMenus) &&
2370 160078 : (mpData->mbHideDisabledMenuItems == rSet.mpData->mbHideDisabledMenuItems) &&
2371 160078 : (mpData->mbAcceleratorsInContextMenus == rSet.mpData->mbAcceleratorsInContextMenus)&&
2372 160078 : (mpData->mbPrimaryButtonWarpsSlider == rSet.mpData->mbPrimaryButtonWarpsSlider) &&
2373 160078 : (mpData->maFontColor == rSet.mpData->maFontColor) &&
2374 160078 : (mpData->mnEdgeBlending == rSet.mpData->mnEdgeBlending) &&
2375 160078 : (mpData->maEdgeBlendingTopLeftColor == rSet.mpData->maEdgeBlendingTopLeftColor) &&
2376 160078 : (mpData->maEdgeBlendingBottomRightColor == rSet.mpData->maEdgeBlendingBottomRightColor) &&
2377 160078 : (mpData->mnListBoxMaximumLineCount == rSet.mpData->mnListBoxMaximumLineCount) &&
2378 160078 : (mpData->mnColorValueSetColumnCount == rSet.mpData->mnColorValueSetColumnCount) &&
2379 160078 : (mpData->mnColorValueSetMaximumRowCount == rSet.mpData->mnColorValueSetMaximumRowCount) &&
2380 160078 : (mpData->maListBoxPreviewDefaultLogicSize == rSet.mpData->maListBoxPreviewDefaultLogicSize) &&
2381 160078 : (mpData->maListBoxPreviewDefaultPixelSize == rSet.mpData->maListBoxPreviewDefaultPixelSize) &&
2382 241177 : (mpData->mnListBoxPreviewDefaultLineWidth == rSet.mpData->mnListBoxPreviewDefaultLineWidth) &&
2383 80039 : (mpData->mbPreviewUsesCheckeredBackground == rSet.mpData->mbPreviewUsesCheckeredBackground))
2384 79559 : return true;
2385 : else
2386 1540 : return false;
2387 : }
2388 :
2389 677 : ImplMiscData::ImplMiscData()
2390 : {
2391 677 : mnEnableATT = TRISTATE_INDET;
2392 677 : mnDisablePrinting = TRISTATE_INDET;
2393 677 : static const char* pEnv = getenv("SAL_DECIMALSEP_ENABLED" ); // set default without UI
2394 677 : mbEnableLocalizedDecimalSep = (pEnv != NULL);
2395 677 : pEnv = getenv("VCL_HIDE_WINDOWS"); // do not display any windows
2396 677 : mbPseudoHeadless = (pEnv != NULL);
2397 677 : }
2398 :
2399 0 : ImplMiscData::ImplMiscData( const ImplMiscData& rData )
2400 : {
2401 0 : mnEnableATT = rData.mnEnableATT;
2402 0 : mnDisablePrinting = rData.mnDisablePrinting;
2403 0 : mbEnableLocalizedDecimalSep = rData.mbEnableLocalizedDecimalSep;
2404 0 : mbPseudoHeadless = rData.mbPseudoHeadless;
2405 0 : }
2406 :
2407 677 : MiscSettings::MiscSettings()
2408 677 : : mpData(boost::make_shared<ImplMiscData>())
2409 : {
2410 677 : }
2411 :
2412 85366 : MiscSettings::~MiscSettings()
2413 : {
2414 85366 : }
2415 :
2416 677 : void MiscSettings::CopyData()
2417 : {
2418 : // copy if other references exist
2419 677 : if ( ! mpData.unique() ) {
2420 0 : mpData = boost::make_shared<ImplMiscData>(*mpData);
2421 : }
2422 677 : }
2423 :
2424 88953 : bool MiscSettings::operator ==( const MiscSettings& rSet ) const
2425 : {
2426 88953 : if ( mpData == rSet.mpData )
2427 88953 : return true;
2428 :
2429 0 : if ( (mpData->mnEnableATT == rSet.mpData->mnEnableATT ) &&
2430 0 : (mpData->mnDisablePrinting == rSet.mpData->mnDisablePrinting ) &&
2431 0 : (mpData->mbEnableLocalizedDecimalSep == rSet.mpData->mbEnableLocalizedDecimalSep ) )
2432 0 : return true;
2433 : else
2434 0 : return false;
2435 : }
2436 :
2437 : bool
2438 88953 : MiscSettings::operator !=( const MiscSettings& rSet ) const
2439 : {
2440 88953 : return !(*this == rSet);
2441 : }
2442 :
2443 3122 : bool MiscSettings::GetDisablePrinting() const
2444 : {
2445 3122 : if( mpData->mnDisablePrinting == TRISTATE_INDET )
2446 : {
2447 : OUString aEnable =
2448 : vcl::SettingsConfigItem::get()->
2449 : getValue( OUString( "DesktopManagement" ),
2450 54 : OUString( "DisablePrinting" ) );
2451 54 : mpData->mnDisablePrinting = aEnable.equalsIgnoreAsciiCase("true") ? TRISTATE_TRUE : TRISTATE_FALSE;
2452 : }
2453 :
2454 3122 : return mpData->mnDisablePrinting != TRISTATE_FALSE;
2455 : }
2456 :
2457 60672 : bool MiscSettings::GetEnableATToolSupport() const
2458 : {
2459 :
2460 : #ifdef WNT
2461 : if( mpData->mnEnableATT == TRISTATE_INDET )
2462 : {
2463 : // Check in the Windows registry if an AT tool wants Accessibility support to
2464 : // be activated ..
2465 : HKEY hkey;
2466 :
2467 : if( ERROR_SUCCESS == RegOpenKey(HKEY_CURRENT_USER,
2468 : "Software\\LibreOffice\\Accessibility\\AtToolSupport",
2469 : &hkey) )
2470 : {
2471 : DWORD dwType;
2472 : sal_uInt8 Data[6]; // possible values: "true", "false", "1", "0", DWORD
2473 : DWORD cbData = sizeof(Data);
2474 :
2475 : if( ERROR_SUCCESS == RegQueryValueEx(hkey, "SupportAssistiveTechnology",
2476 : NULL, &dwType, Data, &cbData) )
2477 : {
2478 : switch (dwType)
2479 : {
2480 : case REG_SZ:
2481 : mpData->mnEnableATT = ((0 == stricmp((const char *) Data, "1")) || (0 == stricmp((const char *) Data, "true"))) ? TRISTATE_TRUE : TRISTATE_FALSE;
2482 : break;
2483 : case REG_DWORD:
2484 : switch (((DWORD *) Data)[0]) {
2485 : case 0:
2486 : mpData->mnEnableATT = TRISTATE_FALSE;
2487 : break;
2488 : case 1:
2489 : mpData->mnEnableATT = TRISTATE_TRUE;
2490 : break;
2491 : default:
2492 : mpData->mnEnableATT = TRISTATE_INDET;
2493 : //TODO: or TRISTATE_TRUE?
2494 : break;
2495 : }
2496 : break;
2497 : default:
2498 : // Unsupported registry type
2499 : break;
2500 : }
2501 : }
2502 :
2503 : RegCloseKey(hkey);
2504 : }
2505 : }
2506 : #endif
2507 :
2508 60672 : if( mpData->mnEnableATT == TRISTATE_INDET )
2509 : {
2510 260 : static const char* pEnv = getenv("SAL_ACCESSIBILITY_ENABLED" );
2511 260 : if( !pEnv || !*pEnv )
2512 : {
2513 : OUString aEnable =
2514 : vcl::SettingsConfigItem::get()->
2515 : getValue( OUString( "Accessibility" ),
2516 260 : OUString( "EnableATToolSupport" ) );
2517 260 : mpData->mnEnableATT = aEnable.equalsIgnoreAsciiCase("true") ? TRISTATE_TRUE : TRISTATE_FALSE;
2518 : }
2519 : else
2520 : {
2521 0 : mpData->mnEnableATT = TRISTATE_TRUE;
2522 : }
2523 : }
2524 :
2525 60672 : return mpData->mnEnableATT != TRISTATE_FALSE;
2526 : }
2527 :
2528 : #ifdef WNT
2529 : void MiscSettings::SetEnableATToolSupport( bool bEnable )
2530 : {
2531 : if ( (bEnable ? TRISTATE_TRUE : TRISTATE_FALSE) != mpData->mnEnableATT )
2532 : {
2533 : if( bEnable && !ImplInitAccessBridge() )
2534 : return;
2535 :
2536 : HKEY hkey;
2537 :
2538 : // If the accessibility key in the Windows registry exists, change it synchronously
2539 : if( ERROR_SUCCESS == RegOpenKey(HKEY_CURRENT_USER,
2540 : "Software\\LibreOffice\\Accessibility\\AtToolSupport",
2541 : &hkey) )
2542 : {
2543 : DWORD dwType;
2544 : sal_uInt8 Data[6]; // possible values: "true", "false", 1, 0
2545 : DWORD cbData = sizeof(Data);
2546 :
2547 : if( ERROR_SUCCESS == RegQueryValueEx(hkey, "SupportAssistiveTechnology",
2548 : NULL, &dwType, Data, &cbData) )
2549 : {
2550 : switch (dwType)
2551 : {
2552 : case REG_SZ:
2553 : RegSetValueEx(hkey, "SupportAssistiveTechnology",
2554 : 0, dwType,
2555 : bEnable ? (sal_uInt8 *) "true" : (sal_uInt8 *) "false",
2556 : bEnable ? sizeof("true") : sizeof("false"));
2557 : break;
2558 : case REG_DWORD:
2559 : ((DWORD *) Data)[0] = bEnable ? 1 : 0;
2560 : RegSetValueEx(hkey, "SupportAssistiveTechnology",
2561 : 0, dwType, Data, sizeof(DWORD));
2562 : break;
2563 : default:
2564 : // Unsupported registry type
2565 : break;
2566 : }
2567 : }
2568 :
2569 : RegCloseKey(hkey);
2570 : }
2571 :
2572 : vcl::SettingsConfigItem::get()->
2573 : setValue( OUString( "Accessibility" ),
2574 : OUString( "EnableATToolSupport" ),
2575 : bEnable ? OUString("true") : OUString("false" ) );
2576 : mpData->mnEnableATT = bEnable ? TRISTATE_TRUE : TRISTATE_FALSE;
2577 : }
2578 : }
2579 : #endif
2580 :
2581 677 : void MiscSettings::SetEnableLocalizedDecimalSep( bool bEnable )
2582 : {
2583 677 : CopyData();
2584 677 : mpData->mbEnableLocalizedDecimalSep = bEnable;
2585 677 : }
2586 :
2587 0 : bool MiscSettings::GetEnableLocalizedDecimalSep() const
2588 : {
2589 0 : return mpData->mbEnableLocalizedDecimalSep;
2590 : }
2591 :
2592 5602 : bool MiscSettings::GetPseudoHeadless() const
2593 : {
2594 5602 : return mpData->mbPseudoHeadless;
2595 : }
2596 :
2597 677 : ImplHelpData::ImplHelpData()
2598 : {
2599 677 : mnTipDelay = 500;
2600 677 : mnTipTimeout = 3000;
2601 677 : mnBalloonDelay = 1500;
2602 677 : }
2603 :
2604 160 : ImplHelpData::ImplHelpData( const ImplHelpData& rData )
2605 : {
2606 160 : mnTipDelay = rData.mnTipDelay;
2607 160 : mnTipTimeout = rData.mnTipTimeout;
2608 160 : mnBalloonDelay = rData.mnBalloonDelay;
2609 160 : }
2610 :
2611 677 : HelpSettings::HelpSettings()
2612 677 : : mpData(boost::make_shared<ImplHelpData>())
2613 : {
2614 677 : }
2615 :
2616 85526 : HelpSettings::~HelpSettings()
2617 : {
2618 85526 : }
2619 :
2620 160 : void HelpSettings::CopyData()
2621 : {
2622 : // copy if other references exist
2623 160 : if ( ! mpData.unique() ) {
2624 160 : mpData = boost::make_shared<ImplHelpData>(*mpData);
2625 : }
2626 160 : }
2627 :
2628 88953 : bool HelpSettings::operator ==( const HelpSettings& rSet ) const
2629 : {
2630 88953 : if ( mpData == rSet.mpData )
2631 88473 : return true;
2632 :
2633 1440 : if ( (mpData->mnTipDelay == rSet.mpData->mnTipDelay ) &&
2634 480 : (mpData->mnTipTimeout == rSet.mpData->mnTipTimeout ) &&
2635 0 : (mpData->mnBalloonDelay == rSet.mpData->mnBalloonDelay ) )
2636 0 : return true;
2637 : else
2638 480 : return false;
2639 : }
2640 :
2641 : sal_uLong
2642 252 : HelpSettings::GetTipDelay() const
2643 : {
2644 252 : return mpData->mnTipDelay;
2645 : }
2646 :
2647 : void
2648 160 : HelpSettings::SetTipTimeout( sal_uLong nTipTimeout )
2649 : {
2650 160 : CopyData();
2651 160 : mpData->mnTipTimeout = nTipTimeout;
2652 160 : }
2653 :
2654 : sal_uLong
2655 0 : HelpSettings::GetTipTimeout() const
2656 : {
2657 0 : return mpData->mnTipTimeout;
2658 : }
2659 :
2660 : sal_uLong
2661 0 : HelpSettings::GetBalloonDelay() const
2662 : {
2663 0 : return mpData->mnBalloonDelay;
2664 : }
2665 :
2666 : bool
2667 88953 : HelpSettings::operator !=( const HelpSettings& rSet ) const
2668 : {
2669 88953 : return !(*this == rSet);
2670 : }
2671 :
2672 677 : ImplAllSettingsData::ImplAllSettingsData()
2673 : :
2674 : maLocale( LANGUAGE_SYSTEM ),
2675 677 : maUILocale( LANGUAGE_SYSTEM )
2676 : {
2677 677 : mnWindowUpdate = SETTINGS_ALLSETTINGS;
2678 677 : mpLocaleDataWrapper = NULL;
2679 677 : mpUILocaleDataWrapper = NULL;
2680 677 : mpI18nHelper = NULL;
2681 677 : mpUII18nHelper = NULL;
2682 677 : maMiscSettings.SetEnableLocalizedDecimalSep( maSysLocale.GetOptions().IsDecimalSeparatorAsLocale() );
2683 677 : }
2684 :
2685 84794 : ImplAllSettingsData::ImplAllSettingsData( const ImplAllSettingsData& rData ) :
2686 : maMouseSettings( rData.maMouseSettings ),
2687 : maStyleSettings( rData.maStyleSettings ),
2688 : maMiscSettings( rData.maMiscSettings ),
2689 : maHelpSettings( rData.maHelpSettings ),
2690 : maLocale( rData.maLocale ),
2691 84794 : maUILocale( rData.maUILocale )
2692 : {
2693 84794 : mnWindowUpdate = rData.mnWindowUpdate;
2694 : // Pointer couldn't shared and objects haven't a copy ctor
2695 : // So we create the cache objects new, if the GetFunction is
2696 : // called
2697 84794 : mpLocaleDataWrapper = NULL;
2698 84794 : mpUILocaleDataWrapper = NULL;
2699 84794 : mpI18nHelper = NULL;
2700 84794 : mpUII18nHelper = NULL;
2701 84794 : }
2702 :
2703 170732 : ImplAllSettingsData::~ImplAllSettingsData()
2704 : {
2705 85366 : delete mpLocaleDataWrapper;
2706 85366 : delete mpUILocaleDataWrapper;
2707 85366 : if ( mpI18nHelper )
2708 127 : delete mpI18nHelper;
2709 85366 : if ( mpUII18nHelper )
2710 59 : delete mpUII18nHelper;
2711 85366 : }
2712 :
2713 677 : AllSettings::AllSettings()
2714 677 : : mpData(boost::make_shared<ImplAllSettingsData>())
2715 : {
2716 677 : }
2717 :
2718 812991 : AllSettings::AllSettings( const AllSettings& rSet )
2719 : {
2720 812991 : mpData = rSet.mpData;
2721 812991 : }
2722 :
2723 812843 : AllSettings::~AllSettings()
2724 : {
2725 812843 : }
2726 :
2727 93456 : void AllSettings::CopyData()
2728 : {
2729 : // copy if other references exist
2730 93456 : if ( ! mpData.unique() ) {
2731 84794 : mpData = boost::make_shared<ImplAllSettingsData>(*mpData);
2732 : }
2733 :
2734 93456 : }
2735 :
2736 4676 : sal_uLong AllSettings::Update( sal_uLong nFlags, const AllSettings& rSet )
2737 : {
2738 :
2739 4676 : sal_uLong nChangeFlags = 0;
2740 :
2741 4676 : if ( nFlags & SETTINGS_MOUSE )
2742 : {
2743 4676 : if ( mpData->maMouseSettings != rSet.mpData->maMouseSettings )
2744 : {
2745 320 : CopyData();
2746 320 : mpData->maMouseSettings = rSet.mpData->maMouseSettings;
2747 320 : nChangeFlags |= SETTINGS_MOUSE;
2748 : }
2749 : }
2750 :
2751 4676 : if ( nFlags & SETTINGS_STYLE )
2752 : {
2753 4676 : if ( mpData->maStyleSettings != rSet.mpData->maStyleSettings )
2754 : {
2755 4356 : CopyData();
2756 4356 : mpData->maStyleSettings = rSet.mpData->maStyleSettings;
2757 4356 : nChangeFlags |= SETTINGS_STYLE;
2758 : }
2759 : }
2760 :
2761 4676 : if ( nFlags & SETTINGS_MISC )
2762 : {
2763 4676 : if ( mpData->maMiscSettings != rSet.mpData->maMiscSettings )
2764 : {
2765 0 : CopyData();
2766 0 : mpData->maMiscSettings = rSet.mpData->maMiscSettings;
2767 0 : nChangeFlags |= SETTINGS_MISC;
2768 : }
2769 : }
2770 :
2771 4676 : if ( nFlags & SETTINGS_HELP )
2772 : {
2773 4676 : if ( mpData->maHelpSettings != rSet.mpData->maHelpSettings )
2774 : {
2775 320 : CopyData();
2776 320 : mpData->maHelpSettings = rSet.mpData->maHelpSettings;
2777 320 : nChangeFlags |= SETTINGS_HELP;
2778 : }
2779 : }
2780 :
2781 4676 : if ( nFlags & SETTINGS_LOCALE )
2782 : {
2783 4676 : if ( mpData->maLocale != rSet.mpData->maLocale )
2784 : {
2785 1022 : SetLanguageTag( rSet.mpData->maLocale );
2786 1022 : nChangeFlags |= SETTINGS_LOCALE;
2787 : }
2788 : }
2789 :
2790 4676 : if ( nFlags & SETTINGS_UILOCALE )
2791 : {
2792 : // UILocale can't be changed
2793 : }
2794 :
2795 4676 : return nChangeFlags;
2796 : }
2797 :
2798 84277 : sal_uLong AllSettings::GetChangeFlags( const AllSettings& rSet ) const
2799 : {
2800 :
2801 84277 : sal_uLong nChangeFlags = 0;
2802 :
2803 84277 : if ( mpData->maMouseSettings != rSet.mpData->maMouseSettings )
2804 2712 : nChangeFlags |= SETTINGS_MOUSE;
2805 :
2806 84277 : if ( mpData->maStyleSettings != rSet.mpData->maStyleSettings )
2807 1172 : nChangeFlags |= SETTINGS_STYLE;
2808 :
2809 84277 : if ( mpData->maMiscSettings != rSet.mpData->maMiscSettings )
2810 0 : nChangeFlags |= SETTINGS_MISC;
2811 :
2812 84277 : if ( mpData->maHelpSettings != rSet.mpData->maHelpSettings )
2813 160 : nChangeFlags |= SETTINGS_HELP;
2814 :
2815 84277 : if ( mpData->maLocale != rSet.mpData->maLocale )
2816 12 : nChangeFlags |= SETTINGS_LOCALE;
2817 :
2818 84277 : return nChangeFlags;
2819 : }
2820 :
2821 0 : bool AllSettings::operator ==( const AllSettings& rSet ) const
2822 : {
2823 :
2824 0 : if ( mpData == rSet.mpData )
2825 0 : return true;
2826 :
2827 0 : if ( (mpData->maMouseSettings == rSet.mpData->maMouseSettings) &&
2828 0 : (mpData->maStyleSettings == rSet.mpData->maStyleSettings) &&
2829 0 : (mpData->maMiscSettings == rSet.mpData->maMiscSettings) &&
2830 0 : (mpData->maHelpSettings == rSet.mpData->maHelpSettings) &&
2831 0 : (mpData->maLocale == rSet.mpData->maLocale) &&
2832 0 : (mpData->mnWindowUpdate == rSet.mpData->mnWindowUpdate) )
2833 : {
2834 0 : return true;
2835 : }
2836 : else
2837 0 : return false;
2838 : }
2839 :
2840 1030 : void AllSettings::SetLanguageTag( const LanguageTag& rLanguageTag )
2841 : {
2842 1030 : if (mpData->maLocale != rLanguageTag)
2843 : {
2844 1030 : CopyData();
2845 :
2846 1030 : mpData->maLocale = rLanguageTag;
2847 :
2848 1030 : if ( mpData->mpLocaleDataWrapper )
2849 : {
2850 0 : delete mpData->mpLocaleDataWrapper;
2851 0 : mpData->mpLocaleDataWrapper = NULL;
2852 : }
2853 1030 : if ( mpData->mpI18nHelper )
2854 : {
2855 0 : delete mpData->mpI18nHelper;
2856 0 : mpData->mpI18nHelper = NULL;
2857 : }
2858 : }
2859 1030 : }
2860 :
2861 0 : void AllSettings::SetUILanguageTag( const LanguageTag& )
2862 : {
2863 : // there is only one UILocale per process
2864 0 : }
2865 :
2866 : namespace
2867 : {
2868 2261376 : bool GetConfigLayoutRTL(bool bMath)
2869 : {
2870 2261376 : static const char* pEnv = getenv("SAL_RTL_ENABLED" );
2871 : static int nUIMirroring = -1; // -1: undef, 0: auto, 1: on 2: off
2872 :
2873 : // environment always overrides
2874 2261376 : if( pEnv )
2875 0 : return true;
2876 :
2877 2261376 : bool bRTL = false;
2878 :
2879 2261376 : if( nUIMirroring == -1 )
2880 : {
2881 318 : nUIMirroring = 0; // ask configuration only once
2882 : utl::OConfigurationNode aNode = utl::OConfigurationTreeRoot::tryCreateWithComponentContext(
2883 : comphelper::getProcessComponentContext(),
2884 318 : OUString("org.openoffice.Office.Common/I18N/CTL") ); // note: case sensitive !
2885 318 : if ( aNode.isValid() )
2886 : {
2887 318 : bool bTmp = bool();
2888 318 : ::com::sun::star::uno::Any aValue = aNode.getNodeValue( OUString("UIMirroring") );
2889 318 : if( aValue >>= bTmp )
2890 : {
2891 : // found true or false; if it was nil, nothing is changed
2892 0 : nUIMirroring = bTmp ? 1 : 2;
2893 318 : }
2894 318 : }
2895 : }
2896 :
2897 2261376 : if( nUIMirroring == 0 ) // no config found (eg, setup) or default (nil) was set: check language
2898 : {
2899 2261376 : LanguageType aLang = LANGUAGE_DONTKNOW;
2900 2261376 : ImplSVData* pSVData = ImplGetSVData();
2901 2261376 : if ( pSVData->maAppData.mpSettings )
2902 2261376 : aLang = pSVData->maAppData.mpSettings->GetUILanguageTag().getLanguageType();
2903 2261376 : if (bMath)
2904 54 : bRTL = MsLangId::isRightToLeftMath( aLang );
2905 : else
2906 2261322 : bRTL = MsLangId::isRightToLeft( aLang );
2907 : }
2908 : else
2909 0 : bRTL = (nUIMirroring == 1);
2910 :
2911 2261376 : return bRTL;
2912 : }
2913 : }
2914 :
2915 2261322 : bool AllSettings::GetLayoutRTL() const
2916 : {
2917 2261322 : return GetConfigLayoutRTL(false);
2918 : }
2919 :
2920 54 : bool AllSettings::GetMathLayoutRTL() const
2921 : {
2922 54 : return GetConfigLayoutRTL(true);
2923 : }
2924 :
2925 3088573 : const LanguageTag& AllSettings::GetLanguageTag() const
2926 : {
2927 : // SYSTEM locale means: use settings from SvtSysLocale that is resolved
2928 3088573 : if ( mpData->maLocale.isSystemLocale() )
2929 192 : mpData->maLocale = mpData->maSysLocale.GetLanguageTag();
2930 :
2931 3088573 : return mpData->maLocale;
2932 : }
2933 :
2934 2453679 : const LanguageTag& AllSettings::GetUILanguageTag() const
2935 : {
2936 : // the UILocale is never changed
2937 2453679 : if ( mpData->maUILocale.isSystemLocale() )
2938 339 : mpData->maUILocale = mpData->maSysLocale.GetUILanguageTag();
2939 :
2940 2453679 : return mpData->maUILocale;
2941 : }
2942 :
2943 1780 : const LocaleDataWrapper& AllSettings::GetLocaleDataWrapper() const
2944 : {
2945 1780 : if ( !mpData->mpLocaleDataWrapper )
2946 28 : ((AllSettings*)this)->mpData->mpLocaleDataWrapper = new LocaleDataWrapper(
2947 56 : comphelper::getProcessComponentContext(), GetLanguageTag() );
2948 1780 : return *mpData->mpLocaleDataWrapper;
2949 : }
2950 :
2951 0 : const LocaleDataWrapper& AllSettings::GetUILocaleDataWrapper() const
2952 : {
2953 0 : if ( !mpData->mpUILocaleDataWrapper )
2954 0 : ((AllSettings*)this)->mpData->mpUILocaleDataWrapper = new LocaleDataWrapper(
2955 0 : comphelper::getProcessComponentContext(), GetUILanguageTag() );
2956 0 : return *mpData->mpUILocaleDataWrapper;
2957 : }
2958 :
2959 20408 : const vcl::I18nHelper& AllSettings::GetLocaleI18nHelper() const
2960 : {
2961 20408 : if ( !mpData->mpI18nHelper ) {
2962 138 : ((AllSettings*)this)->mpData->mpI18nHelper = new vcl::I18nHelper(
2963 276 : comphelper::getProcessComponentContext(), GetLanguageTag() );
2964 : }
2965 20408 : return *mpData->mpI18nHelper;
2966 : }
2967 :
2968 4706 : const vcl::I18nHelper& AllSettings::GetUILocaleI18nHelper() const
2969 : {
2970 4706 : if ( !mpData->mpUII18nHelper ) {
2971 88 : ((AllSettings*)this)->mpData->mpUII18nHelper = new vcl::I18nHelper(
2972 176 : comphelper::getProcessComponentContext(), GetUILanguageTag() );
2973 : }
2974 4706 : return *mpData->mpUII18nHelper;
2975 : }
2976 :
2977 2 : void AllSettings::LocaleSettingsChanged( sal_uInt32 nHint )
2978 : {
2979 2 : AllSettings aAllSettings( Application::GetSettings() );
2980 2 : if ( nHint & SYSLOCALEOPTIONS_HINT_DECSEP )
2981 : {
2982 0 : MiscSettings aMiscSettings = aAllSettings.GetMiscSettings();
2983 0 : bool bIsDecSepAsLocale = aAllSettings.mpData->maSysLocale.GetOptions().IsDecimalSeparatorAsLocale();
2984 0 : if ( aMiscSettings.GetEnableLocalizedDecimalSep() != bIsDecSepAsLocale )
2985 : {
2986 0 : aMiscSettings.SetEnableLocalizedDecimalSep( bIsDecSepAsLocale );
2987 0 : aAllSettings.SetMiscSettings( aMiscSettings );
2988 0 : }
2989 : }
2990 :
2991 2 : if ( (nHint & SYSLOCALEOPTIONS_HINT_LOCALE) )
2992 2 : aAllSettings.SetLanguageTag( aAllSettings.mpData->maSysLocale.GetOptions().GetLanguageTag() );
2993 :
2994 2 : Application::SetSettings( aAllSettings );
2995 2 : }
2996 :
2997 : const StyleSettings&
2998 5282297 : AllSettings::GetStyleSettings() const
2999 : {
3000 5282297 : return mpData->maStyleSettings;
3001 : }
3002 :
3003 : sal_uLong
3004 485660 : StyleSettings::GetOptions() const
3005 : {
3006 485660 : return mpData->mnOptions;
3007 : }
3008 :
3009 : std::vector<vcl::IconThemeInfo>
3010 0 : StyleSettings::GetInstalledIconThemes() const
3011 : {
3012 0 : return mpData->mIconThemeScanner->GetFoundIconThemes();
3013 : }
3014 :
3015 : /*static*/ OUString
3016 544 : StyleSettings::GetAutomaticallyChosenIconTheme() const
3017 : {
3018 544 : OUString desktopEnvironment = Application::GetDesktopEnvironment();
3019 544 : OUString themeName = mpData->mIconThemeSelector->SelectIconThemeForDesktopEnvironment(
3020 544 : mpData->mIconThemeScanner->GetFoundIconThemes(),
3021 : desktopEnvironment
3022 544 : );
3023 544 : return themeName;
3024 : }
3025 :
3026 : void
3027 544 : StyleSettings::SetIconTheme(const OUString& theme)
3028 : {
3029 544 : CopyData();
3030 544 : mpData->mIconTheme = theme;
3031 544 : }
3032 :
3033 : OUString
3034 344126 : StyleSettings::DetermineIconTheme() const
3035 : {
3036 344126 : OUString r = mpData->mIconThemeSelector->SelectIconTheme(
3037 344126 : mpData->mIconThemeScanner->GetFoundIconThemes(),
3038 344126 : mpData->mIconTheme
3039 688252 : );
3040 344126 : return r;
3041 : }
3042 :
3043 : void
3044 1140 : StyleSettings::SetHighContrastMode(bool bHighContrast )
3045 : {
3046 1140 : if (mpData->mbHighContrast == bHighContrast) {
3047 2280 : return;
3048 : }
3049 :
3050 0 : CopyData();
3051 0 : mpData->mbHighContrast = bHighContrast;
3052 0 : mpData->mIconThemeSelector->SetUseHighContrastTheme(bHighContrast);
3053 : }
3054 :
3055 : bool
3056 395805 : StyleSettings::GetHighContrastMode() const
3057 : {
3058 395805 : return mpData->mbHighContrast;
3059 : }
3060 :
3061 : void
3062 0 : StyleSettings::SetPreferredIconTheme(const OUString& theme)
3063 : {
3064 0 : mpData->mIconThemeSelector->SetPreferredIconTheme(theme);
3065 0 : }
3066 :
3067 : void
3068 5877 : AllSettings::SetMouseSettings( const MouseSettings& rSet )
3069 : {
3070 5877 : CopyData();
3071 5877 : mpData->maMouseSettings = rSet;
3072 5877 : }
3073 :
3074 : const MouseSettings&
3075 16023 : AllSettings::GetMouseSettings() const
3076 : {
3077 16023 : return mpData->maMouseSettings;
3078 : }
3079 :
3080 : void
3081 81393 : AllSettings::SetStyleSettings( const StyleSettings& rSet )
3082 : {
3083 81393 : CopyData();
3084 81393 : mpData->maStyleSettings = rSet;
3085 81393 : }
3086 :
3087 : void
3088 0 : AllSettings::SetMiscSettings( const MiscSettings& rSet )
3089 : {
3090 0 : CopyData();
3091 0 : mpData->maMiscSettings = rSet;
3092 0 : }
3093 :
3094 : const MiscSettings&
3095 69396 : AllSettings::GetMiscSettings() const
3096 : {
3097 69396 : return mpData->maMiscSettings;
3098 : }
3099 :
3100 : void
3101 160 : AllSettings::SetHelpSettings( const HelpSettings& rSet )
3102 : {
3103 160 : CopyData();
3104 160 : mpData->maHelpSettings = rSet;
3105 160 : }
3106 :
3107 : const HelpSettings&
3108 286 : AllSettings::GetHelpSettings() const
3109 : {
3110 286 : return mpData->maHelpSettings;
3111 : }
3112 :
3113 : sal_uLong
3114 4676 : AllSettings::GetWindowUpdate() const
3115 : {
3116 4676 : return mpData->mnWindowUpdate;
3117 : }
3118 :
3119 : bool
3120 0 : AllSettings::operator !=( const AllSettings& rSet ) const
3121 : {
3122 0 : return !(*this == rSet);
3123 : }
3124 :
3125 : SvtSysLocale&
3126 668 : AllSettings::GetSysLocale()
3127 : {
3128 668 : return mpData->maSysLocale;
3129 1233 : }
3130 :
3131 : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|