include/tools/color.hxx | 170 +++++----- officecfg/registry/schema/org/openoffice/Office/UI/Sidebar.xcs | 16 sfx2/source/sidebar/DeckDescriptor.cxx | 8 sfx2/source/sidebar/DeckDescriptor.hxx | 17 - sfx2/source/sidebar/PanelDescriptor.cxx | 6 sfx2/source/sidebar/PanelDescriptor.hxx | 15 sfx2/source/sidebar/ResourceManager.cxx | 15 sfx2/source/sidebar/ResourceManager.hxx | 3 8 files changed, 158 insertions(+), 92 deletions(-)
New commits: commit 0e8218d9d880fa4be972de3decd9cd42f55472c3 Author: Tomaž Vajngerl <[email protected]> Date: Tue Apr 21 17:23:26 2015 +0900 sidebar panel or deck can now be marked as experimental .. so they show up only when experimental mode is enabled. Change-Id: Ib89b8b03290b7c04edc4da48ed328f03cd88d02c diff --git a/officecfg/registry/schema/org/openoffice/Office/UI/Sidebar.xcs b/officecfg/registry/schema/org/openoffice/Office/UI/Sidebar.xcs index 1039bec..d5b90e0 100644 --- a/officecfg/registry/schema/org/openoffice/Office/UI/Sidebar.xcs +++ b/officecfg/registry/schema/org/openoffice/Office/UI/Sidebar.xcs @@ -97,8 +97,8 @@ DrawImpress WriterVariants These shortcuts exist for even more convenience and handle the frequent case of Draw - and Impress as well as different variants of the Writer where they have otherwise - identical context descriptions. + and Impress as well as different variants of the Writer where they have otherwise + identical context descriptions. Special values: any @@ -128,6 +128,12 @@ </info> <value>10000</value> </prop> + <prop oor:name="IsExperimental" oor:type="xs:boolean"> + <info> + <desc>This flag controls whether the deck is experimental and is shown only when experimental mode is enabled.</desc> + </info> + <value>false</value> + </prop> </group> <group oor:name="Panel"> <info> @@ -214,6 +220,12 @@ </info> <value>false</value> </prop> + <prop oor:name="IsExperimental" oor:type="xs:boolean"> + <info> + <desc>This flag controls whether the panel is experimental and is shown only when experimental mode is enabled.</desc> + </info> + <value>false</value> + </prop> </group> </templates> <component> diff --git a/sfx2/source/sidebar/DeckDescriptor.cxx b/sfx2/source/sidebar/DeckDescriptor.cxx index 9981b79..2f431e5 100644 --- a/sfx2/source/sidebar/DeckDescriptor.cxx +++ b/sfx2/source/sidebar/DeckDescriptor.cxx @@ -32,7 +32,8 @@ DeckDescriptor::DeckDescriptor() msHelpText(), maContextList(), mbIsEnabled(true), - mnOrderIndex(10000) // Default value as defined in Sidebar.xcs + mnOrderIndex(10000), // Default value as defined in Sidebar.xcs + mbExperimental(false) { } @@ -46,8 +47,9 @@ DeckDescriptor::DeckDescriptor (const DeckDescriptor& rOther) msHelpURL(rOther.msHelpURL), msHelpText(rOther.msHelpText), maContextList(rOther.maContextList), - mbIsEnabled(rOther.mbIsEnabled), - mnOrderIndex(rOther.mnOrderIndex) + mbIsEnabled(rOther.mbIsEnabled), + mnOrderIndex(rOther.mnOrderIndex), + mbExperimental(rOther.mbExperimental) { } diff --git a/sfx2/source/sidebar/DeckDescriptor.hxx b/sfx2/source/sidebar/DeckDescriptor.hxx index 3ea1db1..77f811e 100644 --- a/sfx2/source/sidebar/DeckDescriptor.hxx +++ b/sfx2/source/sidebar/DeckDescriptor.hxx @@ -28,17 +28,18 @@ namespace sfx2 { namespace sidebar { class DeckDescriptor { public: - ::rtl::OUString msTitle; - ::rtl::OUString msId; - ::rtl::OUString msIconURL; - ::rtl::OUString msHighContrastIconURL; - ::rtl::OUString msTitleBarIconURL; - ::rtl::OUString msHighContrastTitleBarIconURL; - ::rtl::OUString msHelpURL; - ::rtl::OUString msHelpText; + OUString msTitle; + OUString msId; + OUString msIconURL; + OUString msHighContrastIconURL; + OUString msTitleBarIconURL; + OUString msHighContrastTitleBarIconURL; + OUString msHelpURL; + OUString msHelpText; ContextList maContextList; bool mbIsEnabled; sal_Int32 mnOrderIndex; + bool mbExperimental; DeckDescriptor(); DeckDescriptor (const DeckDescriptor& rOther); diff --git a/sfx2/source/sidebar/PanelDescriptor.cxx b/sfx2/source/sidebar/PanelDescriptor.cxx index c7837bf..c88f21b 100644 --- a/sfx2/source/sidebar/PanelDescriptor.cxx +++ b/sfx2/source/sidebar/PanelDescriptor.cxx @@ -33,7 +33,8 @@ PanelDescriptor::PanelDescriptor() msImplementationURL(), mnOrderIndex(10000), // Default value as defined in Sidebar.xcs mbShowForReadOnlyDocuments(false), - mbWantsCanvas(false) + mbWantsCanvas(false), + mbExperimental(false) { } @@ -49,7 +50,8 @@ PanelDescriptor::PanelDescriptor (const PanelDescriptor& rOther) msImplementationURL(rOther.msImplementationURL), mnOrderIndex(rOther.mnOrderIndex), mbShowForReadOnlyDocuments(rOther.mbShowForReadOnlyDocuments), - mbWantsCanvas(rOther.mbWantsCanvas) + mbWantsCanvas(rOther.mbWantsCanvas), + mbExperimental(rOther.mbExperimental) { } diff --git a/sfx2/source/sidebar/PanelDescriptor.hxx b/sfx2/source/sidebar/PanelDescriptor.hxx index d1a20d2..f67a128 100644 --- a/sfx2/source/sidebar/PanelDescriptor.hxx +++ b/sfx2/source/sidebar/PanelDescriptor.hxx @@ -28,18 +28,19 @@ namespace sfx2 { namespace sidebar { class PanelDescriptor { public: - ::rtl::OUString msTitle; + OUString msTitle; bool mbIsTitleBarOptional; - ::rtl::OUString msId; - ::rtl::OUString msDeckId; - ::rtl::OUString msTitleBarIconURL; - ::rtl::OUString msHighContrastTitleBarIconURL; - ::rtl::OUString msHelpURL; + OUString msId; + OUString msDeckId; + OUString msTitleBarIconURL; + OUString msHighContrastTitleBarIconURL; + OUString msHelpURL; ContextList maContextList; - ::rtl::OUString msImplementationURL; + OUString msImplementationURL; sal_Int32 mnOrderIndex; bool mbShowForReadOnlyDocuments; bool mbWantsCanvas; + bool mbExperimental; PanelDescriptor(); PanelDescriptor (const PanelDescriptor& rPanelDescriptor); diff --git a/sfx2/source/sidebar/ResourceManager.cxx b/sfx2/source/sidebar/ResourceManager.cxx index c5bfa88..b998e24 100644 --- a/sfx2/source/sidebar/ResourceManager.cxx +++ b/sfx2/source/sidebar/ResourceManager.cxx @@ -47,7 +47,8 @@ ResourceManager& ResourceManager::Instance() ResourceManager::ResourceManager() : maDecks(), maPanels(), - maProcessedApplications() + maProcessedApplications(), + maMiscOptions() { ReadDeckList(); ReadPanelList(); @@ -68,6 +69,8 @@ const DeckDescriptor* ResourceManager::GetDeckDescriptor ( iDeck!=iEnd; ++iDeck) { + if (iDeck->mbExperimental && !maMiscOptions.IsExperimentalMode()) + continue; if (iDeck->msId.equals(rsDeckId)) return &*iDeck; } @@ -99,6 +102,8 @@ void ResourceManager::SetIsDeckEnabled ( iDeck!=iEnd; ++iDeck) { + if (iDeck->mbExperimental && !maMiscOptions.IsExperimentalMode()) + continue; if (iDeck->msId.equals(rsDeckId)) { iDeck->mbIsEnabled = bIsEnabled; @@ -122,6 +127,8 @@ const ResourceManager::DeckContextDescriptorContainer& ResourceManager::GetMatch iDeck!=iEnd; ++iDeck) { + if (iDeck->mbExperimental && !maMiscOptions.IsExperimentalMode()) + continue; const DeckDescriptor& rDeckDescriptor (*iDeck); if (rDeckDescriptor.maContextList.GetMatch(rContext) == NULL) continue; @@ -163,6 +170,8 @@ const ResourceManager::PanelContextDescriptorContainer& ResourceManager::GetMatc ++iPanel) { const PanelDescriptor& rPanelDescriptor (*iPanel); + if (rPanelDescriptor.mbExperimental && !maMiscOptions.IsExperimentalMode()) + continue; if ( ! rPanelDescriptor.msDeckId.equals(rsDeckId)) continue; @@ -231,6 +240,8 @@ void ResourceManager::ReadDeckList() rDeckDescriptor.mbIsEnabled = true; rDeckDescriptor.mnOrderIndex = ::comphelper::getINT32( aDeckNode.getNodeValue("OrderIndex")); + rDeckDescriptor.mbExperimental = ::comphelper::getBOOL( + aDeckNode.getNodeValue("IsExperimental")); ReadContextList( aDeckNode, @@ -287,6 +298,8 @@ void ResourceManager::ReadPanelList() aPanelNode.getNodeValue("ShowForReadOnlyDocument")); rPanelDescriptor.mbWantsCanvas = ::comphelper::getBOOL( aPanelNode.getNodeValue("WantsCanvas")); + rPanelDescriptor.mbExperimental = ::comphelper::getBOOL( + aPanelNode.getNodeValue("IsExperimental")); const OUString sDefaultMenuCommand (::comphelper::getString( aPanelNode.getNodeValue("DefaultMenuCommand"))); diff --git a/sfx2/source/sidebar/ResourceManager.hxx b/sfx2/source/sidebar/ResourceManager.hxx index 57fc5be..a358271 100644 --- a/sfx2/source/sidebar/ResourceManager.hxx +++ b/sfx2/source/sidebar/ResourceManager.hxx @@ -26,6 +26,7 @@ #include <com/sun/star/frame/XFrame.hpp> #include <set> #include <boost/shared_ptr.hpp> +#include <svtools/miscopt.hxx> namespace sfx2 { namespace sidebar { @@ -105,6 +106,8 @@ private: PanelContainer maPanels; mutable ::std::set<rtl::OUString> maProcessedApplications; + SvtMiscOptions maMiscOptions; + void ReadDeckList(); void ReadPanelList(); void ReadContextList ( commit ef968e133f8da87b960ab0f0627cc8bcc691d9cb Author: Tomaž Vajngerl <[email protected]> Date: Tue Apr 21 14:00:03 2015 +0900 cleanup tools/color.hxx Change-Id: I7d8f263f9ccb1ea4f230d7a2df4d88c408b3a5da diff --git a/include/tools/color.hxx b/include/tools/color.hxx index 92ea210..f940dbc 100644 --- a/include/tools/color.hxx +++ b/include/tools/color.hxx @@ -91,88 +91,120 @@ typedef sal_uInt32 ColorData; class TOOLS_DLLPUBLIC SAL_WARN_UNUSED Color { protected: - ColorData mnColor; + ColorData mnColor; public: - Color() { mnColor = COL_BLACK; } - Color( ColorData nColor ) { mnColor = nColor; } - Color( sal_uInt8 nRed, sal_uInt8 nGreen, sal_uInt8 nBlue ) - { mnColor = RGB_COLORDATA( nRed, nGreen, nBlue ); } - Color( sal_uInt8 nTransparency, sal_uInt8 nRed, sal_uInt8 nGreen, sal_uInt8 nBlue ) - { mnColor = TRGB_COLORDATA( nTransparency, nRed, nGreen, nBlue ); } - // This ctor is defined in svtools, not tools! - Color( const ResId& rResId ); - - // constructor to create a tools-Color from ::basegfx::BColor - explicit Color(const ::basegfx::BColor& rBColor) - { - mnColor = RGB_COLORDATA( - sal_uInt8((rBColor.getRed() * 255.0) + 0.5), + Color() + : mnColor(COL_BLACK) + {} + Color(ColorData nColor) + : mnColor(nColor) + {} + Color(sal_uInt8 nRed, sal_uInt8 nGreen, sal_uInt8 nBlue) + : mnColor(RGB_COLORDATA(nRed, nGreen, nBlue)) + {} + Color(sal_uInt8 nTransparency, sal_uInt8 nRed, sal_uInt8 nGreen, sal_uInt8 nBlue) + : mnColor(TRGB_COLORDATA(nTransparency, nRed, nGreen, nBlue)) + {} + // This ctor is defined in svtools, not tools! + Color(const ResId& rResId); + + // constructor to create a tools-Color from ::basegfx::BColor + explicit Color(const basegfx::BColor& rBColor) + : mnColor(RGB_COLORDATA(sal_uInt8((rBColor.getRed() * 255.0) + 0.5), sal_uInt8((rBColor.getGreen() * 255.0) + 0.5), - sal_uInt8((rBColor.getBlue() * 255.0) + 0.5)); - } - - bool operator<(const Color& b) const - { - return mnColor < b.GetColor(); - } - - void SetRed( sal_uInt8 nRed ); - sal_uInt8 GetRed() const { return COLORDATA_RED( mnColor ); } - void SetGreen( sal_uInt8 nGreen ); - sal_uInt8 GetGreen() const { return COLORDATA_GREEN( mnColor ); } - void SetBlue( sal_uInt8 nBlue ); - sal_uInt8 GetBlue() const { return COLORDATA_BLUE( mnColor ); } - void SetTransparency( sal_uInt8 nTransparency ); - sal_uInt8 GetTransparency() const { return COLORDATA_TRANSPARENCY( mnColor ); } - - void SetColor( ColorData nColor ) { mnColor = nColor; } - ColorData GetColor() const { return mnColor; } - ColorData GetRGBColor() const { return COLORDATA_RGB( mnColor ); } - - sal_uInt8 GetColorError( const Color& rCompareColor ) const; - - sal_uInt8 GetLuminance() const; - void IncreaseLuminance( sal_uInt8 cLumInc ); - void DecreaseLuminance( sal_uInt8 cLumDec ); - - void DecreaseContrast( sal_uInt8 cContDec ); - - void Invert(); - - void Merge( const Color& rMergeColor, sal_uInt8 cTransparency ); - - bool IsRGBEqual( const Color& rColor ) const; + sal_uInt8((rBColor.getBlue() * 255.0) + 0.5))) + {} + + bool operator<(const Color& b) const + { + return mnColor < b.GetColor(); + } + + void SetRed(sal_uInt8 nRed); + sal_uInt8 GetRed() const + { + return COLORDATA_RED(mnColor); + } + void SetGreen(sal_uInt8 nGreen); + sal_uInt8 GetGreen() const + { + return COLORDATA_GREEN(mnColor); + } + void SetBlue(sal_uInt8 nBlue); + sal_uInt8 GetBlue() const + { + return COLORDATA_BLUE(mnColor); + } + void SetTransparency(sal_uInt8 nTransparency); + sal_uInt8 GetTransparency() const + { + return COLORDATA_TRANSPARENCY(mnColor); + } + + void SetColor(ColorData nColor) + { + mnColor = nColor; + } + ColorData GetColor() const + { + return mnColor; + } + ColorData GetRGBColor() const + { + return COLORDATA_RGB(mnColor); + } + + sal_uInt8 GetColorError(const Color& rCompareColor) const; + + sal_uInt8 GetLuminance() const; + void IncreaseLuminance(sal_uInt8 cLumInc); + void DecreaseLuminance(sal_uInt8 cLumDec); + + void DecreaseContrast(sal_uInt8 cContDec); + + void Invert(); + + void Merge(const Color& rMergeColor, sal_uInt8 cTransparency); + + bool IsRGBEqual(const Color& rColor) const; // comparison with luminance thresholds - bool IsDark() const; - bool IsBright() const; + bool IsDark() const; + bool IsBright() const; // color space conversion tools // the range for h/s/b is: // Hue: 0-360 degree // Saturation: 0-100% // Brightness: 0-100% - static ColorData HSBtoRGB( sal_uInt16 nHue, sal_uInt16 nSat, sal_uInt16 nBri ); - void RGBtoHSB( sal_uInt16& nHue, sal_uInt16& nSat, sal_uInt16& nBri ) const; + static ColorData HSBtoRGB(sal_uInt16 nHue, sal_uInt16 nSaturation, sal_uInt16 nBrightness); + void RGBtoHSB(sal_uInt16& nHue, sal_uInt16& nSaturation, sal_uInt16& nBrightness) const; - bool operator==( const Color& rColor ) const - { return (mnColor == rColor.mnColor); } - bool operator!=( const Color& rColor ) const - { return !(Color::operator==( rColor )); } + bool operator==(const Color& rColor) const + { + return mnColor == rColor.mnColor; + } + bool operator!=(const Color& rColor) const + { + return !(Color::operator==(rColor)); + } - SvStream& Read( SvStream& rIStm, bool bNewFormat = true ); - SvStream& Write( SvStream& rOStm, bool bNewFormat = true ); + SvStream& Read(SvStream& rIStream, bool bNewFormat = true); + SvStream& Write(SvStream& rOStream, bool bNewFormat = true); - TOOLS_DLLPUBLIC friend SvStream& ReadColor( SvStream& rIStream, Color& rColor ); - TOOLS_DLLPUBLIC friend SvStream& WriteColor( SvStream& rOStream, const Color& rColor ); + TOOLS_DLLPUBLIC friend SvStream& ReadColor(SvStream& rIStream, Color& rColor); + TOOLS_DLLPUBLIC friend SvStream& WriteColor(SvStream& rOStream, const Color& rColor); // Return color as RGB hex string // for example "00ff00" for green color OUString AsRGBHexString() const; // get ::basegfx::BColor from this color - ::basegfx::BColor getBColor() const { return ::basegfx::BColor(GetRed() / 255.0, GetGreen() / 255.0, GetBlue() / 255.0); } + basegfx::BColor getBColor() const + { + return basegfx::BColor(GetRed() / 255.0, GetGreen() / 255.0, GetBlue() / 255.0); + } }; inline void Color::SetRed( sal_uInt8 nRed ) @@ -201,21 +233,21 @@ inline void Color::SetTransparency( sal_uInt8 nTransparency ) inline bool Color::IsRGBEqual( const Color& rColor ) const { - return (COLORDATA_RGB( mnColor ) == COLORDATA_RGB( rColor.mnColor )); + return COLORDATA_RGB( mnColor ) == COLORDATA_RGB(rColor.mnColor); } inline sal_uInt8 Color::GetLuminance() const { - return( (sal_uInt8) ( ( COLORDATA_BLUE( mnColor ) * 29UL + - COLORDATA_GREEN( mnColor ) * 151UL + - COLORDATA_RED( mnColor ) * 76UL ) >> 8UL ) ); + return static_cast<sal_uInt8>((COLORDATA_BLUE(mnColor) * 29UL + + COLORDATA_GREEN(mnColor) * 151UL + + COLORDATA_RED(mnColor) * 76UL) >> 8UL); } inline void Color::Merge( const Color& rMergeColor, sal_uInt8 cTransparency ) { - SetRed( COLOR_CHANNEL_MERGE( COLORDATA_RED( mnColor ), COLORDATA_RED( rMergeColor.mnColor ), cTransparency ) ); - SetGreen( COLOR_CHANNEL_MERGE( COLORDATA_GREEN( mnColor ), COLORDATA_GREEN( rMergeColor.mnColor ), cTransparency ) ); - SetBlue( COLOR_CHANNEL_MERGE( COLORDATA_BLUE( mnColor ), COLORDATA_BLUE( rMergeColor.mnColor ), cTransparency ) ); + SetRed(COLOR_CHANNEL_MERGE(COLORDATA_RED(mnColor), COLORDATA_RED(rMergeColor.mnColor), cTransparency)); + SetGreen(COLOR_CHANNEL_MERGE(COLORDATA_GREEN(mnColor), COLORDATA_GREEN(rMergeColor.mnColor), cTransparency)); + SetBlue(COLOR_CHANNEL_MERGE(COLORDATA_BLUE(mnColor), COLORDATA_BLUE(rMergeColor.mnColor), cTransparency)); } #endif
_______________________________________________ Libreoffice-commits mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
