xref: /aoo4110/main/offapi/com/sun/star/frame/XFrame.idl (revision b1cdbd2c)
1*b1cdbd2cSJim Jagielski/**************************************************************
2*b1cdbd2cSJim Jagielski *
3*b1cdbd2cSJim Jagielski * Licensed to the Apache Software Foundation (ASF) under one
4*b1cdbd2cSJim Jagielski * or more contributor license agreements.  See the NOTICE file
5*b1cdbd2cSJim Jagielski * distributed with this work for additional information
6*b1cdbd2cSJim Jagielski * regarding copyright ownership.  The ASF licenses this file
7*b1cdbd2cSJim Jagielski * to you under the Apache License, Version 2.0 (the
8*b1cdbd2cSJim Jagielski * "License"); you may not use this file except in compliance
9*b1cdbd2cSJim Jagielski * with the License.  You may obtain a copy of the License at
10*b1cdbd2cSJim Jagielski *
11*b1cdbd2cSJim Jagielski *   http://www.apache.org/licenses/LICENSE-2.0
12*b1cdbd2cSJim Jagielski *
13*b1cdbd2cSJim Jagielski * Unless required by applicable law or agreed to in writing,
14*b1cdbd2cSJim Jagielski * software distributed under the License is distributed on an
15*b1cdbd2cSJim Jagielski * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*b1cdbd2cSJim Jagielski * KIND, either express or implied.  See the License for the
17*b1cdbd2cSJim Jagielski * specific language governing permissions and limitations
18*b1cdbd2cSJim Jagielski * under the License.
19*b1cdbd2cSJim Jagielski *
20*b1cdbd2cSJim Jagielski *************************************************************/
21*b1cdbd2cSJim Jagielski
22*b1cdbd2cSJim Jagielski
23*b1cdbd2cSJim Jagielski#ifndef __com_sun_star_frame_XFrame_idl__
24*b1cdbd2cSJim Jagielski#define __com_sun_star_frame_XFrame_idl__
25*b1cdbd2cSJim Jagielski
26*b1cdbd2cSJim Jagielski#ifndef __com_sun_star_lang_XComponent_idl__
27*b1cdbd2cSJim Jagielski#include <com/sun/star/lang/XComponent.idl>
28*b1cdbd2cSJim Jagielski#endif
29*b1cdbd2cSJim Jagielski
30*b1cdbd2cSJim Jagielski#ifndef __com_sun_star_awt_XWindow_idl__
31*b1cdbd2cSJim Jagielski#include <com/sun/star/awt/XWindow.idl>
32*b1cdbd2cSJim Jagielski#endif
33*b1cdbd2cSJim Jagielski
34*b1cdbd2cSJim Jagielski//=============================================================================
35*b1cdbd2cSJim Jagielski
36*b1cdbd2cSJim Jagielski module com {  module sun {  module star {  module frame {
37*b1cdbd2cSJim Jagielski
38*b1cdbd2cSJim Jagielski published interface XFrameActionListener;
39*b1cdbd2cSJim Jagielski published interface XController;
40*b1cdbd2cSJim Jagielski published interface XFramesSupplier;
41*b1cdbd2cSJim Jagielski
42*b1cdbd2cSJim Jagielski//=============================================================================
43*b1cdbd2cSJim Jagielski/** a frame object can be considered to be an "anchor" object where a component
44*b1cdbd2cSJim Jagielski    can be attached to.
45*b1cdbd2cSJim Jagielski
46*b1cdbd2cSJim Jagielski    <p>
47*b1cdbd2cSJim Jagielski    A frame can be (it's not a must!) a part of a frame tree. If not this frame willn't be
48*b1cdbd2cSJim Jagielski    accessible by using the api. This mode make sense for previews.
49*b1cdbd2cSJim Jagielski    The root node of the tree can be a <type>Desktop</type> implementation.
50*b1cdbd2cSJim Jagielski    </p>
51*b1cdbd2cSJim Jagielski
52*b1cdbd2cSJim Jagielski    @see Desktop
53*b1cdbd2cSJim Jagielski */
54*b1cdbd2cSJim Jagielskipublished interface XFrame: com::sun::star::lang::XComponent
55*b1cdbd2cSJim Jagielski{
56*b1cdbd2cSJim Jagielski	//-------------------------------------------------------------------------
57*b1cdbd2cSJim Jagielski    /** is called to initialize the frame within a window - the container window.
58*b1cdbd2cSJim Jagielski
59*b1cdbd2cSJim Jagielski        <p>
60*b1cdbd2cSJim Jagielski        This window will be used as parent for the component window and to support
61*b1cdbd2cSJim Jagielski        some UI relevant features of the frame service.
62*b1cdbd2cSJim Jagielski        Note: Re-parenting mustn't supported by a real frame implementation!
63*b1cdbd2cSJim Jagielski        It's designed for initializing - not for setting.
64*b1cdbd2cSJim Jagielski        </p>
65*b1cdbd2cSJim Jagielski
66*b1cdbd2cSJim Jagielski		<p>This frame will take over ownership of the window refered from
67*b1cdbd2cSJim Jagielski		<var>xWindow</var>.  Thus, the previous owner is not allowed to
68*b1cdbd2cSJim Jagielski		dispose this window anymore. </p>
69*b1cdbd2cSJim Jagielski
70*b1cdbd2cSJim Jagielski        @param xWindow
71*b1cdbd2cSJim Jagielski            the new container window
72*b1cdbd2cSJim Jagielski
73*b1cdbd2cSJim Jagielski        @see XFrame::getContainerWindow()
74*b1cdbd2cSJim Jagielski	 */
75*b1cdbd2cSJim Jagielski    void initialize( [in] com::sun::star::awt::XWindow xWindow );
76*b1cdbd2cSJim Jagielski
77*b1cdbd2cSJim Jagielski	//-------------------------------------------------------------------------
78*b1cdbd2cSJim Jagielski    /** provides access to the container window of the frame.
79*b1cdbd2cSJim Jagielski
80*b1cdbd2cSJim Jagielski        <p>
81*b1cdbd2cSJim Jagielski        Normally this is used as the parent window of the
82*b1cdbd2cSJim Jagielski        component window.
83*b1cdbd2cSJim Jagielski        </p>
84*b1cdbd2cSJim Jagielski
85*b1cdbd2cSJim Jagielski        @return
86*b1cdbd2cSJim Jagielski            the container window of this frame
87*b1cdbd2cSJim Jagielski
88*b1cdbd2cSJim Jagielski        @see XFrame::initialize()
89*b1cdbd2cSJim Jagielski	 */
90*b1cdbd2cSJim Jagielski	com::sun::star::awt::XWindow getContainerWindow();
91*b1cdbd2cSJim Jagielski
92*b1cdbd2cSJim Jagielski	//-------------------------------------------------------------------------
93*b1cdbd2cSJim Jagielski	/** sets the frame container that created this frame.
94*b1cdbd2cSJim Jagielski
95*b1cdbd2cSJim Jagielski        <p>
96*b1cdbd2cSJim Jagielski        Only the creator is allowed to call this method.
97*b1cdbd2cSJim Jagielski        But creator doesn't mean the implementation which creates this instance ...
98*b1cdbd2cSJim Jagielski        it means the parent frame of the frame hierarchy.
99*b1cdbd2cSJim Jagielski        Because; normaly a frame should be created by using the api
100*b1cdbd2cSJim Jagielski        and is neccessary for searches inside the tree (e.g. <member>XFrame::findFrame()</member>)
101*b1cdbd2cSJim Jagielski        </p>
102*b1cdbd2cSJim Jagielski
103*b1cdbd2cSJim Jagielski        @param Creator
104*b1cdbd2cSJim Jagielski            the creator (parent) of this frame
105*b1cdbd2cSJim Jagielski
106*b1cdbd2cSJim Jagielski        @see XFrame::getCreator()
107*b1cdbd2cSJim Jagielski	 */
108*b1cdbd2cSJim Jagielski    [oneway] void setCreator( [in] XFramesSupplier Creator );
109*b1cdbd2cSJim Jagielski
110*b1cdbd2cSJim Jagielski	//-------------------------------------------------------------------------
111*b1cdbd2cSJim Jagielski    /** provides access to the creator (parent) of this frame
112*b1cdbd2cSJim Jagielski
113*b1cdbd2cSJim Jagielski        @returns
114*b1cdbd2cSJim Jagielski            the frame container that created and contains this frame.
115*b1cdbd2cSJim Jagielski
116*b1cdbd2cSJim Jagielski        @see XFrame::setCreator()
117*b1cdbd2cSJim Jagielski	 */
118*b1cdbd2cSJim Jagielski	XFramesSupplier getCreator();
119*b1cdbd2cSJim Jagielski
120*b1cdbd2cSJim Jagielski	//-------------------------------------------------------------------------
121*b1cdbd2cSJim Jagielski    /** access to the name property of this frame
122*b1cdbd2cSJim Jagielski
123*b1cdbd2cSJim Jagielski        @returns
124*b1cdbd2cSJim Jagielski            the programmatic name of this frame.
125*b1cdbd2cSJim Jagielski
126*b1cdbd2cSJim Jagielski        @see XFrame::setName()
127*b1cdbd2cSJim Jagielski	 */
128*b1cdbd2cSJim Jagielski	string getName();
129*b1cdbd2cSJim Jagielski
130*b1cdbd2cSJim Jagielski	//-------------------------------------------------------------------------
131*b1cdbd2cSJim Jagielski	/** sets the name of the frame.
132*b1cdbd2cSJim Jagielski
133*b1cdbd2cSJim Jagielski        <p>
134*b1cdbd2cSJim Jagielski        Normally the name of the frame is set initially (e.g. by the creator).
135*b1cdbd2cSJim Jagielski        The name of a frame will be used for identifying it if a frame search was started.
136*b1cdbd2cSJim Jagielski        These searches can be forced by:
137*b1cdbd2cSJim Jagielski        <ul>
138*b1cdbd2cSJim Jagielski            <li><member>XFrame::findFrame()</member>
139*b1cdbd2cSJim Jagielski            <li><member>XDispatchProvider::queryDispatch()</member>
140*b1cdbd2cSJim Jagielski            <li><member>XComponentLoader::loadComponentFromURL()</member>
141*b1cdbd2cSJim Jagielski        </ul>
142*b1cdbd2cSJim Jagielski        Note: Special targets like "_blank", "_self" etc. are not allowed.
143*b1cdbd2cSJim Jagielski        That's why frame names shouldn't start with a sign "_".
144*b1cdbd2cSJim Jagielski        </p>
145*b1cdbd2cSJim Jagielski
146*b1cdbd2cSJim Jagielski        @param aName
147*b1cdbd2cSJim Jagielski            the new programmatic name of this frame
148*b1cdbd2cSJim Jagielski
149*b1cdbd2cSJim Jagielski        @see XFrame::findFrame()
150*b1cdbd2cSJim Jagielski        @see XFrame::getName()
151*b1cdbd2cSJim Jagielski        @see XDispatchProvider
152*b1cdbd2cSJim Jagielski        @see XComponentLoader
153*b1cdbd2cSJim Jagielski     */
154*b1cdbd2cSJim Jagielski    [oneway] void setName( [in] string aName );
155*b1cdbd2cSJim Jagielski
156*b1cdbd2cSJim Jagielski	//-------------------------------------------------------------------------
157*b1cdbd2cSJim Jagielski	/** searches for a frame with the specified name.
158*b1cdbd2cSJim Jagielski
159*b1cdbd2cSJim Jagielski        <p>
160*b1cdbd2cSJim Jagielski        Frames may contain other frames (e.g., a frameset) and may
161*b1cdbd2cSJim Jagielski		be contained in other frames. This hierarchy is searched with
162*b1cdbd2cSJim Jagielski        this method.
163*b1cdbd2cSJim Jagielski        First some special names are taken into account, i.e. "",
164*b1cdbd2cSJim Jagielski        "_self", "_top", "_blank" etc. <var>SearchFlags</var> is ignored when
165*b1cdbd2cSJim Jagielski        comparing these names with <var>TargetFrameName</var>; further steps are
166*b1cdbd2cSJim Jagielski        controlled by <var>SearchFlags</var>. If allowed, the name of the frame
167*b1cdbd2cSJim Jagielski		itself is compared with the desired one, and then ( again if allowed )
168*b1cdbd2cSJim Jagielski        the method is called for all children of the frame. Finally may be called
169*b1cdbd2cSJim Jagielski        for the siblings and then for parent frame (if allowed).
170*b1cdbd2cSJim Jagielski        </p>
171*b1cdbd2cSJim Jagielski
172*b1cdbd2cSJim Jagielski        <p>
173*b1cdbd2cSJim Jagielski        List of special target names:
174*b1cdbd2cSJim Jagielski        <table border=1>
175*b1cdbd2cSJim Jagielski        <tr><td>""/"_self"</td><td>address the starting frame itself</td></tr>
176*b1cdbd2cSJim Jagielski        <tr><td>"_parent"</td><td>address the direct parent frame only</td></tr>
177*b1cdbd2cSJim Jagielski        <tr><td>"_top"</td><td>address the top frame of this subtree of the frametree</td></tr>
178*b1cdbd2cSJim Jagielski        <tr><td>"_blank"</td><td>creates a new top frame</td></tr>
179*b1cdbd2cSJim Jagielski        </table>
180*b1cdbd2cSJim Jagielski        </p>
181*b1cdbd2cSJim Jagielski
182*b1cdbd2cSJim Jagielski        <p>
183*b1cdbd2cSJim Jagielski        If no frame with the given name is found, a new top frame is
184*b1cdbd2cSJim Jagielski        created; if this is allowed by a special flag <const>FrameSearchFlag::CREATE</const>.
185*b1cdbd2cSJim Jagielski        The new frame also gets the desired name.
186*b1cdbd2cSJim Jagielski        </p>
187*b1cdbd2cSJim Jagielski
188*b1cdbd2cSJim Jagielski        @param aTargetFrameName
189*b1cdbd2cSJim Jagielski            identify
190*b1cdbd2cSJim Jagielski            <ul><li>(a) a special target ("_blank","_self" ...) or</li>
191*b1cdbd2cSJim Jagielski                <li>(b) any well known frame</li><ul>
192*b1cdbd2cSJim Jagielski            to search it inside the current hierarchy
193*b1cdbd2cSJim Jagielski
194*b1cdbd2cSJim Jagielski        @param nSearchFlags
195*b1cdbd2cSJim Jagielski            optional parameter to regulate search if no special target was used for <var>TargetFrameName</var>
196*b1cdbd2cSJim Jagielski
197*b1cdbd2cSJim Jagielski         @see FrameSearchFlag
198*b1cdbd2cSJim Jagielski         */
199*b1cdbd2cSJim Jagielski    XFrame findFrame(
200*b1cdbd2cSJim Jagielski        [in] string aTargetFrameName,
201*b1cdbd2cSJim Jagielski        [in] long nSearchFlags);
202*b1cdbd2cSJim Jagielski
203*b1cdbd2cSJim Jagielski	//-------------------------------------------------------------------------
204*b1cdbd2cSJim Jagielski	/** determines if the frame is a top frame.
205*b1cdbd2cSJim Jagielski
206*b1cdbd2cSJim Jagielski        <p>
207*b1cdbd2cSJim Jagielski        In general a top frame is the frame which is a direct child of
208*b1cdbd2cSJim Jagielski        a task frame or which does not have a parent. Possible frame searches must
209*b1cdbd2cSJim Jagielski        stop the search at such a frame unless the flag <const>FrameSearchFlag::TASKS</const>
210*b1cdbd2cSJim Jagielski        is set.
211*b1cdbd2cSJim Jagielski        </p>
212*b1cdbd2cSJim Jagielski
213*b1cdbd2cSJim Jagielski        @return
214*b1cdbd2cSJim Jagielski            <TRUE/> if frame supports top frame specification
215*b1cdbd2cSJim Jagielski            <br>
216*b1cdbd2cSJim Jagielski            <FALSE/> otherwise
217*b1cdbd2cSJim Jagielski	 */
218*b1cdbd2cSJim Jagielski	boolean isTop();
219*b1cdbd2cSJim Jagielski
220*b1cdbd2cSJim Jagielski	//-------------------------------------------------------------------------
221*b1cdbd2cSJim Jagielski	/** activates this frame and thus the component within.
222*b1cdbd2cSJim Jagielski
223*b1cdbd2cSJim Jagielski        <p>
224*b1cdbd2cSJim Jagielski        At first the frame sets itself as the active frame of its
225*b1cdbd2cSJim Jagielski        creator by calling <member>XFramesSupplier::setActiveFrame()</member>,
226*b1cdbd2cSJim Jagielski		then it broadcasts an <type>FrameActionEvent</type> with
227*b1cdbd2cSJim Jagielski		<const>FrameAction::FRAME_ACTIVATED</const>. The component within
228*b1cdbd2cSJim Jagielski		this frame may listen to this event to grab the focus on activation;
229*b1cdbd2cSJim Jagielski		for simple components this can be done by the <type>FrameLoader</type>.
230*b1cdbd2cSJim Jagielski        </p>
231*b1cdbd2cSJim Jagielski
232*b1cdbd2cSJim Jagielski        <p>
233*b1cdbd2cSJim Jagielski        Finally, most frames may grab the focus to one of its windows
234*b1cdbd2cSJim Jagielski		or forward the activation to a sub-frame.
235*b1cdbd2cSJim Jagielski        </p>
236*b1cdbd2cSJim Jagielski
237*b1cdbd2cSJim Jagielski        @see XFrame::deactivate()
238*b1cdbd2cSJim Jagielski        @see XFrame::isActive()
239*b1cdbd2cSJim Jagielski    */
240*b1cdbd2cSJim Jagielski	[oneway] void activate();
241*b1cdbd2cSJim Jagielski
242*b1cdbd2cSJim Jagielski	//-------------------------------------------------------------------------
243*b1cdbd2cSJim Jagielski	/** is called by the creator frame when another sub-frame gets activated.
244*b1cdbd2cSJim Jagielski
245*b1cdbd2cSJim Jagielski        <p>
246*b1cdbd2cSJim Jagielski        At first the frame deactivates its active sub-frame, if any.
247*b1cdbd2cSJim Jagielski		Then broadcasts a <type>FrameActionEvent</type> with
248*b1cdbd2cSJim Jagielski        <const>FrameAction::FRAME_DEACTIVATING</const>.
249*b1cdbd2cSJim Jagielski        </p>
250*b1cdbd2cSJim Jagielski
251*b1cdbd2cSJim Jagielski        @see XFrame::activate()
252*b1cdbd2cSJim Jagielski        @see XFrame::isActive()
253*b1cdbd2cSJim Jagielski	 */
254*b1cdbd2cSJim Jagielski	[oneway] void deactivate();
255*b1cdbd2cSJim Jagielski
256*b1cdbd2cSJim Jagielski	//-------------------------------------------------------------------------
257*b1cdbd2cSJim Jagielski	/** determines if the frame is active.
258*b1cdbd2cSJim Jagielski
259*b1cdbd2cSJim Jagielski        @return
260*b1cdbd2cSJim Jagielski            <TRUE/> for active or UI active frames
261*b1cdbd2cSJim Jagielski            <br>
262*b1cdbd2cSJim Jagielski            <FALSE/> otherwise
263*b1cdbd2cSJim Jagielski
264*b1cdbd2cSJim Jagielski        @see XFrame::activate()
265*b1cdbd2cSJim Jagielski        @see XFrame::deactivate()
266*b1cdbd2cSJim Jagielski	 */
267*b1cdbd2cSJim Jagielski	boolean isActive();
268*b1cdbd2cSJim Jagielski
269*b1cdbd2cSJim Jagielski	//-------------------------------------------------------------------------
270*b1cdbd2cSJim Jagielski    /** sets a new component into the frame or release an existing one from a frame.
271*b1cdbd2cSJim Jagielski
272*b1cdbd2cSJim Jagielski        @param xComponentWindow
273*b1cdbd2cSJim Jagielski            the window of the new component or <NULL/> for release
274*b1cdbd2cSJim Jagielski
275*b1cdbd2cSJim Jagielski            <p>
276*b1cdbd2cSJim Jagielski            A valid component window should be a child of the frame container window.
277*b1cdbd2cSJim Jagielski            </p>
278*b1cdbd2cSJim Jagielski
279*b1cdbd2cSJim Jagielski        @param xController
280*b1cdbd2cSJim Jagielski            the controller of the new component or <NULL/> for release
281*b1cdbd2cSJim Jagielski
282*b1cdbd2cSJim Jagielski            <p>
283*b1cdbd2cSJim Jagielski            Simple components may implement a <type scope="com::sun::star::awt">XWindow</type> only.
284*b1cdbd2cSJim Jagielski            In this case no controller must be given here.
285*b1cdbd2cSJim Jagielski            </p>
286*b1cdbd2cSJim Jagielski
287*b1cdbd2cSJim Jagielski        @return
288*b1cdbd2cSJim Jagielski            <TRUE/>if setting of new component or release of an existing one was successfully
289*b1cdbd2cSJim Jagielski            <br>
290*b1cdbd2cSJim Jagielski            <FALSE/> otherwise (especialy, if an existing controller disagree within his
291*b1cdbd2cSJim Jagielski            <member>XController::suspend()</member> call)
292*b1cdbd2cSJim Jagielski
293*b1cdbd2cSJim Jagielski        @see XFrame::getComponentWindow()
294*b1cdbd2cSJim Jagielski        @see XFrame::getContainerWindow()
295*b1cdbd2cSJim Jagielski        @see XFrame::getController()
296*b1cdbd2cSJim Jagielski	 */
297*b1cdbd2cSJim Jagielski    boolean setComponent(
298*b1cdbd2cSJim Jagielski        [in] com::sun::star::awt::XWindow xComponentWindow,
299*b1cdbd2cSJim Jagielski        [in] XController xController);
300*b1cdbd2cSJim Jagielski
301*b1cdbd2cSJim Jagielski	//-------------------------------------------------------------------------
302*b1cdbd2cSJim Jagielski    /** provides access to the component window
303*b1cdbd2cSJim Jagielski
304*b1cdbd2cSJim Jagielski        <p>
305*b1cdbd2cSJim Jagielski        Note: Don't dispose this window - the frame is the owner of it.
306*b1cdbd2cSJim Jagielski        </p>
307*b1cdbd2cSJim Jagielski
308*b1cdbd2cSJim Jagielski        @returns
309*b1cdbd2cSJim Jagielski            the current visible component in this frame
310*b1cdbd2cSJim Jagielski            <br>
311*b1cdbd2cSJim Jagielski            or <NULL/> if no one currently exist
312*b1cdbd2cSJim Jagielski
313*b1cdbd2cSJim Jagielski        @see XFrame::setComponent()
314*b1cdbd2cSJim Jagielski	 */
315*b1cdbd2cSJim Jagielski	com::sun::star::awt::XWindow getComponentWindow();
316*b1cdbd2cSJim Jagielski
317*b1cdbd2cSJim Jagielski	//-------------------------------------------------------------------------
318*b1cdbd2cSJim Jagielski    /** provides access to the controller
319*b1cdbd2cSJim Jagielski
320*b1cdbd2cSJim Jagielski        <p>
321*b1cdbd2cSJim Jagielski        Note: Don't dispose it - the frame is the owner of it.
322*b1cdbd2cSJim Jagielski        Use <member>XController::getFrame()</member> to dispose
323*b1cdbd2cSJim Jagielski        the frame after you the controller agreed with a
324*b1cdbd2cSJim Jagielski        <member>XController::suspend()</member> call.
325*b1cdbd2cSJim Jagielski        </p>
326*b1cdbd2cSJim Jagielski
327*b1cdbd2cSJim Jagielski        @returns
328*b1cdbd2cSJim Jagielski            the current controller within this frame
329*b1cdbd2cSJim Jagielski            <br>
330*b1cdbd2cSJim Jagielski            or <NULL/> if no one currently exist
331*b1cdbd2cSJim Jagielski
332*b1cdbd2cSJim Jagielski        @see XFrame::setComponent()
333*b1cdbd2cSJim Jagielski	 */
334*b1cdbd2cSJim Jagielski	XController getController();
335*b1cdbd2cSJim Jagielski
336*b1cdbd2cSJim Jagielski	//-------------------------------------------------------------------------
337*b1cdbd2cSJim Jagielski	/** notifies the frame that the context of the controller within this
338*b1cdbd2cSJim Jagielski		frame changed (i.e. the selection).
339*b1cdbd2cSJim Jagielski
340*b1cdbd2cSJim Jagielski        <p>
341*b1cdbd2cSJim Jagielski        According to a call to this interface, the frame calls
342*b1cdbd2cSJim Jagielski        <method>XFrameEventListener::frameAction</method> with
343*b1cdbd2cSJim Jagielski		<const>FrameAction::CONTEXT_CHANGED</const> to all listeners which
344*b1cdbd2cSJim Jagielski        are registered using <member>XFrame::addFrameActionListener</member>.
345*b1cdbd2cSJim Jagielski		For external controllers this event can be used to requery dispatches.
346*b1cdbd2cSJim Jagielski
347*b1cdbd2cSJim Jagielski        @see XFrameEventListener
348*b1cdbd2cSJim Jagielski        @see FrameAction
349*b1cdbd2cSJim Jagielski        @see XFrame::addFrameActionListener()
350*b1cdbd2cSJim Jagielski	*/
351*b1cdbd2cSJim Jagielski	void contextChanged();
352*b1cdbd2cSJim Jagielski
353*b1cdbd2cSJim Jagielski	//-------------------------------------------------------------------------
354*b1cdbd2cSJim Jagielski	/** registers an event listener, which will be called when certain things
355*b1cdbd2cSJim Jagielski		happen to the components within this frame or within sub-frames of this frame.
356*b1cdbd2cSJim Jagielski
357*b1cdbd2cSJim Jagielski        <p>
358*b1cdbd2cSJim Jagielski        E.g., it is possible to determine instantiation/destruction and
359*b1cdbd2cSJim Jagielski        activation/deactivation of components.
360*b1cdbd2cSJim Jagielski        </p>
361*b1cdbd2cSJim Jagielski
362*b1cdbd2cSJim Jagielski        @param xListener
363*b1cdbd2cSJim Jagielski            specifies the listener which will be informed
364*b1cdbd2cSJim Jagielski
365*b1cdbd2cSJim Jagielski        @see XFrame::removeFrameActionListener()
366*b1cdbd2cSJim Jagielski	 */
367*b1cdbd2cSJim Jagielski    [oneway] void addFrameActionListener( [in]XFrameActionListener xListener );
368*b1cdbd2cSJim Jagielski
369*b1cdbd2cSJim Jagielski	//-------------------------------------------------------------------------
370*b1cdbd2cSJim Jagielski    /** unregisters an event listener
371*b1cdbd2cSJim Jagielski
372*b1cdbd2cSJim Jagielski        @param xListener
373*b1cdbd2cSJim Jagielski            specifies the listener which willn't be informed any longer
374*b1cdbd2cSJim Jagielski
375*b1cdbd2cSJim Jagielski        @see XFrame::addFrameActionListener()
376*b1cdbd2cSJim Jagielski	 */
377*b1cdbd2cSJim Jagielski    [oneway] void removeFrameActionListener( [in] XFrameActionListener xListener );
378*b1cdbd2cSJim Jagielski};
379*b1cdbd2cSJim Jagielski
380*b1cdbd2cSJim Jagielski//=============================================================================
381*b1cdbd2cSJim Jagielski
382*b1cdbd2cSJim Jagielski}; }; }; };
383*b1cdbd2cSJim Jagielski
384*b1cdbd2cSJim Jagielski#endif
385