1 /*************************************************************************
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
5 * Copyright 2008 by Sun Microsystems, Inc.
7 * OpenOffice.org - a multi-platform office productivity suite
9 * $RCSfile: Frame.idl,v $
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
>
37 #ifndef __com_sun_star_frame_XDispatchProvider_idl__
38 #include
<com
/sun
/star
/frame
/XDispatchProvider.idl
>
41 #ifndef __com_sun_star_frame_XDispatchRecorderSupplier_idl__
42 #include
<com
/sun
/star
/frame
/XDispatchRecorderSupplier.idl
>
45 #ifndef __com_sun_star_frame_XDispatchProviderInterception_idl__
46 #include
<com
/sun
/star
/frame
/XDispatchProviderInterception.idl
>
49 #ifndef __com_sun_star_frame_XFramesSupplier_idl__
50 #include
<com
/sun
/star
/frame
/XFramesSupplier.idl
>
53 #ifndef __com_sun_star_task_XStatusIndicatorFactory_idl__
54 #include
<com
/sun
/star
/task
/XStatusIndicatorFactory.idl
>
57 #ifndef __com_sun_star_beans_XPropertySet_idl__
58 #include
<com
/sun
/star
/beans
/XPropertySet.idl
>
61 #ifndef __com_sun_star_frame_XDispatchInformationProvider_idl__
62 #include
<com
/sun
/star
/frame
/XDispatchInformationProvider.idl
>
65 #ifndef _com_sun_star_xml_UserDefinedAttributesSupplier_idl_
66 #include
<com
/sun
/star
/xml
/UserDefinedAttributesSupplier.idl
>
69 //=============================================================================
71 module com
{ module sun
{ module star
{ module frame
{
73 //=============================================================================
74 /** represents the environment for a desktop component
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.
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.
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:
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>
126 @see XFrame::findFrame()
128 interface XDispatchProvider
;
130 //-------------------------------------------------------------------------
131 /** provides information about supported commands
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.
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.
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.
191 It's not recommended to cache an already getted supplier. Because there exist
192 no possibility to check for enabled/disabled recording then.
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 //=============================================================================