1*cdf0e10cSrcweir/************************************************************************* 2*cdf0e10cSrcweir * 3*cdf0e10cSrcweir * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4*cdf0e10cSrcweir * 5*cdf0e10cSrcweir * Copyright 2000, 2010 Oracle and/or its affiliates. 6*cdf0e10cSrcweir * 7*cdf0e10cSrcweir * OpenOffice.org - a multi-platform office productivity suite 8*cdf0e10cSrcweir * 9*cdf0e10cSrcweir * This file is part of OpenOffice.org. 10*cdf0e10cSrcweir * 11*cdf0e10cSrcweir * OpenOffice.org is free software: you can redistribute it and/or modify 12*cdf0e10cSrcweir * it under the terms of the GNU Lesser General Public License version 3 13*cdf0e10cSrcweir * only, as published by the Free Software Foundation. 14*cdf0e10cSrcweir * 15*cdf0e10cSrcweir * OpenOffice.org is distributed in the hope that it will be useful, 16*cdf0e10cSrcweir * but WITHOUT ANY WARRANTY; without even the implied warranty of 17*cdf0e10cSrcweir * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18*cdf0e10cSrcweir * GNU Lesser General Public License version 3 for more details 19*cdf0e10cSrcweir * (a copy is included in the LICENSE file that accompanied this code). 20*cdf0e10cSrcweir * 21*cdf0e10cSrcweir * You should have received a copy of the GNU Lesser General Public License 22*cdf0e10cSrcweir * version 3 along with OpenOffice.org. If not, see 23*cdf0e10cSrcweir * <http://www.openoffice.org/license.html> 24*cdf0e10cSrcweir * for a copy of the LGPLv3 License. 25*cdf0e10cSrcweir * 26*cdf0e10cSrcweir ************************************************************************/ 27*cdf0e10cSrcweir 28*cdf0e10cSrcweir#ifndef __com_sun_star_inspection_XObjectInspector_idl__ 29*cdf0e10cSrcweir#define __com_sun_star_inspection_XObjectInspector_idl__ 30*cdf0e10cSrcweir 31*cdf0e10cSrcweir#ifndef __com_sun_star_frame_XController_idl__ 32*cdf0e10cSrcweir#include <com/sun/star/frame/XController.idl> 33*cdf0e10cSrcweir#endif 34*cdf0e10cSrcweir#ifndef __com_sun_star_frame_XDispatchProvider_idl__ 35*cdf0e10cSrcweir#include <com/sun/star/frame/XDispatchProvider.idl> 36*cdf0e10cSrcweir#endif 37*cdf0e10cSrcweir#ifndef __com_sun_star_util_VetoException_idl__ 38*cdf0e10cSrcweir#include <com/sun/star/util/VetoException.idl> 39*cdf0e10cSrcweir#endif 40*cdf0e10cSrcweir 41*cdf0e10cSrcweir//============================================================================= 42*cdf0e10cSrcweirmodule com { module sun { module star { module inspection { 43*cdf0e10cSrcweir 44*cdf0e10cSrcweirpublished interface XObjectInspectorModel; 45*cdf0e10cSrcweirpublished interface XObjectInspectorUI; 46*cdf0e10cSrcweir 47*cdf0e10cSrcweir//----------------------------------------------------------------------------- 48*cdf0e10cSrcweir/** describes the main interface of an <type>ObjectInspector</type>. 49*cdf0e10cSrcweir 50*cdf0e10cSrcweir @see ObjectInspector 51*cdf0e10cSrcweir 52*cdf0e10cSrcweir @since OOo 2.0.3 53*cdf0e10cSrcweir*/ 54*cdf0e10cSrcweirpublished interface XObjectInspector 55*cdf0e10cSrcweir{ 56*cdf0e10cSrcweir /** allows to plug the inspector into an <type scope="com::sun::star::frame">XFrame</type> 57*cdf0e10cSrcweir 58*cdf0e10cSrcweir <p>The <member scope="com::sun::star::frame">XController::setModel</member> method 59*cdf0e10cSrcweir accepts only <type>XObjectInspectorModel</type>s, and will return <FALSE/> if the 60*cdf0e10cSrcweir to-be-attached model is not <NULL/>, but does not support this interface.</p> 61*cdf0e10cSrcweir 62*cdf0e10cSrcweir <p>If you do not want to support a full-blown <type scope="com::sun::star::frame">XModel</type>, 63*cdf0e10cSrcweir use the <member>InspectorModel</member> attribute instead.</p> 64*cdf0e10cSrcweir 65*cdf0e10cSrcweir <p>The <member scope="com::sun::star::frame">XController::getViewData</member> and 66*cdf0e10cSrcweir <member scope="com::sun::star::frame">XController::restoreViewData</member> exchange 67*cdf0e10cSrcweir string values, which describes as much of the current view state as possible.</p> 68*cdf0e10cSrcweir */ 69*cdf0e10cSrcweir interface com::sun::star::frame::XController; 70*cdf0e10cSrcweir 71*cdf0e10cSrcweir /** allows to intercept functionality 72*cdf0e10cSrcweir 73*cdf0e10cSrcweir <p>This interface is inherited from the <type scope="com::sun::star::frame">Controller</type> 74*cdf0e10cSrcweir service, currently, there is no functionality to intercept at an <type>XObjectInspector</type>.</p> 75*cdf0e10cSrcweir */ 76*cdf0e10cSrcweir interface com::sun::star::frame::XDispatchProvider; 77*cdf0e10cSrcweir 78*cdf0e10cSrcweir /** provides access to the current model of the inspector 79*cdf0e10cSrcweir 80*cdf0e10cSrcweir <p>The model is mainly responsible for providing the property handlers. Additionally, 81*cdf0e10cSrcweir it can provide user interface names and help URLs for property categories.</p> 82*cdf0e10cSrcweir 83*cdf0e10cSrcweir <p>Note that there are two ways of setting or retrieving the current model: You can either 84*cdf0e10cSrcweir use <member scope="com::sun::star::frame">XModel::setModel</member>, or, if you do not want 85*cdf0e10cSrcweir or need to implement the full-blown <type scope="com::sun::star::frame">XModel</type> interface, 86*cdf0e10cSrcweir you can use this property directly. Both approaches are semantically equivalent.</p> 87*cdf0e10cSrcweir 88*cdf0e10cSrcweir <p>If a new model is set at the inspector, the complete UI will be rebuilt to reflect 89*cdf0e10cSrcweir the change, using the new property handlers provided by the new model.</p> 90*cdf0e10cSrcweir */ 91*cdf0e10cSrcweir [attribute] XObjectInspectorModel InspectorModel; 92*cdf0e10cSrcweir 93*cdf0e10cSrcweir /** provides access to the user interface of the object inspector. 94*cdf0e10cSrcweir 95*cdf0e10cSrcweir <p>This interface can be used to access and manipulate various aspects of 96*cdf0e10cSrcweir the user interface. For instance, you can enable and disable certain 97*cdf0e10cSrcweir property controls (or parts thereof), or register observers for all property 98*cdf0e10cSrcweir controls.</p> 99*cdf0e10cSrcweir 100*cdf0e10cSrcweir @since OOo 2.2 101*cdf0e10cSrcweir */ 102*cdf0e10cSrcweir [attribute, readonly] XObjectInspectorUI InspectorUI; 103*cdf0e10cSrcweir 104*cdf0e10cSrcweir /** inspects a new collection of one or more objects. 105*cdf0e10cSrcweir 106*cdf0e10cSrcweir <p>If the sequence is empty, the UI of the <type>ObjectInspector</type> will be 107*cdf0e10cSrcweir cleared.</p> 108*cdf0e10cSrcweir 109*cdf0e10cSrcweir <p>If the sequence contains more than one object, the <type>XObjectInspector</type> 110*cdf0e10cSrcweir will create a complete set of property handlers (as indicated by 111*cdf0e10cSrcweir <member>XObjectInspectorModel::HandlerFactories</member>) for <em>every</em> of 112*cdf0e10cSrcweir the objects, and compose their output.</p> 113*cdf0e10cSrcweir 114*cdf0e10cSrcweir @throws com::sun::star::util::VetoException 115*cdf0e10cSrcweir if the inspector cannot switch to another object set. This typically happens if 116*cdf0e10cSrcweir one of the active <type>XPropertyHandler</type>'s raised a non-modal user interface, 117*cdf0e10cSrcweir and vetoed suspension of this UI. 118*cdf0e10cSrcweir 119*cdf0e10cSrcweir @see XPropertyHandler::isComposable 120*cdf0e10cSrcweir @see XPropertyHandler::onInteractivePropertySelection 121*cdf0e10cSrcweir @see XPropertyHandler::suspend 122*cdf0e10cSrcweir */ 123*cdf0e10cSrcweir void inspect( [in] sequence< com::sun::star::uno::XInterface > Objects ) 124*cdf0e10cSrcweir raises (com::sun::star::util::VetoException); 125*cdf0e10cSrcweir}; 126*cdf0e10cSrcweir 127*cdf0e10cSrcweir//============================================================================= 128*cdf0e10cSrcweir 129*cdf0e10cSrcweir}; }; }; }; 130*cdf0e10cSrcweir 131*cdf0e10cSrcweir#endif 132*cdf0e10cSrcweir 133*cdf0e10cSrcweir 134