20#ifndef INCLUDED_SVX_SHAPEPROPERTYNOTIFIER_HXX
21#define INCLUDED_SVX_SHAPEPROPERTYNOTIFIER_HXX
25#include <rtl/ustring.hxx>
29#include <unordered_map>
34namespace osl {
class Mutex; }
69 ,m_sPropertyName(
std::move( _aPropertyName ) )
79 virtual void getCurrentValue( css::uno::Any& _out_rValue )
const;
109 void addPropertyChangeListener( std::unique_lock<std::mutex>& rGuard,
const OUString& _rPropertyName,
const css::uno::Reference< css::beans::XPropertyChangeListener >& _rxListener );
110 void removePropertyChangeListener( std::unique_lock<std::mutex>& rGuard,
const OUString& _rPropertyName,
const css::uno::Reference< css::beans::XPropertyChangeListener >& _rxListener );
114 void registerProvider(
const ShapePropertyProviderId _eProperty, std::unique_ptr<PropertyValueProvider> _rProvider );
121 void notifyPropertyChange( std::unique_lock<std::mutex>& rGuard,
const ShapePropertyProviderId _eProperty )
const;
125 void disposing(std::unique_lock<std::mutex>& rGuard);
helper class for notifying XPropertyChangeListeners
PropertyChangeNotifier(const PropertyChangeNotifier &)=delete
comphelper::OMultiTypeInterfaceContainerHelperVar4< OUString, css::beans::XPropertyChangeListener > m_aPropertyChangeListeners
PropertyChangeNotifier & operator=(const PropertyChangeNotifier &)=delete
::cppu::OWeakObject & m_rContext
o3tl::enumarray< ShapePropertyProviderId, std::unique_ptr< PropertyValueProvider > > m_aProviders
Default provider for a property value.
const OUString m_sPropertyName
::cppu::OWeakObject & m_rContext
PropertyValueProvider & operator=(const PropertyValueProvider &)=delete
PropertyValueProvider(const PropertyValueProvider &)=delete
::cppu::OWeakObject & getContext() const
PropertyValueProvider(::cppu::OWeakObject &_rContext, OUString _aPropertyName)
OUString getPropertyName(sal_Int32 nPropertyType)
const Reference< XComponentContext > & m_rContext
#define SVXCORE_DLLPUBLIC