1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
3 * This file is part of the LibreOffice project.
5 * This Source Code Form is subject to the terms of the Mozilla Public
6 * License, v. 2.0. If a copy of the MPL was not distributed with this
7 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
9 * This file incorporates work covered by the following license notice:
11 * Licensed to the Apache Software Foundation (ASF) under one or more
12 * contributor license agreements. See the NOTICE file distributed
13 * with this work for additional information regarding copyright
14 * ownership. The ASF licenses this file to you under the Apache
15 * License, Version 2.0 (the "License"); you may not use this file
16 * except in compliance with the License. You may obtain a copy of
17 * the License at http://www.apache.org/licenses/LICENSE-2.0 .
21 #include "stylesettings.hxx"
22 #include <toolkit/awt/vclxwindow.hxx>
23 #include <toolkit/helper/vclunohelper.hxx>
25 #include <com/sun/star/lang/DisposedException.hpp>
27 #include <cppuhelper/interfacecontainer.hxx>
28 #include <osl/mutex.hxx>
29 #include <vcl/window.hxx>
30 #include <vcl/settings.hxx>
31 #include <vcl/svapp.hxx>
38 using ::com::sun::star::uno::Reference
;
39 using ::com::sun::star::uno::RuntimeException
;
40 using ::com::sun::star::lang::DisposedException
;
41 using ::com::sun::star::lang::EventObject
;
42 using ::com::sun::star::awt::FontDescriptor
;
43 using ::com::sun::star::awt::XStyleChangeListener
;
46 //= WindowStyleSettings_Data
48 struct WindowStyleSettings_Data
50 VCLXWindow
* pOwningWindow
;
51 ::comphelper::OInterfaceContainerHelper2 aStyleChangeListeners
;
53 WindowStyleSettings_Data( ::osl::Mutex
& i_rListenerMutex
, VCLXWindow
& i_rOwningWindow
)
54 : pOwningWindow( &i_rOwningWindow
)
55 ,aStyleChangeListeners( i_rListenerMutex
)
59 DECL_LINK( OnWindowEvent
, VclWindowEvent
&, void );
63 IMPL_LINK( WindowStyleSettings_Data
, OnWindowEvent
, VclWindowEvent
&, rEvent
, void )
65 if ( rEvent
.GetId() != VclEventId::WindowDataChanged
)
67 const DataChangedEvent
* pDataChangedEvent
= static_cast< const DataChangedEvent
* >( rEvent
.GetData() );
68 if ( !pDataChangedEvent
|| ( pDataChangedEvent
->GetType() != DataChangedEventType::SETTINGS
) )
70 if ( !( pDataChangedEvent
->GetFlags() & AllSettingsFlags::STYLE
) )
73 EventObject
aEvent( *pOwningWindow
);
74 aStyleChangeListeners
.notifyEach( &XStyleChangeListener::styleSettingsChanged
, aEvent
);
81 class StyleMethodGuard
84 explicit StyleMethodGuard( WindowStyleSettings_Data
& i_rData
)
86 if ( i_rData
.pOwningWindow
== nullptr )
87 throw DisposedException();
91 SolarMutexGuard m_aGuard
;
95 //= WindowStyleSettings
98 WindowStyleSettings::WindowStyleSettings(::osl::Mutex
& i_rListenerMutex
, VCLXWindow
& i_rOwningWindow
)
99 :m_pData( new WindowStyleSettings_Data(i_rListenerMutex
, i_rOwningWindow
) )
101 VclPtr
<vcl::Window
> pWindow
= i_rOwningWindow
.GetWindow();
103 throw RuntimeException();
104 pWindow
->AddEventListener( LINK( m_pData
.get(), WindowStyleSettings_Data
, OnWindowEvent
) );
108 WindowStyleSettings::~WindowStyleSettings()
113 void WindowStyleSettings::dispose()
115 StyleMethodGuard
aGuard( *m_pData
);
117 VclPtr
<vcl::Window
> pWindow
= m_pData
->pOwningWindow
->GetWindow();
118 OSL_ENSURE( pWindow
, "WindowStyleSettings::dispose: window has been reset before we could revoke the listener!" );
120 pWindow
->RemoveEventListener( LINK( m_pData
.get(), WindowStyleSettings_Data
, OnWindowEvent
) );
122 EventObject
aEvent( *this );
123 m_pData
->aStyleChangeListeners
.disposeAndClear( aEvent
);
125 m_pData
->pOwningWindow
= nullptr;
131 sal_Int32
lcl_getStyleColor( WindowStyleSettings_Data
& i_rData
, Color
const & (StyleSettings::*i_pGetter
)() const )
133 const VclPtr
<vcl::Window
>& pWindow
= i_rData
.pOwningWindow
->GetWindow();
134 const AllSettings aAllSettings
= pWindow
->GetSettings();
135 const StyleSettings
& aStyleSettings
= aAllSettings
.GetStyleSettings();
136 return (aStyleSettings
.*i_pGetter
)().GetColor();
139 void lcl_setStyleColor( WindowStyleSettings_Data
& i_rData
, void (StyleSettings::*i_pSetter
)( Color
const & ), const sal_Int32 i_nColor
)
141 VclPtr
<vcl::Window
> pWindow
= i_rData
.pOwningWindow
->GetWindow();
142 AllSettings aAllSettings
= pWindow
->GetSettings();
143 StyleSettings aStyleSettings
= aAllSettings
.GetStyleSettings();
144 (aStyleSettings
.*i_pSetter
)( Color( i_nColor
) );
145 aAllSettings
.SetStyleSettings( aStyleSettings
);
146 pWindow
->SetSettings( aAllSettings
);
149 FontDescriptor
lcl_getStyleFont( WindowStyleSettings_Data
& i_rData
, vcl::Font
const & (StyleSettings::*i_pGetter
)() const )
151 const VclPtr
<vcl::Window
>& pWindow
= i_rData
.pOwningWindow
->GetWindow();
152 const AllSettings aAllSettings
= pWindow
->GetSettings();
153 const StyleSettings
& aStyleSettings
= aAllSettings
.GetStyleSettings();
154 return VCLUnoHelper::CreateFontDescriptor( (aStyleSettings
.*i_pGetter
)() );
157 void lcl_setStyleFont( WindowStyleSettings_Data
& i_rData
, void (StyleSettings::*i_pSetter
)( vcl::Font
const &),
158 vcl::Font
const & (StyleSettings::*i_pGetter
)() const, const FontDescriptor
& i_rFont
)
160 VclPtr
<vcl::Window
> pWindow
= i_rData
.pOwningWindow
->GetWindow();
161 AllSettings aAllSettings
= pWindow
->GetSettings();
162 StyleSettings aStyleSettings
= aAllSettings
.GetStyleSettings();
163 const vcl::Font aNewFont
= VCLUnoHelper::CreateFont( i_rFont
, (aStyleSettings
.*i_pGetter
)() );
164 (aStyleSettings
.*i_pSetter
)( aNewFont
);
165 aAllSettings
.SetStyleSettings( aStyleSettings
);
166 pWindow
->SetSettings( aAllSettings
);
171 ::sal_Int32 SAL_CALL
WindowStyleSettings::getActiveBorderColor()
173 StyleMethodGuard
aGuard( *m_pData
);
174 return lcl_getStyleColor( *m_pData
, &StyleSettings::GetActiveBorderColor
);
178 void SAL_CALL
WindowStyleSettings::setActiveBorderColor( ::sal_Int32 _activebordercolor
)
180 StyleMethodGuard
aGuard( *m_pData
);
181 lcl_setStyleColor( *m_pData
, &StyleSettings::SetActiveBorderColor
, _activebordercolor
);
185 ::sal_Int32 SAL_CALL
WindowStyleSettings::getActiveColor()
187 StyleMethodGuard
aGuard( *m_pData
);
188 return lcl_getStyleColor( *m_pData
, &StyleSettings::GetActiveColor
);
192 void SAL_CALL
WindowStyleSettings::setActiveColor( ::sal_Int32 _activecolor
)
194 StyleMethodGuard
aGuard( *m_pData
);
195 lcl_setStyleColor( *m_pData
, &StyleSettings::SetActiveColor
, _activecolor
);
199 ::sal_Int32 SAL_CALL
WindowStyleSettings::getActiveTabColor()
201 StyleMethodGuard
aGuard( *m_pData
);
202 return lcl_getStyleColor( *m_pData
, &StyleSettings::GetActiveTabColor
);
206 void SAL_CALL
WindowStyleSettings::setActiveTabColor( ::sal_Int32 _activetabcolor
)
208 StyleMethodGuard
aGuard( *m_pData
);
209 lcl_setStyleColor( *m_pData
, &StyleSettings::SetActiveTabColor
, _activetabcolor
);
213 ::sal_Int32 SAL_CALL
WindowStyleSettings::getActiveTextColor()
215 StyleMethodGuard
aGuard( *m_pData
);
216 return lcl_getStyleColor( *m_pData
, &StyleSettings::GetActiveTextColor
);
220 void SAL_CALL
WindowStyleSettings::setActiveTextColor( ::sal_Int32 _activetextcolor
)
222 StyleMethodGuard
aGuard( *m_pData
);
223 lcl_setStyleColor( *m_pData
, &StyleSettings::SetActiveTextColor
, _activetextcolor
);
227 ::sal_Int32 SAL_CALL
WindowStyleSettings::getButtonRolloverTextColor()
229 StyleMethodGuard
aGuard( *m_pData
);
230 return lcl_getStyleColor( *m_pData
, &StyleSettings::GetButtonRolloverTextColor
);
234 void SAL_CALL
WindowStyleSettings::setButtonRolloverTextColor( ::sal_Int32 _buttonrollovertextcolor
)
236 StyleMethodGuard
aGuard( *m_pData
);
237 lcl_setStyleColor( *m_pData
, &StyleSettings::SetButtonRolloverTextColor
, _buttonrollovertextcolor
);
241 ::sal_Int32 SAL_CALL
WindowStyleSettings::getButtonTextColor()
243 StyleMethodGuard
aGuard( *m_pData
);
244 return lcl_getStyleColor( *m_pData
, &StyleSettings::GetButtonTextColor
);
248 void SAL_CALL
WindowStyleSettings::setButtonTextColor( ::sal_Int32 _buttontextcolor
)
250 StyleMethodGuard
aGuard( *m_pData
);
251 lcl_setStyleColor( *m_pData
, &StyleSettings::SetButtonTextColor
, _buttontextcolor
);
255 ::sal_Int32 SAL_CALL
WindowStyleSettings::getCheckedColor()
257 StyleMethodGuard
aGuard( *m_pData
);
258 return lcl_getStyleColor( *m_pData
, &StyleSettings::GetCheckedColor
);
262 void SAL_CALL
WindowStyleSettings::setCheckedColor( ::sal_Int32 _checkedcolor
)
264 StyleMethodGuard
aGuard( *m_pData
);
265 lcl_setStyleColor( *m_pData
, &StyleSettings::SetCheckedColor
, _checkedcolor
);
269 ::sal_Int32 SAL_CALL
WindowStyleSettings::getDarkShadowColor()
271 StyleMethodGuard
aGuard( *m_pData
);
272 return lcl_getStyleColor( *m_pData
, &StyleSettings::GetDarkShadowColor
);
276 void SAL_CALL
WindowStyleSettings::setDarkShadowColor( ::sal_Int32 _darkshadowcolor
)
278 StyleMethodGuard
aGuard( *m_pData
);
279 lcl_setStyleColor( *m_pData
, &StyleSettings::SetDarkShadowColor
, _darkshadowcolor
);
283 ::sal_Int32 SAL_CALL
WindowStyleSettings::getDeactiveBorderColor()
285 StyleMethodGuard
aGuard( *m_pData
);
286 return lcl_getStyleColor( *m_pData
, &StyleSettings::GetDeactiveBorderColor
);
290 void SAL_CALL
WindowStyleSettings::setDeactiveBorderColor( ::sal_Int32 _deactivebordercolor
)
292 StyleMethodGuard
aGuard( *m_pData
);
293 lcl_setStyleColor( *m_pData
, &StyleSettings::SetDeactiveBorderColor
, _deactivebordercolor
);
297 ::sal_Int32 SAL_CALL
WindowStyleSettings::getDeactiveColor()
299 StyleMethodGuard
aGuard( *m_pData
);
300 return lcl_getStyleColor( *m_pData
, &StyleSettings::GetDeactiveColor
);
304 void SAL_CALL
WindowStyleSettings::setDeactiveColor( ::sal_Int32 _deactivecolor
)
306 StyleMethodGuard
aGuard( *m_pData
);
307 lcl_setStyleColor( *m_pData
, &StyleSettings::SetDeactiveColor
, _deactivecolor
);
311 ::sal_Int32 SAL_CALL
WindowStyleSettings::getDeactiveTextColor()
313 StyleMethodGuard
aGuard( *m_pData
);
314 return lcl_getStyleColor( *m_pData
, &StyleSettings::GetDeactiveTextColor
);
318 void SAL_CALL
WindowStyleSettings::setDeactiveTextColor( ::sal_Int32 _deactivetextcolor
)
320 StyleMethodGuard
aGuard( *m_pData
);
321 lcl_setStyleColor( *m_pData
, &StyleSettings::SetDeactiveTextColor
, _deactivetextcolor
);
325 ::sal_Int32 SAL_CALL
WindowStyleSettings::getDialogColor()
327 StyleMethodGuard
aGuard( *m_pData
);
328 return lcl_getStyleColor( *m_pData
, &StyleSettings::GetDialogColor
);
332 void SAL_CALL
WindowStyleSettings::setDialogColor( ::sal_Int32 _dialogcolor
)
334 StyleMethodGuard
aGuard( *m_pData
);
335 lcl_setStyleColor( *m_pData
, &StyleSettings::SetDialogColor
, _dialogcolor
);
339 ::sal_Int32 SAL_CALL
WindowStyleSettings::getDialogTextColor()
341 StyleMethodGuard
aGuard( *m_pData
);
342 return lcl_getStyleColor( *m_pData
, &StyleSettings::GetDialogTextColor
);
346 void SAL_CALL
WindowStyleSettings::setDialogTextColor( ::sal_Int32 _dialogtextcolor
)
348 StyleMethodGuard
aGuard( *m_pData
);
349 lcl_setStyleColor( *m_pData
, &StyleSettings::SetDialogTextColor
, _dialogtextcolor
);
353 ::sal_Int32 SAL_CALL
WindowStyleSettings::getDisableColor()
355 StyleMethodGuard
aGuard( *m_pData
);
356 return lcl_getStyleColor( *m_pData
, &StyleSettings::GetDisableColor
);
360 void SAL_CALL
WindowStyleSettings::setDisableColor( ::sal_Int32 _disablecolor
)
362 StyleMethodGuard
aGuard( *m_pData
);
363 lcl_setStyleColor( *m_pData
, &StyleSettings::SetDisableColor
, _disablecolor
);
367 ::sal_Int32 SAL_CALL
WindowStyleSettings::getFaceColor()
369 StyleMethodGuard
aGuard( *m_pData
);
370 return lcl_getStyleColor( *m_pData
, &StyleSettings::GetFaceColor
);
374 void SAL_CALL
WindowStyleSettings::setFaceColor( ::sal_Int32 _facecolor
)
376 StyleMethodGuard
aGuard( *m_pData
);
377 lcl_setStyleColor( *m_pData
, &StyleSettings::SetFaceColor
, _facecolor
);
381 ::sal_Int32 SAL_CALL
WindowStyleSettings::getFaceGradientColor()
383 StyleMethodGuard
aGuard( *m_pData
);
384 const VclPtr
<vcl::Window
>& pWindow
= m_pData
->pOwningWindow
->GetWindow();
385 const AllSettings aAllSettings
= pWindow
->GetSettings();
386 const StyleSettings
& aStyleSettings
= aAllSettings
.GetStyleSettings();
387 return aStyleSettings
.GetFaceGradientColor().GetColor();
391 ::sal_Int32 SAL_CALL
WindowStyleSettings::getFieldColor()
393 StyleMethodGuard
aGuard( *m_pData
);
394 return lcl_getStyleColor( *m_pData
, &StyleSettings::GetFieldColor
);
398 void SAL_CALL
WindowStyleSettings::setFieldColor( ::sal_Int32 _fieldcolor
)
400 StyleMethodGuard
aGuard( *m_pData
);
401 lcl_setStyleColor( *m_pData
, &StyleSettings::SetFieldColor
, _fieldcolor
);
405 ::sal_Int32 SAL_CALL
WindowStyleSettings::getFieldRolloverTextColor()
407 StyleMethodGuard
aGuard( *m_pData
);
408 return lcl_getStyleColor( *m_pData
, &StyleSettings::GetFieldRolloverTextColor
);
412 void SAL_CALL
WindowStyleSettings::setFieldRolloverTextColor( ::sal_Int32 _fieldrollovertextcolor
)
414 StyleMethodGuard
aGuard( *m_pData
);
415 lcl_setStyleColor( *m_pData
, &StyleSettings::SetFieldRolloverTextColor
, _fieldrollovertextcolor
);
419 ::sal_Int32 SAL_CALL
WindowStyleSettings::getFieldTextColor()
421 StyleMethodGuard
aGuard( *m_pData
);
422 return lcl_getStyleColor( *m_pData
, &StyleSettings::GetFieldTextColor
);
426 void SAL_CALL
WindowStyleSettings::setFieldTextColor( ::sal_Int32 _fieldtextcolor
)
428 StyleMethodGuard
aGuard( *m_pData
);
429 lcl_setStyleColor( *m_pData
, &StyleSettings::SetFieldTextColor
, _fieldtextcolor
);
433 ::sal_Int32 SAL_CALL
WindowStyleSettings::getGroupTextColor()
435 StyleMethodGuard
aGuard( *m_pData
);
436 return lcl_getStyleColor( *m_pData
, &StyleSettings::GetGroupTextColor
);
440 void SAL_CALL
WindowStyleSettings::setGroupTextColor( ::sal_Int32 _grouptextcolor
)
442 StyleMethodGuard
aGuard( *m_pData
);
443 lcl_setStyleColor( *m_pData
, &StyleSettings::SetGroupTextColor
, _grouptextcolor
);
447 ::sal_Int32 SAL_CALL
WindowStyleSettings::getHelpColor()
449 StyleMethodGuard
aGuard( *m_pData
);
450 return lcl_getStyleColor( *m_pData
, &StyleSettings::GetHelpColor
);
454 void SAL_CALL
WindowStyleSettings::setHelpColor( ::sal_Int32 _helpcolor
)
456 StyleMethodGuard
aGuard( *m_pData
);
457 lcl_setStyleColor( *m_pData
, &StyleSettings::SetHelpColor
, _helpcolor
);
461 ::sal_Int32 SAL_CALL
WindowStyleSettings::getHelpTextColor()
463 StyleMethodGuard
aGuard( *m_pData
);
464 return lcl_getStyleColor( *m_pData
, &StyleSettings::GetHelpTextColor
);
468 void SAL_CALL
WindowStyleSettings::setHelpTextColor( ::sal_Int32 _helptextcolor
)
470 StyleMethodGuard
aGuard( *m_pData
);
471 lcl_setStyleColor( *m_pData
, &StyleSettings::SetHelpTextColor
, _helptextcolor
);
475 ::sal_Int32 SAL_CALL
WindowStyleSettings::getHighlightColor()
477 StyleMethodGuard
aGuard( *m_pData
);
478 return lcl_getStyleColor( *m_pData
, &StyleSettings::GetHighlightColor
);
482 void SAL_CALL
WindowStyleSettings::setHighlightColor( ::sal_Int32 _highlightcolor
)
484 StyleMethodGuard
aGuard( *m_pData
);
485 lcl_setStyleColor( *m_pData
, &StyleSettings::SetHighlightColor
, _highlightcolor
);
489 ::sal_Int32 SAL_CALL
WindowStyleSettings::getHighlightTextColor()
491 StyleMethodGuard
aGuard( *m_pData
);
492 return lcl_getStyleColor( *m_pData
, &StyleSettings::GetHighlightTextColor
);
496 void SAL_CALL
WindowStyleSettings::setHighlightTextColor( ::sal_Int32 _highlighttextcolor
)
498 StyleMethodGuard
aGuard( *m_pData
);
499 lcl_setStyleColor( *m_pData
, &StyleSettings::SetHighlightTextColor
, _highlighttextcolor
);
503 ::sal_Int32 SAL_CALL
WindowStyleSettings::getInactiveTabColor()
505 StyleMethodGuard
aGuard( *m_pData
);
506 return lcl_getStyleColor( *m_pData
, &StyleSettings::GetInactiveTabColor
);
510 void SAL_CALL
WindowStyleSettings::setInactiveTabColor( ::sal_Int32 _inactivetabcolor
)
512 StyleMethodGuard
aGuard( *m_pData
);
513 lcl_setStyleColor( *m_pData
, &StyleSettings::SetInactiveTabColor
, _inactivetabcolor
);
517 ::sal_Int32 SAL_CALL
WindowStyleSettings::getLabelTextColor()
519 StyleMethodGuard
aGuard( *m_pData
);
520 return lcl_getStyleColor( *m_pData
, &StyleSettings::GetLabelTextColor
);
524 void SAL_CALL
WindowStyleSettings::setLabelTextColor( ::sal_Int32 _labeltextcolor
)
526 StyleMethodGuard
aGuard( *m_pData
);
527 lcl_setStyleColor( *m_pData
, &StyleSettings::SetLabelTextColor
, _labeltextcolor
);
531 ::sal_Int32 SAL_CALL
WindowStyleSettings::getLightColor()
533 StyleMethodGuard
aGuard( *m_pData
);
534 return lcl_getStyleColor( *m_pData
, &StyleSettings::GetLightColor
);
538 void SAL_CALL
WindowStyleSettings::setLightColor( ::sal_Int32 _lightcolor
)
540 StyleMethodGuard
aGuard( *m_pData
);
541 lcl_setStyleColor( *m_pData
, &StyleSettings::SetLightColor
, _lightcolor
);
545 ::sal_Int32 SAL_CALL
WindowStyleSettings::getMenuBarColor()
547 StyleMethodGuard
aGuard( *m_pData
);
548 return lcl_getStyleColor( *m_pData
, &StyleSettings::GetMenuBarColor
);
552 void SAL_CALL
WindowStyleSettings::setMenuBarColor( ::sal_Int32 _menubarcolor
)
554 StyleMethodGuard
aGuard( *m_pData
);
555 lcl_setStyleColor( *m_pData
, &StyleSettings::SetMenuBarColor
, _menubarcolor
);
559 ::sal_Int32 SAL_CALL
WindowStyleSettings::getMenuBarTextColor()
561 StyleMethodGuard
aGuard( *m_pData
);
562 return lcl_getStyleColor( *m_pData
, &StyleSettings::GetMenuBarTextColor
);
566 void SAL_CALL
WindowStyleSettings::setMenuBarTextColor( ::sal_Int32 _menubartextcolor
)
568 StyleMethodGuard
aGuard( *m_pData
);
569 lcl_setStyleColor( *m_pData
, &StyleSettings::SetMenuBarTextColor
, _menubartextcolor
);
573 ::sal_Int32 SAL_CALL
WindowStyleSettings::getMenuBorderColor()
575 StyleMethodGuard
aGuard( *m_pData
);
576 return lcl_getStyleColor( *m_pData
, &StyleSettings::GetMenuBorderColor
);
580 void SAL_CALL
WindowStyleSettings::setMenuBorderColor( ::sal_Int32 _menubordercolor
)
582 StyleMethodGuard
aGuard( *m_pData
);
583 lcl_setStyleColor( *m_pData
, &StyleSettings::SetMenuBorderColor
, _menubordercolor
);
587 ::sal_Int32 SAL_CALL
WindowStyleSettings::getMenuColor()
589 StyleMethodGuard
aGuard( *m_pData
);
590 return lcl_getStyleColor( *m_pData
, &StyleSettings::GetMenuColor
);
594 void SAL_CALL
WindowStyleSettings::setMenuColor( ::sal_Int32 _menucolor
)
596 StyleMethodGuard
aGuard( *m_pData
);
597 lcl_setStyleColor( *m_pData
, &StyleSettings::SetMenuColor
, _menucolor
);
601 ::sal_Int32 SAL_CALL
WindowStyleSettings::getMenuHighlightColor()
603 StyleMethodGuard
aGuard( *m_pData
);
604 return lcl_getStyleColor( *m_pData
, &StyleSettings::GetMenuHighlightColor
);
608 void SAL_CALL
WindowStyleSettings::setMenuHighlightColor( ::sal_Int32 _menuhighlightcolor
)
610 StyleMethodGuard
aGuard( *m_pData
);
611 lcl_setStyleColor( *m_pData
, &StyleSettings::SetMenuHighlightColor
, _menuhighlightcolor
);
615 ::sal_Int32 SAL_CALL
WindowStyleSettings::getMenuHighlightTextColor()
617 StyleMethodGuard
aGuard( *m_pData
);
618 return lcl_getStyleColor( *m_pData
, &StyleSettings::GetMenuHighlightTextColor
);
622 void SAL_CALL
WindowStyleSettings::setMenuHighlightTextColor( ::sal_Int32 _menuhighlighttextcolor
)
624 StyleMethodGuard
aGuard( *m_pData
);
625 lcl_setStyleColor( *m_pData
, &StyleSettings::SetMenuHighlightTextColor
, _menuhighlighttextcolor
);
629 ::sal_Int32 SAL_CALL
WindowStyleSettings::getMenuTextColor()
631 StyleMethodGuard
aGuard( *m_pData
);
632 return lcl_getStyleColor( *m_pData
, &StyleSettings::GetMenuTextColor
);
636 void SAL_CALL
WindowStyleSettings::setMenuTextColor( ::sal_Int32 _menutextcolor
)
638 StyleMethodGuard
aGuard( *m_pData
);
639 lcl_setStyleColor( *m_pData
, &StyleSettings::SetMenuTextColor
, _menutextcolor
);
643 ::sal_Int32 SAL_CALL
WindowStyleSettings::getMonoColor()
645 StyleMethodGuard
aGuard( *m_pData
);
646 return lcl_getStyleColor( *m_pData
, &StyleSettings::GetMonoColor
);
650 void SAL_CALL
WindowStyleSettings::setMonoColor( ::sal_Int32 _monocolor
)
652 StyleMethodGuard
aGuard( *m_pData
);
653 lcl_setStyleColor( *m_pData
, &StyleSettings::SetMonoColor
, _monocolor
);
657 ::sal_Int32 SAL_CALL
WindowStyleSettings::getRadioCheckTextColor()
659 StyleMethodGuard
aGuard( *m_pData
);
660 return lcl_getStyleColor( *m_pData
, &StyleSettings::GetRadioCheckTextColor
);
664 void SAL_CALL
WindowStyleSettings::setRadioCheckTextColor( ::sal_Int32 _radiochecktextcolor
)
666 StyleMethodGuard
aGuard( *m_pData
);
667 lcl_setStyleColor( *m_pData
, &StyleSettings::SetRadioCheckTextColor
, _radiochecktextcolor
);
671 ::sal_Int32 SAL_CALL
WindowStyleSettings::getSeparatorColor()
673 StyleMethodGuard
aGuard( *m_pData
);
674 const VclPtr
<vcl::Window
>& pWindow
= m_pData
->pOwningWindow
->GetWindow();
675 const AllSettings aAllSettings
= pWindow
->GetSettings();
676 const StyleSettings
& aStyleSettings
= aAllSettings
.GetStyleSettings();
677 return aStyleSettings
.GetSeparatorColor().GetColor();
681 ::sal_Int32 SAL_CALL
WindowStyleSettings::getShadowColor()
683 StyleMethodGuard
aGuard( *m_pData
);
684 return lcl_getStyleColor( *m_pData
, &StyleSettings::GetShadowColor
);
688 void SAL_CALL
WindowStyleSettings::setShadowColor( ::sal_Int32 _shadowcolor
)
690 StyleMethodGuard
aGuard( *m_pData
);
691 lcl_setStyleColor( *m_pData
, &StyleSettings::SetShadowColor
, _shadowcolor
);
695 ::sal_Int32 SAL_CALL
WindowStyleSettings::getWindowColor()
697 StyleMethodGuard
aGuard( *m_pData
);
698 return lcl_getStyleColor( *m_pData
, &StyleSettings::GetWindowColor
);
702 void SAL_CALL
WindowStyleSettings::setWindowColor( ::sal_Int32 _windowcolor
)
704 StyleMethodGuard
aGuard( *m_pData
);
705 lcl_setStyleColor( *m_pData
, &StyleSettings::SetWindowColor
, _windowcolor
);
709 ::sal_Int32 SAL_CALL
WindowStyleSettings::getWindowTextColor()
711 StyleMethodGuard
aGuard( *m_pData
);
712 return lcl_getStyleColor( *m_pData
, &StyleSettings::GetWindowTextColor
);
716 void SAL_CALL
WindowStyleSettings::setWindowTextColor( ::sal_Int32 _windowtextcolor
)
718 StyleMethodGuard
aGuard( *m_pData
);
719 lcl_setStyleColor( *m_pData
, &StyleSettings::SetWindowTextColor
, _windowtextcolor
);
723 ::sal_Int32 SAL_CALL
WindowStyleSettings::getWorkspaceColor()
725 StyleMethodGuard
aGuard( *m_pData
);
726 return lcl_getStyleColor( *m_pData
, &StyleSettings::GetWorkspaceColor
);
730 void SAL_CALL
WindowStyleSettings::setWorkspaceColor( ::sal_Int32 _workspacecolor
)
732 StyleMethodGuard
aGuard( *m_pData
);
733 lcl_setStyleColor( *m_pData
, &StyleSettings::SetWorkspaceColor
, _workspacecolor
);
737 sal_Bool SAL_CALL
WindowStyleSettings::getHighContrastMode()
739 StyleMethodGuard
aGuard( *m_pData
);
740 const VclPtr
<vcl::Window
>& pWindow
= m_pData
->pOwningWindow
->GetWindow();
741 const AllSettings aAllSettings
= pWindow
->GetSettings();
742 const StyleSettings
& aStyleSettings
= aAllSettings
.GetStyleSettings();
743 return aStyleSettings
.GetHighContrastMode();
747 void SAL_CALL
WindowStyleSettings::setHighContrastMode( sal_Bool _highcontrastmode
)
749 StyleMethodGuard
aGuard( *m_pData
);
750 VclPtr
<vcl::Window
> pWindow
= m_pData
->pOwningWindow
->GetWindow();
751 AllSettings aAllSettings
= pWindow
->GetSettings();
752 StyleSettings aStyleSettings
= aAllSettings
.GetStyleSettings();
753 aStyleSettings
.SetHighContrastMode( _highcontrastmode
);
754 aAllSettings
.SetStyleSettings( aStyleSettings
);
755 pWindow
->SetSettings( aAllSettings
);
759 FontDescriptor SAL_CALL
WindowStyleSettings::getApplicationFont()
761 StyleMethodGuard
aGuard( *m_pData
);
762 return lcl_getStyleFont( *m_pData
, &StyleSettings::GetAppFont
);
766 void SAL_CALL
WindowStyleSettings::setApplicationFont( const FontDescriptor
& _applicationfont
)
768 StyleMethodGuard
aGuard( *m_pData
);
769 lcl_setStyleFont( *m_pData
, &StyleSettings::SetAppFont
, &StyleSettings::GetAppFont
, _applicationfont
);
773 FontDescriptor SAL_CALL
WindowStyleSettings::getHelpFont()
775 StyleMethodGuard
aGuard( *m_pData
);
776 return lcl_getStyleFont( *m_pData
, &StyleSettings::GetHelpFont
);
780 void SAL_CALL
WindowStyleSettings::setHelpFont( const FontDescriptor
& _helpfont
)
782 StyleMethodGuard
aGuard( *m_pData
);
783 lcl_setStyleFont( *m_pData
, &StyleSettings::SetHelpFont
, &StyleSettings::GetHelpFont
, _helpfont
);
787 FontDescriptor SAL_CALL
WindowStyleSettings::getTitleFont()
789 StyleMethodGuard
aGuard( *m_pData
);
790 return lcl_getStyleFont( *m_pData
, &StyleSettings::GetTitleFont
);
794 void SAL_CALL
WindowStyleSettings::setTitleFont( const FontDescriptor
& _titlefont
)
796 StyleMethodGuard
aGuard( *m_pData
);
797 lcl_setStyleFont( *m_pData
, &StyleSettings::SetTitleFont
, &StyleSettings::GetTitleFont
, _titlefont
);
801 FontDescriptor SAL_CALL
WindowStyleSettings::getFloatTitleFont()
803 StyleMethodGuard
aGuard( *m_pData
);
804 return lcl_getStyleFont( *m_pData
, &StyleSettings::GetFloatTitleFont
);
808 void SAL_CALL
WindowStyleSettings::setFloatTitleFont( const FontDescriptor
& _floattitlefont
)
810 StyleMethodGuard
aGuard( *m_pData
);
811 lcl_setStyleFont( *m_pData
, &StyleSettings::SetFloatTitleFont
, &StyleSettings::GetFloatTitleFont
, _floattitlefont
);
815 FontDescriptor SAL_CALL
WindowStyleSettings::getMenuFont()
817 StyleMethodGuard
aGuard( *m_pData
);
818 return lcl_getStyleFont( *m_pData
, &StyleSettings::GetMenuFont
);
822 void SAL_CALL
WindowStyleSettings::setMenuFont( const FontDescriptor
& _menufont
)
824 StyleMethodGuard
aGuard( *m_pData
);
825 lcl_setStyleFont( *m_pData
, &StyleSettings::SetMenuFont
, &StyleSettings::GetMenuFont
, _menufont
);
829 FontDescriptor SAL_CALL
WindowStyleSettings::getToolFont()
831 StyleMethodGuard
aGuard( *m_pData
);
832 return lcl_getStyleFont( *m_pData
, &StyleSettings::GetToolFont
);
836 void SAL_CALL
WindowStyleSettings::setToolFont( const FontDescriptor
& _toolfont
)
838 StyleMethodGuard
aGuard( *m_pData
);
839 lcl_setStyleFont( *m_pData
, &StyleSettings::SetToolFont
, &StyleSettings::GetToolFont
, _toolfont
);
843 FontDescriptor SAL_CALL
WindowStyleSettings::getGroupFont()
845 StyleMethodGuard
aGuard( *m_pData
);
846 return lcl_getStyleFont( *m_pData
, &StyleSettings::GetGroupFont
);
850 void SAL_CALL
WindowStyleSettings::setGroupFont( const FontDescriptor
& _groupfont
)
852 StyleMethodGuard
aGuard( *m_pData
);
853 lcl_setStyleFont( *m_pData
, &StyleSettings::SetGroupFont
, &StyleSettings::GetGroupFont
, _groupfont
);
857 FontDescriptor SAL_CALL
WindowStyleSettings::getLabelFont()
859 StyleMethodGuard
aGuard( *m_pData
);
860 return lcl_getStyleFont( *m_pData
, &StyleSettings::GetLabelFont
);
864 void SAL_CALL
WindowStyleSettings::setLabelFont( const FontDescriptor
& _labelfont
)
866 StyleMethodGuard
aGuard( *m_pData
);
867 lcl_setStyleFont( *m_pData
, &StyleSettings::SetLabelFont
, &StyleSettings::GetLabelFont
, _labelfont
);
871 FontDescriptor SAL_CALL
WindowStyleSettings::getRadioCheckFont()
873 StyleMethodGuard
aGuard( *m_pData
);
874 return lcl_getStyleFont( *m_pData
, &StyleSettings::GetRadioCheckFont
);
878 void SAL_CALL
WindowStyleSettings::setRadioCheckFont( const FontDescriptor
& _radiocheckfont
)
880 StyleMethodGuard
aGuard( *m_pData
);
881 lcl_setStyleFont( *m_pData
, &StyleSettings::SetRadioCheckFont
, &StyleSettings::GetRadioCheckFont
, _radiocheckfont
);
885 FontDescriptor SAL_CALL
WindowStyleSettings::getPushButtonFont()
887 StyleMethodGuard
aGuard( *m_pData
);
888 return lcl_getStyleFont( *m_pData
, &StyleSettings::GetPushButtonFont
);
892 void SAL_CALL
WindowStyleSettings::setPushButtonFont( const FontDescriptor
& _pushbuttonfont
)
894 StyleMethodGuard
aGuard( *m_pData
);
895 lcl_setStyleFont( *m_pData
, &StyleSettings::SetPushButtonFont
, &StyleSettings::GetPushButtonFont
, _pushbuttonfont
);
899 FontDescriptor SAL_CALL
WindowStyleSettings::getFieldFont()
901 StyleMethodGuard
aGuard( *m_pData
);
902 return lcl_getStyleFont( *m_pData
, &StyleSettings::GetFieldFont
);
906 void SAL_CALL
WindowStyleSettings::setFieldFont( const FontDescriptor
& _fieldfont
)
908 StyleMethodGuard
aGuard( *m_pData
);
909 lcl_setStyleFont( *m_pData
, &StyleSettings::SetFieldFont
, &StyleSettings::GetFieldFont
, _fieldfont
);
913 void SAL_CALL
WindowStyleSettings::addStyleChangeListener( const Reference
< XStyleChangeListener
>& i_rListener
)
915 StyleMethodGuard
aGuard( *m_pData
);
916 if ( i_rListener
.is() )
917 m_pData
->aStyleChangeListeners
.addInterface( i_rListener
);
921 void SAL_CALL
WindowStyleSettings::removeStyleChangeListener( const Reference
< XStyleChangeListener
>& i_rListener
)
923 StyleMethodGuard
aGuard( *m_pData
);
924 if ( i_rListener
.is() )
925 m_pData
->aStyleChangeListeners
.removeInterface( i_rListener
);
929 } // namespace toolkit
932 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */