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