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 0 : 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 0 : DialogStyle()
135 : : content_area_border(2)
136 : , content_area_spacing(0)
137 : , button_spacing(6)
138 0 : , action_area_border(5)
139 0 : {}
140 : };
141 :
142 : struct FrameStyle
143 : {
144 : int left;
145 : int right;
146 : int top;
147 : int bottom;
148 0 : FrameStyle()
149 : : left(2)
150 : , right(2)
151 : , top(2)
152 0 : , bottom(2)
153 0 : {}
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 0 : 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 SetHighContrastMode(bool bHighContrast );
362 : bool GetHighContrastMode() const;
363 :
364 : void SetUseSystemUIFonts( bool bUseSystemUIFonts );
365 : bool GetUseSystemUIFonts() const;
366 :
367 : void SetUseFlatBorders( bool bUseFlatBorders );
368 : bool GetUseFlatBorders() const;
369 :
370 : void SetUseFlatMenus( bool bUseFlatMenus );
371 : bool GetUseFlatMenus() const;
372 :
373 : void SetUseImagesInMenus( TriState eUseImagesInMenus );
374 : bool GetUseImagesInMenus() const;
375 :
376 : void SetPreferredUseImagesInMenus( bool bPreferredUseImagesInMenus );
377 : bool GetPreferredUseImagesInMenus() const;
378 :
379 : void SetSkipDisabledInMenus( bool bSkipDisabledInMenus );
380 : bool GetSkipDisabledInMenus() const;
381 :
382 : void SetHideDisabledMenuItems( bool bHideDisabledMenuItems );
383 : bool GetHideDisabledMenuItems() const;
384 :
385 : void SetAcceleratorsInContextMenus( bool bAcceleratorsInContextMenus );
386 : bool GetAcceleratorsInContextMenus() const;
387 :
388 : void SetPrimaryButtonWarpsSlider( bool bPrimaryButtonWarpsSlider );
389 : bool GetPrimaryButtonWarpsSlider() const;
390 :
391 : void SetCairoFontOptions( const void *pOptions );
392 : const void* GetCairoFontOptions() const;
393 :
394 : void SetAppFont( const Font& rFont );
395 : const Font& GetAppFont() const;
396 :
397 : void SetHelpFont( const Font& rFont );
398 : const Font& GetHelpFont() const;
399 :
400 : void SetTitleFont( const Font& rFont );
401 : const Font& GetTitleFont() const;
402 :
403 : void SetFloatTitleFont( const Font& rFont );
404 : const Font& GetFloatTitleFont() const;
405 :
406 : void SetMenuFont( const Font& rFont );
407 : const Font& GetMenuFont() const;
408 :
409 : void SetToolFont( const Font& rFont );
410 : const Font& GetToolFont() const;
411 :
412 : void SetGroupFont( const Font& rFont );
413 : const Font& GetGroupFont() const;
414 :
415 : void SetLabelFont( const Font& rFont );
416 : const Font& GetLabelFont() const;
417 :
418 : void SetInfoFont( const Font& rFont );
419 : const Font& GetInfoFont() const;
420 :
421 : void SetRadioCheckFont( const Font& rFont );
422 : const Font& GetRadioCheckFont() const;
423 :
424 : void SetPushButtonFont( const Font& rFont );
425 : const Font& GetPushButtonFont() const;
426 :
427 : void SetFieldFont( const Font& rFont );
428 : const Font& GetFieldFont() const;
429 :
430 : void SetIconFont( const Font& rFont );
431 : const Font& GetIconFont() const;
432 :
433 : long GetBorderSize() const;
434 :
435 : void SetTitleHeight( long nSize );
436 : long GetTitleHeight() const;
437 :
438 : void SetFloatTitleHeight( long nSize );
439 : long GetFloatTitleHeight() const;
440 :
441 : long GetTearOffTitleHeight() const;
442 :
443 : void SetScrollBarSize( long nSize );
444 : long GetScrollBarSize() const;
445 :
446 : void SetMinThumbSize( long nSize );
447 : long GetMinThumbSize() const;
448 :
449 : void SetSpinSize( long nSize );
450 : long GetSpinSize() const;
451 :
452 : long GetSplitSize() const;
453 :
454 : void SetCursorSize( long nSize );
455 : long GetCursorSize() const;
456 :
457 : void SetCursorBlinkTime( long nBlinkTime );
458 : long GetCursorBlinkTime() const;
459 :
460 : void SetScreenZoom( sal_uInt16 nPercent );
461 : sal_uInt16 GetScreenZoom() const;
462 :
463 : void SetScreenFontZoom( sal_uInt16 nPercent );
464 : sal_uInt16 GetScreenFontZoom() const;
465 :
466 : void SetDragFullOptions( sal_uLong nOptions );
467 : sal_uLong GetDragFullOptions() const;
468 :
469 : void SetSelectionOptions( sal_uLong nOptions );
470 : sal_uLong GetSelectionOptions() const;
471 :
472 : void SetDisplayOptions( sal_uLong nOptions );
473 : sal_uLong GetDisplayOptions() const;
474 :
475 : void SetAntialiasingMinPixelHeight( long nMinPixel );
476 : sal_uLong GetAntialiasingMinPixelHeight() const;
477 :
478 : void SetOptions( sal_uLong nOptions );
479 : sal_uLong GetOptions() const;
480 :
481 : void SetAutoMnemonic( bool bAutoMnemonic );
482 : bool GetAutoMnemonic() const;
483 :
484 : void SetFontColor( const Color& rColor );
485 : const Color& GetFontColor() const;
486 :
487 : void SetToolbarIconSize( sal_uLong nSize );
488 : sal_uLong GetToolbarIconSize() const;
489 :
490 : /** Set the icon theme to use. */
491 : void SetIconTheme(const OUString&);
492 :
493 : /** Determine which icon theme should be used.
494 : *
495 : * This might not be the same as the one which has been set with SetIconTheme(),
496 : * e.g., if high contrast mode is enabled.
497 : *
498 : * (for the detailed logic @see vcl::IconThemeSelector)
499 : */
500 : OUString DetermineIconTheme() const;
501 :
502 : /** Obtain the list of icon themes which were found in the config folder
503 : * @see vcl::IconThemeScanner for more details.
504 : */
505 : std::vector<vcl::IconThemeInfo> GetInstalledIconThemes() const;
506 :
507 : /** Obtain the name of the icon theme which will be chosen automatically for the desktop environment.
508 : * This method will only return icon themes which were actually found on the system.
509 : */
510 : OUString GetAutomaticallyChosenIconTheme() const;
511 :
512 : /** Set a preferred icon theme.
513 : * This theme will be preferred in GetAutomaticallyChosenIconTheme()
514 : */
515 : void SetPreferredIconTheme(const OUString&);
516 :
517 : const DialogStyle& GetDialogStyle() const;
518 : void SetDialogStyle( const DialogStyle& rStyle );
519 :
520 : const FrameStyle& GetFrameStyle() const;
521 : void SetFrameStyle( const FrameStyle& rStyle );
522 :
523 : const BitmapEx GetPersonaHeader() const;
524 :
525 : const boost::optional<Color>& GetPersonaMenuBarTextColor() const;
526 :
527 : // global switch to allow EdgeBlenging; currently possible for ValueSet and ListBox
528 : // when activated there using Get/SetEdgeBlending; default is true
529 : void SetEdgeBlending(sal_uInt16 nCount);
530 : sal_uInt16 GetEdgeBlending() const;
531 :
532 : // TopLeft (default RGB_COLORDATA(0xC0, 0xC0, 0xC0)) and BottomRight (default RGB_COLORDATA(0x40, 0x40, 0x40))
533 : // default colors for EdgeBlending
534 : const Color& GetEdgeBlendingTopLeftColor() const;
535 : const Color& GetEdgeBlendingBottomRightColor() const;
536 :
537 : // maximum line count for ListBox control; to use this, call AdaptDropDownLineCountToMaximum() at the
538 : // ListBox after it's ItemCount has changed/got filled. Default is 25. If more Items exist, a scrollbar
539 : // will be used
540 : void SetListBoxMaximumLineCount(sal_uInt16 nCount);
541 : sal_uInt16 GetListBoxMaximumLineCount() const;
542 :
543 : // maximum column count for the ColorValueSet control. Default is 12 and this is optimized for the
544 : // color scheme which has 12-color alogned layout for the part taken over from Symphony. Do
545 : // only change this if you know what you are doing.
546 : void SetColorValueSetColumnCount(sal_uInt16 nCount);
547 : sal_uInt16 GetColorValueSetColumnCount() const;
548 :
549 : // maximum row/line count for the ColorValueSet control. If more lines would be needed, a scrollbar will
550 : // be used. Default is 40.
551 : sal_uInt16 GetColorValueSetMaximumRowCount() const;
552 :
553 : const Size& GetListBoxPreviewDefaultPixelSize() const;
554 :
555 : // the default LineWidth for ListBox UI previews (LineStyle, LineDash, LineStartEnd). Default is 1.
556 : sal_uInt16 GetListBoxPreviewDefaultLineWidth() const;
557 :
558 : // defines if previews which containn potentially transparent objects (e.g. the dash/line/LineStartEnd previews and others)
559 : // use the default transparent visualization background (checkered background) as it has got standard in graphic programs nowadays
560 : void SetPreviewUsesCheckeredBackground(bool bNew);
561 : bool GetPreviewUsesCheckeredBackground() const;
562 :
563 : void SetStandardStyles();
564 :
565 : bool operator ==( const StyleSettings& rSet ) const;
566 : bool operator !=( const StyleSettings& rSet ) const;
567 : };
568 :
569 :
570 : // - MiscSettings -
571 :
572 :
573 0 : class VCL_DLLPUBLIC MiscSettings
574 : {
575 : void CopyData();
576 :
577 : private:
578 : boost::shared_ptr<ImplMiscData> mpData;
579 :
580 : public:
581 : MiscSettings();
582 : ~MiscSettings();
583 :
584 : #ifdef WNT
585 : void SetEnableATToolSupport( bool bEnable );
586 : #endif
587 : bool GetEnableATToolSupport() const;
588 : bool GetDisablePrinting() const;
589 : void SetEnableLocalizedDecimalSep( bool bEnable );
590 : bool GetEnableLocalizedDecimalSep() const;
591 :
592 : bool operator ==( const MiscSettings& rSet ) const;
593 : bool operator !=( const MiscSettings& rSet ) const;
594 : };
595 :
596 :
597 : // - HelpSettings -
598 :
599 0 : class VCL_DLLPUBLIC HelpSettings
600 : {
601 : void CopyData();
602 : boost::shared_ptr<ImplHelpData> mpData;
603 :
604 : public:
605 : HelpSettings();
606 : ~HelpSettings();
607 :
608 : sal_uLong GetTipDelay() const;
609 : void SetTipTimeout( sal_uLong nTipTimeout );
610 : sal_uLong GetTipTimeout() const;
611 : sal_uLong GetBalloonDelay() const;
612 :
613 : bool operator ==( const HelpSettings& rSet ) const;
614 : bool operator !=( const HelpSettings& rSet ) const;
615 : };
616 :
617 :
618 : // - AllSettings -
619 :
620 : const int SETTINGS_MOUSE = 0x00000001;
621 : const int SETTINGS_STYLE = 0x00000002;
622 : const int SETTINGS_MISC = 0x00000004;
623 : const int SETTINGS_SOUND = 0x00000008;
624 : const int SETTINGS_HELP = 0x00000010;
625 : const int SETTINGS_LOCALE = 0x00000020;
626 : const int SETTINGS_UILOCALE = 0x00000040;
627 : const int SETTINGS_ALLSETTINGS = ( SETTINGS_MOUSE |
628 : SETTINGS_STYLE | SETTINGS_MISC |
629 : SETTINGS_SOUND |
630 : SETTINGS_HELP |
631 : SETTINGS_LOCALE | SETTINGS_UILOCALE );
632 : const int SETTINGS_IN_UPDATE_SETTINGS = 0x00000800; // this flag indicates that the data changed event was created
633 : // in Windows::UpdateSettings probably because of a global
634 : // settings changed
635 :
636 0 : class VCL_DLLPUBLIC AllSettings
637 : {
638 : private:
639 : void CopyData();
640 :
641 : boost::shared_ptr<ImplAllSettingsData> mpData;
642 :
643 : public:
644 : AllSettings();
645 : AllSettings( const AllSettings& rSet );
646 : ~AllSettings();
647 :
648 : void SetMouseSettings( const MouseSettings& rSet );
649 : const MouseSettings& GetMouseSettings() const;
650 :
651 : void SetStyleSettings( const StyleSettings& rSet );
652 : const StyleSettings& GetStyleSettings() const;
653 :
654 : void SetMiscSettings( const MiscSettings& rSet );
655 : const MiscSettings& GetMiscSettings() const;
656 :
657 : void SetHelpSettings( const HelpSettings& rSet );
658 : const HelpSettings& GetHelpSettings() const;
659 :
660 : void SetLanguageTag( const LanguageTag& rLanguageTag );
661 : const LanguageTag& GetLanguageTag() const;
662 : void SetUILanguageTag( const LanguageTag& rLanguageTag );
663 : const LanguageTag& GetUILanguageTag() const;
664 : bool GetLayoutRTL() const; // returns true if UI language requires right-to-left Text Layout
665 : bool GetMathLayoutRTL() const; // returns true if UI language requires right-to-left Math Layout
666 : const LocaleDataWrapper& GetLocaleDataWrapper() const;
667 : const LocaleDataWrapper& GetUILocaleDataWrapper() const;
668 : const vcl::I18nHelper& GetLocaleI18nHelper() const;
669 : const vcl::I18nHelper& GetUILocaleI18nHelper() const;
670 :
671 : sal_uLong GetWindowUpdate() const;
672 :
673 : sal_uLong Update( sal_uLong nFlags, const AllSettings& rSettings );
674 : sal_uLong GetChangeFlags( const AllSettings& rSettings ) const;
675 :
676 : bool operator ==( const AllSettings& rSet ) const;
677 : bool operator !=( const AllSettings& rSet ) const;
678 : static void LocaleSettingsChanged( sal_uInt32 nHint );
679 : SvtSysLocale& GetSysLocale();
680 : };
681 :
682 : #endif // INCLUDED_VCL_SETTINGS_HXX
683 :
684 : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|