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