24#include <com/sun/star/beans/PropertyAttribute.hpp>
32 using ::com::sun::star::uno::Reference;
33 using ::com::sun::star::uno::UNO_QUERY;
34 using ::com::sun::star::uno::UNO_SET_THROW;
35 using ::com::sun::star::uno::Exception;
36 using ::com::sun::star::uno::Any;
37 using ::com::sun::star::uno::Type;
38 using ::com::sun::star::beans::XPropertySet;
39 using ::com::sun::star::beans::XPropertySetInfo;
41 namespace PropertyAttribute = ::com::sun::star::beans::PropertyAttribute;
56 const sal_Int32 nBoundAttr = PropertyAttribute::BOUND;
57 const sal_Int32 nMayBeVoidAttr = PropertyAttribute::MAYBEVOID | nBoundAttr;
86 switch ( _nPropertyHandle )
94 return !_rPropertyValue.hasValue();
97 return !Reference< XPropertySet >( _rPropertyValue, UNO_QUERY ).is();
101 bool bHidden =
false;
102 OSL_VERIFY( _rPropertyValue >>= bHidden );
106 OSL_FAIL(
"OColumnSettings::isDefaulted: illegal property handle!" );
115 Reference< XPropertySetInfo > xPSI( _rxColumn->getPropertySetInfo(), UNO_SET_THROW );
117 struct PropertyDescriptor
122 const PropertyDescriptor aProps[] =
134 for (
const auto & aProp : aProps)
136 if ( xPSI->hasPropertyByName( aProp.sName ) )
137 if ( !
isDefaulted( aProp.nHandle, _rxColumn->getPropertyValue( aProp.sName ) ) )
css::uno::Type const & get()
virtual void registerMayBeVoidProperty(const OUString &_rName, sal_Int32 _nHandle, sal_Int32 _nAttributes, css::uno::Any *_pPointerToMember, const css::uno::Type &_rExpectedType)=0
virtual void registerProperty(const OUString &_rName, sal_Int32 _nHandle, sal_Int32 _nAttributes, void *_pPointerToMember, const css::uno::Type &_rMemberType)=0
css::uno::Any m_aHelpText
css::uno::Reference< css::beans::XPropertySet > m_xControlModel
css::uno::Any m_aControlDefault
void registerProperties(IPropertyContainer &_rPropertyContainer)
css::uno::Any m_aRelativePosition
static bool isDefaulted(const sal_Int32 _nPropertyHandle, const css::uno::Any &_rPropertyValue)
virtual ~OColumnSettings()
css::uno::Any m_aAlignment
static bool hasDefaultSettings(const css::uno::Reference< css::beans::XPropertySet > &_rxColumn)
check if the persistent settings have their default value
static bool isColumnSettingProperty(const sal_Int32 _nPropertyHandle)
determines whether the property with the given handle is handled by the class
css::uno::Any m_aFormatKey
#define ENSURE_OR_THROW(c, m)
#define DBG_UNHANDLED_EXCEPTION(...)
#define PROPERTY_ID_CONTROLMODEL
#define PROPERTY_ID_RELATIVEPOSITION
#define PROPERTY_ID_HELPTEXT
#define PROPERTY_ID_WIDTH
#define PROPERTY_ID_HIDDEN
#define PROPERTY_ID_ALIGN
#define PROPERTY_ID_CONTROLDEFAULT
#define PROPERTY_ID_NUMBERFORMAT
constexpr OUStringLiteral PROPERTY_WIDTH(u"Width")
constexpr OUStringLiteral PROPERTY_CONTROLDEFAULT(u"ControlDefault")
constexpr OUStringLiteral PROPERTY_RELATIVEPOSITION(u"RelativePosition")
constexpr OUStringLiteral PROPERTY_NUMBERFORMAT(u"FormatKey")
constexpr OUStringLiteral PROPERTY_HELPTEXT(u"HelpText")
constexpr OUStringLiteral PROPERTY_CONTROLMODEL(u"ControlModel")
constexpr OUStringLiteral PROPERTY_HIDDEN(u"Hidden")
constexpr OUStringLiteral PROPERTY_ALIGN(u"Align")