26#include <com/sun/star/beans/XPropertySet.hpp>
29#include <unordered_map>
35 css::beans::XPropertySet,
36 css::beans::XPropertySetInfo
51 AnyItem_ = Pre_Color_,
81 static Color GetColor (
const ThemeItem eItem);
82 static sal_Int32 GetInteger (
const ThemeItem eItem);
84 static bool IsHighContrastMode();
86 static void HandleDataChange();
88 void InitializeTheme();
95 virtual void disposing(std::unique_lock<std::mutex>&)
override;
97 static css::uno::Reference<css::beans::XPropertySet> GetPropertySet();
100 virtual css::uno::Reference<css::beans::XPropertySetInfo> SAL_CALL getPropertySetInfo()
override;
102 const OUString& rsPropertyName,
103 const css::uno::Any& rValue)
override;
105 const OUString& rsPropertyName)
override;
106 virtual void SAL_CALL addPropertyChangeListener(
107 const OUString& rsPropertyName,
108 const css::uno::Reference<css::beans::XPropertyChangeListener>& rxListener)
override;
109 virtual void SAL_CALL removePropertyChangeListener(
110 const OUString& rsPropertyName,
111 const css::uno::Reference<css::beans::XPropertyChangeListener>& rxListener)
override;
112 virtual void SAL_CALL addVetoableChangeListener(
113 const OUString& rsPropertyName,
114 const css::uno::Reference<css::beans::XVetoableChangeListener>& rxListener)
override;
115 virtual void SAL_CALL removeVetoableChangeListener(
116 const OUString& rsPropertyName,
117 const css::uno::Reference<css::beans::XVetoableChangeListener>& rxListener)
override;
120 virtual css::uno::Sequence<css::beans::Property> SAL_CALL getProperties()
override;
121 virtual css::beans::Property SAL_CALL getPropertyByName (
const OUString& rsName)
override;
122 virtual sal_Bool SAL_CALL hasPropertyByName (
const OUString& rsName)
override;
125 static Theme& GetCurrentTheme();
155 void SetupPropertyMaps();
158 static css::uno::Type
const & GetCppuType (
const PropertyType eType);
159 static sal_Int32 GetIndex (
160 const ThemeItem eItem,
163 VetoableListenerContainer* GetVetoableListeners (
164 const ThemeItem eItem,
166 ChangeListenerContainer* GetChangeListeners (
167 const ThemeItem eItem,
169 static bool DoVetoableListenersVeto (
170 const VetoableListenerContainer* pListeners,
171 const css::beans::PropertyChangeEvent& rEvent);
172 static void BroadcastPropertyChange (
173 const ChangeListenerContainer* pListeners,
174 const css::beans::PropertyChangeEvent& rEvent);
175 void ProcessNewValue (
176 const css::uno::Any& rValue,
177 const ThemeItem eItem,
VBAHELPER_DLLPUBLIC bool setPropertyValue(css::uno::Sequence< css::beans::PropertyValue > &aProp, const OUString &aName, const css::uno::Any &aValue)
bool getPropertyValue(ValueType &rValue, css::uno::Reference< css::beans::XPropertySet > const &xPropSet, OUString const &propName)
const css::uno::Type * GetPropertyType(sal_uInt16 nPropertyId)