1/************************************************************************* 2 * 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4 * 5 * Copyright 2000, 2010 Oracle and/or its affiliates. 6 * 7 * OpenOffice.org - a multi-platform office productivity suite 8 * 9 * This file is part of OpenOffice.org. 10 * 11 * OpenOffice.org is free software: you can redistribute it and/or modify 12 * it under the terms of the GNU Lesser General Public License version 3 13 * only, as published by the Free Software Foundation. 14 * 15 * OpenOffice.org is distributed in the hope that it will be useful, 16 * but WITHOUT ANY WARRANTY; without even the implied warranty of 17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18 * GNU Lesser General Public License version 3 for more details 19 * (a copy is included in the LICENSE file that accompanied this code). 20 * 21 * You should have received a copy of the GNU Lesser General Public License 22 * version 3 along with OpenOffice.org. If not, see 23 * <http://www.openoffice.org/license.html> 24 * for a copy of the LGPLv3 License. 25 * 26 ************************************************************************/ 27#ifndef __com_sun_star_frame_Frame_idl__ 28#define __com_sun_star_frame_Frame_idl__ 29 30#ifndef __com_sun_star_frame_XFrame_idl__ 31#include <com/sun/star/frame/XFrame.idl> 32#endif 33 34#ifndef __com_sun_star_frame_XDispatchProvider_idl__ 35#include <com/sun/star/frame/XDispatchProvider.idl> 36#endif 37 38#ifndef __com_sun_star_frame_XDispatchRecorderSupplier_idl__ 39#include <com/sun/star/frame/XDispatchRecorderSupplier.idl> 40#endif 41 42#ifndef __com_sun_star_frame_XDispatchProviderInterception_idl__ 43#include <com/sun/star/frame/XDispatchProviderInterception.idl> 44#endif 45 46#ifndef __com_sun_star_frame_XFramesSupplier_idl__ 47#include <com/sun/star/frame/XFramesSupplier.idl> 48#endif 49 50#ifndef __com_sun_star_task_XStatusIndicatorFactory_idl__ 51#include <com/sun/star/task/XStatusIndicatorFactory.idl> 52#endif 53 54#ifndef __com_sun_star_beans_XPropertySet_idl__ 55#include <com/sun/star/beans/XPropertySet.idl> 56#endif 57 58#ifndef __com_sun_star_frame_XDispatchInformationProvider_idl__ 59#include <com/sun/star/frame/XDispatchInformationProvider.idl> 60#endif 61 62#ifndef _com_sun_star_xml_UserDefinedAttributesSupplier_idl_ 63#include <com/sun/star/xml/UserDefinedAttributesSupplier.idl> 64#endif 65 66//============================================================================= 67 68 module com { module sun { module star { module frame { 69 70//============================================================================= 71/** represents the environment for a desktop component 72 73 <p> 74 Frames are the anchors for the office components and they are the components' link 75 to the outside world. They create a skeleton for the whole office api infrastructure 76 by building frame hierarchys. These hierarchies contains all currently loaded 77 documents and make it possible to walk during these trees. 78 A special service <type>Desktop</type> can(!) combine different of such trees 79 to a global one which life time will be controlled by it. 80 </p> 81 82 @see Desktop 83 */ 84published service Frame 85{ 86 //------------------------------------------------------------------------- 87 /** contains user defined attributes. 88 89 @see <type scope="com::sun::star::xml">UserDefinedAttributesSupplier</type> 90 */ 91 [optional] service com::sun::star::xml::UserDefinedAttributesSupplier; 92 93 //------------------------------------------------------------------------- 94 /** allows the component to be loaded and accessed 95 within the frame; it is the main connection to the 96 environment of the component. 97 */ 98 interface XFrame; 99 100 //------------------------------------------------------------------------- 101 /** provides access to dispatchers for the frame. 102 103 <p> 104 What kind of URLs a frame accepts in the calls to <member>XDispatchProvider::queryDispatch()</member>, 105 and how the returned dispatcher handles dispatches is completely implementation dependent 106 (though of course the restrictions of <type>XDispatchProvider</type> must be met). 107 Frame implementations may (optionally) support special targets in the call to 108 <member>XDispatchProvider::queryDispatch()</member>. 109 Such special targets are passed as target frame name. They may, in addition, 110 require special frame search flags (see <type>FrameSearchFlag</type>), or, 111 in opposite, limit the set of allowed flags.<br> 112 Common special targets include: 113 <ul> 114 <li><b>_blank</b><br> is used to create a new frame when dispatching the URL.</li> 115 <li><b>_default</b><br> is used to recycle empty or create a new frame when dispatching the URL.</li> 116 <li><b>_self</b><br> forces the frame to dispatch the URL into itself. ("" means the same)</li> 117 <li><b>_parent</b><br> dispatches the URL into the parent frame.</li> 118 <li><b>_top</b><br> dispatches the URL into the top level frame, the frame where this is invoked belongs to.</li> 119 </ul> 120 </p> 121 122 @see XDispatch 123 @see XFrame::findFrame() 124 */ 125 interface XDispatchProvider; 126 127 //------------------------------------------------------------------------- 128 /** provides information about supported commands 129 130 @since OOo 2.0 131 */ 132 [optional] interface XDispatchInformationProvider; 133 134 //------------------------------------------------------------------------- 135 /** supports interception mechanism for dispatched URLs 136 137 <p> 138 Registered objects can intercept, supress or deroute dispatched URLs. 139 If they support another interface too (<type>XInterceptorInfo</type>) 140 it's possible to perform it by directly calling of right interceptor without 141 using list of all registered ones. 142 </p> 143 */ 144 interface XDispatchProviderInterception; 145 146 //------------------------------------------------------------------------- 147 /** provides access to sub frames within this frame 148 */ 149 interface XFramesSupplier; 150 151 //------------------------------------------------------------------------- 152 /** supplies access to <type scope="com::sun::star::task">XStatusIndicator</type> objects 153 for the component within the frame to show progresses 154 */ 155 [optional] interface com::sun::star::task::XStatusIndicatorFactory; 156 157 //------------------------------------------------------------------------- 158 /** if possible it sets/gets the UI title on/from the frame container window 159 160 <p> 161 It depends from the type of the frame container window. If it is a system 162 task window all will be OK. Otherwise the title can't be set. 163 Setting/getting of the pure value of this property must be possible in every 164 case. Only showing on the UI can be fail. 165 </p> 166 */ 167 [property] string Title; 168 169 //------------------------------------------------------------------------- 170 /** provides access to the dispatch recorder of the frame 171 172 <p> 173 Such recorder can be used to record dispatch requests. 174 The supplier contains a dispatch recorder and provide the functionality 175 to use it for any dispatch object from outside which supports the interface 176 <type>XDispatch</type>. A supplier is available only, if recording was enabled. 177 That means: if somewhere whish to enable recoding on a frame he must set 178 a supplier with a recorder object inside of it. Every user of dispatches 179 has to check then if such supplier is available at this frame property. 180 If value of this property is <NULL/> he must call <member>XDispatch::dispatch()</member> 181 on the original dispatch object. If it's a valid value he must use the supplier 182 by calling his method <member>XDispatchRecorderSupplier::dispatchAndRecord()</member> 183 with the original dispatch object as argument. 184 </p> 185 186 <p> 187 Note:<br> 188 It's not recommended to cache an already getted supplier. Because there exist 189 no possibility to check for enabled/disabled recording then. 190 </p> 191 192 @since OOo 1.1.2 193 */ 194 [optional, property] XDispatchRecorderSupplier RecorderSupplier; 195 196 //------------------------------------------------------------------------- 197 /** provides access to the <type>LayoutManager</type> of the frame. 198 */ 199 [optional, property] com::sun::star::uno::XInterface LayoutManager; 200}; 201 202//============================================================================= 203 204}; }; }; }; 205 206#endif 207