Avoid potential negative array index access to cached text.
[LibreOffice.git] / include / vcl / settings.hxx
blob3b8ac61ca586eb34a9e6a402f8c3e2b73261712a
1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 /*
3 * This file is part of the LibreOffice project.
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/.
9 * This file incorporates work covered by the following license notice:
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 .
20 #ifndef INCLUDED_VCL_SETTINGS_HXX
21 #define INCLUDED_VCL_SETTINGS_HXX
23 #include <config_options.h>
25 #include <vcl/dllapi.h>
26 #include <tools/color.hxx>
27 #include <tools/gen.hxx>
28 #include <o3tl/typed_flags_set.hxx>
30 #include <memory>
31 #include <vector>
33 #include <optional>
35 class BitmapEx;
36 class LanguageTag;
37 class SvtSysLocale;
39 class LocaleDataWrapper;
40 struct ImplMouseData;
41 struct ImplMiscData;
42 struct ImplHelpData;
43 struct ImplStyleData;
44 struct ImplAllSettingsData;
45 enum class ConfigurationHints;
47 namespace vcl {
48 class Font;
49 class I18nHelper;
50 class IconThemeInfo;
54 enum class MouseSettingsOptions
56 NONE = 0x00,
57 AutoCenterPos = 0x02,
58 AutoDefBtnPos = 0x04,
60 namespace o3tl
62 template<> struct typed_flags<MouseSettingsOptions> : is_typed_flags<MouseSettingsOptions, 0x06> {};
65 enum class MouseFollowFlags
67 Menu = 0x0001,
69 namespace o3tl
71 template<> struct typed_flags<MouseFollowFlags> : is_typed_flags<MouseFollowFlags, 0x01> {};
74 enum class MouseMiddleButtonAction
76 Nothing, AutoScroll, PasteSelection
79 enum class MouseWheelBehaviour
81 Disable, FocusOnly, ALWAYS
84 class VCL_DLLPUBLIC MouseSettings
86 private:
87 void CopyData();
88 std::shared_ptr<ImplMouseData> mxData;
90 public:
91 MouseSettings();
93 void SetOptions( MouseSettingsOptions nOptions );
94 MouseSettingsOptions GetOptions() const;
96 void SetDoubleClickTime( sal_uInt64 nDoubleClkTime );
97 sal_uInt64 GetDoubleClickTime() const;
99 void SetDoubleClickWidth( sal_Int32 nDoubleClkWidth );
100 sal_Int32 GetDoubleClickWidth() const;
102 void SetDoubleClickHeight( sal_Int32 nDoubleClkHeight );
103 sal_Int32 GetDoubleClickHeight() const;
105 void SetStartDragWidth( sal_Int32 nDragWidth );
106 sal_Int32 GetStartDragWidth() const;
108 void SetStartDragHeight( sal_Int32 nDragHeight );
109 sal_Int32 GetStartDragHeight() const;
111 static sal_uInt16 GetStartDragCode();
113 static sal_uInt16 GetContextMenuCode();
115 static sal_uInt16 GetContextMenuClicks();
117 static sal_Int32 GetScrollRepeat();
119 static sal_Int32 GetButtonStartRepeat();
121 void SetButtonRepeat( sal_Int32 nRepeat );
122 sal_Int32 GetButtonRepeat() const;
124 static sal_Int32 GetActionDelay();
126 void SetMenuDelay( sal_Int32 nDelay );
127 sal_Int32 GetMenuDelay() const;
129 void SetFollow( MouseFollowFlags nFollow );
130 MouseFollowFlags GetFollow() const;
132 void SetMiddleButtonAction( MouseMiddleButtonAction nAction );
133 MouseMiddleButtonAction GetMiddleButtonAction() const;
135 void SetWheelBehavior( MouseWheelBehaviour nBehavior );
136 MouseWheelBehaviour GetWheelBehavior() const;
138 bool operator ==( const MouseSettings& rSet ) const;
139 bool operator !=( const MouseSettings& rSet ) const;
142 struct DialogStyle
144 int content_area_border;
145 int button_spacing;
146 int action_area_border;
147 DialogStyle()
148 : content_area_border(2)
149 , button_spacing(6)
150 , action_area_border(5)
154 enum class StyleSettingsOptions
156 NONE = 0x0000,
157 Mono = 0x0001,
158 NoMnemonics = 0x0002,
160 namespace o3tl
162 template<> struct typed_flags<StyleSettingsOptions> : is_typed_flags<StyleSettingsOptions, 0x0003> {};
165 enum class DragFullOptions
167 NONE = 0x0000,
168 WindowMove = 0x0001,
169 WindowSize = 0x0002,
170 Docking = 0x0010,
171 Split = 0x0020,
172 Scroll = 0x0040,
173 All = WindowMove | WindowSize | Docking | Split | Scroll,
175 namespace o3tl
177 template<> struct typed_flags<DragFullOptions> : is_typed_flags<DragFullOptions, 0x0073> {};
180 enum class SelectionOptions
182 NONE = 0x0000,
183 ShowFirst = 0x0004,
185 namespace o3tl
187 template<> struct typed_flags<SelectionOptions> : is_typed_flags<SelectionOptions, 0x0004> {};
190 enum class DisplayOptions
192 NONE = 0x0000,
193 AADisable = 0x0001,
195 namespace o3tl
197 template<> struct typed_flags<DisplayOptions> : is_typed_flags<DisplayOptions, 0x0001> {};
200 enum class ToolbarIconSize
202 Unknown = 0,
203 Small = 1, // unused
204 Large = 2,
205 Size32 = 3,
208 #define STYLE_CURSOR_NOBLINKTIME SAL_MAX_UINT64
210 class VCL_DLLPUBLIC StyleSettings
212 void CopyData();
214 private:
215 std::shared_ptr<ImplStyleData> mxData;
217 public:
218 StyleSettings();
220 void Set3DColors( const Color& rColor );
222 void SetFaceColor( const Color& rColor );
223 const Color& GetFaceColor() const;
225 Color GetFaceGradientColor() const;
227 Color GetSeparatorColor() const;
229 void SetCheckedColor( const Color& rColor );
230 void SetCheckedColorSpecialCase( );
231 const Color& GetCheckedColor() const;
233 void SetLightColor( const Color& rColor );
234 const Color& GetLightColor() const;
236 void SetLightBorderColor( const Color& rColor );
237 const Color& GetLightBorderColor() const;
239 void SetShadowColor( const Color& rColor );
240 const Color& GetShadowColor() const;
242 void SetDarkShadowColor( const Color& rColor );
243 const Color& GetDarkShadowColor() const;
245 void SetDefaultButtonTextColor( const Color& rColor );
246 const Color& GetDefaultButtonTextColor() const;
248 void SetButtonTextColor( const Color& rColor );
249 const Color& GetButtonTextColor() const;
251 void SetDefaultActionButtonTextColor( const Color& rColor );
252 const Color& GetDefaultActionButtonTextColor() const;
254 void SetActionButtonTextColor( const Color& rColor );
255 const Color& GetActionButtonTextColor() const;
257 void SetFlatButtonTextColor( const Color& rColor );
258 const Color& GetFlatButtonTextColor() const;
260 void SetDefaultButtonRolloverTextColor( const Color& rColor );
261 const Color& GetDefaultButtonRolloverTextColor() const;
263 void SetButtonRolloverTextColor( const Color& rColor );
264 const Color& GetButtonRolloverTextColor() const;
266 void SetDefaultActionButtonRolloverTextColor( const Color& rColor );
267 const Color& GetDefaultActionButtonRolloverTextColor() const;
269 void SetActionButtonRolloverTextColor( const Color& rColor );
270 const Color& GetActionButtonRolloverTextColor() const;
272 void SetFlatButtonRolloverTextColor( const Color& rColor );
273 const Color& GetFlatButtonRolloverTextColor() const;
275 void SetDefaultButtonPressedRolloverTextColor( const Color& rColor );
276 const Color& GetDefaultButtonPressedRolloverTextColor() const;
278 void SetButtonPressedRolloverTextColor( const Color& rColor );
279 const Color& GetButtonPressedRolloverTextColor() const;
281 void SetDefaultActionButtonPressedRolloverTextColor( const Color& rColor );
282 const Color& GetDefaultActionButtonPressedRolloverTextColor() const;
284 void SetActionButtonPressedRolloverTextColor( const Color& rColor );
285 const Color& GetActionButtonPressedRolloverTextColor() const;
287 void SetFlatButtonPressedRolloverTextColor( const Color& rColor );
288 const Color& GetFlatButtonPressedRolloverTextColor() const;
290 void SetRadioCheckTextColor( const Color& rColor );
291 const Color& GetRadioCheckTextColor() const;
293 void SetGroupTextColor( const Color& rColor );
294 const Color& GetGroupTextColor() const;
296 void SetLabelTextColor( const Color& rColor );
297 const Color& GetLabelTextColor() const;
299 void SetWindowColor( const Color& rColor );
300 const Color& GetWindowColor() const;
302 void SetWindowTextColor( const Color& rColor );
303 const Color& GetWindowTextColor() const;
305 void SetDialogColor( const Color& rColor );
306 const Color& GetDialogColor() const;
308 void SetDialogTextColor( const Color& rColor );
309 const Color& GetDialogTextColor() const;
311 void SetWorkspaceColor( const Color& rColor );
312 const Color& GetWorkspaceColor() const;
314 void SetFieldColor( const Color& rColor );
315 const Color& GetFieldColor() const;
317 void SetFieldTextColor( const Color& rColor );
318 const Color& GetFieldTextColor() const;
320 void SetFieldRolloverTextColor( const Color& rColor );
321 const Color& GetFieldRolloverTextColor() const;
323 void SetActiveColor( const Color& rColor );
324 const Color& GetActiveColor() const;
326 void SetActiveTextColor( const Color& rColor );
327 const Color& GetActiveTextColor() const;
329 void SetActiveBorderColor( const Color& rColor );
330 const Color& GetActiveBorderColor() const;
332 void SetDeactiveColor( const Color& rColor );
333 const Color& GetDeactiveColor() const;
335 void SetDeactiveTextColor( const Color& rColor );
336 const Color& GetDeactiveTextColor() const;
338 void SetDeactiveBorderColor( const Color& rColor );
339 const Color& GetDeactiveBorderColor() const;
341 void SetAccentColor( const Color& rColor );
342 const Color& GetAccentColor() const;
344 void SetHighlightColor( const Color& rColor );
345 const Color& GetHighlightColor() const;
347 void SetHighlightTextColor( const Color& rColor );
348 const Color& GetHighlightTextColor() const;
350 void SetDisableColor( const Color& rColor );
351 const Color& GetDisableColor() const;
353 void SetWarningColor( const Color& rColor );
354 const Color& GetWarningColor() const;
356 void SetHelpColor( const Color& rColor );
357 const Color& GetHelpColor() const;
359 void SetHelpTextColor( const Color& rColor );
360 const Color& GetHelpTextColor() const;
362 void SetMenuColor( const Color& rColor );
363 const Color& GetMenuColor() const;
365 void SetMenuBarColor( const Color& rColor );
366 const Color& GetMenuBarColor() const;
368 void SetMenuBarRolloverColor( const Color& rColor );
369 const Color& GetMenuBarRolloverColor() const;
371 void SetMenuBorderColor( const Color& rColor );
372 const Color& GetMenuBorderColor() const;
374 void SetMenuTextColor( const Color& rColor );
375 const Color& GetMenuTextColor() const;
377 void SetMenuBarTextColor( const Color& rColor );
378 const Color& GetMenuBarTextColor() const;
380 void SetMenuBarRolloverTextColor( const Color& rColor );
381 const Color& GetMenuBarRolloverTextColor() const;
383 void SetMenuBarHighlightTextColor( const Color& rColor );
384 const Color& GetMenuBarHighlightTextColor() const;
386 void SetMenuHighlightColor( const Color& rColor );
387 const Color& GetMenuHighlightColor() const;
389 void SetMenuHighlightTextColor( const Color& rColor );
390 const Color& GetMenuHighlightTextColor() const;
392 void SetListBoxWindowBackgroundColor( const Color& rColor );
393 const Color& GetListBoxWindowBackgroundColor() const;
395 void SetListBoxWindowTextColor( const Color& rColor );
396 const Color& GetListBoxWindowTextColor() const;
398 void SetListBoxWindowHighlightColor( const Color& rColor );
399 const Color& GetListBoxWindowHighlightColor() const;
401 void SetListBoxWindowHighlightTextColor( const Color& rColor );
402 const Color& GetListBoxWindowHighlightTextColor() const;
404 void SetTabTextColor( const Color& rColor );
405 const Color& GetTabTextColor() const;
407 void SetTabRolloverTextColor( const Color& rColor );
408 const Color& GetTabRolloverTextColor() const;
410 void SetTabHighlightTextColor( const Color& rColor );
411 const Color& GetTabHighlightTextColor() const;
413 void SetToolTextColor( const Color& rColor );
414 const Color& GetToolTextColor() const;
416 void SetLinkColor( const Color& rColor );
417 const Color& GetLinkColor() const;
419 void SetVisitedLinkColor( const Color& rColor );
420 const Color& GetVisitedLinkColor() const;
422 void SetMonoColor( const Color& rColor );
423 const Color& GetMonoColor() const;
425 void SetActiveTabColor( const Color& rColor );
426 const Color& GetActiveTabColor() const;
428 void SetInactiveTabColor( const Color& rColor );
429 const Color& GetInactiveTabColor() const;
431 void SetAlternatingRowColor(const Color& rColor);
432 const Color& GetAlternatingRowColor() const;
434 void SetHighContrastMode(bool bHighContrast );
435 bool GetHighContrastMode() const;
437 void SetUseSystemUIFonts( bool bUseSystemUIFonts );
438 bool GetUseSystemUIFonts() const;
440 void SetUseFontAAFromSystem(bool bUseFontAAFromSystem);
441 bool GetUseFontAAFromSystem() const;
443 void SetUseFlatBorders( bool bUseFlatBorders );
444 bool GetUseFlatBorders() const;
446 void SetUseFlatMenus( bool bUseFlatMenus );
447 bool GetUseFlatMenus() const;
449 void SetUseImagesInMenus( TriState eUseImagesInMenus );
450 bool GetUseImagesInMenus() const;
452 void SetPreferredUseImagesInMenus( bool bPreferredUseImagesInMenus );
453 bool GetPreferredUseImagesInMenus() const;
455 void SetSkipDisabledInMenus( bool bSkipDisabledInMenus );
456 bool GetSkipDisabledInMenus() const;
458 void SetHideDisabledMenuItems( bool bHideDisabledMenuItems );
459 bool GetHideDisabledMenuItems() const;
461 void SetContextMenuShortcuts( TriState eContextMenuShortcuts );
462 bool GetContextMenuShortcuts() const;
464 void SetPreferredContextMenuShortcuts( bool bContextMenuShortcuts );
465 bool GetPreferredContextMenuShortcuts() const;
467 void SetPrimaryButtonWarpsSlider( bool bPrimaryButtonWarpsSlider );
468 bool GetPrimaryButtonWarpsSlider() const;
470 void SetAppFont( const vcl::Font& rFont );
471 const vcl::Font& GetAppFont() const;
473 void SetHelpFont( const vcl::Font& rFont );
474 const vcl::Font& GetHelpFont() const;
476 void SetTitleFont( const vcl::Font& rFont );
477 const vcl::Font& GetTitleFont() const;
479 void SetFloatTitleFont( const vcl::Font& rFont );
480 const vcl::Font& GetFloatTitleFont() const;
482 void SetMenuFont( const vcl::Font& rFont );
483 const vcl::Font& GetMenuFont() const;
485 void SetToolFont( const vcl::Font& rFont );
486 const vcl::Font& GetToolFont() const;
488 void SetGroupFont( const vcl::Font& rFont );
489 const vcl::Font& GetGroupFont() const;
491 void SetLabelFont( const vcl::Font& rFont );
492 const vcl::Font& GetLabelFont() const;
494 void SetRadioCheckFont( const vcl::Font& rFont );
495 const vcl::Font& GetRadioCheckFont() const;
497 void SetPushButtonFont( const vcl::Font& rFont );
498 const vcl::Font& GetPushButtonFont() const;
500 void SetFieldFont( const vcl::Font& rFont );
501 const vcl::Font& GetFieldFont() const;
503 void SetIconFont( const vcl::Font& rFont );
504 const vcl::Font& GetIconFont() const;
506 void SetTabFont( const vcl::Font& rFont );
507 const vcl::Font& GetTabFont() const;
509 static sal_Int32 GetBorderSize();
511 void SetTitleHeight( sal_Int32 nSize );
512 sal_Int32 GetTitleHeight() const;
514 void SetFloatTitleHeight( sal_Int32 nSize );
515 sal_Int32 GetFloatTitleHeight() const;
517 void SetScrollBarSize( sal_Int32 nSize );
518 sal_Int32 GetScrollBarSize() const;
520 void SetMinThumbSize( sal_Int32 nSize );
521 sal_Int32 GetMinThumbSize() const;
523 void SetSpinSize( sal_Int32 nSize );
524 sal_Int32 GetSpinSize() const;
526 static sal_Int32 GetSplitSize();
528 void SetCursorSize( sal_Int32 nSize );
529 sal_Int32 GetCursorSize() const;
531 void SetCursorBlinkTime( sal_uInt64 nBlinkTime );
532 sal_uInt64 GetCursorBlinkTime() const;
534 void SetDragFullOptions( DragFullOptions nOptions );
535 DragFullOptions GetDragFullOptions() const;
537 void SetSelectionOptions( SelectionOptions nOptions );
538 SelectionOptions GetSelectionOptions() const;
540 void SetDisplayOptions( DisplayOptions nOptions );
541 DisplayOptions GetDisplayOptions() const;
543 void SetAntialiasingMinPixelHeight( sal_Int32 nMinPixel );
544 sal_Int32 GetAntialiasingMinPixelHeight() const;
546 void SetOptions( StyleSettingsOptions nOptions );
547 StyleSettingsOptions GetOptions() const;
549 void SetAutoMnemonic( bool bAutoMnemonic );
550 bool GetAutoMnemonic() const;
552 static bool GetDockingFloatsSupported();
554 void SetToolbarIconSize( ToolbarIconSize nSize );
555 ToolbarIconSize GetToolbarIconSize() const;
556 Size GetToolbarIconSizePixel() const;
558 /** Set the icon theme to use. */
559 void SetIconTheme(const OUString&);
561 /** Determine which icon theme should be used.
563 * This might not be the same as the one which has been set with SetIconTheme(),
564 * e.g., if high contrast mode is enabled.
566 * (for the detailed logic @see vcl::IconThemeSelector)
568 OUString DetermineIconTheme() const;
570 /** Obtain the list of icon themes which were found in the config folder
571 * @see vcl::IconThemeScanner for more details.
573 std::vector<vcl::IconThemeInfo> const & GetInstalledIconThemes() const;
575 /** Obtain the name of the icon theme which will be chosen automatically for the desktop environment.
576 * This method will only return icon themes which were actually found on the system.
578 OUString GetAutomaticallyChosenIconTheme() const;
580 /** Set a preferred icon theme.
581 * This theme will be preferred in GetAutomaticallyChosenIconTheme()
583 void SetPreferredIconTheme(const OUString&, bool bDarkIconTheme = false);
585 const DialogStyle& GetDialogStyle() const;
587 BitmapEx const & GetPersonaHeader() const;
589 BitmapEx const & GetPersonaFooter() const;
591 const std::optional<Color>& GetPersonaMenuBarTextColor() const;
593 // global switch to allow EdgeBlenging; currently possible for ValueSet and ListBox
594 // when activated there using Get/SetEdgeBlending; default is true
595 void SetEdgeBlending(sal_uInt16 nCount);
596 sal_uInt16 GetEdgeBlending() const;
598 // TopLeft (default Color(0xC0, 0xC0, 0xC0)) and BottomRight (default Color(0x40, 0x40, 0x40))
599 // default colors for EdgeBlending
600 const Color& GetEdgeBlendingTopLeftColor() const;
601 const Color& GetEdgeBlendingBottomRightColor() const;
603 // maximum line count for ListBox control; to use this, call AdaptDropDownLineCountToMaximum() at the
604 // ListBox after it's ItemCount has changed/got filled. Default is 25. If more Items exist, a scrollbar
605 // will be used
606 void SetListBoxMaximumLineCount(sal_uInt16 nCount);
607 sal_uInt16 GetListBoxMaximumLineCount() const;
609 // maximum column count for the ColorValueSet control. Default is 12 and this is optimized for the
610 // color scheme which has 12-color aligned layout for the part taken over from Symphony. Do
611 // only change this if you know what you are doing.
612 void SetColorValueSetColumnCount(sal_uInt16 nCount);
613 sal_uInt16 GetColorValueSetColumnCount() const;
615 void SetListBoxPreviewDefaultLogicSize(Size const & rSize);
616 const Size& GetListBoxPreviewDefaultPixelSize() const;
618 // the default LineWidth for ListBox UI previews (LineStyle, LineDash, LineStartEnd). Default is 1.
619 static sal_uInt16 GetListBoxPreviewDefaultLineWidth();
621 // defines if previews which contain potentially transparent objects (e.g. the dash/line/LineStartEnd previews and others)
622 // use the default transparent visualization background (checkered background) as it has got standard in graphic programs nowadays
623 void SetPreviewUsesCheckeredBackground(bool bNew);
624 bool GetPreviewUsesCheckeredBackground() const;
626 void SetStandardStyles();
628 bool operator ==( const StyleSettings& rSet ) const;
629 bool operator !=( const StyleSettings& rSet ) const;
631 // Batch setters used by various backends
632 void BatchSetBackgrounds( const Color &aBackColor,
633 bool bCheckedColorSpecialCase = true );
634 void BatchSetFonts( const vcl::Font& aAppFont,
635 const vcl::Font& aLabelFont );
639 class VCL_DLLPUBLIC MiscSettings
641 std::shared_ptr<ImplMiscData> mxData;
643 public:
644 MiscSettings();
646 #ifdef _WIN32
647 void SetEnableATToolSupport( bool bEnable );
648 #endif
649 bool GetEnableATToolSupport() const;
650 bool GetDisablePrinting() const;
651 void SetEnableLocalizedDecimalSep( bool bEnable );
652 bool GetEnableLocalizedDecimalSep() const;
653 // 0 auto, 1 light, 2, dark
654 static void SetDarkMode(int nMode);
655 static int GetDarkMode();
656 // return if dark mode is active, resolving 'auto' to dark (true) or light (false)
657 static bool GetUseDarkMode();
658 static void SetAppColorMode(int nMode);
659 static int GetAppColorMode();
660 // return true if system preferences are set to use reduced animation
661 static bool GetUseReducedAnimation();
662 bool operator ==( const MiscSettings& rSet ) const;
663 bool operator !=( const MiscSettings& rSet ) const;
667 class VCL_DLLPUBLIC HelpSettings
669 std::shared_ptr<ImplHelpData> mxData;
671 public:
672 HelpSettings();
674 static sal_Int32 GetTipDelay();
675 void SetTipTimeout( sal_Int32 nTipTimeout );
676 sal_Int32 GetTipTimeout() const;
677 static sal_Int32 GetBalloonDelay();
679 bool operator ==( const HelpSettings& rSet ) const;
680 bool operator !=( const HelpSettings& rSet ) const;
684 enum class AllSettingsFlags {
685 NONE = 0x0000,
686 MOUSE = 0x0001,
687 STYLE = 0x0002,
688 MISC = 0x0004,
689 LOCALE = 0x0020,
691 namespace o3tl
693 template<> struct typed_flags<AllSettingsFlags> : is_typed_flags<AllSettingsFlags, 0x0027> {};
696 class VCL_DLLPUBLIC AllSettings
698 private:
699 void CopyData();
701 std::shared_ptr<ImplAllSettingsData> mxData;
703 public:
704 AllSettings();
706 void SetMouseSettings( const MouseSettings& rSet );
707 const MouseSettings& GetMouseSettings() const;
709 void SetStyleSettings( const StyleSettings& rSet );
710 const StyleSettings& GetStyleSettings() const;
712 void SetMiscSettings( const MiscSettings& rSet );
713 const MiscSettings& GetMiscSettings() const;
715 IF_MERGELIBS(SAL_DLLPRIVATE)
716 void SetHelpSettings( const HelpSettings& rSet );
717 IF_MERGELIBS(SAL_DLLPRIVATE)
718 const HelpSettings& GetHelpSettings() const;
720 void SetLanguageTag(const OUString& rLanguage, bool bCanonicalize);
721 void SetLanguageTag( const LanguageTag& rLanguageTag );
722 const LanguageTag& GetLanguageTag() const;
723 const LanguageTag& GetUILanguageTag() const;
724 static bool GetLayoutRTL(); // returns true if UI language requires right-to-left Text Layout
725 static bool GetMathLayoutRTL(); // returns true if UI language requires right-to-left Math Layout
726 static OUString GetUIRootDir();
727 const LocaleDataWrapper& GetLocaleDataWrapper() const;
728 const LocaleDataWrapper& GetUILocaleDataWrapper() const;
729 IF_MERGELIBS(SAL_DLLPRIVATE)
730 const LocaleDataWrapper& GetNeutralLocaleDataWrapper() const;
731 const vcl::I18nHelper& GetLocaleI18nHelper() const;
732 const vcl::I18nHelper& GetUILocaleI18nHelper() const;
734 SAL_DLLPRIVATE static AllSettingsFlags GetWindowUpdate()
735 { return AllSettingsFlags::MOUSE | AllSettingsFlags::STYLE | AllSettingsFlags::MISC | AllSettingsFlags::LOCALE; }
737 AllSettingsFlags Update( AllSettingsFlags nFlags, const AllSettings& rSettings );
738 SAL_DLLPRIVATE AllSettingsFlags GetChangeFlags( const AllSettings& rSettings ) const;
740 bool operator ==( const AllSettings& rSet ) const;
741 bool operator !=( const AllSettings& rSet ) const;
742 SAL_DLLPRIVATE static void LocaleSettingsChanged( ConfigurationHints nHint );
743 SAL_DLLPRIVATE SvtSysLocale& GetSysLocale();
746 #endif // INCLUDED_VCL_SETTINGS_HXX
748 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */