20#ifndef INCLUDED_TOOLKIT_CONTROLS_UNOCONTROLMODEL_HXX
21#define INCLUDED_TOOLKIT_CONTROLS_UNOCONTROLMODEL_HXX
23#include <com/sun/star/awt/XControlModel.hpp>
24#include <com/sun/star/lang/XComponent.hpp>
25#include <com/sun/star/lang/XServiceInfo.hpp>
26#include <com/sun/star/beans/XPropertyState.hpp>
27#include <com/sun/star/io/XPersistObject.hpp>
28#include <com/sun/star/util/XCloneable.hpp>
47 , css::beans::XPropertyState
48 , css::io::XPersistObject
49 , css::lang::XComponent
50 , css::lang::XServiceInfo
51 , css::util::XCloneable
62 css::uno::Reference< css::uno::XComponentContext >
m_xContext;
79 const sal_Int32 _nCount,
81 css::uno::Any* _pValues,
82 sal_Int32* _pValidHandles
87 const sal_Int32 _nCount,
89 css::uno::Any* _pValues,
90 sal_Int32 _nFirstHandle,
91 sal_Int32 _nSecondHandle
95 std::vector< sal_uInt16 > aIds;
96 T::ImplGetPropertyIds( aIds );
113 UnoControlModel(
const css::uno::Reference< css::uno::XComponentContext >& rxContext );
119 css::uno::Any SAL_CALL
queryInterface(
const css::uno::Type & rType )
override {
return OWeakAggObject::queryInterface(rType); }
127 css::
uno::Reference< css::util::XCloneable > SAL_CALL
createClone() override;
130 DECLARE_XTYPEPROVIDER()
133 void SAL_CALL
dispose( ) override;
134 void SAL_CALL
addEventListener( const css::
uno::Reference< css::lang::XEventListener >& xListener ) override;
135 void SAL_CALL
removeEventListener( const css::
uno::Reference< css::lang::XEventListener >& aListener ) override;
138 css::beans::PropertyState SAL_CALL
getPropertyState( const OUString& PropertyName ) override;
139 css::
uno::Sequence< css::beans::PropertyState > SAL_CALL
getPropertyStates( const css::
uno::Sequence< OUString >& aPropertyName ) override;
145 void SAL_CALL
write( const css::
uno::Reference< css::io::XObjectOutputStream >& OutStream ) override;
146 void SAL_CALL
read( const css::
uno::Reference< css::io::XObjectInputStream >& InStream ) override;
157 std::unique_lock<
std::mutex>& rGuard,
158 sal_Int32 nHandle, const css::
uno::Any& rValue ) override;
164 void SAL_CALL
setPropertyValues( const css::
uno::Sequence< OUString >& PropertyNames, const css::
uno::Sequence< css::
uno::Any >& Values ) override;
void setPropertyValuesImpl(std::unique_lock< std::mutex > &rGuard, const css::uno::Sequence< OUString > &PropertyNames, const css::uno::Sequence< css::uno::Any > &Values)
css::uno::Sequence< sal_Int32 > ImplGetPropertyIds() const
sal_Bool SAL_CALL supportsService(const OUString &ServiceName) override
void ImplRegisterProperty(sal_uInt16 nPropType)
void SAL_CALL setPropertyToDefault(const OUString &PropertyName) override
css::uno::Reference< css::util::XCloneable > SAL_CALL createClone() override
css::uno::Reference< css::beans::XPropertySetInfo > SAL_CALL getPropertySetInfo() override
css::uno::Any SAL_CALL queryInterface(const css::uno::Type &rType) override
void SAL_CALL dispose() override
css::uno::Any SAL_CALL getPropertyDefault(const OUString &aPropertyName) override
void setFastPropertyValue_NoBroadcast(std::unique_lock< std::mutex > &rGuard, sal_Int32 nHandle, const css::uno::Any &rValue) override
css::uno::Sequence< css::beans::PropertyState > SAL_CALL getPropertyStates(const css::uno::Sequence< OUString > &aPropertyName) override
OUString SAL_CALL getServiceName() override
void UNO_CONTROL_MODEL_REGISTER_PROPERTIES()
void SAL_CALL read(const css::uno::Reference< css::io::XObjectInputStream > &InStream) override
void setFastPropertyValueImpl(std::unique_lock< std::mutex > &rGuard, sal_Int32 nHandle, const css::uno::Any &aValue) override
UnoControlModel(const css::uno::Reference< css::uno::XComponentContext > &rxContext)
virtual rtl::Reference< UnoControlModel > Clone() const =0
virtual css::uno::Any ImplGetDefaultValue(sal_uInt16 nPropId) const
::cppu::IPropertyArrayHelper & getInfoHelper() override=0
void SAL_CALL setPropertyValues(const css::uno::Sequence< OUString > &PropertyNames, const css::uno::Sequence< css::uno::Any > &Values) override
void SAL_CALL acquire() noexcept override
void getFastPropertyValue(std::unique_lock< std::mutex > &rGuard, css::uno::Any &rValue, sal_Int32 nHandle) const override
void SAL_CALL addEventListener(const css::uno::Reference< css::lang::XEventListener > &xListener) override
css::beans::PropertyState SAL_CALL getPropertyState(const OUString &PropertyName) override
virtual void ImplNormalizePropertySequence(const sal_Int32 _nCount, sal_Int32 *_pHandles, css::uno::Any *_pValues, sal_Int32 *_pValidHandles) const
called before setting multiple properties, allows to care for property dependencies
css::uno::Any SAL_CALL queryAggregation(const css::uno::Type &rType) override
static void ImplEnsureHandleOrder(const sal_Int32 _nCount, sal_Int32 *_pHandles, css::uno::Any *_pValues, sal_Int32 _nFirstHandle, sal_Int32 _nSecondHandle)
ensures that two property values in a sequence have a certain order
bool ImplHasProperty(sal_uInt16 nPropId) const
void SAL_CALL removeEventListener(const css::uno::Reference< css::lang::XEventListener > &aListener) override
css::uno::Reference< css::uno::XComponentContext > m_xContext
css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override
void SAL_CALL write(const css::uno::Reference< css::io::XObjectOutputStream > &OutStream) override
EventListenerMultiplexer maDisposeListeners
bool convertFastPropertyValue(std::unique_lock< std::mutex > &rGuard, css::uno::Any &rConvertedValue, css::uno::Any &rOldValue, sal_Int32 nHandle, const css::uno::Any &rValue) override
css::beans::PropertyState getPropertyStateImpl(std::unique_lock< std::mutex > &rGuard, const OUString &PropertyName)
void SAL_CALL release() noexcept override
OUString SAL_CALL getImplementationName() override
void ImplRegisterProperties(const std::vector< sal_uInt16 > &rIds)
std::map< sal_uInt16, css::uno::Any > ImplPropertyTable
::cppu::WeakAggImplHelper6< css::awt::XControlModel, css::beans::XPropertyState, css::io::XPersistObject, css::lang::XComponent, css::lang::XServiceInfo, css::util::XCloneable > UnoControlModel_Base