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