Branch data Line data Source code
1 : : /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 : : /*************************************************************************
3 : : *
4 : : * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
5 : : *
6 : : * Copyright 2000, 2010 Oracle and/or its affiliates.
7 : : *
8 : : * OpenOffice.org - a multi-platform office productivity suite
9 : : *
10 : : * This file is part of OpenOffice.org.
11 : : *
12 : : * OpenOffice.org is free software: you can redistribute it and/or modify
13 : : * it under the terms of the GNU Lesser General Public License version 3
14 : : * only, as published by the Free Software Foundation.
15 : : *
16 : : * OpenOffice.org is distributed in the hope that it will be useful,
17 : : * but WITHOUT ANY WARRANTY; without even the implied warranty of
18 : : * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 : : * GNU Lesser General Public License version 3 for more details
20 : : * (a copy is included in the LICENSE file that accompanied this code).
21 : : *
22 : : * You should have received a copy of the GNU Lesser General Public License
23 : : * version 3 along with OpenOffice.org. If not, see
24 : : * <http://www.openoffice.org/license.html>
25 : : * for a copy of the LGPLv3 License.
26 : : *
27 : : ************************************************************************/
28 : :
29 : : #ifndef _EXTENSIONS_PROPCTRLR_PROPCONTROLLER_HXX_
30 : : #define _EXTENSIONS_PROPCTRLR_PROPCONTROLLER_HXX_
31 : :
32 : : #include "composeduiupdate.hxx"
33 : : #include "formbrowsertools.hxx"
34 : : #include "formmetadata.hxx"
35 : : #include "proplinelistener.hxx"
36 : : #include "propcontrolobserver.hxx"
37 : : #include "browserview.hxx"
38 : : #include "modulepcr.hxx"
39 : : #include "propertyinfo.hxx"
40 : : #include "pcrcomponentcontext.hxx"
41 : :
42 : : #include <com/sun/star/awt/XFocusListener.hpp>
43 : : #include <com/sun/star/beans/XPropertyState.hpp>
44 : : #include <com/sun/star/beans/XPropertySet.hpp>
45 : : #include <com/sun/star/beans/XPropertyChangeListener.hpp>
46 : : #include <com/sun/star/lang/XMultiServiceFactory.hpp>
47 : : #include <com/sun/star/uno/XComponentContext.hpp>
48 : : #include <com/sun/star/form/XForm.hpp>
49 : : #include <com/sun/star/script/XEventAttacherManager.hpp>
50 : : #include <com/sun/star/sdbc/XRowSet.hpp>
51 : : #include <com/sun/star/uno/Sequence.hxx>
52 : : #include <com/sun/star/frame/XController.hpp>
53 : : #include <com/sun/star/lang/XServiceInfo.hpp>
54 : : #include <com/sun/star/lang/XEventListener.hpp>
55 : : #include <com/sun/star/sdbc/XConnection.hpp>
56 : : #include <com/sun/star/awt/XLayoutConstrains.hpp>
57 : : #include <com/sun/star/awt/XControlContainer.hpp>
58 : : #include <com/sun/star/inspection/XPropertyControlFactory.hpp>
59 : : #include <com/sun/star/inspection/XObjectInspector.hpp>
60 : : #include <com/sun/star/inspection/XObjectInspectorUI.hpp>
61 : : #include <com/sun/star/inspection/XPropertyHandler.hpp>
62 : : #include <com/sun/star/lang/XInitialization.hpp>
63 : : #include <connectivity/dbtools.hxx>
64 : : #include <cppuhelper/interfacecontainer.hxx>
65 : : #include <cppuhelper/implbase7.hxx>
66 : : #include <comphelper/broadcasthelper.hxx>
67 : :
68 : : #include <map>
69 : : #include <boost/unordered_map.hpp>
70 : : #include <vector>
71 : : #include <memory>
72 : :
73 : : class Window;
74 : :
75 : : //............................................................................
76 : : namespace pcr
77 : : {
78 : : //............................................................................
79 : :
80 : : class OPropertyEditor;
81 : : struct OLineDescriptor;
82 : :
83 : : #if OSL_DEBUG_LEVEL > 0
84 : : const char* CheckPropertyBrowserInvariants( const void* pVoid );
85 : : // for dignostics with DBG_CHKTHIS
86 : : #endif
87 : : DBG_NAMEEX( OPropertyBrowserController )
88 : :
89 : : //========================================================================
90 : : //= OPropertyBrowserController
91 : : //========================================================================
92 : : // #95343#------------------------------------------------------------------------------------
93 : : typedef ::cppu::WeakImplHelper7 < ::com::sun::star::lang::XServiceInfo
94 : : , ::com::sun::star::awt::XFocusListener
95 : : , ::com::sun::star::awt::XLayoutConstrains
96 : : , ::com::sun::star::beans::XPropertyChangeListener
97 : : , ::com::sun::star::inspection::XPropertyControlFactory
98 : : , ::com::sun::star::inspection::XObjectInspector
99 : : , ::com::sun::star::lang::XInitialization
100 : : > OPropertyBrowserController_Base;
101 : :
102 : : class OPropertyBrowserController
103 : : :public ::comphelper::OMutexAndBroadcastHelper
104 : : ,public OPropertyBrowserController_Base
105 : : ,public ::com::sun::star::inspection::XObjectInspectorUI
106 : : // that's intentionally *not* part of the OPropertyBrowserController_Base
107 : : // We do not want this to be available in queryInterface, getTypes, and the like.
108 : : ,public IPropertyLineListener
109 : : ,public IPropertyControlObserver
110 : : ,public IPropertyExistenceCheck
111 : : {
112 : : private:
113 : : typedef ::std::map< sal_Int32, ::com::sun::star::beans::Property > OrderedPropertyMap;
114 : : typedef ::std::vector< ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > >
115 : : InterfaceArray;
116 : :
117 : : protected:
118 : : ComponentContext m_aContext;
119 : :
120 : : private:
121 : : ::com::sun::star::uno::Reference< ::com::sun::star::frame::XFrame > m_xFrame;
122 : : ::com::sun::star::uno::Reference< ::com::sun::star::awt::XWindow > m_xView;
123 : :
124 : : ::cppu::OInterfaceContainerHelper m_aDisposeListeners;
125 : : ::cppu::OInterfaceContainerHelper m_aControlObservers;
126 : : // meta data about the properties
127 : : OPropertyBrowserView* m_pView;
128 : :
129 : : ::rtl::OUString m_sPageSelection;
130 : : ::rtl::OUString m_sLastValidPageSelection;
131 : :
132 : : typedef ::com::sun::star::uno::Reference< ::com::sun::star::inspection::XPropertyHandler >
133 : : PropertyHandlerRef;
134 : : typedef ::std::vector< PropertyHandlerRef > PropertyHandlerArray;
135 : : typedef ::boost::unordered_map< ::rtl::OUString, PropertyHandlerRef, ::rtl::OUStringHash >
136 : : PropertyHandlerRepository;
137 : : typedef ::boost::unordered_multimap< ::rtl::OUString, PropertyHandlerRef, ::rtl::OUStringHash >
138 : : PropertyHandlerMultiRepository;
139 : : PropertyHandlerRepository m_aPropertyHandlers;
140 : : PropertyHandlerMultiRepository m_aDependencyHandlers;
141 : : PropertyHandlerRef m_xInteractiveHandler;
142 : :
143 : : ::std::auto_ptr< ComposedPropertyUIUpdate > m_pUIRequestComposer;
144 : :
145 : : /// our InspectorModel
146 : : ::com::sun::star::uno::Reference< ::com::sun::star::inspection::XObjectInspectorModel >
147 : : m_xModel;
148 : : /// the object(s) we're currently inspecting
149 : : InterfaceArray m_aInspectedObjects;
150 : : /// the properties of the currently inspected object(s)
151 : : OrderedPropertyMap m_aProperties;
152 : : /// the property we're just committing
153 : : ::rtl::OUString m_sCommittingProperty;
154 : :
155 : : typedef ::boost::unordered_map< ::rtl::OUString, sal_uInt16, ::rtl::OUStringHash > HashString2Int16;
156 : : HashString2Int16 m_aPageIds;
157 : :
158 : : bool m_bContainerFocusListening;
159 : : bool m_bSuspendingPropertyHandlers;
160 : : bool m_bConstructed;
161 : : bool m_bBindingIntrospectee;
162 : :
163 : : protected:
164 : : DECLARE_XINTERFACE()
165 : :
166 : : // XServiceInfo
167 : : virtual ::rtl::OUString SAL_CALL getImplementationName( ) throw(::com::sun::star::uno::RuntimeException);
168 : : virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) throw(::com::sun::star::uno::RuntimeException);
169 : : virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames( ) throw(::com::sun::star::uno::RuntimeException);
170 : :
171 : : // XController
172 : : virtual void SAL_CALL attachFrame( const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XFrame >& xFrame ) throw(::com::sun::star::uno::RuntimeException);
173 : : virtual sal_Bool SAL_CALL attachModel( const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XModel >& xModel ) throw(::com::sun::star::uno::RuntimeException);
174 : : virtual sal_Bool SAL_CALL suspend( sal_Bool bSuspend ) throw(::com::sun::star::uno::RuntimeException);
175 : : virtual ::com::sun::star::uno::Any SAL_CALL getViewData( ) throw(::com::sun::star::uno::RuntimeException);
176 : : virtual void SAL_CALL restoreViewData( const ::com::sun::star::uno::Any& Data ) throw(::com::sun::star::uno::RuntimeException);
177 : : virtual ::com::sun::star::uno::Reference< ::com::sun::star::frame::XModel > SAL_CALL getModel( ) throw(::com::sun::star::uno::RuntimeException);
178 : : virtual ::com::sun::star::uno::Reference< ::com::sun::star::frame::XFrame > SAL_CALL getFrame( ) throw(::com::sun::star::uno::RuntimeException);
179 : :
180 : : // XComponent
181 : : virtual void SAL_CALL dispose( ) throw(::com::sun::star::uno::RuntimeException);
182 : : virtual void SAL_CALL addEventListener( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XEventListener >& xListener ) throw(::com::sun::star::uno::RuntimeException);
183 : : virtual void SAL_CALL removeEventListener( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XEventListener >& aListener ) throw(::com::sun::star::uno::RuntimeException);
184 : :
185 : : // XFocusListener
186 : : virtual void SAL_CALL focusGained( const ::com::sun::star::awt::FocusEvent& _rSource ) throw (::com::sun::star::uno::RuntimeException);
187 : : virtual void SAL_CALL focusLost( const ::com::sun::star::awt::FocusEvent& _rSource ) throw (::com::sun::star::uno::RuntimeException);
188 : :
189 : : // XEventListener
190 : : virtual void SAL_CALL disposing( const ::com::sun::star::lang::EventObject& Source ) throw(::com::sun::star::uno::RuntimeException);
191 : :
192 : : // XLayoutConstrains #95343# ----------------
193 : : virtual ::com::sun::star::awt::Size SAL_CALL getMinimumSize( ) throw (::com::sun::star::uno::RuntimeException);
194 : : virtual ::com::sun::star::awt::Size SAL_CALL getPreferredSize( ) throw (::com::sun::star::uno::RuntimeException);
195 : : virtual ::com::sun::star::awt::Size SAL_CALL calcAdjustedSize( const ::com::sun::star::awt::Size& aNewSize ) throw (::com::sun::star::uno::RuntimeException);
196 : :
197 : : // XPropertyChangeListener
198 : : virtual void SAL_CALL propertyChange( const ::com::sun::star::beans::PropertyChangeEvent& _rEvent ) throw (::com::sun::star::uno::RuntimeException);
199 : :
200 : : /** XPropertyControlFactory
201 : : */
202 : : virtual ::com::sun::star::uno::Reference< ::com::sun::star::inspection::XPropertyControl > SAL_CALL createPropertyControl( ::sal_Int16 ControlType, ::sal_Bool CreateReadOnly ) throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException);
203 : :
204 : : public:
205 : : OPropertyBrowserController(
206 : : const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext >& _rxContext);
207 : :
208 : : protected:
209 : : virtual ~OPropertyBrowserController();
210 : :
211 : : public:
212 : : // XServiceInfo - static versions
213 : : static ::rtl::OUString getImplementationName_static( ) throw(::com::sun::star::uno::RuntimeException);
214 : : static ::com::sun::star::uno::Sequence< ::rtl::OUString > getSupportedServiceNames_static( ) throw(::com::sun::star::uno::RuntimeException);
215 : : static ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > SAL_CALL
216 : : Create(const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext >&);
217 : :
218 : : protected:
219 : : // IPropertyLineListener
220 : : virtual void Clicked( const ::rtl::OUString& _rName, sal_Bool _bPrimary );
221 : : virtual void Commit( const ::rtl::OUString& _rName, const ::com::sun::star::uno::Any& _rVal );
222 : :
223 : : // IPropertyControlObserver
224 : : virtual void focusGained( const ::com::sun::star::uno::Reference< ::com::sun::star::inspection::XPropertyControl >& _Control );
225 : : virtual void valueChanged( const ::com::sun::star::uno::Reference< ::com::sun::star::inspection::XPropertyControl >& _Control );
226 : :
227 : : // IPropertyExistenceCheck
228 : : virtual ::sal_Bool SAL_CALL hasPropertyByName( const ::rtl::OUString& _rName ) throw (::com::sun::star::uno::RuntimeException);
229 : :
230 : : // XObjectInspectorUI
231 : : virtual void SAL_CALL enablePropertyUI( const ::rtl::OUString& _rPropertyName, ::sal_Bool _bEnable ) throw (::com::sun::star::uno::RuntimeException);
232 : : virtual void SAL_CALL enablePropertyUIElements( const ::rtl::OUString& _rPropertyName, ::sal_Int16 _nElements, ::sal_Bool _bEnable ) throw (::com::sun::star::uno::RuntimeException);
233 : : virtual void SAL_CALL rebuildPropertyUI( const ::rtl::OUString& _rPropertyName ) throw (::com::sun::star::uno::RuntimeException);
234 : : virtual void SAL_CALL showPropertyUI( const ::rtl::OUString& _rPropertyName ) throw (::com::sun::star::uno::RuntimeException);
235 : : virtual void SAL_CALL hidePropertyUI( const ::rtl::OUString& _rPropertyName ) throw (::com::sun::star::uno::RuntimeException);
236 : : virtual void SAL_CALL showCategory( const ::rtl::OUString& _rCategory, ::sal_Bool _bShow ) throw (::com::sun::star::uno::RuntimeException);
237 : : virtual ::com::sun::star::uno::Reference< ::com::sun::star::inspection::XPropertyControl > SAL_CALL getPropertyControl( const ::rtl::OUString& _rPropertyName ) throw (::com::sun::star::uno::RuntimeException);
238 : : virtual void SAL_CALL registerControlObserver( const ::com::sun::star::uno::Reference< ::com::sun::star::inspection::XPropertyControlObserver >& _Observer ) throw (::com::sun::star::uno::RuntimeException);
239 : : virtual void SAL_CALL revokeControlObserver( const ::com::sun::star::uno::Reference< ::com::sun::star::inspection::XPropertyControlObserver >& _Observer ) throw (::com::sun::star::uno::RuntimeException);
240 : : virtual void SAL_CALL setHelpSectionText( const ::rtl::OUString& HelpText ) throw (::com::sun::star::lang::NoSupportException, ::com::sun::star::uno::RuntimeException);
241 : :
242 : : // XObjectInspector
243 : : virtual ::com::sun::star::uno::Reference< ::com::sun::star::inspection::XObjectInspectorModel > SAL_CALL getInspectorModel() throw (::com::sun::star::uno::RuntimeException);
244 : : virtual void SAL_CALL setInspectorModel( const ::com::sun::star::uno::Reference< ::com::sun::star::inspection::XObjectInspectorModel >& _inspectormodel ) throw (::com::sun::star::uno::RuntimeException);
245 : : virtual ::com::sun::star::uno::Reference< ::com::sun::star::inspection::XObjectInspectorUI > SAL_CALL getInspectorUI() throw (::com::sun::star::uno::RuntimeException);
246 : : virtual void SAL_CALL inspect( const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > >& Objects ) throw (::com::sun::star::util::VetoException, ::com::sun::star::uno::RuntimeException);
247 : :
248 : : // XDispatchProvider
249 : : virtual ::com::sun::star::uno::Reference< ::com::sun::star::frame::XDispatch > SAL_CALL queryDispatch( const ::com::sun::star::util::URL& URL, const ::rtl::OUString& TargetFrameName, ::sal_Int32 SearchFlags ) throw (::com::sun::star::uno::RuntimeException);
250 : : virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Reference< ::com::sun::star::frame::XDispatch > > SAL_CALL queryDispatches( const ::com::sun::star::uno::Sequence< ::com::sun::star::frame::DispatchDescriptor >& Requests ) throw (::com::sun::star::uno::RuntimeException);
251 : :
252 : : // XInitialization
253 : : virtual void SAL_CALL initialize( const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any >& aArguments ) throw (::com::sun::star::uno::Exception, ::com::sun::star::uno::RuntimeException);
254 : :
255 : : private:
256 : : void UpdateUI();
257 : :
258 : : void startContainerWindowListening();
259 : : void stopContainerWindowListening();
260 : :
261 : : // stop the inspection
262 : : void stopInspection( bool _bCommitModified );
263 : :
264 : 0 : sal_Bool haveView() const { return NULL != m_pView; }
265 : 0 : OPropertyEditor& getPropertyBox() { return m_pView->getPropertyBox(); }
266 : :
267 : : // does the inspection of the objects as indicated by our model
268 : : void doInspection();
269 : :
270 : : // bind the browser to m_xIntrospecteeAsProperty
271 : : void impl_rebindToInspectee_nothrow( const InterfaceArray& _rObjects );
272 : :
273 : : /** retrieves special property handlers for our introspectee
274 : : */
275 : : void getPropertyHandlers( const InterfaceArray& _rObjects, PropertyHandlerArray& _rHandlers );
276 : :
277 : : /** called when a property changed, to broadcast any handlers which might have
278 : : registered for this property
279 : :
280 : : @param _bFirstTimeInit
281 : : if set to <FALSE/>, this is a real change in the property value, not just a call
282 : : for purposes of initialization.
283 : : */
284 : : void impl_broadcastPropertyChange_nothrow( const ::rtl::OUString& _rPropertyName, const ::com::sun::star::uno::Any& _rNewValue, const ::com::sun::star::uno::Any& _rOldValue, bool _bFirstTimeInit ) const;
285 : :
286 : : /** determines whether the given property is an actuating property, that is, at least one
287 : : handler expressed interest in changes to this property's value.
288 : : */
289 : 0 : inline bool impl_isActuatingProperty_nothrow( const ::rtl::OUString& _rPropertyName ) const
290 : : {
291 : 0 : return ( m_aDependencyHandlers.find( _rPropertyName ) != m_aDependencyHandlers.end() );
292 : : }
293 : :
294 : : sal_uInt32 GetPropertyPos(const ::rtl::OUString& _rPropName);
295 : :
296 : : /** retrieves the value of the given property, by asking the appropriate XPropertyHandler
297 : : @param _rPropertyName
298 : : the name whose handler is to be obtained. Must be the name of a property
299 : : for which a handler is registered.
300 : : @throws
301 : : RuntimeException if there is no handler for the given property
302 : : @return
303 : : the value of this property
304 : : */
305 : : ::com::sun::star::uno::Any
306 : : impl_getPropertyValue_throw( const ::rtl::OUString& _rPropertyName );
307 : :
308 : : /// calls XPropertyHandler::suspend for all our property handlers
309 : : sal_Bool suspendPropertyHandlers_nothrow( sal_Bool _bSuspend );
310 : :
311 : : /// suspends the complete inspector
312 : : sal_Bool suspendAll_nothrow();
313 : :
314 : : /** selects a page according to our current view data
315 : : */
316 : : void selectPageFromViewData();
317 : :
318 : : /** updates our view data from the currently active page
319 : : */
320 : : void updateViewDataFromActivePage();
321 : :
322 : : /// describes the UI for the given property
323 : : void describePropertyLine( const ::com::sun::star::beans::Property& _rPropertyName, OLineDescriptor& _rDescriptor )
324 : : SAL_THROW((::com::sun::star::uno::Exception));
325 : :
326 : : /** retrieves the position of the property given by name in m_aProperties
327 : : @return
328 : : <TRUE/> if and only if the property could be found. In this case, <arg>_pProperty</arg> (if
329 : : not <NULL/> contains the iterator pointing to this property.
330 : : */
331 : : bool impl_findObjectProperty_nothrow( const ::rtl::OUString& _rName, OrderedPropertyMap::const_iterator* _pProperty = NULL );
332 : :
333 : : sal_Bool Construct(Window* _pParentWin);
334 : :
335 : : /** retrieves the property handler for a given property name
336 : : @param _rPropertyName
337 : : the name whose handler is to be obtained. Must be the name of a property
338 : : for which a handler is registered.
339 : : @throws
340 : : RuntimeException if there is no handler for the given property
341 : : @return
342 : : the handler which is responsible for the given property
343 : : */
344 : : PropertyHandlerRef
345 : : impl_getHandlerForProperty_throw( const ::rtl::OUString& _rPropertyName ) const;
346 : :
347 : : /** determines whether we have a handler for the given property
348 : : @param _rPropertyName
349 : : the name of the property for which the existence of a handler should be checked
350 : : */
351 : : bool
352 : : impl_hasPropertyHandlerFor_nothrow( const ::rtl::OUString& _rPropertyName ) const;
353 : :
354 : : /** builds up m_aPageIds from InspectorModel::describeCategories, and insert all the
355 : : respective tab pages into our view
356 : : @precond
357 : : m_aPageIds is empty
358 : : @throws ::com::sun::star::uno::RuntimeException
359 : : if one of the callees of this method throws this exception
360 : : */
361 : : void
362 : : impl_buildCategories_throw();
363 : :
364 : : /** retrieves the id of the tab page which represents a given category.
365 : : @param _rCategoryName
366 : : the programmatic name of a category.
367 : : @return
368 : : the id of the tab page, or <code>(sal_uInt16)-1</code> if there
369 : : is no tab page for the given category
370 : : */
371 : : sal_uInt16
372 : : impl_getPageIdForCategory_nothrow( const ::rtl::OUString& _rCategoryName ) const;
373 : :
374 : : /** adds or removes ourself as XEventListener to/from all our inspectees
375 : : */
376 : : void impl_toggleInspecteeListening_nothrow( bool _bOn );
377 : :
378 : : /** binds the instance to a new model
379 : : */
380 : : void impl_bindToNewModel_nothrow( const ::com::sun::star::uno::Reference< ::com::sun::star::inspection::XObjectInspectorModel >& _rxInspectorModel );
381 : :
382 : : /** initializes our view, as indicated by the model's view-relevant properties
383 : :
384 : : It's allowed to call this method when no model exists, yet. In this case, nothing
385 : : happens.
386 : : */
387 : : void impl_initializeView_nothrow();
388 : :
389 : : /** determines whether the view should be readonly.
390 : :
391 : : Effectively, this means that the method simply checks the IsReadOnly attribute of the model.
392 : : If there is no model, <FALSE/> is returned.
393 : :
394 : : @throws ::com::sun::star::uno::RuntimeException
395 : : in case asking the model for its IsReadOnly attribute throws a ::com::sun::star::uno::RuntimeException
396 : : itself.
397 : : */
398 : : bool impl_isReadOnlyModel_throw() const;
399 : :
400 : : /** updates our view so that it is read-only, as indicated by the model property
401 : : @see impl_isReadOnlyModel_throw
402 : : */
403 : : void impl_updateReadOnlyView_nothrow();
404 : :
405 : : /** starts or stops listening at the model
406 : : */
407 : : void impl_startOrStopModelListening_nothrow( bool _bDoListen ) const;
408 : :
409 : : private:
410 : : DECL_LINK(OnPageActivation, void*);
411 : :
412 : : private:
413 : : // constructors
414 : : void createDefault();
415 : : void createWithModel( const ::com::sun::star::uno::Reference< ::com::sun::star::inspection::XObjectInspectorModel >& _rxModel );
416 : : };
417 : :
418 : : //............................................................................
419 : : } // namespace pcr
420 : : //............................................................................
421 : :
422 : : #endif // _EXTENSIONS_PROPCTRLR_PROPCONTROLLER_HXX_
423 : :
424 : : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|