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