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 : #ifndef INCLUDED_VCL_SETTINGS_HXX
21 : #define INCLUDED_VCL_SETTINGS_HXX
22 :
23 : #include <tools/solar.h>
24 : #include <vcl/dllapi.h>
25 : #include <tools/color.hxx>
26 : #include <vcl/bitmapex.hxx>
27 : #include <vcl/font.hxx>
28 : #include <vcl/accel.hxx>
29 : #include <vcl/wall.hxx>
30 : #include <i18nlangtag/languagetag.hxx>
31 : #include <unotools/syslocale.hxx>
32 :
33 : #include <boost/optional.hpp>
34 : #include <boost/shared_ptr.hpp>
35 :
36 : class CollatorWrapper;
37 : class LocaleDataWrapper;
38 : struct ImplMouseData;
39 : struct ImplMiscData;
40 : struct ImplHelpData;
41 : struct ImplStyleData;
42 : struct ImplAllSettingsData;
43 :
44 : namespace vcl {
45 : class I18nHelper;
46 : class IconThemeScanner;
47 : class IconThemeSelector;
48 : class IconThemeInfo;
49 : }
50 :
51 : // - MouseSettings -
52 :
53 : #define MOUSE_OPTION_AUTOFOCUS ((sal_uLong)0x00000001)
54 : #define MOUSE_OPTION_AUTOCENTERPOS ((sal_uLong)0x00000002)
55 : #define MOUSE_OPTION_AUTODEFBTNPOS ((sal_uLong)0x00000004)
56 :
57 : #define MOUSE_FOLLOW_MENU ((sal_uLong)0x00000001)
58 : #define MOUSE_FOLLOW_DDLIST ((sal_uLong)0x00000002)
59 :
60 : #define MOUSE_MIDDLE_NOTHING ((sal_uInt16)0)
61 : #define MOUSE_MIDDLE_AUTOSCROLL ((sal_uInt16)1)
62 : #define MOUSE_MIDDLE_PASTESELECTION ((sal_uInt16)2)
63 :
64 : #define MOUSE_WHEEL_DISABLE ((sal_uInt16)0)
65 : #define MOUSE_WHEEL_FOCUS_ONLY ((sal_uInt16)1)
66 : #define MOUSE_WHEEL_ALWAYS ((sal_uInt16)2)
67 :
68 96868 : class VCL_DLLPUBLIC MouseSettings
69 : {
70 : private:
71 : void CopyData();
72 : boost::shared_ptr<ImplMouseData> mpData;
73 :
74 : public:
75 : MouseSettings();
76 :
77 : ~MouseSettings();
78 :
79 : void SetOptions( sal_uLong nOptions );
80 : sal_uLong GetOptions() const;
81 :
82 : void SetDoubleClickTime( sal_uLong nDoubleClkTime );
83 : sal_uLong GetDoubleClickTime() const;
84 :
85 : void SetDoubleClickWidth( long nDoubleClkWidth );
86 : long GetDoubleClickWidth() const;
87 :
88 : void SetDoubleClickHeight( long nDoubleClkHeight );
89 : long GetDoubleClickHeight() const;
90 :
91 : void SetStartDragWidth( long nDragWidth );
92 : long GetStartDragWidth() const;
93 :
94 : void SetStartDragHeight( long nDragHeight );
95 : long GetStartDragHeight() const;
96 :
97 : sal_uInt16 GetStartDragCode() const;
98 :
99 : sal_uInt16 GetContextMenuCode() const;
100 :
101 : sal_uInt16 GetContextMenuClicks() const;
102 :
103 : sal_uLong GetScrollRepeat() const;
104 :
105 : sal_uLong GetButtonStartRepeat() const;
106 :
107 : void SetButtonRepeat( sal_uLong nRepeat );
108 : sal_uLong GetButtonRepeat() const;
109 :
110 : sal_uLong GetActionDelay() const;
111 :
112 : void SetMenuDelay( sal_uLong nDelay );
113 : sal_uLong GetMenuDelay() const;
114 :
115 : void SetFollow( sal_uLong nFollow );
116 : sal_uLong GetFollow() const;
117 :
118 : void SetMiddleButtonAction( sal_uInt16 nAction );
119 : sal_uInt16 GetMiddleButtonAction() const;
120 :
121 : void SetWheelBehavior( sal_uInt16 nBehavior );
122 : sal_uInt16 GetWheelBehavior() const;
123 :
124 : bool operator ==( const MouseSettings& rSet ) const;
125 : bool operator !=( const MouseSettings& rSet ) const;
126 : };
127 :
128 : struct DialogStyle
129 : {
130 : int content_area_border;
131 : int content_area_spacing;
132 : int button_spacing;
133 : int action_area_border;
134 677 : DialogStyle()
135 : : content_area_border(2)
136 : , content_area_spacing(0)
137 : , button_spacing(6)
138 677 : , action_area_border(5)
139 677 : {}
140 : };
141 :
142 : struct FrameStyle
143 : {
144 : int left;
145 : int right;
146 : int top;
147 : int bottom;
148 677 : FrameStyle()
149 : : left(0)
150 : , right(0)
151 : , top(0)
152 677 : , bottom(0)
153 677 : {}
154 : };
155 :
156 : #define DEFAULT_WORKSPACE_GRADIENT_START_COLOR Color( 0xa3, 0xae, 0xb8 )
157 : #define DEFAULT_WORKSPACE_GRADIENT_END_COLOR Color( 0x73, 0x7e, 0x88 )
158 :
159 :
160 : // - StyleSettings -
161 :
162 :
163 : #define STYLE_OPTION_MONO ((sal_uLong)0x00000001)
164 : #define STYLE_OPTION_COLOR ((sal_uLong)0x00000002)
165 : #define STYLE_OPTION_FLAT ((sal_uLong)0x00000004)
166 : #define STYLE_OPTION_GREAT ((sal_uLong)0x00000008)
167 : #define STYLE_OPTION_HIGHLIGHT ((sal_uLong)0x00000010)
168 : #define STYLE_OPTION_ADVANCEDUSER ((sal_uLong)0x00000020)
169 : #define STYLE_OPTION_SCROLLARROW ((sal_uLong)0x00000040)
170 : #define STYLE_OPTION_SPINARROW ((sal_uLong)0x00000080)
171 : #define STYLE_OPTION_SPINUPDOWN ((sal_uLong)0x00000100)
172 : #define STYLE_OPTION_NOMNEMONICS ((sal_uLong)0x00000200)
173 :
174 : #define DRAGFULL_OPTION_WINDOWMOVE ((sal_uLong)0x00000001)
175 : #define DRAGFULL_OPTION_WINDOWSIZE ((sal_uLong)0x00000002)
176 : #define DRAGFULL_OPTION_DOCKING ((sal_uLong)0x00000010)
177 : #define DRAGFULL_OPTION_SPLIT ((sal_uLong)0x00000020)
178 : #define DRAGFULL_OPTION_SCROLL ((sal_uLong)0x00000040)
179 : #define DRAGFULL_OPTION_ALL \
180 : ( DRAGFULL_OPTION_WINDOWMOVE | DRAGFULL_OPTION_WINDOWSIZE \
181 : | DRAGFULL_OPTION_DOCKING | DRAGFULL_OPTION_SPLIT \
182 : | DRAGFULL_OPTION_SCROLL )
183 :
184 : #define SELECTION_OPTION_WORD ((sal_uLong)0x00000001)
185 : #define SELECTION_OPTION_FOCUS ((sal_uLong)0x00000002)
186 : #define SELECTION_OPTION_INVERT ((sal_uLong)0x00000004)
187 : #define SELECTION_OPTION_SHOWFIRST ((sal_uLong)0x00000008)
188 :
189 : #define DISPLAY_OPTION_AA_DISABLE ((sal_uLong)0x00000001)
190 :
191 : #define STYLE_RADIOBUTTON_MONO ((sal_uInt16)0x0001) // legacy
192 : #define STYLE_CHECKBOX_MONO ((sal_uInt16)0x0001) // legacy
193 :
194 : #define STYLE_TOOLBAR_ICONSIZE_UNKNOWN ((sal_uLong)0)
195 : #define STYLE_TOOLBAR_ICONSIZE_SMALL ((sal_uLong)1)
196 : #define STYLE_TOOLBAR_ICONSIZE_LARGE ((sal_uLong)2)
197 :
198 : #define STYLE_CURSOR_NOBLINKTIME ((sal_uLong)0xFFFFFFFF)
199 :
200 528490 : class VCL_DLLPUBLIC StyleSettings
201 : {
202 : void CopyData();
203 :
204 : private:
205 : boost::shared_ptr<ImplStyleData> mpData;
206 :
207 : public:
208 : StyleSettings();
209 : ~StyleSettings();
210 :
211 : void Set3DColors( const Color& rColor );
212 :
213 : void SetFaceColor( const Color& rColor );
214 : const Color& GetFaceColor() const;
215 :
216 : Color GetFaceGradientColor() const;
217 :
218 : Color GetSeparatorColor() const;
219 :
220 : void SetCheckedColor( const Color& rColor );
221 : void SetCheckedColorSpecialCase( );
222 : const Color& GetCheckedColor() const;
223 :
224 : void SetLightColor( const Color& rColor );
225 : const Color& GetLightColor() const;
226 :
227 : void SetLightBorderColor( const Color& rColor );
228 : const Color& GetLightBorderColor() const;
229 :
230 : void SetShadowColor( const Color& rColor );
231 : const Color& GetShadowColor() const;
232 :
233 : void SetDarkShadowColor( const Color& rColor );
234 : const Color& GetDarkShadowColor() const;
235 :
236 : void SetButtonTextColor( const Color& rColor );
237 : const Color& GetButtonTextColor() const;
238 :
239 : void SetButtonRolloverTextColor( const Color& rColor );
240 : const Color& GetButtonRolloverTextColor() const;
241 :
242 : void SetRadioCheckTextColor( const Color& rColor );
243 : const Color& GetRadioCheckTextColor() const;
244 :
245 : void SetGroupTextColor( const Color& rColor );
246 : const Color& GetGroupTextColor() const;
247 :
248 : void SetLabelTextColor( const Color& rColor );
249 : const Color& GetLabelTextColor() const;
250 :
251 : void SetInfoTextColor( const Color& rColor );
252 : const Color& GetInfoTextColor() const;
253 :
254 : void SetWindowColor( const Color& rColor );
255 : const Color& GetWindowColor() const;
256 :
257 : void SetWindowTextColor( const Color& rColor );
258 : const Color& GetWindowTextColor() const;
259 :
260 : void SetDialogColor( const Color& rColor );
261 : const Color& GetDialogColor() const;
262 :
263 : void SetDialogTextColor( const Color& rColor );
264 : const Color& GetDialogTextColor() const;
265 :
266 : void SetWorkspaceColor( const Color& rColor );
267 : const Color& GetWorkspaceColor() const;
268 :
269 : void SetFieldColor( const Color& rColor );
270 : const Color& GetFieldColor() const;
271 :
272 : void SetFieldTextColor( const Color& rColor );
273 : const Color& GetFieldTextColor() const;
274 :
275 : void SetFieldRolloverTextColor( const Color& rColor );
276 : const Color& GetFieldRolloverTextColor() const;
277 :
278 : void SetActiveColor( const Color& rColor );
279 : const Color& GetActiveColor() const;
280 :
281 : void SetActiveColor2( const Color& rColor );
282 : const Color& GetActiveColor2() const;
283 :
284 : void SetActiveTextColor( const Color& rColor );
285 : const Color& GetActiveTextColor() const;
286 :
287 : void SetActiveBorderColor( const Color& rColor );
288 : const Color& GetActiveBorderColor() const;
289 :
290 : void SetDeactiveColor( const Color& rColor );
291 : const Color& GetDeactiveColor() const;
292 :
293 : void SetDeactiveColor2( const Color& rColor );
294 : const Color& GetDeactiveColor2() const;
295 :
296 : void SetDeactiveTextColor( const Color& rColor );
297 : const Color& GetDeactiveTextColor() const;
298 :
299 : void SetDeactiveBorderColor( const Color& rColor );
300 : const Color& GetDeactiveBorderColor() const;
301 :
302 : void SetHighlightColor( const Color& rColor );
303 : const Color& GetHighlightColor() const;
304 :
305 : void SetHighlightTextColor( const Color& rColor );
306 : const Color& GetHighlightTextColor() const;
307 :
308 : void SetDisableColor( const Color& rColor );
309 : const Color& GetDisableColor() const;
310 :
311 : void SetHelpColor( const Color& rColor );
312 : const Color& GetHelpColor() const;
313 :
314 : void SetHelpTextColor( const Color& rColor );
315 : const Color& GetHelpTextColor() const;
316 :
317 : void SetMenuColor( const Color& rColor );
318 : const Color& GetMenuColor() const;
319 :
320 : void SetMenuBarColor( const Color& rColor );
321 : const Color& GetMenuBarColor() const;
322 :
323 : void SetMenuBarRolloverColor( const Color& rColor );
324 : const Color& GetMenuBarRolloverColor() const;
325 :
326 : void SetMenuBorderColor( const Color& rColor );
327 : const Color& GetMenuBorderColor() const;
328 :
329 : void SetMenuTextColor( const Color& rColor );
330 : const Color& GetMenuTextColor() const;
331 :
332 : void SetMenuBarTextColor( const Color& rColor );
333 : const Color& GetMenuBarTextColor() const;
334 :
335 : void SetMenuBarRolloverTextColor( const Color& rColor );
336 : const Color& GetMenuBarRolloverTextColor() const;
337 :
338 : void SetMenuHighlightColor( const Color& rColor );
339 : const Color& GetMenuHighlightColor() const;
340 :
341 : void SetMenuHighlightTextColor( const Color& rColor );
342 : const Color& GetMenuHighlightTextColor() const;
343 :
344 : void SetLinkColor( const Color& rColor );
345 : const Color& GetLinkColor() const;
346 :
347 : void SetVisitedLinkColor( const Color& rColor );
348 : const Color& GetVisitedLinkColor() const;
349 :
350 : const Color& GetHighlightLinkColor() const;
351 :
352 : void SetMonoColor( const Color& rColor );
353 : const Color& GetMonoColor() const;
354 :
355 : void SetActiveTabColor( const Color& rColor );
356 : const Color& GetActiveTabColor() const;
357 :
358 : void SetInactiveTabColor( const Color& rColor );
359 : const Color& GetInactiveTabColor() const;
360 :
361 : void SetRowColor( const Color& rColor );
362 : const Color& GetRowColor() const;
363 :
364 : void SetAlternatingRowColor( const Color& rColor );
365 : const Color& GetAlternatingRowColor() const;
366 :
367 : void SetHighContrastMode(bool bHighContrast );
368 : bool GetHighContrastMode() const;
369 :
370 : void SetUseSystemUIFonts( bool bUseSystemUIFonts );
371 : bool GetUseSystemUIFonts() const;
372 :
373 : void SetUseFlatBorders( bool bUseFlatBorders );
374 : bool GetUseFlatBorders() const;
375 :
376 : void SetUseFlatMenus( bool bUseFlatMenus );
377 : bool GetUseFlatMenus() const;
378 :
379 : void SetUseImagesInMenus( TriState eUseImagesInMenus );
380 : bool GetUseImagesInMenus() const;
381 :
382 : void SetPreferredUseImagesInMenus( bool bPreferredUseImagesInMenus );
383 : bool GetPreferredUseImagesInMenus() const;
384 :
385 : void SetSkipDisabledInMenus( bool bSkipDisabledInMenus );
386 : bool GetSkipDisabledInMenus() const;
387 :
388 : void SetHideDisabledMenuItems( bool bHideDisabledMenuItems );
389 : bool GetHideDisabledMenuItems() const;
390 :
391 : void SetAcceleratorsInContextMenus( bool bAcceleratorsInContextMenus );
392 : bool GetAcceleratorsInContextMenus() const;
393 :
394 : void SetPrimaryButtonWarpsSlider( bool bPrimaryButtonWarpsSlider );
395 : bool GetPrimaryButtonWarpsSlider() const;
396 :
397 : void SetCairoFontOptions( const void *pOptions );
398 : const void* GetCairoFontOptions() const;
399 :
400 : void SetAppFont( const vcl::Font& rFont );
401 : const vcl::Font& GetAppFont() const;
402 :
403 : void SetHelpFont( const vcl::Font& rFont );
404 : const vcl::Font& GetHelpFont() const;
405 :
406 : void SetTitleFont( const vcl::Font& rFont );
407 : const vcl::Font& GetTitleFont() const;
408 :
409 : void SetFloatTitleFont( const vcl::Font& rFont );
410 : const vcl::Font& GetFloatTitleFont() const;
411 :
412 : void SetMenuFont( const vcl::Font& rFont );
413 : const vcl::Font& GetMenuFont() const;
414 :
415 : void SetToolFont( const vcl::Font& rFont );
416 : const vcl::Font& GetToolFont() const;
417 :
418 : void SetGroupFont( const vcl::Font& rFont );
419 : const vcl::Font& GetGroupFont() const;
420 :
421 : void SetLabelFont( const vcl::Font& rFont );
422 : const vcl::Font& GetLabelFont() const;
423 :
424 : void SetInfoFont( const vcl::Font& rFont );
425 : const vcl::Font& GetInfoFont() const;
426 :
427 : void SetRadioCheckFont( const vcl::Font& rFont );
428 : const vcl::Font& GetRadioCheckFont() const;
429 :
430 : void SetPushButtonFont( const vcl::Font& rFont );
431 : const vcl::Font& GetPushButtonFont() const;
432 :
433 : void SetFieldFont( const vcl::Font& rFont );
434 : const vcl::Font& GetFieldFont() const;
435 :
436 : void SetIconFont( const vcl::Font& rFont );
437 : const vcl::Font& GetIconFont() const;
438 :
439 : long GetBorderSize() const;
440 :
441 : void SetTitleHeight( long nSize );
442 : long GetTitleHeight() const;
443 :
444 : void SetFloatTitleHeight( long nSize );
445 : long GetFloatTitleHeight() const;
446 :
447 : long GetTearOffTitleHeight() const;
448 :
449 : void SetScrollBarSize( long nSize );
450 : long GetScrollBarSize() const;
451 :
452 : void SetMinThumbSize( long nSize );
453 : long GetMinThumbSize() const;
454 :
455 : void SetSpinSize( long nSize );
456 : long GetSpinSize() const;
457 :
458 : long GetSplitSize() const;
459 :
460 : void SetCursorSize( long nSize );
461 : long GetCursorSize() const;
462 :
463 : void SetCursorBlinkTime( long nBlinkTime );
464 : long GetCursorBlinkTime() const;
465 :
466 : void SetScreenZoom( sal_uInt16 nPercent );
467 : sal_uInt16 GetScreenZoom() const;
468 :
469 : void SetScreenFontZoom( sal_uInt16 nPercent );
470 : sal_uInt16 GetScreenFontZoom() const;
471 :
472 : void SetDragFullOptions( sal_uLong nOptions );
473 : sal_uLong GetDragFullOptions() const;
474 :
475 : void SetSelectionOptions( sal_uLong nOptions );
476 : sal_uLong GetSelectionOptions() const;
477 :
478 : void SetDisplayOptions( sal_uLong nOptions );
479 : sal_uLong GetDisplayOptions() const;
480 :
481 : void SetAntialiasingMinPixelHeight( long nMinPixel );
482 : sal_uLong GetAntialiasingMinPixelHeight() const;
483 :
484 : void SetOptions( sal_uLong nOptions );
485 : sal_uLong GetOptions() const;
486 :
487 : void SetAutoMnemonic( bool bAutoMnemonic );
488 : bool GetAutoMnemonic() const;
489 :
490 : void SetFontColor( const Color& rColor );
491 : const Color& GetFontColor() const;
492 :
493 : void SetToolbarIconSize( sal_uLong nSize );
494 : sal_uLong GetToolbarIconSize() const;
495 :
496 : /** Set the icon theme to use. */
497 : void SetIconTheme(const OUString&);
498 :
499 : /** Determine which icon theme should be used.
500 : *
501 : * This might not be the same as the one which has been set with SetIconTheme(),
502 : * e.g., if high contrast mode is enabled.
503 : *
504 : * (for the detailed logic @see vcl::IconThemeSelector)
505 : */
506 : OUString DetermineIconTheme() const;
507 :
508 : /** Obtain the list of icon themes which were found in the config folder
509 : * @see vcl::IconThemeScanner for more details.
510 : */
511 : std::vector<vcl::IconThemeInfo> GetInstalledIconThemes() const;
512 :
513 : /** Obtain the name of the icon theme which will be chosen automatically for the desktop environment.
514 : * This method will only return icon themes which were actually found on the system.
515 : */
516 : OUString GetAutomaticallyChosenIconTheme() const;
517 :
518 : /** Set a preferred icon theme.
519 : * This theme will be preferred in GetAutomaticallyChosenIconTheme()
520 : */
521 : void SetPreferredIconTheme(const OUString&);
522 :
523 : const DialogStyle& GetDialogStyle() const;
524 : void SetDialogStyle( const DialogStyle& rStyle );
525 :
526 : const FrameStyle& GetFrameStyle() const;
527 : void SetFrameStyle( const FrameStyle& rStyle );
528 :
529 : const BitmapEx GetPersonaHeader() const;
530 :
531 : const BitmapEx GetPersonaFooter() const;
532 :
533 : const boost::optional<Color>& GetPersonaMenuBarTextColor() const;
534 :
535 : // global switch to allow EdgeBlenging; currently possible for ValueSet and ListBox
536 : // when activated there using Get/SetEdgeBlending; default is true
537 : void SetEdgeBlending(sal_uInt16 nCount);
538 : sal_uInt16 GetEdgeBlending() const;
539 :
540 : // TopLeft (default RGB_COLORDATA(0xC0, 0xC0, 0xC0)) and BottomRight (default RGB_COLORDATA(0x40, 0x40, 0x40))
541 : // default colors for EdgeBlending
542 : const Color& GetEdgeBlendingTopLeftColor() const;
543 : const Color& GetEdgeBlendingBottomRightColor() const;
544 :
545 : // maximum line count for ListBox control; to use this, call AdaptDropDownLineCountToMaximum() at the
546 : // ListBox after it's ItemCount has changed/got filled. Default is 25. If more Items exist, a scrollbar
547 : // will be used
548 : void SetListBoxMaximumLineCount(sal_uInt16 nCount);
549 : sal_uInt16 GetListBoxMaximumLineCount() const;
550 :
551 : // maximum column count for the ColorValueSet control. Default is 12 and this is optimized for the
552 : // color scheme which has 12-color alogned layout for the part taken over from Symphony. Do
553 : // only change this if you know what you are doing.
554 : void SetColorValueSetColumnCount(sal_uInt16 nCount);
555 : sal_uInt16 GetColorValueSetColumnCount() const;
556 :
557 : // maximum row/line count for the ColorValueSet control. If more lines would be needed, a scrollbar will
558 : // be used. Default is 40.
559 : sal_uInt16 GetColorValueSetMaximumRowCount() const;
560 :
561 : const Size& GetListBoxPreviewDefaultPixelSize() const;
562 :
563 : // the default LineWidth for ListBox UI previews (LineStyle, LineDash, LineStartEnd). Default is 1.
564 : sal_uInt16 GetListBoxPreviewDefaultLineWidth() const;
565 :
566 : // defines if previews which containn potentially transparent objects (e.g. the dash/line/LineStartEnd previews and others)
567 : // use the default transparent visualization background (checkered background) as it has got standard in graphic programs nowadays
568 : void SetPreviewUsesCheckeredBackground(bool bNew);
569 : bool GetPreviewUsesCheckeredBackground() const;
570 :
571 : void SetStandardStyles();
572 :
573 : bool operator ==( const StyleSettings& rSet ) const;
574 : bool operator !=( const StyleSettings& rSet ) const;
575 : };
576 :
577 :
578 : // - MiscSettings -
579 :
580 :
581 84794 : class VCL_DLLPUBLIC MiscSettings
582 : {
583 : void CopyData();
584 :
585 : private:
586 : boost::shared_ptr<ImplMiscData> mpData;
587 :
588 : public:
589 : MiscSettings();
590 : ~MiscSettings();
591 :
592 : #ifdef WNT
593 : void SetEnableATToolSupport( bool bEnable );
594 : #endif
595 : bool GetEnableATToolSupport() const;
596 : bool GetDisablePrinting() const;
597 : void SetEnableLocalizedDecimalSep( bool bEnable );
598 : bool GetEnableLocalizedDecimalSep() const;
599 : bool GetPseudoHeadless() const;
600 :
601 : bool operator ==( const MiscSettings& rSet ) const;
602 : bool operator !=( const MiscSettings& rSet ) const;
603 : };
604 :
605 :
606 : // - HelpSettings -
607 :
608 85434 : class VCL_DLLPUBLIC HelpSettings
609 : {
610 : void CopyData();
611 : boost::shared_ptr<ImplHelpData> mpData;
612 :
613 : public:
614 : HelpSettings();
615 : ~HelpSettings();
616 :
617 : sal_uLong GetTipDelay() const;
618 : void SetTipTimeout( sal_uLong nTipTimeout );
619 : sal_uLong GetTipTimeout() const;
620 : sal_uLong GetBalloonDelay() const;
621 :
622 : bool operator ==( const HelpSettings& rSet ) const;
623 : bool operator !=( const HelpSettings& rSet ) const;
624 : };
625 :
626 :
627 : // - AllSettings -
628 :
629 : const int SETTINGS_MOUSE = 0x00000001;
630 : const int SETTINGS_STYLE = 0x00000002;
631 : const int SETTINGS_MISC = 0x00000004;
632 : const int SETTINGS_SOUND = 0x00000008;
633 : const int SETTINGS_HELP = 0x00000010;
634 : const int SETTINGS_LOCALE = 0x00000020;
635 : const int SETTINGS_UILOCALE = 0x00000040;
636 : const int SETTINGS_ALLSETTINGS = ( SETTINGS_MOUSE |
637 : SETTINGS_STYLE | SETTINGS_MISC |
638 : SETTINGS_SOUND |
639 : SETTINGS_HELP |
640 : SETTINGS_LOCALE | SETTINGS_UILOCALE );
641 : const int SETTINGS_IN_UPDATE_SETTINGS = 0x00000800; // this flag indicates that the data changed event was created
642 : // in Windows::UpdateSettings probably because of a global
643 : // settings changed
644 :
645 555563 : class VCL_DLLPUBLIC AllSettings
646 : {
647 : private:
648 : void CopyData();
649 :
650 : boost::shared_ptr<ImplAllSettingsData> mpData;
651 :
652 : public:
653 : AllSettings();
654 : AllSettings( const AllSettings& rSet );
655 : ~AllSettings();
656 :
657 : void SetMouseSettings( const MouseSettings& rSet );
658 : const MouseSettings& GetMouseSettings() const;
659 :
660 : void SetStyleSettings( const StyleSettings& rSet );
661 : const StyleSettings& GetStyleSettings() const;
662 :
663 : void SetMiscSettings( const MiscSettings& rSet );
664 : const MiscSettings& GetMiscSettings() const;
665 :
666 : void SetHelpSettings( const HelpSettings& rSet );
667 : const HelpSettings& GetHelpSettings() const;
668 :
669 : void SetLanguageTag( const LanguageTag& rLanguageTag );
670 : const LanguageTag& GetLanguageTag() const;
671 : void SetUILanguageTag( const LanguageTag& rLanguageTag );
672 : const LanguageTag& GetUILanguageTag() const;
673 : bool GetLayoutRTL() const; // returns true if UI language requires right-to-left Text Layout
674 : bool GetMathLayoutRTL() const; // returns true if UI language requires right-to-left Math Layout
675 : const LocaleDataWrapper& GetLocaleDataWrapper() const;
676 : const LocaleDataWrapper& GetUILocaleDataWrapper() const;
677 : const vcl::I18nHelper& GetLocaleI18nHelper() const;
678 : const vcl::I18nHelper& GetUILocaleI18nHelper() const;
679 :
680 : sal_uLong GetWindowUpdate() const;
681 :
682 : sal_uLong Update( sal_uLong nFlags, const AllSettings& rSettings );
683 : sal_uLong GetChangeFlags( const AllSettings& rSettings ) const;
684 :
685 : bool operator ==( const AllSettings& rSet ) const;
686 : bool operator !=( const AllSettings& rSet ) const;
687 : static void LocaleSettingsChanged( sal_uInt32 nHint );
688 : SvtSysLocale& GetSysLocale();
689 : };
690 :
691 : #endif // INCLUDED_VCL_SETTINGS_HXX
692 :
693 : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|