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 24*b1cdbd2cSJim Jagielski#ifndef __com_sun_star_awt_XExtendedToolkit_idl__ 25*b1cdbd2cSJim Jagielski#define __com_sun_star_awt_XExtendedToolkit_idl__ 26*b1cdbd2cSJim Jagielski 27*b1cdbd2cSJim Jagielski#ifndef __com_sun_star_uno_XInterface_idl__ 28*b1cdbd2cSJim Jagielski#include <com/sun/star/uno/XInterface.idl> 29*b1cdbd2cSJim Jagielski#endif 30*b1cdbd2cSJim Jagielski 31*b1cdbd2cSJim Jagielski#ifndef __com_sun_star_awt_XTopWindow_idl__ 32*b1cdbd2cSJim Jagielski#include <com/sun/star/awt/XTopWindow.idl> 33*b1cdbd2cSJim Jagielski#endif 34*b1cdbd2cSJim Jagielski 35*b1cdbd2cSJim Jagielski#ifndef __com_sun_star_lang_IndexOutOfBoundsException_idl__ 36*b1cdbd2cSJim Jagielski#include <com/sun/star/lang/IndexOutOfBoundsException.idl> 37*b1cdbd2cSJim Jagielski#endif 38*b1cdbd2cSJim Jagielski 39*b1cdbd2cSJim Jagielski#ifndef __com_sun_star_awt_XTopWindowListener_idl__ 40*b1cdbd2cSJim Jagielski#include <com/sun/star/awt/XTopWindowListener.idl> 41*b1cdbd2cSJim Jagielski#endif 42*b1cdbd2cSJim Jagielski 43*b1cdbd2cSJim Jagielski#ifndef __com_sun_star_awt_XKeyHandler_idl__ 44*b1cdbd2cSJim Jagielski#include <com/sun/star/awt/XKeyHandler.idl> 45*b1cdbd2cSJim Jagielski#endif 46*b1cdbd2cSJim Jagielski 47*b1cdbd2cSJim Jagielski#ifndef __com_sun_star_awt_XFocusListener_idl__ 48*b1cdbd2cSJim Jagielski#include <com/sun/star/awt/XFocusListener.idl> 49*b1cdbd2cSJim Jagielski#endif 50*b1cdbd2cSJim Jagielski 51*b1cdbd2cSJim Jagielski 52*b1cdbd2cSJim Jagielski//============================================================================= 53*b1cdbd2cSJim Jagielski 54*b1cdbd2cSJim Jagielskimodule com { module sun { module star { module awt { 55*b1cdbd2cSJim Jagielski 56*b1cdbd2cSJim Jagielski//============================================================================= 57*b1cdbd2cSJim Jagielski 58*b1cdbd2cSJim Jagielski/** The <type>XExtendedToolkit</type> is an extension of the <type 59*b1cdbd2cSJim Jagielski scope="::com::sun::star::awt">XToolkit</type> interface. It basically 60*b1cdbd2cSJim Jagielski provides access to three event broadcasters which are used for instance 61*b1cdbd2cSJim Jagielski in the context of accessibility. It is, however, not restricted to 62*b1cdbd2cSJim Jagielski accessibility. 63*b1cdbd2cSJim Jagielski 64*b1cdbd2cSJim Jagielski <p>The first event broadcaster lets you keep track of the open top-level 65*b1cdbd2cSJim Jagielski windows (frames). To get the set of currently open top-level window use 66*b1cdbd2cSJim Jagielski the <member>XExtendedToolkit::getTopWindowCount</member> and 67*b1cdbd2cSJim Jagielski <member>XExtendedToolkit::getTopWindow</member> methods.</p> 68*b1cdbd2cSJim Jagielski 69*b1cdbd2cSJim Jagielski <p>The second event broadcaster informs its listeners of key events. 70*b1cdbd2cSJim Jagielski Its listeners can, unlike with most other broadcasters/listeners, 71*b1cdbd2cSJim Jagielski consume events, so that other listeners will not be called for consumed 72*b1cdbd2cSJim Jagielski events.</p> 73*b1cdbd2cSJim Jagielski 74*b1cdbd2cSJim Jagielski <p>The last event broadcaster sends events on focus changes of all 75*b1cdbd2cSJim Jagielski elements that can have the input focus.</p> 76*b1cdbd2cSJim Jagielski 77*b1cdbd2cSJim Jagielski @deprecated 78*b1cdbd2cSJim Jagielski This interface was only implemented in an intermediate developer 79*b1cdbd2cSJim Jagielski release anyway. 80*b1cdbd2cSJim Jagielski 81*b1cdbd2cSJim Jagielski @since OpenOffice 1.1.2 82*b1cdbd2cSJim Jagielski*/ 83*b1cdbd2cSJim Jagielskipublished interface XExtendedToolkit : ::com::sun::star::uno::XInterface 84*b1cdbd2cSJim Jagielski{ 85*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------- 86*b1cdbd2cSJim Jagielski 87*b1cdbd2cSJim Jagielski /** This function returns the number of currently existing top-level 88*b1cdbd2cSJim Jagielski windows. 89*b1cdbd2cSJim Jagielski @return 90*b1cdbd2cSJim Jagielski Returns the number of top-level windows. This includes all 91*b1cdbd2cSJim Jagielski top-level windows, regardless of whether they are iconized, 92*b1cdbd2cSJim Jagielski visible, or active. 93*b1cdbd2cSJim Jagielski */ 94*b1cdbd2cSJim Jagielski long getTopWindowCount (); 95*b1cdbd2cSJim Jagielski 96*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------- 97*b1cdbd2cSJim Jagielski 98*b1cdbd2cSJim Jagielski /** Return a reference to the specified top-level window. Note that the 99*b1cdbd2cSJim Jagielski number of top-level windows may change between a call to 100*b1cdbd2cSJim Jagielski <member>getTopWindowCount()</member> and successive calls to this 101*b1cdbd2cSJim Jagielski function. 102*b1cdbd2cSJim Jagielski @param nIndex 103*b1cdbd2cSJim Jagielski The index should be in the intervall from 0 up to but not 104*b1cdbd2cSJim Jagielski including the number of top-level windows as returned by 105*b1cdbd2cSJim Jagielski <member>getTopWindowCount()</member>. 106*b1cdbd2cSJim Jagielski @return 107*b1cdbd2cSJim Jagielski The returned value is a valid reference to a top-level window. 108*b1cdbd2cSJim Jagielski @throws IndexOutOfBoundsException 109*b1cdbd2cSJim Jagielski when the specified index is outside the valid range. 110*b1cdbd2cSJim Jagielski */ 111*b1cdbd2cSJim Jagielski ::com::sun::star::awt::XTopWindow getTopWindow ([in] long nIndex) 112*b1cdbd2cSJim Jagielski raises (::com::sun::star::lang::IndexOutOfBoundsException); 113*b1cdbd2cSJim Jagielski 114*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------- 115*b1cdbd2cSJim Jagielski 116*b1cdbd2cSJim Jagielski /** Return the currently active top-level window, i.e. which has 117*b1cdbd2cSJim Jagielski currently the input focus. 118*b1cdbd2cSJim Jagielski @return 119*b1cdbd2cSJim Jagielski The returned reference may be empty when no top-level window is 120*b1cdbd2cSJim Jagielski active. 121*b1cdbd2cSJim Jagielski */ 122*b1cdbd2cSJim Jagielski ::com::sun::star::awt::XTopWindow getActiveTopWindow (); 123*b1cdbd2cSJim Jagielski 124*b1cdbd2cSJim Jagielski /** Add a new listener that is called for events that involve <type 125*b1cdbd2cSJim Jagielski scope="::com::sun::star::awt">XTopWindow</type>s. After having 126*b1cdbd2cSJim Jagielski obtained the current list of exisiting top-level windows you can 127*b1cdbd2cSJim Jagielski keep this list up-to-date by listening to opened or closed top-level 128*b1cdbd2cSJim Jagielski windows. Wait for activations or deactivations of top-level windows 129*b1cdbd2cSJim Jagielski to keep track of the currently active frame. 130*b1cdbd2cSJim Jagielski @param xListener 131*b1cdbd2cSJim Jagielski If this is a valid reference it is inserted into the list of 132*b1cdbd2cSJim Jagielski listeners. It is the task of the caller to not register the 133*b1cdbd2cSJim Jagielski same listener twice (otherwise that listener will be called 134*b1cdbd2cSJim Jagielski twice.) 135*b1cdbd2cSJim Jagielski */ 136*b1cdbd2cSJim Jagielski [oneway] void addTopWindowListener ( 137*b1cdbd2cSJim Jagielski [in] ::com::sun::star::awt::XTopWindowListener xListener); 138*b1cdbd2cSJim Jagielski 139*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------- 140*b1cdbd2cSJim Jagielski 141*b1cdbd2cSJim Jagielski /** Remove the specified listener from the list of listeners. 142*b1cdbd2cSJim Jagielski @param xListener 143*b1cdbd2cSJim Jagielski If the reference is empty then nothing will be changed. If the 144*b1cdbd2cSJim Jagielski listener has been registered twice (or more) then all refrences 145*b1cdbd2cSJim Jagielski will be removed. 146*b1cdbd2cSJim Jagielski */ 147*b1cdbd2cSJim Jagielski [oneway] void removeTopWindowListener ( 148*b1cdbd2cSJim Jagielski [in] ::com::sun::star::awt::XTopWindowListener xListener); 149*b1cdbd2cSJim Jagielski 150*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------- 151*b1cdbd2cSJim Jagielski 152*b1cdbd2cSJim Jagielski /** Add a new listener that is called on <type 153*b1cdbd2cSJim Jagielski scope="::com::sun::star::awt">KeyEvent</type>s. Every listener is 154*b1cdbd2cSJim Jagielski given the opportunity to consume the event, i.e. prevent the not yet 155*b1cdbd2cSJim Jagielski called listeners from being called. 156*b1cdbd2cSJim Jagielski @param xHandler 157*b1cdbd2cSJim Jagielski If this is a valid reference it is inserted into the list of 158*b1cdbd2cSJim Jagielski handlers. It is the task of the caller to not register the 159*b1cdbd2cSJim Jagielski same handler twice (otherwise that listener will be called 160*b1cdbd2cSJim Jagielski twice.) 161*b1cdbd2cSJim Jagielski */ 162*b1cdbd2cSJim Jagielski [oneway] void addKeyHandler ( 163*b1cdbd2cSJim Jagielski [in] ::com::sun::star::awt::XKeyHandler xHandler); 164*b1cdbd2cSJim Jagielski 165*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------- 166*b1cdbd2cSJim Jagielski 167*b1cdbd2cSJim Jagielski /** Remove the specified listener from the list of listeners. 168*b1cdbd2cSJim Jagielski @param xHandler 169*b1cdbd2cSJim Jagielski If the reference is empty then nothing will be changed. If the 170*b1cdbd2cSJim Jagielski handler has been registered twice (or more) then all refrences 171*b1cdbd2cSJim Jagielski will be removed. 172*b1cdbd2cSJim Jagielski */ 173*b1cdbd2cSJim Jagielski [oneway] void removeKeyHandler ( 174*b1cdbd2cSJim Jagielski [in] ::com::sun::star::awt::XKeyHandler xHandler); 175*b1cdbd2cSJim Jagielski 176*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------- 177*b1cdbd2cSJim Jagielski 178*b1cdbd2cSJim Jagielski /** Add a new listener that is called on <type 179*b1cdbd2cSJim Jagielski scope="::com::sun::star::awt">FocusEvent</type>s. Use this focus 180*b1cdbd2cSJim Jagielski broadcaster to keep track of the object that currently has the input 181*b1cdbd2cSJim Jagielski focus. 182*b1cdbd2cSJim Jagielski @param xListener 183*b1cdbd2cSJim Jagielski If this is a valid reference it is inserted into the list of 184*b1cdbd2cSJim Jagielski listeners. It is the task of the caller to not register the 185*b1cdbd2cSJim Jagielski same listener twice (otherwise that listener will be called 186*b1cdbd2cSJim Jagielski twice.) 187*b1cdbd2cSJim Jagielski */ 188*b1cdbd2cSJim Jagielski [oneway] void addFocusListener ( 189*b1cdbd2cSJim Jagielski [in] ::com::sun::star::awt::XFocusListener xListener); 190*b1cdbd2cSJim Jagielski 191*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------- 192*b1cdbd2cSJim Jagielski 193*b1cdbd2cSJim Jagielski /** Remove the specified listener from the list of listeners. 194*b1cdbd2cSJim Jagielski @param xListener 195*b1cdbd2cSJim Jagielski If the reference is empty then nothing will be changed. If the 196*b1cdbd2cSJim Jagielski listener has been registered twice (or more) then all refrences 197*b1cdbd2cSJim Jagielski will be removed. 198*b1cdbd2cSJim Jagielski */ 199*b1cdbd2cSJim Jagielski [oneway] void removeFocusListener ( 200*b1cdbd2cSJim Jagielski [in] ::com::sun::star::awt::XFocusListener xListener); 201*b1cdbd2cSJim Jagielski 202*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------- 203*b1cdbd2cSJim Jagielski 204*b1cdbd2cSJim Jagielski /** Broadcasts the a focusGained on all registered focus listeners 205*b1cdbd2cSJim Jagielski @param source 206*b1cdbd2cSJim Jagielski The object that has gained the input focus. It should implement 207*b1cdbd2cSJim Jagielski <type scope="com::sun::star::accessibility">XAccessible</type>. 208*b1cdbd2cSJim Jagielski */ 209*b1cdbd2cSJim Jagielski [oneway] void fireFocusGained ( 210*b1cdbd2cSJim Jagielski [in] ::com::sun::star::uno::XInterface source); 211*b1cdbd2cSJim Jagielski 212*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------- 213*b1cdbd2cSJim Jagielski 214*b1cdbd2cSJim Jagielski /** Broadcasts the a focusGained on all registered focus listeners 215*b1cdbd2cSJim Jagielski @param source 216*b1cdbd2cSJim Jagielski The object that has lost the input focus. It should implement 217*b1cdbd2cSJim Jagielski <type scope="com::sun::star::accessibility">XAccessible</type>. 218*b1cdbd2cSJim Jagielski */ 219*b1cdbd2cSJim Jagielski [oneway] void fireFocusLost ( 220*b1cdbd2cSJim Jagielski [in] ::com::sun::star::uno::XInterface source); 221*b1cdbd2cSJim Jagielski 222*b1cdbd2cSJim Jagielski}; 223*b1cdbd2cSJim Jagielski 224*b1cdbd2cSJim Jagielski}; }; }; }; 225*b1cdbd2cSJim Jagielski 226*b1cdbd2cSJim Jagielski#endif 227