| /************************************************************** |
| * |
| * Licensed to the Apache Software Foundation (ASF) under one |
| * or more contributor license agreements. See the NOTICE file |
| * distributed with this work for additional information |
| * regarding copyright ownership. The ASF licenses this file |
| * to you under the Apache License, Version 2.0 (the |
| * "License"); you may not use this file except in compliance |
| * with the License. You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, |
| * software distributed under the License is distributed on an |
| * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| * KIND, either express or implied. See the License for the |
| * specific language governing permissions and limitations |
| * under the License. |
| * |
| *************************************************************/ |
| |
| |
| |
| #ifndef SD_SLIDESORTER_VIEW_THEME_HXX |
| #define SD_SLIDESORTER_VIEW_THEME_HXX |
| |
| #include "model/SlsVisualState.hxx" |
| |
| #include <vcl/bitmapex.hxx> |
| #include <vcl/font.hxx> |
| #include <vcl/gradient.hxx> |
| #include <tools/color.hxx> |
| |
| #include <boost/shared_ptr.hpp> |
| #include <boost/weak_ptr.hpp> |
| |
| |
| namespace sd { namespace slidesorter { namespace controller { |
| class Properties; |
| } } } |
| |
| namespace sd { namespace slidesorter { namespace view { |
| |
| |
| /** Collection of colors and styles that are used to paint the slide sorter |
| view. |
| */ |
| class Theme |
| { |
| public: |
| Theme (const ::boost::shared_ptr<controller::Properties>& rpProperties); |
| |
| /** Call this method to update some colors as response to a change of |
| a system color change. |
| */ |
| void Update ( |
| const ::boost::shared_ptr<controller::Properties>& rpProperties); |
| |
| // BitmapEx GetInsertIndicatorIcon (void) const; |
| |
| enum FontType { |
| Font_PageNumber, |
| Font_PageCount, |
| Font_Button |
| }; |
| static ::boost::shared_ptr<Font> GetFont ( |
| const FontType eType, |
| const OutputDevice& rDevice); |
| |
| enum ColorType { |
| Color_Background, |
| Color_ButtonBackground, |
| Color_ButtonText, |
| Color_ButtonTextHover, |
| Color_PageNumberDefault, |
| Color_PageNumberHover, |
| Color_PageNumberHighContrast, |
| Color_PageNumberBrightBackground, |
| Color_PageNumberDarkBackground, |
| Color_Selection, |
| Color_PreviewBorder, |
| Color_PageCountFontColor, |
| _ColorType_Size_ |
| }; |
| ColorData GetColor (const ColorType eType); |
| void SetColor (const ColorType eType, const ColorData aColorData); |
| |
| enum GradientColorType { |
| Gradient_NormalPage, |
| Gradient_SelectedPage, |
| Gradient_SelectedAndFocusedPage, |
| Gradient_MouseOverPage, |
| Gradient_MouseOverSelectedAndFocusedPage, |
| Gradient_FocusedPage, |
| Gradient_ButtonBackground, |
| _GradientColorType_Size_ |
| }; |
| enum GradientColorClass { |
| Border1, |
| Border2, |
| Fill1, |
| Fill2, |
| Base |
| }; |
| ColorData GetGradientColor ( |
| const GradientColorType eType, |
| const GradientColorClass eClass); |
| sal_Int32 GetGradientOffset ( |
| const GradientColorType eType, |
| const GradientColorClass eClass); |
| void SetGradient ( |
| const GradientColorType eType, |
| const ColorData aBaseColor, |
| const sal_Int32 nSaturationOverride, |
| const sal_Int32 nBrightnessOverride, |
| const sal_Int32 nFillStartOffset, |
| const sal_Int32 nFillEndOffset, |
| const sal_Int32 nBorderStartOffset, |
| const sal_Int32 nBorderEndOffset); |
| sal_Int32 GetGradientSaturationOverride (const GradientColorType eType); |
| sal_Int32 GetGradientBrightnessOverride (const GradientColorType eType); |
| void SetGradientSaturationOverride (const GradientColorType eType, const sal_Int32 nValue); |
| void SetGradientBrightnessOverride (const GradientColorType eType, const sal_Int32 nValue); |
| |
| enum IconType |
| { |
| Icon_RawShadow, |
| Icon_RawInsertShadow, |
| Icon_HideSlideOverlay, |
| Icon_FocusBorder, |
| Icon_ButtonBarLarge, |
| Icon_ButtonBarMedium, |
| Icon_ButtonBarSmall, |
| Icon_Command1Large, |
| Icon_Command1LargeHover, |
| Icon_Command1Medium, |
| Icon_Command1MediumHover, |
| Icon_Command1Small, |
| Icon_Command1SmallHover, |
| Icon_Command2Large, |
| Icon_Command2LargeHover, |
| Icon_Command2Medium, |
| Icon_Command2MediumHover, |
| Icon_Command2Small, |
| Icon_Command2SmallHover, |
| Icon_Command2BLarge, |
| Icon_Command2BLargeHover, |
| Icon_Command2BMedium, |
| Icon_Command2BMediumHover, |
| Icon_Command2BSmall, |
| Icon_Command2BSmallHover, |
| Icon_Command3Large, |
| Icon_Command3LargeHover, |
| Icon_Command3Medium, |
| Icon_Command3MediumHover, |
| Icon_Command3Small, |
| Icon_Command3SmallHover, |
| _IconType_Size_ |
| }; |
| const BitmapEx& GetIcon (const IconType eType); |
| |
| enum IntegerValueType |
| { |
| Integer_ButtonCornerRadius, |
| Integer_ButtonMaxAlpha, |
| Integer_ButtonBarMaxAlpha, |
| Integer_ButtonPaintType, |
| Integer_ButtonBorder, |
| Integer_ButtonGap, |
| Integer_ButtonFadeInDelay, |
| Integer_ButtonFadeInDuration, |
| Integer_ButtonFadeOutDelay, |
| Integer_ButtonFadeOutDuration, |
| Integer_ToolTipDelay, |
| Integer_FocusIndicatorWidth, |
| _IntegerValueType_Size_ |
| }; |
| sal_Int32 GetIntegerValue (const IntegerValueType eType) const; |
| void SetIntegerValue (const IntegerValueType eType, const sal_Int32 nValue); |
| |
| enum StringType |
| { |
| String_Unhide, |
| String_DragAndDropPages, |
| String_DragAndDropSlides, |
| String_Command1, |
| String_Command2, |
| String_Command2B, |
| String_Command3, |
| _StringType_Size_ |
| }; |
| ::rtl::OUString GetString (const StringType eType) const; |
| |
| private: |
| bool mbIsHighContrastMode; |
| class GradientDescriptor |
| { |
| public: |
| ColorData maBaseColor; |
| |
| sal_Int32 mnSaturationOverride; |
| sal_Int32 mnBrightnessOverride; |
| |
| ColorData maFillColor1; |
| ColorData maFillColor2; |
| ColorData maBorderColor1; |
| ColorData maBorderColor2; |
| |
| sal_Int32 mnFillOffset1; |
| sal_Int32 mnFillOffset2; |
| sal_Int32 mnBorderOffset1; |
| sal_Int32 mnBorderOffset2; |
| }; |
| ColorData maBackgroundColor; |
| ColorData maPageBackgroundColor; |
| ::std::vector<GradientDescriptor> maGradients; |
| ::std::vector<BitmapEx> maIcons; |
| ::std::vector<ColorData> maColor; |
| ::std::vector<sal_Int32> maIntegerValues; |
| ::std::vector<rtl::OUString> maStrings; |
| |
| GradientDescriptor& GetGradient (const GradientColorType eType); |
| /** Guarded initialization of the specified icon in the maIcons |
| container. Call only while a LocalResource object is active. |
| */ |
| void InitializeIcon (const IconType eType, sal_uInt16 nResourceId); |
| }; |
| |
| |
| } } } // end of namespace ::sd::slidesorter::view |
| |
| #endif |