1*ff12d537SAndre Fischer /************************************************************** 2*ff12d537SAndre Fischer * 3*ff12d537SAndre Fischer * Licensed to the Apache Software Foundation (ASF) under one 4*ff12d537SAndre Fischer * or more contributor license agreements. See the NOTICE file 5*ff12d537SAndre Fischer * distributed with this work for additional information 6*ff12d537SAndre Fischer * regarding copyright ownership. The ASF licenses this file 7*ff12d537SAndre Fischer * to you under the Apache License, Version 2.0 (the 8*ff12d537SAndre Fischer * "License"); you may not use this file except in compliance 9*ff12d537SAndre Fischer * with the License. You may obtain a copy of the License at 10*ff12d537SAndre Fischer * 11*ff12d537SAndre Fischer * http://www.apache.org/licenses/LICENSE-2.0 12*ff12d537SAndre Fischer * 13*ff12d537SAndre Fischer * Unless required by applicable law or agreed to in writing, 14*ff12d537SAndre Fischer * software distributed under the License is distributed on an 15*ff12d537SAndre Fischer * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16*ff12d537SAndre Fischer * KIND, either express or implied. See the License for the 17*ff12d537SAndre Fischer * specific language governing permissions and limitations 18*ff12d537SAndre Fischer * under the License. 19*ff12d537SAndre Fischer * 20*ff12d537SAndre Fischer *************************************************************/ 21*ff12d537SAndre Fischer 22*ff12d537SAndre Fischer #include "precompiled_sfx2.hxx" 23*ff12d537SAndre Fischer 24*ff12d537SAndre Fischer #include "Theme.hxx" 25*ff12d537SAndre Fischer #include "Paint.hxx" 26*ff12d537SAndre Fischer #include "SidebarResource.hxx" 27*ff12d537SAndre Fischer 28*ff12d537SAndre Fischer #include <tools/SvBorder.hxx> 29*ff12d537SAndre Fischer #include <tools/rc.hxx> 30*ff12d537SAndre Fischer #include <vcl/svapp.hxx> 31*ff12d537SAndre Fischer 32*ff12d537SAndre Fischer 33*ff12d537SAndre Fischer namespace sfx2 { namespace sidebar { 34*ff12d537SAndre Fischer 35*ff12d537SAndre Fischer void InitializeTheme1 (Theme::Data& rData); 36*ff12d537SAndre Fischer 37*ff12d537SAndre Fischer class Theme::Data 38*ff12d537SAndre Fischer { 39*ff12d537SAndre Fischer public: 40*ff12d537SAndre Fischer Data (void) {} 41*ff12d537SAndre Fischer void Initialize (void) { if ( ! mbIsInitialized) {InitializeTheme1(*this);mbIsInitialized=true;} } 42*ff12d537SAndre Fischer 43*ff12d537SAndre Fischer Paint maDeckBackground; 44*ff12d537SAndre Fischer Paint maDeckTitleBackground; 45*ff12d537SAndre Fischer SvBorder maDeckPadding; 46*ff12d537SAndre Fischer sal_Int32 mnDeckBorderSize; 47*ff12d537SAndre Fischer Color maDeckTitleFontColor; 48*ff12d537SAndre Fischer sal_Int32 mnDeckTitleBarHeight; 49*ff12d537SAndre Fischer 50*ff12d537SAndre Fischer Paint maPanelBackground; 51*ff12d537SAndre Fischer Paint maPanelTitleBackground; 52*ff12d537SAndre Fischer Color maPanelTitleFontColor; 53*ff12d537SAndre Fischer sal_Int32 mnPanelTitleBarHeight; 54*ff12d537SAndre Fischer 55*ff12d537SAndre Fischer Paint maTabBarBackground; 56*ff12d537SAndre Fischer SvBorder maTabBarPadding; 57*ff12d537SAndre Fischer 58*ff12d537SAndre Fischer sal_Int32 mnTabMenuPadding; 59*ff12d537SAndre Fischer Color maTabMenuSeparatorColor; 60*ff12d537SAndre Fischer sal_Int32 mnTabMenuSeparatorPadding; 61*ff12d537SAndre Fischer 62*ff12d537SAndre Fischer Size maTabItemSize; 63*ff12d537SAndre Fischer Color maTabItemBorderColor; 64*ff12d537SAndre Fischer Paint maTabItemBackgroundPaint; 65*ff12d537SAndre Fischer 66*ff12d537SAndre Fischer Paint maHorizontalBorderPaint; 67*ff12d537SAndre Fischer Paint maVerticalBorderPaint; 68*ff12d537SAndre Fischer 69*ff12d537SAndre Fischer Image maGripImage; 70*ff12d537SAndre Fischer Image maExpandImage; 71*ff12d537SAndre Fischer Image maCollapseImage; 72*ff12d537SAndre Fischer Image maMenuImage; 73*ff12d537SAndre Fischer 74*ff12d537SAndre Fischer bool mbIsHighContrastMode; 75*ff12d537SAndre Fischer }; 76*ff12d537SAndre Fischer 77*ff12d537SAndre Fischer 78*ff12d537SAndre Fischer bool Theme::mbIsInitialized (false); 79*ff12d537SAndre Fischer 80*ff12d537SAndre Fischer 81*ff12d537SAndre Fischer 82*ff12d537SAndre Fischer Theme::Data& Theme::GetCurrentTheme (void) 83*ff12d537SAndre Fischer { 84*ff12d537SAndre Fischer static Theme::Data maData; 85*ff12d537SAndre Fischer maData.Initialize(); 86*ff12d537SAndre Fischer return maData; 87*ff12d537SAndre Fischer } 88*ff12d537SAndre Fischer 89*ff12d537SAndre Fischer Paint& Theme::GetDeckBackground (void) 90*ff12d537SAndre Fischer { 91*ff12d537SAndre Fischer return GetCurrentTheme().maDeckBackground; 92*ff12d537SAndre Fischer } 93*ff12d537SAndre Fischer 94*ff12d537SAndre Fischer 95*ff12d537SAndre Fischer 96*ff12d537SAndre Fischer 97*ff12d537SAndre Fischer Paint& Theme::GetDeckTitleBackground (void) 98*ff12d537SAndre Fischer { 99*ff12d537SAndre Fischer return GetCurrentTheme().maDeckTitleBackground; 100*ff12d537SAndre Fischer } 101*ff12d537SAndre Fischer 102*ff12d537SAndre Fischer 103*ff12d537SAndre Fischer 104*ff12d537SAndre Fischer 105*ff12d537SAndre Fischer SvBorder& Theme::GetDeckPadding (void) 106*ff12d537SAndre Fischer { 107*ff12d537SAndre Fischer return GetCurrentTheme().maDeckPadding; 108*ff12d537SAndre Fischer } 109*ff12d537SAndre Fischer 110*ff12d537SAndre Fischer 111*ff12d537SAndre Fischer 112*ff12d537SAndre Fischer 113*ff12d537SAndre Fischer Color Theme::GetDeckTitleFontColor (void) 114*ff12d537SAndre Fischer { 115*ff12d537SAndre Fischer return GetCurrentTheme().maDeckTitleFontColor; 116*ff12d537SAndre Fischer } 117*ff12d537SAndre Fischer 118*ff12d537SAndre Fischer 119*ff12d537SAndre Fischer 120*ff12d537SAndre Fischer 121*ff12d537SAndre Fischer sal_Int32 Theme::GetDeckTitleBarHeight (void) 122*ff12d537SAndre Fischer { 123*ff12d537SAndre Fischer return GetCurrentTheme().mnDeckTitleBarHeight; 124*ff12d537SAndre Fischer } 125*ff12d537SAndre Fischer 126*ff12d537SAndre Fischer 127*ff12d537SAndre Fischer 128*ff12d537SAndre Fischer 129*ff12d537SAndre Fischer Paint& Theme::GetPanelBackground (void) 130*ff12d537SAndre Fischer { 131*ff12d537SAndre Fischer return GetCurrentTheme().maPanelBackground; 132*ff12d537SAndre Fischer } 133*ff12d537SAndre Fischer 134*ff12d537SAndre Fischer 135*ff12d537SAndre Fischer 136*ff12d537SAndre Fischer 137*ff12d537SAndre Fischer Paint& Theme::GetPanelTitleBackground (void) 138*ff12d537SAndre Fischer { 139*ff12d537SAndre Fischer return GetCurrentTheme().maPanelTitleBackground; 140*ff12d537SAndre Fischer } 141*ff12d537SAndre Fischer 142*ff12d537SAndre Fischer 143*ff12d537SAndre Fischer 144*ff12d537SAndre Fischer 145*ff12d537SAndre Fischer Color Theme::GetPanelTitleFontColor (void) 146*ff12d537SAndre Fischer { 147*ff12d537SAndre Fischer return GetCurrentTheme().maPanelTitleFontColor; 148*ff12d537SAndre Fischer } 149*ff12d537SAndre Fischer 150*ff12d537SAndre Fischer 151*ff12d537SAndre Fischer 152*ff12d537SAndre Fischer 153*ff12d537SAndre Fischer sal_Int32 Theme::GetPanelTitleBarHeight (void) 154*ff12d537SAndre Fischer { 155*ff12d537SAndre Fischer return GetCurrentTheme().mnPanelTitleBarHeight; 156*ff12d537SAndre Fischer } 157*ff12d537SAndre Fischer 158*ff12d537SAndre Fischer 159*ff12d537SAndre Fischer 160*ff12d537SAndre Fischer 161*ff12d537SAndre Fischer Paint& Theme::GetTabBarBackground (void) 162*ff12d537SAndre Fischer { 163*ff12d537SAndre Fischer return GetCurrentTheme().maTabBarBackground; 164*ff12d537SAndre Fischer } 165*ff12d537SAndre Fischer 166*ff12d537SAndre Fischer 167*ff12d537SAndre Fischer 168*ff12d537SAndre Fischer 169*ff12d537SAndre Fischer SvBorder& Theme::GetTabBarPadding (void) 170*ff12d537SAndre Fischer { 171*ff12d537SAndre Fischer return GetCurrentTheme().maTabBarPadding; 172*ff12d537SAndre Fischer } 173*ff12d537SAndre Fischer 174*ff12d537SAndre Fischer 175*ff12d537SAndre Fischer 176*ff12d537SAndre Fischer 177*ff12d537SAndre Fischer sal_Int32 Theme::GetTabMenuPadding (void) 178*ff12d537SAndre Fischer { 179*ff12d537SAndre Fischer return GetCurrentTheme().mnTabMenuPadding; 180*ff12d537SAndre Fischer } 181*ff12d537SAndre Fischer 182*ff12d537SAndre Fischer 183*ff12d537SAndre Fischer 184*ff12d537SAndre Fischer 185*ff12d537SAndre Fischer Color Theme::GetTabMenuSeparatorColor (void) 186*ff12d537SAndre Fischer { 187*ff12d537SAndre Fischer return GetCurrentTheme().maTabMenuSeparatorColor; 188*ff12d537SAndre Fischer } 189*ff12d537SAndre Fischer 190*ff12d537SAndre Fischer 191*ff12d537SAndre Fischer 192*ff12d537SAndre Fischer 193*ff12d537SAndre Fischer sal_Int32 Theme::GetTabMenuSeparatorPadding (void) 194*ff12d537SAndre Fischer { 195*ff12d537SAndre Fischer return GetCurrentTheme().mnTabMenuSeparatorPadding; 196*ff12d537SAndre Fischer } 197*ff12d537SAndre Fischer 198*ff12d537SAndre Fischer 199*ff12d537SAndre Fischer 200*ff12d537SAndre Fischer 201*ff12d537SAndre Fischer Size Theme::GetTabItemSize (void) 202*ff12d537SAndre Fischer { 203*ff12d537SAndre Fischer return GetCurrentTheme().maTabItemSize; 204*ff12d537SAndre Fischer } 205*ff12d537SAndre Fischer 206*ff12d537SAndre Fischer 207*ff12d537SAndre Fischer 208*ff12d537SAndre Fischer 209*ff12d537SAndre Fischer Color Theme::GetTabItemBorderColor (void) 210*ff12d537SAndre Fischer { 211*ff12d537SAndre Fischer return GetCurrentTheme().maTabItemBorderColor; 212*ff12d537SAndre Fischer } 213*ff12d537SAndre Fischer 214*ff12d537SAndre Fischer 215*ff12d537SAndre Fischer 216*ff12d537SAndre Fischer 217*ff12d537SAndre Fischer Paint& Theme::GetTabItemBackgroundPaint (void) 218*ff12d537SAndre Fischer { 219*ff12d537SAndre Fischer return GetCurrentTheme().maTabItemBackgroundPaint; 220*ff12d537SAndre Fischer } 221*ff12d537SAndre Fischer 222*ff12d537SAndre Fischer 223*ff12d537SAndre Fischer 224*ff12d537SAndre Fischer 225*ff12d537SAndre Fischer Paint& Theme::GetHorizontalBorderPaint (void) 226*ff12d537SAndre Fischer { 227*ff12d537SAndre Fischer return GetCurrentTheme().maHorizontalBorderPaint; 228*ff12d537SAndre Fischer } 229*ff12d537SAndre Fischer 230*ff12d537SAndre Fischer 231*ff12d537SAndre Fischer 232*ff12d537SAndre Fischer 233*ff12d537SAndre Fischer Paint& Theme::GetVerticalBorderPaint (void) 234*ff12d537SAndre Fischer { 235*ff12d537SAndre Fischer return GetCurrentTheme().maVerticalBorderPaint; 236*ff12d537SAndre Fischer } 237*ff12d537SAndre Fischer 238*ff12d537SAndre Fischer 239*ff12d537SAndre Fischer 240*ff12d537SAndre Fischer 241*ff12d537SAndre Fischer sal_Int32 Theme::GetBorderSize (void) 242*ff12d537SAndre Fischer { 243*ff12d537SAndre Fischer return GetCurrentTheme().mnDeckBorderSize; 244*ff12d537SAndre Fischer } 245*ff12d537SAndre Fischer 246*ff12d537SAndre Fischer 247*ff12d537SAndre Fischer 248*ff12d537SAndre Fischer 249*ff12d537SAndre Fischer Image Theme::GetGripImage (void) 250*ff12d537SAndre Fischer { 251*ff12d537SAndre Fischer return GetCurrentTheme().maGripImage; 252*ff12d537SAndre Fischer } 253*ff12d537SAndre Fischer 254*ff12d537SAndre Fischer 255*ff12d537SAndre Fischer 256*ff12d537SAndre Fischer 257*ff12d537SAndre Fischer Image Theme::GetExpandImage (void) 258*ff12d537SAndre Fischer { 259*ff12d537SAndre Fischer return GetCurrentTheme().maExpandImage; 260*ff12d537SAndre Fischer } 261*ff12d537SAndre Fischer 262*ff12d537SAndre Fischer 263*ff12d537SAndre Fischer 264*ff12d537SAndre Fischer 265*ff12d537SAndre Fischer Image Theme::GetCollapseImage (void) 266*ff12d537SAndre Fischer { 267*ff12d537SAndre Fischer return GetCurrentTheme().maCollapseImage; 268*ff12d537SAndre Fischer } 269*ff12d537SAndre Fischer 270*ff12d537SAndre Fischer 271*ff12d537SAndre Fischer 272*ff12d537SAndre Fischer 273*ff12d537SAndre Fischer Image Theme::GetMenuImage (void) 274*ff12d537SAndre Fischer { 275*ff12d537SAndre Fischer return GetCurrentTheme().maMenuImage; 276*ff12d537SAndre Fischer } 277*ff12d537SAndre Fischer 278*ff12d537SAndre Fischer 279*ff12d537SAndre Fischer 280*ff12d537SAndre Fischer 281*ff12d537SAndre Fischer bool Theme::IsHighContrastMode (void) 282*ff12d537SAndre Fischer { 283*ff12d537SAndre Fischer return GetCurrentTheme().mbIsHighContrastMode; 284*ff12d537SAndre Fischer } 285*ff12d537SAndre Fischer 286*ff12d537SAndre Fischer 287*ff12d537SAndre Fischer 288*ff12d537SAndre Fischer 289*ff12d537SAndre Fischer void Theme::HandleDataChange (void) 290*ff12d537SAndre Fischer { 291*ff12d537SAndre Fischer mbIsInitialized = false; 292*ff12d537SAndre Fischer } 293*ff12d537SAndre Fischer 294*ff12d537SAndre Fischer 295*ff12d537SAndre Fischer 296*ff12d537SAndre Fischer 297*ff12d537SAndre Fischer void InitializeTheme1 (Theme::Data& rData) 298*ff12d537SAndre Fischer { 299*ff12d537SAndre Fischer SidebarResource aLocalResource; 300*ff12d537SAndre Fischer 301*ff12d537SAndre Fischer rData.mbIsHighContrastMode = Application::GetSettings().GetStyleSettings().GetHighContrastMode(); 302*ff12d537SAndre Fischer 303*ff12d537SAndre Fischer rData.maDeckBackground.Set(Paint(Color( 304*ff12d537SAndre Fischer rData.mbIsHighContrastMode ? 0x000000 : 0xf0f0f0))); 305*ff12d537SAndre Fischer rData.maDeckTitleBackground.Set(Paint(Color( 306*ff12d537SAndre Fischer rData.mbIsHighContrastMode ? 0x000000 :0xf0f0f0))); 307*ff12d537SAndre Fischer rData.maDeckPadding = SvBorder(2,2,2,2); 308*ff12d537SAndre Fischer rData.mnDeckBorderSize = 1; 309*ff12d537SAndre Fischer rData.maDeckTitleFontColor.SetColor( 310*ff12d537SAndre Fischer rData.mbIsHighContrastMode ? 0x00ff00 : 0x262626); 311*ff12d537SAndre Fischer rData.mnDeckTitleBarHeight = 26; 312*ff12d537SAndre Fischer 313*ff12d537SAndre Fischer rData.maPanelBackground.Set(Paint(Color( 314*ff12d537SAndre Fischer rData.mbIsHighContrastMode ? 0x000000 : 0xffffff))); 315*ff12d537SAndre Fischer rData.maPanelTitleBackground.Set(Paint(Color( 316*ff12d537SAndre Fischer rData.mbIsHighContrastMode ? 0x000000 : 0xb2b2b2))); 317*ff12d537SAndre Fischer rData.maPanelTitleFontColor.SetColor( 318*ff12d537SAndre Fischer rData.mbIsHighContrastMode ? 0x00ff00 : 0x262626); 319*ff12d537SAndre Fischer rData.mnPanelTitleBarHeight = 26; 320*ff12d537SAndre Fischer 321*ff12d537SAndre Fischer rData.maTabBarBackground.Set(Paint(Color( 322*ff12d537SAndre Fischer rData.mbIsHighContrastMode ? 0x000000 : 0xf0f0f0))); 323*ff12d537SAndre Fischer rData.maTabBarPadding = SvBorder(2,2,2,2); 324*ff12d537SAndre Fischer 325*ff12d537SAndre Fischer rData.mnTabMenuPadding = 6; 326*ff12d537SAndre Fischer rData.maTabMenuSeparatorColor.SetColor( 327*ff12d537SAndre Fischer rData.mbIsHighContrastMode ? 0x00ff00 : 0xbfbfbf); 328*ff12d537SAndre Fischer rData.mnTabMenuSeparatorPadding = 7; 329*ff12d537SAndre Fischer 330*ff12d537SAndre Fischer rData.maTabItemSize = Size(32,32); 331*ff12d537SAndre Fischer rData.maTabItemBorderColor.SetColor( 332*ff12d537SAndre Fischer rData.mbIsHighContrastMode ? 0x00ff00 : 0xbfbfbf); 333*ff12d537SAndre Fischer rData.maTabItemBackgroundPaint.Set(Paint(Color( 334*ff12d537SAndre Fischer rData.mbIsHighContrastMode ? 0x000000 : 0xffffff))); 335*ff12d537SAndre Fischer 336*ff12d537SAndre Fischer rData.maHorizontalBorderPaint.Set(Paint(Color( 337*ff12d537SAndre Fischer rData.mbIsHighContrastMode ? 0x00ff000 : 0xd9d9d9))); 338*ff12d537SAndre Fischer rData.maVerticalBorderPaint.Set(Paint(Color( 339*ff12d537SAndre Fischer rData.mbIsHighContrastMode ? 0x00ff000 : 0xd9d9d9))); 340*ff12d537SAndre Fischer 341*ff12d537SAndre Fischer rData.maGripImage = Image(SfxResId( 342*ff12d537SAndre Fischer rData.mbIsHighContrastMode 343*ff12d537SAndre Fischer ? IMAGE_SIDEBAR_GRIP_HC 344*ff12d537SAndre Fischer : IMAGE_SIDEBAR_GRIP)); 345*ff12d537SAndre Fischer rData.maExpandImage = Image(SfxResId( 346*ff12d537SAndre Fischer rData.mbIsHighContrastMode 347*ff12d537SAndre Fischer ? IMAGE_SIDEBAR_PLUS_HC 348*ff12d537SAndre Fischer : IMAGE_SIDEBAR_PLUS)); 349*ff12d537SAndre Fischer rData.maCollapseImage = Image(SfxResId( 350*ff12d537SAndre Fischer rData.mbIsHighContrastMode 351*ff12d537SAndre Fischer ? IMAGE_SIDEBAR_MINUS_HC 352*ff12d537SAndre Fischer : IMAGE_SIDEBAR_MINUS)); 353*ff12d537SAndre Fischer rData.maMenuImage = Image(SfxResId( 354*ff12d537SAndre Fischer rData.mbIsHighContrastMode 355*ff12d537SAndre Fischer ? IMAGE_SIDEBAR_MENU_HC 356*ff12d537SAndre Fischer : IMAGE_SIDEBAR_MENU)); 357*ff12d537SAndre Fischer } 358*ff12d537SAndre Fischer 359*ff12d537SAndre Fischer } } // end of namespace sfx2::sidebar 360