1/************************************************************** 2 * 3 * Licensed to the Apache Software Foundation (ASF) under one 4 * or more contributor license agreements. See the NOTICE file 5 * distributed with this work for additional information 6 * regarding copyright ownership. The ASF licenses this file 7 * to you under the Apache License, Version 2.0 (the 8 * "License"); you may not use this file except in compliance 9 * with the License. You may obtain a copy of the License at 10 * 11 * http://www.apache.org/licenses/LICENSE-2.0 12 * 13 * Unless required by applicable law or agreed to in writing, 14 * software distributed under the License is distributed on an 15 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16 * KIND, either express or implied. See the License for the 17 * specific language governing permissions and limitations 18 * under the License. 19 * 20 *************************************************************/ 21 22 23 24#ifndef __com_sun_star_inspection_XObjectInspector_idl__ 25#define __com_sun_star_inspection_XObjectInspector_idl__ 26 27#ifndef __com_sun_star_frame_XController_idl__ 28#include <com/sun/star/frame/XController.idl> 29#endif 30#ifndef __com_sun_star_frame_XDispatchProvider_idl__ 31#include <com/sun/star/frame/XDispatchProvider.idl> 32#endif 33#ifndef __com_sun_star_util_VetoException_idl__ 34#include <com/sun/star/util/VetoException.idl> 35#endif 36 37//============================================================================= 38module com { module sun { module star { module inspection { 39 40published interface XObjectInspectorModel; 41published interface XObjectInspectorUI; 42 43//----------------------------------------------------------------------------- 44/** describes the main interface of an <type>ObjectInspector</type>. 45 46 @see ObjectInspector 47 48 @since OpenOffice 2.0.3 49*/ 50published interface XObjectInspector 51{ 52 /** allows to plug the inspector into an <type scope="com::sun::star::frame">XFrame</type> 53 54 <p>The <member scope="com::sun::star::frame">XController::setModel</member> method 55 accepts only <type>XObjectInspectorModel</type>s, and will return <FALSE/> if the 56 to-be-attached model is not <NULL/>, but does not support this interface.</p> 57 58 <p>If you do not want to support a full-blown <type scope="com::sun::star::frame">XModel</type>, 59 use the <member>InspectorModel</member> attribute instead.</p> 60 61 <p>The <member scope="com::sun::star::frame">XController::getViewData</member> and 62 <member scope="com::sun::star::frame">XController::restoreViewData</member> exchange 63 string values, which describes as much of the current view state as possible.</p> 64 */ 65 interface com::sun::star::frame::XController; 66 67 /** allows to intercept functionality 68 69 <p>This interface is inherited from the <type scope="com::sun::star::frame">Controller</type> 70 service, currently, there is no functionality to intercept at an <type>XObjectInspector</type>.</p> 71 */ 72 interface com::sun::star::frame::XDispatchProvider; 73 74 /** provides access to the current model of the inspector 75 76 <p>The model is mainly responsible for providing the property handlers. Additionally, 77 it can provide user interface names and help URLs for property categories.</p> 78 79 <p>Note that there are two ways of setting or retrieving the current model: You can either 80 use <member scope="com::sun::star::frame">XModel::setModel</member>, or, if you do not want 81 or need to implement the full-blown <type scope="com::sun::star::frame">XModel</type> interface, 82 you can use this property directly. Both approaches are semantically equivalent.</p> 83 84 <p>If a new model is set at the inspector, the complete UI will be rebuilt to reflect 85 the change, using the new property handlers provided by the new model.</p> 86 */ 87 [attribute] XObjectInspectorModel InspectorModel; 88 89 /** provides access to the user interface of the object inspector. 90 91 <p>This interface can be used to access and manipulate various aspects of 92 the user interface. For instance, you can enable and disable certain 93 property controls (or parts thereof), or register observers for all property 94 controls.</p> 95 96 @since OpenOffice 2.2 97 */ 98 [attribute, readonly] XObjectInspectorUI InspectorUI; 99 100 /** inspects a new collection of one or more objects. 101 102 <p>If the sequence is empty, the UI of the <type>ObjectInspector</type> will be 103 cleared.</p> 104 105 <p>If the sequence contains more than one object, the <type>XObjectInspector</type> 106 will create a complete set of property handlers (as indicated by 107 <member>XObjectInspectorModel::HandlerFactories</member>) for <em>every</em> of 108 the objects, and compose their output.</p> 109 110 @throws com::sun::star::util::VetoException 111 if the inspector cannot switch to another object set. This typically happens if 112 one of the active <type>XPropertyHandler</type>'s raised a non-modal user interface, 113 and vetoed suspension of this UI. 114 115 @see XPropertyHandler::isComposable 116 @see XPropertyHandler::onInteractivePropertySelection 117 @see XPropertyHandler::suspend 118 */ 119 void inspect( [in] sequence< com::sun::star::uno::XInterface > Objects ) 120 raises (com::sun::star::util::VetoException); 121}; 122 123//============================================================================= 124 125}; }; }; }; 126 127#endif 128 129 130