summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/vcl/settings.hxx3
-rw-r--r--vcl/source/app/settings.cxx20
2 files changed, 18 insertions, 5 deletions
diff --git a/include/vcl/settings.hxx b/include/vcl/settings.hxx
index ad47eef542c9..403ca407a387 100644
--- a/include/vcl/settings.hxx
+++ b/include/vcl/settings.hxx
@@ -30,6 +30,7 @@
#include <i18nlangtag/languagetag.hxx>
#include <unotools/syslocale.hxx>
+#include <boost/optional.hpp>
#include <boost/shared_ptr.hpp>
class CollatorWrapper;
@@ -521,6 +522,8 @@ public:
const BitmapEx GetPersonaHeader() const;
+ const boost::optional<Color>& GetPersonaMenuBarTextColor() 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);
diff --git a/vcl/source/app/settings.cxx b/vcl/source/app/settings.cxx
index a03645f022e6..b175108381c0 100644
--- a/vcl/source/app/settings.cxx
+++ b/vcl/source/app/settings.cxx
@@ -204,6 +204,7 @@ struct ImplStyleData
BitmapEx maPersonaHeaderBitmap; ///< Cache the header bitmap.
BitmapEx maPersonaFooterBitmap; ///< Cache the footer bitmap.
+ boost::optional<Color> maPersonaMenuBarTextColor; ///< Cache the menubar color.
};
@@ -527,7 +528,8 @@ ImplStyleData::ImplStyleData() :
mIconThemeSelector(new vcl::IconThemeSelector()),
maPersonaHeaderFooter(),
maPersonaHeaderBitmap(),
- maPersonaFooterBitmap()
+ maPersonaFooterBitmap(),
+ maPersonaMenuBarTextColor()
{
mnScrollBarSize = 16;
mnMinThumbSize = 16;
@@ -628,7 +630,8 @@ ImplStyleData::ImplStyleData( const ImplStyleData& rData ) :
maFrameStyle( rData.maFrameStyle ),
maPersonaHeaderFooter( rData.maPersonaHeaderFooter ),
maPersonaHeaderBitmap( rData.maPersonaHeaderBitmap ),
- maPersonaFooterBitmap( rData.maPersonaFooterBitmap )
+ maPersonaFooterBitmap( rData.maPersonaFooterBitmap ),
+ maPersonaMenuBarTextColor( rData.maPersonaMenuBarTextColor )
{
mnBorderSize = rData.mnBorderSize;
mnTitleHeight = rData.mnTitleHeight;
@@ -2115,7 +2118,7 @@ static BitmapEx readBitmapEx( const OUString& rPath )
enum WhichPersona { PERSONA_HEADER, PERSONA_FOOTER };
/** Update the setting of the Persona header / footer in ImplStyleData */
-static void setupPersonaHeaderFooter( WhichPersona eWhich, OUString& rHeaderFooter, BitmapEx& rHeaderFooterBitmap, Color& maMenuBarTextColor )
+static void setupPersonaHeaderFooter( WhichPersona eWhich, OUString& rHeaderFooter, BitmapEx& rHeaderFooterBitmap, boost::optional<Color>& rMenuBarTextColor )
{
uno::Reference< uno::XComponentContext > xContext( comphelper::getProcessComponentContext() );
if ( !xContext.is() )
@@ -2132,6 +2135,7 @@ static void setupPersonaHeaderFooter( WhichPersona eWhich, OUString& rHeaderFoot
rHeaderFooter = aOldValue;
rHeaderFooterBitmap = BitmapEx();
+ rMenuBarTextColor = boost::none;
// now read the new values and setup bitmaps
OUString aHeader, aFooter;
@@ -2146,7 +2150,7 @@ static void setupPersonaHeaderFooter( WhichPersona eWhich, OUString& rHeaderFoot
if ( nIndex > 0 )
{
OUString aColor = aPersonaSettings.getToken( 0, ';', ++nIndex );
- maMenuBarTextColor = Color( aColor.toUInt64( 16 ) );
+ rMenuBarTextColor = Color( aColor.toUInt64( 16 ) );
}
}
else if ( aPersona == "default" )
@@ -2185,10 +2189,16 @@ static void setupPersonaHeaderFooter( WhichPersona eWhich, OUString& rHeaderFoot
const BitmapEx StyleSettings::GetPersonaHeader() const
{
- setupPersonaHeaderFooter( PERSONA_HEADER, mpData->maPersonaHeaderFooter, mpData->maPersonaHeaderBitmap, mpData->maMenuBarTextColor );
+ setupPersonaHeaderFooter( PERSONA_HEADER, mpData->maPersonaHeaderFooter, mpData->maPersonaHeaderBitmap, mpData->maPersonaMenuBarTextColor );
return mpData->maPersonaHeaderBitmap;
}
+const boost::optional<Color>& StyleSettings::GetPersonaMenuBarTextColor() const
+{
+ GetPersonaHeader();
+ return mpData->maPersonaMenuBarTextColor;
+}
+
void StyleSettings::SetStandardStyles()
{
CopyData();