Version 5.4.3.2, tag libreoffice-5.4.3.2
[LibreOffice.git] / toolkit / source / awt / stylesettings.cxx
blob0d540f0bf39cc0cb8a2646d6f52db93d9e641caa
1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 /*
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>
34 namespace toolkit
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 )
66 return;
67 const DataChangedEvent* pDataChangedEvent = static_cast< const DataChangedEvent* >( rEvent.GetData() );
68 if ( !pDataChangedEvent || ( pDataChangedEvent->GetType() != DataChangedEventType::SETTINGS ) )
69 return;
70 if ( !( pDataChangedEvent->GetFlags() & AllSettingsFlags::STYLE ) )
71 return;
73 EventObject aEvent( *pOwningWindow );
74 aStyleChangeListeners.notifyEach( &XStyleChangeListener::styleSettingsChanged, aEvent );
75 return;
79 //= StyleMethodGuard
81 class StyleMethodGuard
83 public:
84 explicit StyleMethodGuard( WindowStyleSettings_Data& i_rData )
86 if ( i_rData.pOwningWindow == nullptr )
87 throw DisposedException();
90 private:
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();
102 if ( !pWindow )
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!" );
119 if ( pWindow )
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;
129 namespace
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: */