[Libreoffice-commits] core.git: include/vcl vcl/source

Tobias Lippert drtl at fastmail.fm
Wed Feb 26 01:17:11 PST 2014


 include/vcl/settings.hxx    | 1244 +++++++----------------
 vcl/source/app/settings.cxx | 2293 +++++++++++++++++++++++++++++++++++++++++---
 2 files changed, 2553 insertions(+), 984 deletions(-)

New commits:
commit a980928ef834fae10b326e7bb64cb48d935e2214
Author: Tobias Lippert <drtl at fastmail.fm>
Date:   Tue Feb 25 18:54:53 2014 +0100

    Remove implementation details from vcl/settings.hxx
    
    This reduces the number of files which need to be recompiled
    after a change to the internal details.
    
    Also: Remove explicit assignment operators since they are no longer
    needed.
    
    Change-Id: Ieb18a8437fbcd39c6003b50c656ce010f5002d9a
    Reviewed-on: https://gerrit.libreoffice.org/8161
    Reviewed-by: David Tardon <dtardon at redhat.com>
    Tested-by: David Tardon <dtardon at redhat.com>

diff --git a/include/vcl/settings.hxx b/include/vcl/settings.hxx
index 15123c0..981c02f 100644
--- a/include/vcl/settings.hxx
+++ b/include/vcl/settings.hxx
@@ -34,6 +34,11 @@
 
 class CollatorWrapper;
 class LocaleDataWrapper;
+struct ImplMouseData;
+struct ImplMiscData;
+struct ImplHelpData;
+struct ImplStyleData;
+struct ImplAllSettingsData;
 
 namespace vcl {
     class I18nHelper;
@@ -43,41 +48,6 @@ namespace vcl {
 }
 
 // -----------------
-// - ImplMouseData -
-// -----------------
-
-class ImplMouseData
-{
-    friend class MouseSettings;
-public:
-                                    ImplMouseData();
-                                    ImplMouseData( const ImplMouseData& rData );
-
-private:
-    sal_uLong                           mnOptions;
-    sal_uLong                           mnDoubleClkTime;
-    long                            mnDoubleClkWidth;
-    long                            mnDoubleClkHeight;
-    long                            mnStartDragWidth;
-    long                            mnStartDragHeight;
-    sal_uInt16                          mnStartDragCode;
-    sal_uInt16                          mnDragMoveCode;
-    sal_uInt16                          mnDragCopyCode;
-    sal_uInt16                          mnDragLinkCode;
-    sal_uInt16                          mnContextMenuCode;
-    sal_uInt16                          mnContextMenuClicks;
-    bool                            mbContextMenuDown;
-    sal_uLong                           mnScrollRepeat;
-    sal_uLong                           mnButtonStartRepeat;
-    sal_uLong                           mnButtonRepeat;
-    sal_uLong                           mnActionDelay;
-    sal_uLong                           mnMenuDelay;
-    sal_uLong                           mnFollow;
-    sal_uInt16                          mnMiddleButtonAction;
-    sal_uInt16                          mnWheelBehavior;
-};
-
-// -----------------
 // - MouseSettings -
 // -----------------
 
@@ -98,113 +68,80 @@ private:
 
 class VCL_DLLPUBLIC MouseSettings
 {
-    void                            CopyData();
-
 private:
+    void                            CopyData();
     boost::shared_ptr<ImplMouseData>                  mpData;
 
 public:
                                     MouseSettings();
-                                    MouseSettings( const MouseSettings& rSet );
+
                                     ~MouseSettings();
 
-    void                            SetOptions( sal_uLong nOptions )
-                                        { CopyData(); mpData->mnOptions = nOptions; }
-    sal_uLong                           GetOptions() const
-                                        { return mpData->mnOptions; }
-
-    void                            SetDoubleClickTime( sal_uLong nDoubleClkTime )
-                                        { CopyData(); mpData->mnDoubleClkTime = nDoubleClkTime; }
-    sal_uLong                           GetDoubleClickTime() const
-                                        { return mpData->mnDoubleClkTime; }
-    void                            SetDoubleClickWidth( long nDoubleClkWidth )
-                                        { CopyData(); mpData->mnDoubleClkWidth = nDoubleClkWidth; }
-    long                            GetDoubleClickWidth() const
-                                        { return mpData->mnDoubleClkWidth; }
-    void                            SetDoubleClickHeight( long nDoubleClkHeight )
-                                        { CopyData(); mpData->mnDoubleClkHeight = nDoubleClkHeight; }
-    long                            GetDoubleClickHeight() const
-                                        { return mpData->mnDoubleClkHeight; }
-
-    void                            SetStartDragWidth( long nDragWidth )
-                                        { CopyData(); mpData->mnStartDragWidth = nDragWidth; }
-    long                            GetStartDragWidth() const
-                                        { return mpData->mnStartDragWidth; }
-    void                            SetStartDragHeight( long nDragHeight )
-                                        { CopyData(); mpData->mnStartDragHeight = nDragHeight; }
-    long                            GetStartDragHeight() const
-                                        { return mpData->mnStartDragHeight; }
-    void                            SetStartDragCode( sal_uInt16 nCode )
-                                        { CopyData(); mpData->mnStartDragCode = nCode; }
-    sal_uInt16                          GetStartDragCode() const
-                                        { return mpData->mnStartDragCode; }
-    void                            SetDragMoveCode( sal_uInt16 nCode )
-                                        { CopyData(); mpData->mnDragMoveCode = nCode; }
-    sal_uInt16                          GetDragMoveCode() const
-                                        { return mpData->mnDragMoveCode; }
-    void                            SetDragCopyCode( sal_uInt16 nCode )
-                                        { CopyData(); mpData->mnDragCopyCode = nCode; }
-    sal_uInt16                          GetDragCopyCode() const
-                                        { return mpData->mnDragCopyCode; }
-    void                            SetDragLinkCode( sal_uInt16 nCode )
-                                        { CopyData(); mpData->mnDragLinkCode = nCode; }
-    sal_uInt16                          GetDragLinkCode() const
-                                        { return mpData->mnDragLinkCode; }
-
-    void                            SetContextMenuCode( sal_uInt16 nCode )
-                                        { CopyData(); mpData->mnContextMenuCode = nCode; }
-    sal_uInt16                          GetContextMenuCode() const
-                                        { return mpData->mnContextMenuCode; }
-    void                            SetContextMenuClicks( sal_uInt16 nClicks )
-                                        { CopyData(); mpData->mnContextMenuClicks = nClicks; }
-    sal_uInt16                          GetContextMenuClicks() const
-                                        { return mpData->mnContextMenuClicks; }
-    void                            SetContextMenuDown( bool bDown )
-                                        { CopyData(); mpData->mbContextMenuDown = bDown; }
-    bool                            GetContextMenuDown() const
-                                        { return mpData->mbContextMenuDown; }
-
-    void                            SetScrollRepeat( sal_uLong nRepeat )
-                                        { CopyData(); mpData->mnScrollRepeat = nRepeat; }
-    sal_uLong                           GetScrollRepeat() const
-                                        { return mpData->mnScrollRepeat; }
-    void                            SetButtonStartRepeat( sal_uLong nRepeat )
-                                        { CopyData(); mpData->mnButtonStartRepeat = nRepeat; }
-    sal_uLong                           GetButtonStartRepeat() const
-                                        { return mpData->mnButtonStartRepeat; }
-    void                            SetButtonRepeat( sal_uLong nRepeat )
-                                        { CopyData(); mpData->mnButtonRepeat = nRepeat; }
-    sal_uLong                           GetButtonRepeat() const
-                                        { return mpData->mnButtonRepeat; }
-    void                            SetActionDelay( sal_uLong nDelay )
-                                        { CopyData(); mpData->mnActionDelay = nDelay; }
-    sal_uLong                           GetActionDelay() const
-                                        { return mpData->mnActionDelay; }
-    void                            SetMenuDelay( sal_uLong nDelay )
-                                        { CopyData(); mpData->mnMenuDelay = nDelay; }
-    sal_uLong                           GetMenuDelay() const
-                                        { return mpData->mnMenuDelay; }
-
-    void                            SetFollow( sal_uLong nFollow )
-                                        { CopyData(); mpData->mnFollow = nFollow; }
-    sal_uLong                           GetFollow() const
-                                        { return mpData->mnFollow; }
-
-    void                            SetMiddleButtonAction( sal_uInt16 nAction )
-                                        { CopyData(); mpData->mnMiddleButtonAction = nAction; }
-    sal_uInt16                          GetMiddleButtonAction() const
-                                        { return mpData->mnMiddleButtonAction; }
-
-    void                            SetWheelBehavior( sal_uInt16 nBehavior )
-                                        { CopyData(); mpData->mnWheelBehavior = nBehavior; }
-    sal_uInt16                          GetWheelBehavior() const
-                                        { return mpData->mnWheelBehavior; }
-
-    const MouseSettings&            operator =( const MouseSettings& rSet );
+    void                            SetOptions( sal_uLong nOptions );
+    sal_uLong                       GetOptions() const;
+
+    void                            SetDoubleClickTime( sal_uLong nDoubleClkTime );
+    sal_uLong                       GetDoubleClickTime() const;
+
+    void                            SetDoubleClickWidth( long nDoubleClkWidth );
+    long                            GetDoubleClickWidth() const;
+
+    void                            SetDoubleClickHeight( long nDoubleClkHeight );
+    long                            GetDoubleClickHeight() const;
+
+    void                            SetStartDragWidth( long nDragWidth );
+    long                            GetStartDragWidth() const;
+
+    void                            SetStartDragHeight( long nDragHeight );
+    long                            GetStartDragHeight() const;
+
+    void                            SetStartDragCode( sal_uInt16 nCode );
+    sal_uInt16                      GetStartDragCode() const;
+
+    void                            SetDragMoveCode( sal_uInt16 nCode );
+    sal_uInt16                      GetDragMoveCode() const;
+
+    void                            SetDragCopyCode( sal_uInt16 nCode );
+    sal_uInt16                      GetDragCopyCode() const;
+
+    void                            SetDragLinkCode( sal_uInt16 nCode );
+    sal_uInt16                      GetDragLinkCode() const;
+
+    void                            SetContextMenuCode( sal_uInt16 nCode );
+    sal_uInt16                      GetContextMenuCode() const;
+
+    void                            SetContextMenuClicks( sal_uInt16 nClicks );
+    sal_uInt16                      GetContextMenuClicks() const;
+
+    void                            SetContextMenuDown( bool bDown );
+    bool                            GetContextMenuDown() const;
+
+    void                            SetScrollRepeat( sal_uLong nRepeat );
+    sal_uLong                       GetScrollRepeat() const;
+
+    void                            SetButtonStartRepeat( sal_uLong nRepeat );
+    sal_uLong                       GetButtonStartRepeat() const;
+
+    void                            SetButtonRepeat( sal_uLong nRepeat );
+    sal_uLong                       GetButtonRepeat() const;
+
+    void                            SetActionDelay( sal_uLong nDelay );
+    sal_uLong                       GetActionDelay() const;
+
+    void                            SetMenuDelay( sal_uLong nDelay );
+    sal_uLong                       GetMenuDelay() const;
+
+    void                            SetFollow( sal_uLong nFollow );
+    sal_uLong                       GetFollow() const;
+
+    void                            SetMiddleButtonAction( sal_uInt16 nAction );
+    sal_uInt16                      GetMiddleButtonAction() const;
+
+    void                            SetWheelBehavior( sal_uInt16 nBehavior );
+    sal_uInt16                      GetWheelBehavior() const;
 
     bool                            operator ==( const MouseSettings& rSet ) const;
-    bool                            operator !=( const MouseSettings& rSet ) const
-                                        { return !(*this == rSet); }
+    bool                            operator !=( const MouseSettings& rSet ) const;
 };
 
 struct DialogStyle
@@ -235,147 +172,6 @@ struct FrameStyle
     {}
 };
 
-// -----------------
-// - ImplStyleData -
-// -----------------
-
-class ImplStyleData
-{
-    friend class StyleSettings;
-
-public:
-                                    ImplStyleData();
-                                    ImplStyleData( const ImplStyleData& rData );
-
-private:
-    void                            SetStandardStyles();
-
-    Color                           maActiveBorderColor;
-    Color                           maActiveColor;
-    Color                           maActiveColor2;
-    Color                           maActiveTextColor;
-    Color                           maButtonTextColor;
-    Color                           maButtonRolloverTextColor;
-    Color                           maCheckedColor;
-    Color                           maDarkShadowColor;
-    Color                           maDeactiveBorderColor;
-    Color                           maDeactiveColor;
-    Color                           maDeactiveColor2;
-    Color                           maDeactiveTextColor;
-    Color                           maDialogColor;
-    Color                           maDialogTextColor;
-    Color                           maDisableColor;
-    Color                           maFaceColor;
-    Color                           maFieldColor;
-    Color                           maFieldTextColor;
-    Color                           maFieldRolloverTextColor;
-    Color                           maFontColor;
-    Color                           maGroupTextColor;
-    Color                           maHelpColor;
-    Color                           maHelpTextColor;
-    Color                           maHighlightColor;
-    Color                           maHighlightLinkColor;
-    Color                           maHighlightTextColor;
-    Color                           maInfoTextColor;
-    Color                           maLabelTextColor;
-    Color                           maLightBorderColor;
-    Color                           maLightColor;
-    Color                           maLinkColor;
-    Color                           maMenuBarColor;
-    Color                           maMenuBarRolloverColor;
-    Color                           maMenuBorderColor;
-    Color                           maMenuColor;
-    Color                           maMenuHighlightColor;
-    Color                           maMenuHighlightTextColor;
-    Color                           maMenuTextColor;
-    Color                           maMenuBarTextColor;
-    Color                           maMenuBarRolloverTextColor;
-    Color                           maMonoColor;
-    Color                           maRadioCheckTextColor;
-    Color                           maShadowColor;
-    Color                           maVisitedLinkColor;
-    Color                           maWindowColor;
-    Color                           maWindowTextColor;
-    Color                           maWorkspaceColor;
-    Color                           maActiveTabColor;
-    Color                           maInactiveTabColor;
-    Font                            maAppFont;
-    Font                            maHelpFont;
-    Font                            maTitleFont;
-    Font                            maFloatTitleFont;
-    Font                            maMenuFont;
-    Font                            maToolFont;
-    Font                            maLabelFont;
-    Font                            maInfoFont;
-    Font                            maRadioCheckFont;
-    Font                            maPushButtonFont;
-    Font                            maFieldFont;
-    Font                            maIconFont;
-    Font                            maGroupFont;
-    long                            mnBorderSize;
-    long                            mnTitleHeight;
-    long                            mnFloatTitleHeight;
-    long                            mnTearOffTitleHeight;
-    long                            mnScrollBarSize;
-    long                            mnSplitSize;
-    long                            mnSpinSize;
-    long                            mnCursorSize;
-    long                            mnMenuBarHeight;
-    long                            mnIconHorzSpace;
-    long                            mnIconVertSpace;
-    long                            mnAntialiasedMin;
-    sal_uLong                       mnCursorBlinkTime;
-    sal_uLong                       mnDragFullOptions;
-    sal_uLong                       mnAnimationOptions;
-    sal_uLong                       mnSelectionOptions;
-    sal_uLong                       mnLogoDisplayTime;
-    sal_uLong                       mnDisplayOptions;
-    sal_uLong                       mnToolbarIconSize;
-    bool                       mnUseFlatMenus;
-    sal_uLong                  mnOptions;
-    sal_uInt16                 mnScreenZoom;
-    sal_uInt16                 mnScreenFontZoom;
-    bool                       mbHighContrast;
-    bool                       mbUseSystemUIFonts;
-    sal_uInt16                 mnAutoMnemonic;
-    TriState                   meUseImagesInMenus;
-    bool                       mnUseFlatBorders;
-    bool                       mbPreferredUseImagesInMenus;
-    long                       mnMinThumbSize;
-    boost::shared_ptr<vcl::IconThemeScanner>
-                                    mIconThemeScanner;
-    boost::shared_ptr<vcl::IconThemeSelector>
-                                    mIconThemeSelector;
-
-    OUString                   mIconTheme;
-    bool                       mbSkipDisabledInMenus;
-    bool                       mbHideDisabledMenuItems;
-    bool                       mbAcceleratorsInContextMenus;
-    //mbPrimaryButtonWarpsSlider == true for "jump to here" behavior for primary button, otherwise
-    //primary means scroll by single page. Secondary button takes the alternative behaviour
-    bool                        mbPrimaryButtonWarpsSlider;
-    Wallpaper                       maWorkspaceGradient;
-    DialogStyle                     maDialogStyle;
-    FrameStyle                      maFrameStyle;
-    const void*                     mpFontOptions;
-
-    sal_uInt16                      mnEdgeBlending;
-    Color                           maEdgeBlendingTopLeftColor;
-    Color                           maEdgeBlendingBottomRightColor;
-    sal_uInt16                      mnListBoxMaximumLineCount;
-    sal_uInt16                      mnColorValueSetColumnCount;
-    sal_uInt16                      mnColorValueSetMaximumRowCount;
-    Size                            maListBoxPreviewDefaultLogicSize;
-    Size                            maListBoxPreviewDefaultPixelSize;
-    sal_uInt16                      mnListBoxPreviewDefaultLineWidth;
-    bool                        mbPreviewUsesCheckeredBackground;
-
-    OUString                        maPersonaHeaderFooter; ///< Cache the settings to detect changes.
-
-    BitmapEx                        maPersonaHeaderBitmap; ///< Cache the header bitmap.
-    BitmapEx                        maPersonaFooterBitmap; ///< Cache the footer bitmap.
-};
-
 #define DEFAULT_WORKSPACE_GRADIENT_START_COLOR Color( 0xa3, 0xae, 0xb8 )
 #define DEFAULT_WORKSPACE_GRADIENT_END_COLOR Color( 0x73, 0x7e, 0x88 )
 
@@ -431,416 +227,305 @@ private:
 
 public:
                                     StyleSettings();
-                                    StyleSettings( const StyleSettings& rSet );
                                     ~StyleSettings();
 
     void                            Set3DColors( const Color& rColor );
-    void                            SetFaceColor( const Color& rColor )
-                                        { CopyData(); mpData->maFaceColor = rColor; }
-    const Color&                    GetFaceColor() const
-                                        { return mpData->maFaceColor; }
+
+    void                            SetFaceColor( const Color& rColor );
+    const Color&                    GetFaceColor() const;
+
     Color                           GetFaceGradientColor() const;
+
     Color                           GetSeparatorColor() const;
-    void                            SetCheckedColor( const Color& rColor )
-                                        { CopyData(); mpData->maCheckedColor = rColor; }
+
+    void                            SetCheckedColor( const Color& rColor );
     void                            SetCheckedColorSpecialCase( );
-    const Color&                    GetCheckedColor() const
-                                        { return mpData->maCheckedColor; }
-    void                            SetLightColor( const Color& rColor )
-                                        { CopyData(); mpData->maLightColor = rColor; }
-    const Color&                    GetLightColor() const
-                                        { return mpData->maLightColor; }
-    void                            SetLightBorderColor( const Color& rColor )
-                                        { CopyData(); mpData->maLightBorderColor = rColor; }
-    const Color&                    GetLightBorderColor() const
-                                        { return mpData->maLightBorderColor; }
-    void                            SetShadowColor( const Color& rColor )
-                                        { CopyData(); mpData->maShadowColor = rColor; }
-    const Color&                    GetShadowColor() const
-                                        { return mpData->maShadowColor; }
-    void                            SetDarkShadowColor( const Color& rColor )
-                                        { CopyData(); mpData->maDarkShadowColor = rColor; }
-    const Color&                    GetDarkShadowColor() const
-                                        { return mpData->maDarkShadowColor; }
-    void                            SetButtonTextColor( const Color& rColor )
-                                        { CopyData(); mpData->maButtonTextColor = rColor; }
-    const Color&                    GetButtonTextColor() const
-                                        { return mpData->maButtonTextColor; }
-    void                            SetButtonRolloverTextColor( const Color& rColor )
-                                        { CopyData(); mpData->maButtonRolloverTextColor = rColor; }
-    const Color&                    GetButtonRolloverTextColor() const
-                                        { return mpData->maButtonRolloverTextColor; }
-    void                            SetRadioCheckTextColor( const Color& rColor )
-                                        { CopyData(); mpData->maRadioCheckTextColor = rColor; }
-    const Color&                    GetRadioCheckTextColor() const
-                                        { return mpData->maRadioCheckTextColor; }
-    void                            SetGroupTextColor( const Color& rColor )
-                                        { CopyData(); mpData->maGroupTextColor = rColor; }
-    const Color&                    GetGroupTextColor() const
-                                        { return mpData->maGroupTextColor; }
-    void                            SetLabelTextColor( const Color& rColor )
-                                        { CopyData(); mpData->maLabelTextColor = rColor; }
-    const Color&                    GetLabelTextColor() const
-                                        { return mpData->maLabelTextColor; }
-    void                            SetInfoTextColor( const Color& rColor )
-                                        { CopyData(); mpData->maInfoTextColor = rColor; }
-    const Color&                    GetInfoTextColor() const
-                                        { return mpData->maInfoTextColor; }
-    void                            SetWindowColor( const Color& rColor )
-                                        { CopyData(); mpData->maWindowColor = rColor; }
-    const Color&                    GetWindowColor() const
-                                        { return mpData->maWindowColor; }
-    void                            SetWindowTextColor( const Color& rColor )
-                                        { CopyData(); mpData->maWindowTextColor = rColor; }
-    const Color&                    GetWindowTextColor() const
-                                        { return mpData->maWindowTextColor; }
-    void                            SetDialogColor( const Color& rColor )
-                                        { CopyData(); mpData->maDialogColor = rColor; }
-    const Color&                    GetDialogColor() const
-                                        { return mpData->maDialogColor; }
-    void                            SetDialogTextColor( const Color& rColor )
-                                        { CopyData(); mpData->maDialogTextColor = rColor; }
-    const Color&                    GetDialogTextColor() const
-                                        { return mpData->maDialogTextColor; }
-    void                            SetWorkspaceColor( const Color& rColor )
-                                        { CopyData(); mpData->maWorkspaceColor = rColor; }
-    const Color&                    GetWorkspaceColor() const
-                                        { return mpData->maWorkspaceColor; }
-    void                            SetFieldColor( const Color& rColor )
-                                        { CopyData(); mpData->maFieldColor = rColor; }
-    const Color&                    GetFieldColor() const
-                                        { return mpData->maFieldColor; }
-    void                            SetFieldTextColor( const Color& rColor )
-                                        { CopyData(); mpData->maFieldTextColor = rColor; }
-    const Color&                    GetFieldTextColor() const
-                                        { return mpData->maFieldTextColor; }
-    void                            SetFieldRolloverTextColor( const Color& rColor )
-                                        { CopyData(); mpData->maFieldRolloverTextColor = rColor; }
-    const Color&                    GetFieldRolloverTextColor() const
-                                        { return mpData->maFieldRolloverTextColor; }
-    void                            SetActiveColor( const Color& rColor )
-                                        { CopyData(); mpData->maActiveColor = rColor; }
-    const Color&                    GetActiveColor() const
-                                        { return mpData->maActiveColor; }
-    void                            SetActiveColor2( const Color& rColor )
-                                        { CopyData(); mpData->maActiveColor2 = rColor; }
-    const Color&                    GetActiveColor2() const
-                                        { return mpData->maActiveColor2; }
-    void                            SetActiveTextColor( const Color& rColor )
-                                        { CopyData(); mpData->maActiveTextColor = rColor; }
-    const Color&                    GetActiveTextColor() const
-                                        { return mpData->maActiveTextColor; }
-    void                            SetActiveBorderColor( const Color& rColor )
-                                        { CopyData(); mpData->maActiveBorderColor = rColor; }
-    const Color&                    GetActiveBorderColor() const
-                                        { return mpData->maActiveBorderColor; }
-    void                            SetDeactiveColor( const Color& rColor )
-                                        { CopyData(); mpData->maDeactiveColor = rColor; }
-    const Color&                    GetDeactiveColor() const
-                                        { return mpData->maDeactiveColor; }
-    void                            SetDeactiveColor2( const Color& rColor )
-                                        { CopyData(); mpData->maDeactiveColor2 = rColor; }
-    const Color&                    GetDeactiveColor2() const
-                                        { return mpData->maDeactiveColor2; }
-    void                            SetDeactiveTextColor( const Color& rColor )
-                                        { CopyData(); mpData->maDeactiveTextColor = rColor; }
-    const Color&                    GetDeactiveTextColor() const
-                                        { return mpData->maDeactiveTextColor; }
-    void                            SetDeactiveBorderColor( const Color& rColor )
-                                        { CopyData(); mpData->maDeactiveBorderColor = rColor; }
-    const Color&                    GetDeactiveBorderColor() const
-                                        { return mpData->maDeactiveBorderColor; }
-    void                            SetHighlightColor( const Color& rColor )
-                                        { CopyData(); mpData->maHighlightColor = rColor; }
-    const Color&                    GetHighlightColor() const
-                                        { return mpData->maHighlightColor; }
-    void                            SetHighlightTextColor( const Color& rColor )
-                                        { CopyData(); mpData->maHighlightTextColor = rColor; }
-    const Color&                    GetHighlightTextColor() const
-                                        { return mpData->maHighlightTextColor; }
-    void                            SetDisableColor( const Color& rColor )
-                                        { CopyData(); mpData->maDisableColor = rColor; }
-    const Color&                    GetDisableColor() const
-                                        { return mpData->maDisableColor; }
-    void                            SetHelpColor( const Color& rColor )
-                                        { CopyData(); mpData->maHelpColor = rColor; }
-    const Color&                    GetHelpColor() const
-                                        { return mpData->maHelpColor; }
-    void                            SetHelpTextColor( const Color& rColor )
-                                        { CopyData(); mpData->maHelpTextColor = rColor; }
-    const Color&                    GetHelpTextColor() const
-                                        { return mpData->maHelpTextColor; }
-    void                            SetMenuColor( const Color& rColor )
-                                        { CopyData(); mpData->maMenuColor = rColor; }
-    const Color&                    GetMenuColor() const
-                                        { return mpData->maMenuColor; }
-    void                            SetMenuBarColor( const Color& rColor )
-                                        { CopyData(); mpData->maMenuBarColor = rColor; }
-    const Color&                    GetMenuBarColor() const
-                                        { return mpData->maMenuBarColor; }
-    void                            SetMenuBarRolloverColor( const Color& rColor )
-                                        { CopyData(); mpData->maMenuBarRolloverColor = rColor; }
-    const Color&                    GetMenuBarRolloverColor() const
-                                        { return mpData->maMenuBarRolloverColor; }
-    void                            SetMenuBorderColor( const Color& rColor )
-                                        { CopyData(); mpData->maMenuBorderColor = rColor; }
-    const Color&                    GetMenuBorderColor() const
-                                        { return mpData->maMenuBorderColor; }
-    void                            SetMenuTextColor( const Color& rColor )
-                                        { CopyData(); mpData->maMenuTextColor = rColor; }
-    const Color&                    GetMenuTextColor() const
-                                        { return mpData->maMenuTextColor; }
-    void                            SetMenuBarTextColor( const Color& rColor )
-                                        { CopyData(); mpData->maMenuBarTextColor = rColor; }
-    const Color&                    GetMenuBarTextColor() const
-                                        { return mpData->maMenuBarTextColor; }
-    void                            SetMenuBarRolloverTextColor( const Color& rColor )
-                                        { CopyData(); mpData->maMenuBarRolloverTextColor = rColor; }
-    const Color&                    GetMenuBarRolloverTextColor() const
-                                        { return mpData->maMenuBarRolloverTextColor; }
-    void                            SetMenuHighlightColor( const Color& rColor )
-                                        { CopyData(); mpData->maMenuHighlightColor = rColor; }
-    const Color&                    GetMenuHighlightColor() const
-                                        { return mpData->maMenuHighlightColor; }
-    void                            SetMenuHighlightTextColor( const Color& rColor )
-                                        { CopyData(); mpData->maMenuHighlightTextColor = rColor; }
-    const Color&                    GetMenuHighlightTextColor() const
-                                        { return mpData->maMenuHighlightTextColor; }
-    void                            SetLinkColor( const Color& rColor )
-                                        { CopyData(); mpData->maLinkColor = rColor; }
-    const Color&                    GetLinkColor() const
-                                        { return mpData->maLinkColor; }
-    void                            SetVisitedLinkColor( const Color& rColor )
-                                        { CopyData(); mpData->maVisitedLinkColor = rColor; }
-    const Color&                    GetVisitedLinkColor() const
-                                        { return mpData->maVisitedLinkColor; }
-    void                            SetHighlightLinkColor( const Color& rColor )
-                                        { CopyData(); mpData->maHighlightLinkColor = rColor; }
-    const Color&                    GetHighlightLinkColor() const
-                                        { return mpData->maHighlightLinkColor; }
-
-    void                            SetMonoColor( const Color& rColor )
-                                        { CopyData(); mpData->maMonoColor = rColor; }
-    const Color&                    GetMonoColor() const
-                                        { return mpData->maMonoColor; }
-
-    void                            SetActiveTabColor( const Color& rColor )
-                                        { CopyData(); mpData->maActiveTabColor = rColor; }
-    const Color&                    GetActiveTabColor() const
-                                        { return mpData->maActiveTabColor; }
-    void                            SetInactiveTabColor( const Color& rColor )
-                                        { CopyData(); mpData->maInactiveTabColor = rColor; }
-    const Color&                    GetInactiveTabColor() const
-                                        { return mpData->maInactiveTabColor; }
+    const Color&                    GetCheckedColor() const;
+
+    void                            SetLightColor( const Color& rColor );
+    const Color&                    GetLightColor() const;
+
+    void                            SetLightBorderColor( const Color& rColor );
+    const Color&                    GetLightBorderColor() const;
+
+    void                            SetShadowColor( const Color& rColor );
+    const Color&                    GetShadowColor() const;
+
+    void                            SetDarkShadowColor( const Color& rColor );
+    const Color&                    GetDarkShadowColor() const;
+
+    void                            SetButtonTextColor( const Color& rColor );
+    const Color&                    GetButtonTextColor() const;
+
+    void                            SetButtonRolloverTextColor( const Color& rColor );
+    const Color&                    GetButtonRolloverTextColor() const;
+
+    void                            SetRadioCheckTextColor( const Color& rColor );
+    const Color&                    GetRadioCheckTextColor() const;
+
+    void                            SetGroupTextColor( const Color& rColor );
+    const Color&                    GetGroupTextColor() const;
+
+    void                            SetLabelTextColor( const Color& rColor );
+    const Color&                    GetLabelTextColor() const;
+
+    void                            SetInfoTextColor( const Color& rColor );
+    const Color&                    GetInfoTextColor() const;
+
+    void                            SetWindowColor( const Color& rColor );
+    const Color&                    GetWindowColor() const;
+
+    void                            SetWindowTextColor( const Color& rColor );
+    const Color&                    GetWindowTextColor() const;
+
+    void                            SetDialogColor( const Color& rColor );
+    const Color&                    GetDialogColor() const;
+
+    void                            SetDialogTextColor( const Color& rColor );
+    const Color&                    GetDialogTextColor() const;
+
+    void                            SetWorkspaceColor( const Color& rColor );
+    const Color&                    GetWorkspaceColor() const;
+
+    void                            SetFieldColor( const Color& rColor );
+    const Color&                    GetFieldColor() const;
+
+    void                            SetFieldTextColor( const Color& rColor );
+    const Color&                    GetFieldTextColor() const;
+
+    void                            SetFieldRolloverTextColor( const Color& rColor );
+    const Color&                    GetFieldRolloverTextColor() const;
+
+    void                            SetActiveColor( const Color& rColor );
+    const Color&                    GetActiveColor() const;
+
+    void                            SetActiveColor2( const Color& rColor );
+    const Color&                    GetActiveColor2() const;
+
+    void                            SetActiveTextColor( const Color& rColor );
+    const Color&                    GetActiveTextColor() const;
+
+    void                            SetActiveBorderColor( const Color& rColor );
+    const Color&                    GetActiveBorderColor() const;
+
+    void                            SetDeactiveColor( const Color& rColor );
+    const Color&                    GetDeactiveColor() const;
+
+    void                            SetDeactiveColor2( const Color& rColor );
+    const Color&                    GetDeactiveColor2() const;
+
+    void                            SetDeactiveTextColor( const Color& rColor );
+    const Color&                    GetDeactiveTextColor() const;
+
+    void                            SetDeactiveBorderColor( const Color& rColor );
+    const Color&                    GetDeactiveBorderColor() const;
+
+    void                            SetHighlightColor( const Color& rColor );
+    const Color&                    GetHighlightColor() const;
+
+    void                            SetHighlightTextColor( const Color& rColor );
+    const Color&                    GetHighlightTextColor() const;
+
+    void                            SetDisableColor( const Color& rColor );
+    const Color&                    GetDisableColor() const;
+
+    void                            SetHelpColor( const Color& rColor );
+    const Color&                    GetHelpColor() const;
+
+    void                            SetHelpTextColor( const Color& rColor );
+    const Color&                    GetHelpTextColor() const;
+
+    void                            SetMenuColor( const Color& rColor );
+    const Color&                    GetMenuColor() const;
+
+    void                            SetMenuBarColor( const Color& rColor );
+    const Color&                    GetMenuBarColor() const;
+
+    void                            SetMenuBarRolloverColor( const Color& rColor );
+    const Color&                    GetMenuBarRolloverColor() const;
+
+    void                            SetMenuBorderColor( const Color& rColor );
+    const Color&                    GetMenuBorderColor() const;
+
+    void                            SetMenuTextColor( const Color& rColor );
+    const Color&                    GetMenuTextColor() const;
+
+    void                            SetMenuBarTextColor( const Color& rColor );
+    const Color&                    GetMenuBarTextColor() const;
+
+    void                            SetMenuBarRolloverTextColor( const Color& rColor );
+    const Color&                    GetMenuBarRolloverTextColor() const;
+
+    void                            SetMenuHighlightColor( const Color& rColor );
+    const Color&                    GetMenuHighlightColor() const;
+
+    void                            SetMenuHighlightTextColor( const Color& rColor );
+    const Color&                    GetMenuHighlightTextColor() const;
+
+    void                            SetLinkColor( const Color& rColor );
+    const Color&                    GetLinkColor() const;
+
+    void                            SetVisitedLinkColor( const Color& rColor );
+    const Color&                    GetVisitedLinkColor() const;
+
+    void                            SetHighlightLinkColor( const Color& rColor );
+    const Color&                    GetHighlightLinkColor() const;
+
+    void                            SetMonoColor( const Color& rColor );
+    const Color&                    GetMonoColor() const;
+
+    void                            SetActiveTabColor( const Color& rColor );
+    const Color&                    GetActiveTabColor() const;
+
+    void                            SetInactiveTabColor( const Color& rColor );
+    const Color&                    GetInactiveTabColor() const;
 
     void                            SetHighContrastMode(bool bHighContrast );
     bool                            GetHighContrastMode() const;
 
-    void                            SetUseSystemUIFonts( bool bUseSystemUIFonts )
-                                        { CopyData(); mpData->mbUseSystemUIFonts = bUseSystemUIFonts; }
-    bool                            GetUseSystemUIFonts() const
-                                        { return mpData->mbUseSystemUIFonts; }
-    void                            SetUseFlatBorders( bool bUseFlatBorders )
-                                        { CopyData(); mpData->mnUseFlatBorders = bUseFlatBorders; }
-    bool                            GetUseFlatBorders() const
-                                        { return mpData->mnUseFlatBorders; }
-    void                            SetUseFlatMenus( bool bUseFlatMenus )
-                                        { CopyData(); mpData->mnUseFlatMenus = bUseFlatMenus; }
-    bool                            GetUseFlatMenus() const
-                                        { return mpData->mnUseFlatMenus; }
-    void                            SetUseImagesInMenus( TriState eUseImagesInMenus )
-    { CopyData(); mpData->meUseImagesInMenus = eUseImagesInMenus; }
+    void                            SetUseSystemUIFonts( bool bUseSystemUIFonts );
+    bool                            GetUseSystemUIFonts() const;
+
+    void                            SetUseFlatBorders( bool bUseFlatBorders );
+    bool                            GetUseFlatBorders() const;
+
+    void                            SetUseFlatMenus( bool bUseFlatMenus );
+    bool                            GetUseFlatMenus() const;
+
+    void                            SetUseImagesInMenus( TriState eUseImagesInMenus );
     bool                            GetUseImagesInMenus() const;
-    void                            SetPreferredUseImagesInMenus( bool bPreferredUseImagesInMenus )
-                                        { CopyData(); mpData->mbPreferredUseImagesInMenus = bPreferredUseImagesInMenus; }
-    bool                            GetPreferredUseImagesInMenus() const
-                                        { return mpData->mbPreferredUseImagesInMenus; }
-    void                            SetSkipDisabledInMenus( bool bSkipDisabledInMenus )
-                                        { CopyData(); mpData->mbSkipDisabledInMenus = bSkipDisabledInMenus; }
-    bool                            GetSkipDisabledInMenus() const
-                                        { return mpData->mbSkipDisabledInMenus; }
-    void                            SetHideDisabledMenuItems( bool bHideDisabledMenuItems )
-                                        { CopyData(); mpData->mbHideDisabledMenuItems = bHideDisabledMenuItems; }
-    bool                            GetHideDisabledMenuItems() const
-                                        { return mpData->mbHideDisabledMenuItems; }
-    void                            SetAcceleratorsInContextMenus( bool bAcceleratorsInContextMenus )
-                                        { CopyData(); mpData->mbAcceleratorsInContextMenus = bAcceleratorsInContextMenus; }
-    bool                        GetAcceleratorsInContextMenus() const
-                                        { return mpData->mbAcceleratorsInContextMenus; }
-    void                            SetPrimaryButtonWarpsSlider( bool bPrimaryButtonWarpsSlider )
-                                        { CopyData(); mpData->mbPrimaryButtonWarpsSlider = bPrimaryButtonWarpsSlider; }
-    bool                        GetPrimaryButtonWarpsSlider() const
-                                        { return mpData->mbPrimaryButtonWarpsSlider; }
-
-    void                            SetCairoFontOptions( const void *pOptions )
-                                        { CopyData(); mpData->mpFontOptions = pOptions;  }
-    const void*                     GetCairoFontOptions() const
-                                        { return mpData->mpFontOptions; }
-
-    void                            SetAppFont( const Font& rFont )
-                                        { CopyData(); mpData->maAppFont = rFont; }
-    const Font&                     GetAppFont() const
-                                        { return mpData->maAppFont; }
-    void                            SetHelpFont( const Font& rFont )
-                                        { CopyData(); mpData->maHelpFont = rFont; }
-    const Font&                     GetHelpFont() const
-                                        { return mpData->maHelpFont; }
-    void                            SetTitleFont( const Font& rFont )
-                                        { CopyData(); mpData->maTitleFont = rFont; }
-    const Font&                     GetTitleFont() const
-                                        { return mpData->maTitleFont; }
-    void                            SetFloatTitleFont( const Font& rFont )
-                                        { CopyData(); mpData->maFloatTitleFont = rFont; }
-    const Font&                     GetFloatTitleFont() const
-                                        { return mpData->maFloatTitleFont; }
-    void                            SetMenuFont( const Font& rFont )
-                                        { CopyData(); mpData->maMenuFont = rFont; }
-    const Font&                     GetMenuFont() const
-                                        { return mpData->maMenuFont; }
-    void                            SetToolFont( const Font& rFont )
-                                        { CopyData(); mpData->maToolFont = rFont; }
-    const Font&                     GetToolFont() const
-                                        { return mpData->maToolFont; }
-    void                            SetGroupFont( const Font& rFont )
-                                        { CopyData(); mpData->maGroupFont = rFont; }
-    const Font&                     GetGroupFont() const
-                                        { return mpData->maGroupFont; }
-    void                            SetLabelFont( const Font& rFont )
-                                        { CopyData(); mpData->maLabelFont = rFont; }
-    const Font&                     GetLabelFont() const
-                                        { return mpData->maLabelFont; }
-    void                            SetInfoFont( const Font& rFont )
-                                        { CopyData(); mpData->maInfoFont = rFont; }
-    const Font&                     GetInfoFont() const
-                                        { return mpData->maInfoFont; }
-    void                            SetRadioCheckFont( const Font& rFont )
-                                        { CopyData(); mpData->maRadioCheckFont = rFont; }
-    const Font&                     GetRadioCheckFont() const
-                                        { return mpData->maRadioCheckFont; }
-    void                            SetPushButtonFont( const Font& rFont )
-                                        { CopyData(); mpData->maPushButtonFont = rFont; }
-    const Font&                     GetPushButtonFont() const
-                                        { return mpData->maPushButtonFont; }
-    void                            SetFieldFont( const Font& rFont )
-                                        { CopyData(); mpData->maFieldFont = rFont; }
-    const Font&                     GetFieldFont() const
-                                        { return mpData->maFieldFont; }
-    void                            SetIconFont( const Font& rFont )
-                                        { CopyData(); mpData->maIconFont = rFont; }
-    const Font&                     GetIconFont() const
-                                        { return mpData->maIconFont; }
-
-    void                            SetBorderSize( long nSize )
-                                        { CopyData(); mpData->mnBorderSize = nSize; }
-    long                            GetBorderSize() const
-                                        { return mpData->mnBorderSize; }
-    void                            SetTitleHeight( long nSize )
-                                        { CopyData(); mpData->mnTitleHeight = nSize; }
-    long                            GetTitleHeight() const
-                                        { return mpData->mnTitleHeight; }
-    void                            SetFloatTitleHeight( long nSize )
-                                        { CopyData(); mpData->mnFloatTitleHeight = nSize; }
-    long                            GetFloatTitleHeight() const
-                                        { return mpData->mnFloatTitleHeight; }
-    void                            SetTearOffTitleHeight( long nSize )
-                                        { CopyData(); mpData->mnTearOffTitleHeight = nSize; }
-    long                            GetTearOffTitleHeight() const
-                                        { return mpData->mnTearOffTitleHeight; }
-    void                            SetMenuBarHeight( long nSize )
-                                        { CopyData(); mpData->mnMenuBarHeight = nSize; }
-    long                            GetMenuBarHeight() const
-                                        { return mpData->mnMenuBarHeight; }
-    void                            SetScrollBarSize( long nSize )
-                                        { CopyData(); mpData->mnScrollBarSize = nSize; }
-    long                            GetScrollBarSize() const
-                                        { return mpData->mnScrollBarSize; }
-    void                            SetMinThumbSize( long nSize )
-                                        { CopyData(); mpData->mnMinThumbSize = nSize; }
-    long                            GetMinThumbSize() const
-                                        { return mpData->mnMinThumbSize; }
-    void                            SetSpinSize( long nSize )
-                                        { CopyData(); mpData->mnSpinSize = nSize; }
-    long                            GetSpinSize() const
-                                        { return mpData->mnSpinSize; }
-    void                            SetSplitSize( long nSize )
-                                        { CopyData(); mpData->mnSplitSize = nSize; }
-    long                            GetSplitSize() const
-                                        { return mpData->mnSplitSize; }
-
-    void                            SetIconHorzSpace( long nSpace )
-                                        { CopyData(); mpData->mnIconHorzSpace = nSpace; }
-    long                            GetIconHorzSpace() const
-                                        { return mpData->mnIconHorzSpace; }
-    void                            SetIconVertSpace( long nSpace )
-                                        { CopyData(); mpData->mnIconVertSpace = nSpace; }
-    long                            GetIconVertSpace() const
-                                        { return mpData->mnIconVertSpace; }
-
-    void                            SetCursorSize( long nSize )
-                                        { CopyData(); mpData->mnCursorSize = nSize; }
-    long                            GetCursorSize() const
-                                        { return mpData->mnCursorSize; }
-    void                            SetCursorBlinkTime( long nBlinkTime )
-                                        { CopyData(); mpData->mnCursorBlinkTime = nBlinkTime; }
-    long                            GetCursorBlinkTime() const
-                                        { return (long) mpData->mnCursorBlinkTime; }
-
-    void                            SetScreenZoom( sal_uInt16 nPercent )
-                                        { CopyData(); mpData->mnScreenZoom = nPercent; }
-    sal_uInt16                          GetScreenZoom() const
-                                        { return mpData->mnScreenZoom; }
-    void                            SetScreenFontZoom( sal_uInt16 nPercent )
-                                        { CopyData(); mpData->mnScreenFontZoom = nPercent; }
-    sal_uInt16                          GetScreenFontZoom() const
-                                        { return mpData->mnScreenFontZoom; }
-
-    void                            SetLogoDisplayTime( sal_uLong nDisplayTime )
-                                        { CopyData(); mpData->mnLogoDisplayTime = nDisplayTime; }
-    sal_uLong                           GetLogoDisplayTime() const
-                                        { return mpData->mnLogoDisplayTime; }
-
-    void                            SetDragFullOptions( sal_uLong nOptions )
-                                        { CopyData(); mpData->mnDragFullOptions = nOptions; }
-    sal_uLong                           GetDragFullOptions() const
-                                        { return mpData->mnDragFullOptions; }
-
-    void                            SetAnimationOptions( sal_uLong nOptions )
-                                        { CopyData(); mpData->mnAnimationOptions = nOptions; }
-    sal_uLong                           GetAnimationOptions() const
-                                        { return mpData->mnAnimationOptions; }
-
-    void                            SetSelectionOptions( sal_uLong nOptions )
-                                        { CopyData(); mpData->mnSelectionOptions = nOptions; }
-    sal_uLong                           GetSelectionOptions() const
-                                        { return mpData->mnSelectionOptions; }
-
-    void                            SetDisplayOptions( sal_uLong nOptions )
-                                        { CopyData(); mpData->mnDisplayOptions = nOptions; }
-    sal_uLong                           GetDisplayOptions() const
-                                        { return mpData->mnDisplayOptions; }
-    void                            SetAntialiasingMinPixelHeight( long nMinPixel )
-                                        { CopyData(); mpData->mnAntialiasedMin = nMinPixel; }
-    sal_uLong                           GetAntialiasingMinPixelHeight() const
-                                        { return mpData->mnAntialiasedMin; }
-
-    void                            SetOptions( sal_uLong nOptions )
-                                        { CopyData(); mpData->mnOptions = nOptions; }
-    sal_uLong                           GetOptions() const;
-
-    void                            SetAutoMnemonic( bool bAutoMnemonic )
-                                        { CopyData(); mpData->mnAutoMnemonic = (sal_uInt16)bAutoMnemonic; }
-    bool                            GetAutoMnemonic() const
-                                        { return mpData->mnAutoMnemonic ? sal_True : sal_False; }
-
-    void                            SetFontColor( const Color& rColor )
-                                        { CopyData(); mpData->maFontColor = rColor; }
-    const Color&                    GetFontColor() const
-                                        { return mpData->maFontColor; }
-
-    void                            SetToolbarIconSize( sal_uLong nSize )
-                                        { CopyData(); mpData->mnToolbarIconSize = nSize; }
-    sal_uLong                           GetToolbarIconSize() const
-                                        { return mpData->mnToolbarIconSize; }
+
+    void                            SetPreferredUseImagesInMenus( bool bPreferredUseImagesInMenus );
+    bool                            GetPreferredUseImagesInMenus() const;
+
+    void                            SetSkipDisabledInMenus( bool bSkipDisabledInMenus );
+    bool                            GetSkipDisabledInMenus() const;
+
+    void                            SetHideDisabledMenuItems( bool bHideDisabledMenuItems );
+    bool                            GetHideDisabledMenuItems() const;
+
+    void                            SetAcceleratorsInContextMenus( bool bAcceleratorsInContextMenus );
+    bool                            GetAcceleratorsInContextMenus() const;
+
+    void                            SetPrimaryButtonWarpsSlider( bool bPrimaryButtonWarpsSlider );
+    bool                            GetPrimaryButtonWarpsSlider() const;
+
+    void                            SetCairoFontOptions( const void *pOptions );
+    const void*                     GetCairoFontOptions() const;
+
+    void                            SetAppFont( const Font& rFont );
+    const Font&                     GetAppFont() const;
+
+    void                            SetHelpFont( const Font& rFont );
+    const Font&                     GetHelpFont() const;
+
+    void                            SetTitleFont( const Font& rFont );
+    const Font&                     GetTitleFont() const;
+
+    void                            SetFloatTitleFont( const Font& rFont );
+    const Font&                     GetFloatTitleFont() const;
+
+    void                            SetMenuFont( const Font& rFont );
+    const Font&                     GetMenuFont() const;
+
+    void                            SetToolFont( const Font& rFont );
+    const Font&                     GetToolFont() const;
+
+    void                            SetGroupFont( const Font& rFont );
+    const Font&                     GetGroupFont() const;
+
+    void                            SetLabelFont( const Font& rFont );
+    const Font&                     GetLabelFont() const;
+
+    void                            SetInfoFont( const Font& rFont );
+    const Font&                     GetInfoFont() const;
+
+    void                            SetRadioCheckFont( const Font& rFont );
+    const Font&                     GetRadioCheckFont() const;
+
+    void                            SetPushButtonFont( const Font& rFont );
+    const Font&                     GetPushButtonFont() const;
+
+    void                            SetFieldFont( const Font& rFont );
+    const Font&                     GetFieldFont() const;
+
+    void                            SetIconFont( const Font& rFont );
+    const Font&                     GetIconFont() const;
+
+    void                            SetBorderSize( long nSize );
+    long                            GetBorderSize() const;
+
+    void                            SetTitleHeight( long nSize );
+    long                            GetTitleHeight() const;
+
+    void                            SetFloatTitleHeight( long nSize );
+    long                            GetFloatTitleHeight() const;
+
+    void                            SetTearOffTitleHeight( long nSize );
+    long                            GetTearOffTitleHeight() const;
+
+    void                            SetMenuBarHeight( long nSize );
+    long                            GetMenuBarHeight() const;
+
+    void                            SetScrollBarSize( long nSize );
+    long                            GetScrollBarSize() const;
+
+    void                            SetMinThumbSize( long nSize );
+    long                            GetMinThumbSize() const;
+
+    void                            SetSpinSize( long nSize );
+    long                            GetSpinSize() const;
+
+    void                            SetSplitSize( long nSize );
+    long                            GetSplitSize() const;
+
+    void                            SetIconHorzSpace( long nSpace );
+    long                            GetIconHorzSpace() const;
+
+    void                            SetIconVertSpace( long nSpace );
+    long                            GetIconVertSpace() const;
+
+    void                            SetCursorSize( long nSize );
+    long                            GetCursorSize() const;
+
+    void                            SetCursorBlinkTime( long nBlinkTime );
+    long                            GetCursorBlinkTime() const;
+
+    void                            SetScreenZoom( sal_uInt16 nPercent );
+    sal_uInt16                      GetScreenZoom() const;
+
+    void                            SetScreenFontZoom( sal_uInt16 nPercent );
+    sal_uInt16                      GetScreenFontZoom() const;
+
+    void                            SetLogoDisplayTime( sal_uLong nDisplayTime );
+    sal_uLong                       GetLogoDisplayTime() const;
+
+    void                            SetDragFullOptions( sal_uLong nOptions );
+    sal_uLong                       GetDragFullOptions() const;
+
+    void                            SetAnimationOptions( sal_uLong nOptions );
+    sal_uLong                       GetAnimationOptions() const;
+
+    void                            SetSelectionOptions( sal_uLong nOptions );
+    sal_uLong                       GetSelectionOptions() const;
+
+    void                            SetDisplayOptions( sal_uLong nOptions );
+    sal_uLong                       GetDisplayOptions() const;
+
+    void                            SetAntialiasingMinPixelHeight( long nMinPixel );
+    sal_uLong                       GetAntialiasingMinPixelHeight() const;
+
+    void                            SetOptions( sal_uLong nOptions );
+    sal_uLong                       GetOptions() const;
+
+    void                            SetAutoMnemonic( bool bAutoMnemonic );
+    bool                            GetAutoMnemonic() const;
+
+    void                            SetFontColor( const Color& rColor );
+    const Color&                    GetFontColor() const;
+
+    void                            SetToolbarIconSize( sal_uLong nSize );
+    sal_uLong                       GetToolbarIconSize() const;
 
     /** Set the icon theme to use. */
     void                            SetIconTheme(const OUString&);
@@ -869,51 +554,45 @@ public:
      */
     void                            SetPreferredIconTheme(const OUString&);
 
-    const Wallpaper&                GetWorkspaceGradient() const
-                                        { return mpData->maWorkspaceGradient; }
-    void                            SetWorkspaceGradient( const Wallpaper& rWall )
-                                        { CopyData(); mpData->maWorkspaceGradient = rWall; }
+    const Wallpaper&                GetWorkspaceGradient() const;
+    void                            SetWorkspaceGradient( const Wallpaper& rWall );
 
-    const DialogStyle&              GetDialogStyle() const
-                                        { return mpData->maDialogStyle; }
-    void                            SetDialogStyle( const DialogStyle& rStyle )
-                                        { CopyData(); mpData->maDialogStyle = rStyle; }
+    const DialogStyle&              GetDialogStyle() const;
+    void                            SetDialogStyle( const DialogStyle& rStyle );
 
-    const FrameStyle&               GetFrameStyle() const
-                                        { return mpData->maFrameStyle; }
-    void                            SetFrameStyle( const FrameStyle& rStyle )
-                                        { CopyData(); mpData->maFrameStyle = rStyle; }
+    const FrameStyle&               GetFrameStyle() const;
+    void                            SetFrameStyle( const FrameStyle& rStyle );
 
     const BitmapEx                  GetPersonaHeader() const;
 
     // global switch to allow EdgeBlenging; currently possible for ValueSet and ListBox
     // when activated there using Get/SetEdgeBlending; default is true
-    void SetEdgeBlending(sal_uInt16 nCount) { CopyData(); mpData->mnEdgeBlending = nCount; }
-    sal_uInt16 GetEdgeBlending() const { return mpData->mnEdgeBlending; }
+    void                            SetEdgeBlending(sal_uInt16 nCount);
+    sal_uInt16                      GetEdgeBlending() const;
 
     // TopLeft (default RGB_COLORDATA(0xC0, 0xC0, 0xC0)) and BottomRight (default RGB_COLORDATA(0x40, 0x40, 0x40))
     // default colors for EdgeBlending
-    void SetEdgeBlendingTopLeftColor(const Color& rTopLeft) { CopyData(); mpData->maEdgeBlendingTopLeftColor = rTopLeft; }
-    const Color& GetEdgeBlendingTopLeftColor() const { return mpData->maEdgeBlendingTopLeftColor; }
-    void SetEdgeBlendingBottomRightColor(const Color& rBottomRight) { CopyData(); mpData->maEdgeBlendingBottomRightColor = rBottomRight; }
-    const Color& GetEdgeBlendingBottomRightColor() const { return mpData->maEdgeBlendingBottomRightColor; }
+    void                            SetEdgeBlendingTopLeftColor(const Color& rTopLeft);
+    const Color&                    GetEdgeBlendingTopLeftColor() const;
+    void                            SetEdgeBlendingBottomRightColor(const Color& rBottomRight);
+    const Color&                    GetEdgeBlendingBottomRightColor() const;
 
     // maximum line count for ListBox control; to use this, call AdaptDropDownLineCountToMaximum() at the
     // ListBox after it's ItemCount has changed/got filled. Default is 25. If more Items exist, a scrollbar
     // will be used
-    void SetListBoxMaximumLineCount(sal_uInt16 nCount) { CopyData(); mpData->mnListBoxMaximumLineCount = nCount; }
-    sal_uInt16 GetListBoxMaximumLineCount() const { return mpData->mnListBoxMaximumLineCount; }
+    void                            SetListBoxMaximumLineCount(sal_uInt16 nCount);
+    sal_uInt16                      GetListBoxMaximumLineCount() const;
 
     // maximum column count for the ColorValueSet control. Default is 12 and this is optimized for the
     // color scheme which has 12-color alogned layout for the part taken over from Symphony. Do
     // only change this if you know what you are doing.
-    void SetColorValueSetColumnCount(sal_uInt16 nCount) { CopyData(); mpData->mnColorValueSetColumnCount = nCount; }
-    sal_uInt16 GetColorValueSetColumnCount() const { return mpData->mnColorValueSetColumnCount; }
+    void                            SetColorValueSetColumnCount(sal_uInt16 nCount);
+    sal_uInt16                      GetColorValueSetColumnCount() const;
 
     // maximum row/line count for the ColorValueSet control. If more lines would be needed, a scrollbar will
     // be used. Default is 40.
-    void SetColorValueSetMaximumRowCount(sal_uInt16 nCount) { CopyData(); mpData->mnColorValueSetMaximumRowCount = nCount; }
-    sal_uInt16 GetColorValueSetMaximumRowCount() const { return mpData->mnColorValueSetMaximumRowCount; }
+    void                            SetColorValueSetMaximumRowCount(sal_uInt16 nCount);
+    sal_uInt16                      GetColorValueSetMaximumRowCount() const;
 
     // the logical size for preview graphics in the ListBoxes (e.g. FillColor, FillGradient, FillHatch, FillGraphic, ..). The
     // default defines a UI-Scale independent setting which will be scaled using MAP_APPFONT. This ensures that the size will
@@ -921,44 +600,23 @@ public:
     // the correct height and a decent width. Do not change the height, but you may adapt the width to change the preview width.
     // GetListBoxPreviewDefaultPixelSize() is for convenience so that not everyone has to do the scaling itself and contains
     // the logical size scaled by MAP_APPFONT.
-    void SetListBoxPreviewDefaultLogicSize(const Size& rSize) { CopyData(); mpData->maListBoxPreviewDefaultLogicSize = rSize; mpData->maListBoxPreviewDefaultPixelSize = Size(0, 0);}
-    const Size& GetListBoxPreviewDefaultLogicSize() const { return mpData->maListBoxPreviewDefaultLogicSize; }
-    const Size& GetListBoxPreviewDefaultPixelSize() const;
+    void                            SetListBoxPreviewDefaultLogicSize(const Size& rSize);
+    const Size&                     GetListBoxPreviewDefaultLogicSize() const;
+    const Size&                     GetListBoxPreviewDefaultPixelSize() const;
 
     // the default LineWidth for ListBox UI previews (LineStyle, LineDash, LineStartEnd). Default is 1.
-    void SetListBoxPreviewDefaultLineWidth(sal_uInt16 nWidth) { CopyData(); mpData->mnListBoxPreviewDefaultLineWidth = nWidth; }
-    sal_uInt16 GetListBoxPreviewDefaultLineWidth() const { return mpData->mnListBoxPreviewDefaultLineWidth; }
+    void                            SetListBoxPreviewDefaultLineWidth(sal_uInt16 nWidth);
+    sal_uInt16                      GetListBoxPreviewDefaultLineWidth() const;
 
     // defines if previews which containn potentially transparent objects (e.g. the dash/line/LineStartEnd previews and others)
     // use the default transparent visualization background (checkered background) as it has got standard in graphic programs nowadays
-    void SetPreviewUsesCheckeredBackground(bool bNew) { CopyData(); mpData->mbPreviewUsesCheckeredBackground = bNew; }
-    bool GetPreviewUsesCheckeredBackground() const { return mpData->mbPreviewUsesCheckeredBackground; }
+    void                            SetPreviewUsesCheckeredBackground(bool bNew);
+    bool                            GetPreviewUsesCheckeredBackground() const;
 
     void                            SetStandardStyles();
 
-    const StyleSettings&            operator =( const StyleSettings& rSet );
-
     bool                            operator ==( const StyleSettings& rSet ) const;
-    bool                            operator !=( const StyleSettings& rSet ) const
-                                        { return !(*this == rSet); }
-};
-
-// ----------------
-// - ImplMiscData -
-// ----------------
-
-class ImplMiscData
-{
-    friend class MiscSettings;
-public:
-
-                                    ImplMiscData();
-                                    ImplMiscData( const ImplMiscData& rData );
-
-private:
-    TriState                        mnEnableATT;
-    bool                            mbEnableLocalizedDecimalSep;
-    TriState                        mnDisablePrinting;
+    bool                            operator !=( const StyleSettings& rSet ) const;
 };
 
 // ----------------
@@ -974,40 +632,20 @@ private:
 
 public:
                                     MiscSettings();
-                                    MiscSettings( const MiscSettings& rSet );
                                     ~MiscSettings();
 
 #ifdef WNT
-    void                            SetEnableATToolSupport( sal_Bool bEnable );
+    void                            SetEnableATToolSupport( bool bEnable );
 #endif
-    bool                        GetEnableATToolSupport() const;
-    bool                        GetDisablePrinting() const;
+    bool                            GetEnableATToolSupport() const;
+    bool                            GetDisablePrinting() const;
     void                            SetEnableLocalizedDecimalSep( bool bEnable );
-    bool                        GetEnableLocalizedDecimalSep() const;
-    const MiscSettings&             operator =( const MiscSettings& rSet );
+    bool                            GetEnableLocalizedDecimalSep() const;
 
     bool                            operator ==( const MiscSettings& rSet ) const;
-    bool                            operator !=( const MiscSettings& rSet ) const
-                                        { return !(*this == rSet); }
+    bool                            operator !=( const MiscSettings& rSet ) const;
 };
 
-// ----------------
-// - ImplHelpData -
-// ----------------
-
-class ImplHelpData
-{
-    friend class HelpSettings;
-public:
-                                    ImplHelpData();
-                                    ImplHelpData( const ImplHelpData& rData );
-
-private:
-    sal_uLong                           mnOptions;
-    sal_uLong                           mnTipDelay;
-    sal_uLong                           mnTipTimeout;
-    sal_uLong                           mnBalloonDelay;
-};
 
 // ----------------
 // - HelpSettings -
@@ -1016,65 +654,25 @@ private:
 class VCL_DLLPUBLIC HelpSettings
 {
     void                            CopyData();
-
-private:
     boost::shared_ptr<ImplHelpData>                   mpData;
 
 public:
                                     HelpSettings();
-                                    HelpSettings( const HelpSettings& rSet );
                                     ~HelpSettings();
 
-    void                            SetOptions( sal_uLong nOptions )
-                                        { CopyData(); mpData->mnOptions = nOptions; }
-    sal_uLong                           GetOptions() const
-                                        { return mpData->mnOptions; }
-    void                            SetTipDelay( sal_uLong nTipDelay )
-                                        { CopyData(); mpData->mnTipDelay = nTipDelay; }
-    sal_uLong                           GetTipDelay() const
-                                        { return mpData->mnTipDelay; }
-    void                            SetTipTimeout( sal_uLong nTipTimeout )
-                                        { CopyData(); mpData->mnTipTimeout = nTipTimeout; }
-    sal_uLong                           GetTipTimeout() const
-                                        { return mpData->mnTipTimeout; }
-    void                            SetBalloonDelay( sal_uLong nBalloonDelay )
-                                        { CopyData(); mpData->mnBalloonDelay = nBalloonDelay; }
-    sal_uLong                           GetBalloonDelay() const
-                                        { return mpData->mnBalloonDelay; }
-
-    const HelpSettings&             operator =( const HelpSettings& rSet );
+    void                            SetOptions( sal_uLong nOptions );
+    sal_uLong                       GetOptions() const;
+    void                            SetTipDelay( sal_uLong nTipDelay );
+    sal_uLong                       GetTipDelay() const;
+    void                            SetTipTimeout( sal_uLong nTipTimeout );
+    sal_uLong                       GetTipTimeout() const;
+    void                            SetBalloonDelay( sal_uLong nBalloonDelay );
+    sal_uLong                       GetBalloonDelay() const;
 
     bool                            operator ==( const HelpSettings& rSet ) const;
-    bool                            operator !=( const HelpSettings& rSet ) const
-                                        { return !(*this == rSet); }
+    bool                            operator !=( const HelpSettings& rSet ) const;
 };
 
-// -----------------------
-// - ImplAllSettingsData -
-// -----------------------
-class ImplAllSettingsData
-{
-public:
-    ImplAllSettingsData();
-    ImplAllSettingsData( const ImplAllSettingsData& rData );
-    ~ImplAllSettingsData();
-
-    friend class    AllSettings;
-private:
-    MouseSettings                           maMouseSettings;
-    StyleSettings                           maStyleSettings;
-    MiscSettings                            maMiscSettings;
-    HelpSettings                            maHelpSettings;
-    LanguageTag                             maLocale;
-    sal_uLong                               mnSystemUpdate;
-    sal_uLong                               mnWindowUpdate;
-    LanguageTag                             maUILocale;
-    LocaleDataWrapper*                      mpLocaleDataWrapper;
-    LocaleDataWrapper*                      mpUILocaleDataWrapper;
-    vcl::I18nHelper*                        mpI18nHelper;
-    vcl::I18nHelper*                        mpUII18nHelper;
-    SvtSysLocale                            maSysLocale;
-};
 
 // ---------------
 // - AllSettings -
@@ -1098,9 +696,9 @@ const int SETTINGS_IN_UPDATE_SETTINGS = 0x00000800;   // this flag indicates tha
 
 class VCL_DLLPUBLIC AllSettings
 {
+private:
     void                                    CopyData();
 
-private:
     boost::shared_ptr<ImplAllSettingsData>                    mpData;
 
 public:
@@ -1108,24 +706,17 @@ public:
                                             AllSettings( const AllSettings& rSet );
                                             ~AllSettings();
 
-    void                                    SetMouseSettings( const MouseSettings& rSet )
-                                                { CopyData(); mpData->maMouseSettings = rSet; }
-    const MouseSettings&                    GetMouseSettings() const
-                                                { return mpData->maMouseSettings; }
+    void                                    SetMouseSettings( const MouseSettings& rSet );
+    const MouseSettings&                    GetMouseSettings() const;
 
-    void                                    SetStyleSettings( const StyleSettings& rSet )
-                                                { CopyData(); mpData->maStyleSettings = rSet; }
+    void                                    SetStyleSettings( const StyleSettings& rSet );
     const StyleSettings&                    GetStyleSettings() const;
 
-    void                                    SetMiscSettings( const MiscSettings& rSet )
-                                                { CopyData(); mpData->maMiscSettings = rSet; }
-    const MiscSettings&                     GetMiscSettings() const
-                                                { return mpData->maMiscSettings; }
+    void                                    SetMiscSettings( const MiscSettings& rSet );
+    const MiscSettings&                     GetMiscSettings() const;
 
-    void                                    SetHelpSettings( const HelpSettings& rSet )
-                                                { CopyData(); mpData->maHelpSettings = rSet; }
-    const HelpSettings&                     GetHelpSettings() const
-                                                { return mpData->maHelpSettings; }
+    void                                    SetHelpSettings( const HelpSettings& rSet );
+    const HelpSettings&                     GetHelpSettings() const;
 
     void                                    SetLanguageTag( const LanguageTag& rLanguageTag );
     const LanguageTag&                      GetLanguageTag() const;
@@ -1138,25 +729,18 @@ public:
     const vcl::I18nHelper&                  GetLocaleI18nHelper() const;
     const vcl::I18nHelper&                  GetUILocaleI18nHelper() const;
 
-    void                                    SetSystemUpdate( sal_uLong nUpdate )
-                                                { CopyData(); mpData->mnSystemUpdate = nUpdate; }
-    sal_uLong                                   GetSystemUpdate() const
-                                                { return mpData->mnSystemUpdate; }
-    void                                    SetWindowUpdate( sal_uLong nUpdate )
-                                                { CopyData(); mpData->mnWindowUpdate = nUpdate; }
-    sal_uLong                                   GetWindowUpdate() const
-                                                { return mpData->mnWindowUpdate; }
-
-    sal_uLong                                   Update( sal_uLong nFlags, const AllSettings& rSettings );
-    sal_uLong                                   GetChangeFlags( const AllSettings& rSettings ) const;
+    void                                    SetSystemUpdate( sal_uLong nUpdate );
+    sal_uLong                               GetSystemUpdate() const;
+    void                                    SetWindowUpdate( sal_uLong nUpdate );
+    sal_uLong                               GetWindowUpdate() const;
 
-    const AllSettings&                      operator =( const AllSettings& rSet );
+    sal_uLong                               Update( sal_uLong nFlags, const AllSettings& rSettings );
+    sal_uLong                               GetChangeFlags( const AllSettings& rSettings ) const;
 
     bool                                    operator ==( const AllSettings& rSet ) const;
-    bool                                    operator !=( const AllSettings& rSet ) const
-                                                { return !(*this == rSet); }
+    bool                                    operator !=( const AllSettings& rSet ) const;
     static void                             LocaleSettingsChanged( sal_uInt32 nHint );
-    SvtSysLocale&                           GetSysLocale() { return mpData->maSysLocale; }
+    SvtSysLocale&                           GetSysLocale();
 };
 
 #endif // INCLUDED_VCL_SETTINGS_HXX
diff --git a/vcl/source/app/settings.cxx b/vcl/source/app/settings.cxx
index 727b5d6..90abade 100644
--- a/vcl/source/app/settings.cxx
+++ b/vcl/source/app/settings.cxx
@@ -54,6 +54,211 @@ using namespace ::com::sun::star;
 
 #include <boost/make_shared.hpp>
 
+struct ImplMouseData
+{
+                                    ImplMouseData();
+                                    ImplMouseData( const ImplMouseData& rData );
+
+    sal_uLong                           mnOptions;
+    sal_uLong                           mnDoubleClkTime;
+    long                            mnDoubleClkWidth;
+    long                            mnDoubleClkHeight;
+    long                            mnStartDragWidth;
+    long                            mnStartDragHeight;
+    sal_uInt16                          mnStartDragCode;
+    sal_uInt16                          mnDragMoveCode;
+    sal_uInt16                          mnDragCopyCode;
+    sal_uInt16                          mnDragLinkCode;
+    sal_uInt16                          mnContextMenuCode;
+    sal_uInt16                          mnContextMenuClicks;
+    bool                                mbContextMenuDown;
+    sal_uLong                           mnScrollRepeat;
+    sal_uLong                           mnButtonStartRepeat;
+    sal_uLong                           mnButtonRepeat;
+    sal_uLong                           mnActionDelay;
+    sal_uLong                           mnMenuDelay;
+    sal_uLong                           mnFollow;
+    sal_uInt16                          mnMiddleButtonAction;
+    sal_uInt16                          mnWheelBehavior;
+};
+
+
+struct ImplStyleData
+{
+                                    ImplStyleData();
+                                    ImplStyleData( const ImplStyleData& rData );
+
+    void                            SetStandardStyles();
+
+    Color                           maActiveBorderColor;
+    Color                           maActiveColor;
+    Color                           maActiveColor2;
+    Color                           maActiveTextColor;
+    Color                           maButtonTextColor;
+    Color                           maButtonRolloverTextColor;
+    Color                           maCheckedColor;
+    Color                           maDarkShadowColor;
+    Color                           maDeactiveBorderColor;
+    Color                           maDeactiveColor;
+    Color                           maDeactiveColor2;
+    Color                           maDeactiveTextColor;
+    Color                           maDialogColor;
+    Color                           maDialogTextColor;
+    Color                           maDisableColor;
+    Color                           maFaceColor;
+    Color                           maFieldColor;
+    Color                           maFieldTextColor;
+    Color                           maFieldRolloverTextColor;
+    Color                           maFontColor;
+    Color                           maGroupTextColor;
+    Color                           maHelpColor;
+    Color                           maHelpTextColor;
+    Color                           maHighlightColor;
+    Color                           maHighlightLinkColor;
+    Color                           maHighlightTextColor;
+    Color                           maInfoTextColor;
+    Color                           maLabelTextColor;
+    Color                           maLightBorderColor;
+    Color                           maLightColor;
+    Color                           maLinkColor;
+    Color                           maMenuBarColor;
+    Color                           maMenuBarRolloverColor;
+    Color                           maMenuBorderColor;
+    Color                           maMenuColor;
+    Color                           maMenuHighlightColor;
+    Color                           maMenuHighlightTextColor;
+    Color                           maMenuTextColor;
+    Color                           maMenuBarTextColor;
+    Color                           maMenuBarRolloverTextColor;
+    Color                           maMonoColor;
+    Color                           maRadioCheckTextColor;
+    Color                           maShadowColor;
+    Color                           maVisitedLinkColor;
+    Color                           maWindowColor;
+    Color                           maWindowTextColor;
+    Color                           maWorkspaceColor;
+    Color                           maActiveTabColor;
+    Color                           maInactiveTabColor;
+    Font                            maAppFont;
+    Font                            maHelpFont;
+    Font                            maTitleFont;
+    Font                            maFloatTitleFont;
+    Font                            maMenuFont;
+    Font                            maToolFont;
+    Font                            maLabelFont;
+    Font                            maInfoFont;
+    Font                            maRadioCheckFont;
+    Font                            maPushButtonFont;
+    Font                            maFieldFont;
+    Font                            maIconFont;
+    Font                            maGroupFont;
+    long                            mnBorderSize;
+    long                            mnTitleHeight;
+    long                            mnFloatTitleHeight;
+    long                            mnTearOffTitleHeight;
+    long                            mnScrollBarSize;
+    long                            mnSplitSize;
+    long                            mnSpinSize;
+    long                            mnCursorSize;
+    long                            mnMenuBarHeight;
+    long                            mnIconHorzSpace;
+    long                            mnIconVertSpace;
+    long                            mnAntialiasedMin;
+    sal_uLong                       mnCursorBlinkTime;
+    sal_uLong                       mnDragFullOptions;
+    sal_uLong                       mnAnimationOptions;
+    sal_uLong                       mnSelectionOptions;
+    sal_uLong                       mnLogoDisplayTime;
+    sal_uLong                       mnDisplayOptions;
+    sal_uLong                       mnToolbarIconSize;
+    sal_uLong                       mnUseFlatMenus;
+    sal_uLong                       mnOptions;
+    sal_uInt16                      mnScreenZoom;
+    sal_uInt16                      mnScreenFontZoom;
+    bool                            mbHighContrast;
+    bool                            mbUseSystemUIFonts;
+    bool                            mbAutoMnemonic;
+    TriState                        meUseImagesInMenus;
+    sal_uLong                       mnUseFlatBorders;
+    bool                            mbPreferredUseImagesInMenus;
+    long                            mnMinThumbSize;
+    boost::shared_ptr<vcl::IconThemeScanner>
+                                    mIconThemeScanner;
+    boost::shared_ptr<vcl::IconThemeSelector>
+                                    mIconThemeSelector;
+
+    rtl::OUString                   mIconTheme;
+    bool                            mbSkipDisabledInMenus;
+    bool                            mbHideDisabledMenuItems;
+    bool                            mbAcceleratorsInContextMenus;
+    //mbPrimaryButtonWarpsSlider == true for "jump to here" behavior for primary button, otherwise
+    //primary means scroll by single page. Secondary button takes the alternative behaviour
+    bool                            mbPrimaryButtonWarpsSlider;
+    Wallpaper                       maWorkspaceGradient;
+    DialogStyle                     maDialogStyle;
+    FrameStyle                      maFrameStyle;
+    const void*                     mpFontOptions;
+
+    sal_uInt16                      mnEdgeBlending;
+    Color                           maEdgeBlendingTopLeftColor;
+    Color                           maEdgeBlendingBottomRightColor;
+    sal_uInt16                      mnListBoxMaximumLineCount;
+    sal_uInt16                      mnColorValueSetColumnCount;
+    sal_uInt16                      mnColorValueSetMaximumRowCount;
+    Size                            maListBoxPreviewDefaultLogicSize;
+    Size                            maListBoxPreviewDefaultPixelSize;
+    sal_uInt16                      mnListBoxPreviewDefaultLineWidth;
+    bool                            mbPreviewUsesCheckeredBackground;
+
+    OUString                        maPersonaHeaderFooter; ///< Cache the settings to detect changes.
+
+    BitmapEx                        maPersonaHeaderBitmap; ///< Cache the header bitmap.
+    BitmapEx                        maPersonaFooterBitmap; ///< Cache the footer bitmap.
+};
+
+
+struct ImplMiscData
+{
+                                    ImplMiscData();
+                                    ImplMiscData( const ImplMiscData& rData );
+    TriState                        mnEnableATT;
+    bool                            mbEnableLocalizedDecimalSep;
+    TriState                        mnDisablePrinting;
+};
+
+
+struct ImplHelpData
+{
+                                    ImplHelpData();
+                                    ImplHelpData( const ImplHelpData& rData );
+
+    sal_uLong                           mnOptions;
+    sal_uLong                           mnTipDelay;
+    sal_uLong                           mnTipTimeout;
+    sal_uLong                           mnBalloonDelay;
+};
+
+struct ImplAllSettingsData
+{
+    ImplAllSettingsData();
+    ImplAllSettingsData( const ImplAllSettingsData& rData );
+    ~ImplAllSettingsData();
+
+    MouseSettings                           maMouseSettings;
+    StyleSettings                           maStyleSettings;
+    MiscSettings                            maMiscSettings;
+    HelpSettings                            maHelpSettings;
+    LanguageTag                             maLocale;
+    sal_uLong                               mnSystemUpdate;
+    sal_uLong                               mnWindowUpdate;
+    LanguageTag                             maUILocale;
+    LocaleDataWrapper*                      mpLocaleDataWrapper;
+    LocaleDataWrapper*                      mpUILocaleDataWrapper;
+    vcl::I18nHelper*                        mpI18nHelper;
+    vcl::I18nHelper*                        mpUII18nHelper;
+    SvtSysLocale                            maSysLocale;
+};
+
 // =======================================================================
 
 ImplMouseData::ImplMouseData()
@@ -108,32 +313,301 @@ ImplMouseData::ImplMouseData( const ImplMouseData& rData )
     mnWheelBehavior             = rData.mnWheelBehavior;
 }
 
-// -----------------------------------------------------------------------
+void
+MouseSettings::SetOptions(sal_uLong nOptions)
+{
+    CopyData();
+    mpData->mnOptions = nOptions;
+}
 
-MouseSettings::MouseSettings()
-: mpData(boost::make_shared<ImplMouseData>())
+sal_uLong
+MouseSettings::GetOptions() const
 {
+    return mpData->mnOptions;
 }
 
-// -----------------------------------------------------------------------
+void
+MouseSettings::SetDoubleClickTime( sal_uLong nDoubleClkTime )
+{
+    CopyData();
+    mpData->mnDoubleClkTime = nDoubleClkTime;
+}
+
+sal_uLong
+MouseSettings::GetDoubleClickTime() const
+{
+    return mpData->mnDoubleClkTime;
+}
 
-MouseSettings::MouseSettings( const MouseSettings& rSet )
+void
+MouseSettings::SetDoubleClickWidth( long nDoubleClkWidth )
 {
-    mpData = rSet.mpData;
+    CopyData();
+    mpData->mnDoubleClkWidth = nDoubleClkWidth;
+}
+
+long
+MouseSettings::GetDoubleClickWidth() const
+{
+    return mpData->mnDoubleClkWidth;
+}
+
+void
+MouseSettings::SetDoubleClickHeight( long nDoubleClkHeight )
+{
+    CopyData();
+    mpData->mnDoubleClkHeight = nDoubleClkHeight;
+}
+
+long
+MouseSettings::GetDoubleClickHeight() const
+{
+    return mpData->mnDoubleClkHeight;
+}
+
+void
+MouseSettings::SetStartDragWidth( long nDragWidth )
+{
+    CopyData();
+    mpData->mnStartDragWidth = nDragWidth;
+}
+
+long
+MouseSettings::GetStartDragWidth() const
+{
+    return mpData->mnStartDragWidth;
+}
+
+void
+MouseSettings::SetStartDragHeight( long nDragHeight )
+{
+    CopyData();
+    mpData->mnStartDragHeight = nDragHeight;
+}
+
+long
+MouseSettings::GetStartDragHeight() const
+{
+    return mpData->mnStartDragHeight;
+}
+
+
+void
+MouseSettings::SetStartDragCode( sal_uInt16 nCode )
+{
+    CopyData(); mpData->mnStartDragCode = nCode;
+}
+
+sal_uInt16
+MouseSettings::GetStartDragCode() const
+{
+    return mpData->mnStartDragCode;
+}
+
+void
+MouseSettings::SetDragMoveCode( sal_uInt16 nCode )
+{
+    CopyData();
+    mpData->mnDragMoveCode = nCode;
+}
+
+sal_uInt16
+MouseSettings::GetDragMoveCode() const
+{
+    return mpData->mnDragMoveCode;
+}
+
+void
+MouseSettings::SetDragCopyCode( sal_uInt16 nCode )
+{
+    CopyData();
+    mpData->mnDragCopyCode = nCode;
+}
+
+sal_uInt16
+MouseSettings::GetDragCopyCode() const
+{
+    return mpData->mnDragCopyCode;
+}
+
+void
+MouseSettings::SetDragLinkCode( sal_uInt16 nCode )
+{
+    CopyData();
+    mpData->mnDragLinkCode = nCode;
+}
+
+sal_uInt16
+MouseSettings::GetDragLinkCode() const
+{
+    return mpData->mnDragLinkCode;
+}
+
+void
+MouseSettings::SetContextMenuCode( sal_uInt16 nCode )
+{
+    CopyData();
+    mpData->mnContextMenuCode = nCode;
+}
+
+sal_uInt16
+MouseSettings::GetContextMenuCode() const
+{
+    return mpData->mnContextMenuCode;
+}
+
+void
+MouseSettings::SetContextMenuClicks( sal_uInt16 nClicks )
+{
+    CopyData();
+    mpData->mnContextMenuClicks = nClicks;
+}
+
+sal_uInt16
+MouseSettings::GetContextMenuClicks() const
+{
+    return mpData->mnContextMenuClicks;
+}
+
+void
+MouseSettings::SetContextMenuDown( bool bDown )
+{
+    CopyData();
+    mpData->mbContextMenuDown = bDown;
+}
+
+bool
+MouseSettings::GetContextMenuDown() const
+{
+    return mpData->mbContextMenuDown;
+}
+
+void
+MouseSettings::SetScrollRepeat( sal_uLong nRepeat )
+{
+    CopyData();
+    mpData->mnScrollRepeat = nRepeat;
+}
+
+sal_uLong
+MouseSettings::GetScrollRepeat() const
+{
+    return mpData->mnScrollRepeat;
+}
+
+void
+MouseSettings::SetButtonStartRepeat( sal_uLong nRepeat )
+{
+    CopyData();
+    mpData->mnButtonStartRepeat = nRepeat;
+}
+
+sal_uLong
+MouseSettings::GetButtonStartRepeat() const
+{
+    return mpData->mnButtonStartRepeat;
+}
+
+void
+MouseSettings::SetButtonRepeat( sal_uLong nRepeat )
+{
+    CopyData();
+    mpData->mnButtonRepeat = nRepeat;
+}
+
+sal_uLong
+MouseSettings::GetButtonRepeat() const
+{
+    return mpData->mnButtonRepeat;
+}
+
+void
+MouseSettings::SetActionDelay( sal_uLong nDelay )
+{
+    CopyData();
+    mpData->mnActionDelay = nDelay;
+}
+
+sal_uLong
+MouseSettings::GetActionDelay() const
+{
+    return mpData->mnActionDelay;
+}
+
+void
+MouseSettings::SetMenuDelay( sal_uLong nDelay )
+{
+    CopyData();
+    mpData->mnMenuDelay = nDelay;
+}
+
+sal_uLong
+MouseSettings::GetMenuDelay() const
+{
+    return mpData->mnMenuDelay;
+}
+
+
+void
+MouseSettings::SetFollow( sal_uLong nFollow )
+{
+    CopyData();
+    mpData->mnFollow = nFollow;
+}
+
+sal_uLong
+MouseSettings::GetFollow() const
+{
+    return mpData->mnFollow;
+}
+
+
+void
+MouseSettings::SetMiddleButtonAction( sal_uInt16 nAction )
+{
+    CopyData();
+    mpData->mnMiddleButtonAction = nAction;
+}
+
+sal_uInt16
+MouseSettings::GetMiddleButtonAction() const
+{
+    return mpData->mnMiddleButtonAction;
+}
+
+
+void
+MouseSettings::SetWheelBehavior( sal_uInt16 nBehavior )
+{
+    CopyData();
+    mpData->mnWheelBehavior = nBehavior;
 }
 
+sal_uInt16
+MouseSettings::GetWheelBehavior() const
+{
+    return mpData->mnWheelBehavior;
+}
+
+
+bool
+MouseSettings::operator !=( const MouseSettings& rSet ) const
+{
+    return !(*this == rSet);
+}
+
+
 // -----------------------------------------------------------------------
 
-MouseSettings::~MouseSettings()
+MouseSettings::MouseSettings()
+: mpData(boost::make_shared<ImplMouseData>())
 {
 }
 
 // -----------------------------------------------------------------------
 
-const MouseSettings& MouseSettings::operator =( const MouseSettings& rSet )
+MouseSettings::~MouseSettings()
 {
-    mpData = rSet.mpData;
-    return *this;
 }
 
 // -----------------------------------------------------------------------
@@ -205,7 +679,7 @@ ImplStyleData::ImplStyleData() :
     mnSelectionOptions          = 0;
     mnDisplayOptions            = 0;
     mnOptions                   = 0;
-    mnAutoMnemonic              = 1;
+    mbAutoMnemonic              = true;
     mnToolbarIconSize           = STYLE_TOOLBAR_ICONSIZE_UNKNOWN;
     meUseImagesInMenus          = TRISTATE_INDET;
     mpFontOptions              = NULL;
@@ -322,7 +796,7 @@ ImplStyleData::ImplStyleData( const ImplStyleData& rData ) :
     mbUseSystemUIFonts          = rData.mbUseSystemUIFonts;
     mnUseFlatBorders            = rData.mnUseFlatBorders;

... etc. - the rest is truncated


More information about the Libreoffice-commits mailing list