xref: /aoo41x/main/offapi/com/sun/star/frame/Frame.idl (revision cdf0e10c)
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