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