21#include <property.hxx>
24#include <com/sun/star/beans/PropertyAttribute.hpp>
25#include <com/sun/star/form/FormComponentType.hpp>
26#include <com/sun/star/text/WritingMode2.hpp>
47 namespace WritingMode2 = ::com::sun::star::text::WritingMode2;
50 :OControlModel( _rxFactory, OUString() )
51 ,FontControlModel( true )
54 m_nClassId = FormComponentType::NAVIGATIONBAR;
55 implInitPropertyContainer();
72 ONavigationBarModel::ONavigationBarModel(
const ONavigationBarModel* _pOriginal,
const Reference< XComponentContext >& _rxFactory )
73 :OControlModel( _pOriginal, _rxFactory )
74 ,FontControlModel( _pOriginal )
77 implInitPropertyContainer();
79 m_aTabStop = _pOriginal->m_aTabStop;
80 m_aBackgroundColor = _pOriginal->m_aBackgroundColor;
81 m_sDefaultControl = _pOriginal->m_sDefaultControl;
82 m_sHelpText = _pOriginal->m_sHelpText;
83 m_sHelpURL = _pOriginal->m_sHelpURL;
84 m_bEnabled = _pOriginal->m_bEnabled;
85 m_bEnableVisible = _pOriginal->m_bEnableVisible;
86 m_nIconSize = _pOriginal->m_nIconSize;
87 m_nBorder = _pOriginal->m_nBorder;
88 m_nDelay = _pOriginal->m_nDelay;
89 m_bShowPosition = _pOriginal->m_bShowPosition;
90 m_bShowNavigation = _pOriginal->m_bShowNavigation;
91 m_bShowActions = _pOriginal->m_bShowActions;
92 m_bShowFilterSort = _pOriginal->m_bShowFilterSort;
93 m_nWritingMode = _pOriginal->m_nWritingMode;
94 m_nContextWritingMode = _pOriginal->m_nContextWritingMode;
98 void ONavigationBarModel::implInitPropertyContainer()
101 &m_sDefaultControl,
cppu::UnoType<
decltype(m_sDefaultControl)>::get() );
109 &m_bEnableVisible,
cppu::UnoType<
decltype(m_bEnableVisible)>::get() );
117 &m_bShowPosition,
cppu::UnoType<
decltype(m_bShowPosition)>::get() );
119 &m_bShowNavigation,
cppu::UnoType<
decltype(m_bShowNavigation)>::get() );
121 &m_bShowActions,
cppu::UnoType<
decltype(m_bShowActions)>::get() );
123 &m_bShowFilterSort,
cppu::UnoType<
decltype(m_bShowFilterSort)>::get() );
125 &m_nWritingMode,
cppu::UnoType<
decltype(m_nWritingMode)>::get() );
128 &m_nContextWritingMode,
cppu::UnoType<
decltype(m_nContextWritingMode)>::get() );
138 ONavigationBarModel::~ONavigationBarModel()
140 if ( !OComponentHelper::rBHelper.bDisposed )
149 Any SAL_CALL ONavigationBarModel::queryAggregation(
const Type& _rType )
151 Any aReturn = ONavigationBarModel_BASE::queryInterface( _rType );
153 if ( !aReturn.hasValue() )
154 aReturn = OControlModel::queryAggregation( _rType );
166 pClone->clonedFrom(
this);
171 OUString SAL_CALL ONavigationBarModel::getImplementationName()
173 return "com.sun.star.comp.form.ONavigationBarModel";
177 Sequence< OUString > SAL_CALL ONavigationBarModel::getSupportedServiceNames()
179 Sequence< OUString > aSupported = OControlModel::getSupportedServiceNames_Static();
180 aSupported.realloc( aSupported.getLength() + 2 );
182 OUString* pArray = aSupported.getArray();
183 pArray[ aSupported.getLength() - 2 ] =
"com.sun.star.awt.UnoControlModel";
188 OUString SAL_CALL ONavigationBarModel::getServiceName()
193 #define PERSIST_TABSTOP 0x0001
194 #define PERSIST_BACKGROUND 0x0002
195 #define PERSIST_TEXTCOLOR 0x0004
196 #define PERSIST_TEXTLINECOLOR 0x0008
198 #define PERSIST_ENABLED 0x0001
199 #define PERSIST_LARGEICONS 0x0002
201 #define PERSIST_SHOW_POSITION 0x0008
202 #define PERSIST_SHOW_NAVIGATION 0x0010
203 #define PERSIST_SHOW_ACTIONS 0x0020
204 #define PERSIST_SHOW_FILTERSORT 0x0040
207 void SAL_CALL ONavigationBarModel::write(
const Reference< XObjectOutputStream >& _rxOutStream )
211 OStreamSection aEnsureBlockCompat( _rxOutStream );
214 OControlModel::write( _rxOutStream );
217 OStreamSection aEnsureCompat( _rxOutStream );
219 sal_Int32 nNonVoids = 0;
220 if ( m_aTabStop.hasValue() )
222 if ( m_aBackgroundColor.hasValue() )
224 if ( hasTextColor() )
226 if ( hasTextLineColor() )
229 _rxOutStream->writeLong( nNonVoids );
234 bool bTabStop(
false );
235 m_aTabStop >>= bTabStop;
236 _rxOutStream->writeBoolean( bTabStop );
240 sal_Int32 nBackgroundColor = 0;
241 m_aBackgroundColor >>= nBackgroundColor;
242 _rxOutStream->writeLong( nBackgroundColor );
246 _rxOutStream->writeLong( sal_Int32(getTextColor()) );
250 _rxOutStream->writeLong( sal_Int32(getTextLineColor()) );
255 OStreamSection aEnsureCompat( _rxOutStream );
256 ::comphelper::operator<<( _rxOutStream, getFont() );
260 sal_Int32 nFlags = 0;
267 _rxOutStream->writeLong( nFlags );
270 _rxOutStream->writeUTF( m_sHelpText );
271 _rxOutStream->writeUTF( m_sHelpURL );
272 _rxOutStream->writeUTF( m_sDefaultControl );
275 _rxOutStream->writeShort( m_nBorder );
276 _rxOutStream->writeLong ( m_nDelay );
280 void SAL_CALL ONavigationBarModel::read(
const Reference< XObjectInputStream >& _rxInStream )
282 OStreamSection aEnsureBlockCompat( _rxInStream );
285 OControlModel::read( _rxInStream );
288 OStreamSection aEnsureCompat( _rxInStream );
290 sal_Int32 nNonVoids = _rxInStream->readLong( );
294 m_aTabStop <<= _rxInStream->readBoolean();
299 m_aBackgroundColor <<= _rxInStream->readLong();
301 m_aBackgroundColor.clear();
311 clearTextLineColor();
315 OStreamSection aEnsureCompat( _rxInStream );
316 FontDescriptor aFont;
317 ::comphelper::operator>>( _rxInStream, aFont );
322 sal_Int32 nFlags = _rxInStream->readLong( );
331 m_sHelpText = _rxInStream->readUTF( );
332 m_sHelpURL = _rxInStream->readUTF( );
333 m_sDefaultControl = _rxInStream->readUTF( );
336 m_nBorder = _rxInStream->readShort();
337 m_nDelay = _rxInStream->readLong();
341 void SAL_CALL ONavigationBarModel::getFastPropertyValue( Any& _rValue, sal_Int32 _nHandle )
const
343 if ( isRegisteredProperty( _nHandle ) )
345 OPropertyContainerHelper::getFastPropertyValue( _rValue, _nHandle );
347 else if ( isFontRelatedProperty( _nHandle ) )
349 FontControlModel::getFastPropertyValue( _rValue, _nHandle );
353 OControlModel::getFastPropertyValue( _rValue, _nHandle );
358 sal_Bool SAL_CALL ONavigationBarModel::convertFastPropertyValue( Any& _rConvertedValue, Any& _rOldValue,
359 sal_Int32 _nHandle,
const Any& _rValue )
361 bool bModified =
false;
363 if ( isRegisteredProperty( _nHandle ) )
365 bModified = OPropertyContainerHelper::convertFastPropertyValue( _rConvertedValue, _rOldValue, _nHandle, _rValue );
367 else if ( isFontRelatedProperty( _nHandle ) )
369 bModified = FontControlModel::convertFastPropertyValue( _rConvertedValue, _rOldValue, _nHandle, _rValue );
373 bModified = OControlModel::convertFastPropertyValue( _rConvertedValue, _rOldValue, _nHandle, _rValue );
380 void SAL_CALL ONavigationBarModel::setFastPropertyValue_NoBroadcast( sal_Int32 _nHandle,
const Any& _rValue )
382 if ( isRegisteredProperty( _nHandle ) )
384 OPropertyContainerHelper::setFastPropertyValue( _nHandle, _rValue );
386 else if ( isFontRelatedProperty( _nHandle ) )
388 FontControlModel::setFastPropertyValue_NoBroadcast_impl(
389 *
this, &ONavigationBarModel::setDependentFastPropertyValue,
394 OControlModel::setFastPropertyValue_NoBroadcast( _nHandle, _rValue );
399 Any ONavigationBarModel::getPropertyDefaultByHandle( sal_Int32 _nHandle )
const
411 aDefault <<= WritingMode2::CONTEXT;
424 aDefault <<= sal_Int16(0);
428 aDefault <<= OUString(
"com.sun.star.form.control.NavigationToolBar" );
433 aDefault <<= OUString();
437 aDefault <<= sal_Int16(0);
441 aDefault <<= sal_Int32(20);
445 if ( isFontRelatedProperty( _nHandle ) )
446 aDefault = FontControlModel::getPropertyDefaultByHandle( _nHandle );
448 aDefault = OControlModel::getPropertyDefaultByHandle( _nHandle );
454 void ONavigationBarModel::describeFixedProperties( Sequence< Property >& _rProps )
const
456 OControlModel::describeFixedProperties( _rProps );
457 sal_Int32 nOldCount = _rProps.getLength();
458 _rProps.realloc( nOldCount + 1);
459 css::beans::Property* pProperties = _rProps.getArray() + nOldCount;
461 DBG_ASSERT( pProperties == _rProps.getArray() + _rProps.getLength(),
"<...>::describeFixedProperties/getInfoHelper: forgot to adjust the count ?");
464 Sequence< Property > aContainedProperties;
465 describeProperties( aContainedProperties );
468 Sequence< Property > aFontProperties;
469 describeFontRelatedProperties( aFontProperties );
472 aContainedProperties,
480extern "C" SAL_DLLPUBLIC_EXPORT css::uno::XInterface*
482 css::uno::Sequence<css::uno::Any>
const &)
ONavigationBarModel(const css::uno::Reference< css::uno::XComponentContext > &_rxFactory)
#define DBG_ASSERT(sCon, aError)
constexpr OUStringLiteral PROPERTY_TABINDEX
constexpr OUStringLiteral PROPERTY_DEFAULTCONTROL
constexpr OUStringLiteral PROPERTY_BACKGROUNDCOLOR
constexpr OUStringLiteral PROPERTY_ICONSIZE
constexpr OUStringLiteral PROPERTY_HELPURL
constexpr OUStringLiteral PROPERTY_SHOW_RECORDACTIONS
constexpr OUStringLiteral PROPERTY_HELPTEXT
constexpr OUStringLiteral PROPERTY_SHOW_FILTERSORT
constexpr OUStringLiteral PROPERTY_DELAY
constexpr OUStringLiteral PROPERTY_ENABLEVISIBLE
constexpr OUStringLiteral PROPERTY_WRITING_MODE
constexpr OUStringLiteral PROPERTY_SHOW_POSITION
constexpr OUStringLiteral PROPERTY_SHOW_NAVIGATION
constexpr OUStringLiteral PROPERTY_TABSTOP
constexpr OUStringLiteral PROPERTY_BORDER
constexpr OUStringLiteral PROPERTY_ENABLED
constexpr OUStringLiteral PROPERTY_CONTEXT_WRITING_MODE
css::uno::Sequence< T > concatSequences(const css::uno::Sequence< T > &rS1, const Ss &... rSn)
ListBox is a bit confusing / different from other form components, so here are a few notes:
IMPLEMENT_FORWARD_XTYPEPROVIDER2(ChildWindowPane, ChildWindowPaneInterfaceBase, Pane)
#define PERSIST_SHOW_FILTERSORT
SAL_DLLPUBLIC_EXPORT css::uno::XInterface * com_sun_star_comp_form_ONavigationBarModel_get_implementation(css::uno::XComponentContext *context, css::uno::Sequence< css::uno::Any > const &)
#define PERSIST_SHOW_POSITION
#define PERSIST_TEXTLINECOLOR
#define PERSIST_LARGEICONS
#define PERSIST_TEXTCOLOR
#define PERSIST_SHOW_NAVIGATION
#define PERSIST_BACKGROUND
#define PERSIST_SHOW_ACTIONS
#define PROPERTY_ID_SHOW_FILTERSORT
#define PROPERTY_ID_WRITING_MODE
#define PROPERTY_ID_SHOW_RECORDACTIONS
#define PROPERTY_ID_ENABLEVISIBLE
#define PROPERTY_ID_BACKGROUNDCOLOR
#define PROPERTY_ID_ENABLED
#define PROPERTY_ID_DELAY
#define PROPERTY_ID_ICONSIZE
#define PROPERTY_ID_HELPTEXT
#define PROPERTY_ID_SHOW_NAVIGATION
#define PROPERTY_ID_TABSTOP
#define PROPERTY_ID_DEFAULTCONTROL
#define PROPERTY_ID_CONTEXT_WRITING_MODE
#define PROPERTY_ID_HELPURL
#define PROPERTY_ID_TABINDEX
#define PROPERTY_ID_SHOW_POSITION
#define PROPERTY_ID_BORDER
constexpr OUStringLiteral FRM_SUN_COMPONENT_NAVTOOLBAR