summaryrefslogtreecommitdiff
path: root/offapi/com/sun/star/awt/XPopupMenuExtended.idl
blob: 5b6d112e8f28992e5d1ad21e6cd9407dd94d80ef (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
/*************************************************************************
 *
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 *
 * Copyright 2000, 2010 Oracle and/or its affiliates.
 *
 * OpenOffice.org - a multi-platform office productivity suite
 *
 * This file is part of OpenOffice.org.
 *
 * OpenOffice.org is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Lesser General Public License version 3
 * only, as published by the Free Software Foundation.
 *
 * OpenOffice.org is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Lesser General Public License version 3 for more details
 * (a copy is included in the LICENSE file that accompanied this code).
 *
 * You should have received a copy of the GNU Lesser General Public License
 * version 3 along with OpenOffice.org.  If not, see
 * <http://www.openoffice.org/license.html>
 * for a copy of the LGPLv3 License.
 *
 ************************************************************************/
#ifndef __com_sun_star_awt_XPopupMenuExtended_idl__
#define __com_sun_star_awt_XPopupMenuExtended_idl__

#ifndef __com_sun_star_uno_XInterface_idl__
#include <com/sun/star/uno/XInterface.idl>
#endif

#ifndef __com_sun_star_awt_XPopupMenu_idl__
#include <com/sun/star/awt/XPopupMenu.idl>
#endif

#ifndef __com_sun_star_awt_XMenuExtended2_idl__
#include <com/sun/star/awt/XMenuExtended2.idl>
#endif

#ifndef __com_sun_star_awt_MenuLogo_idl__
#include <com/sun/star/awt/MenuLogo.idl>
#endif

#ifndef __com_sun_star_container_NoSuchElementException_idl__
#include <com/sun/star/container/NoSuchElementException.idl>
#endif

#ifndef __com_sun_star_awt_KeyEvent_idl__
#include <com/sun/star/awt/KeyEvent.idl>
#endif

#ifndef com_sun_star_graphic_XGraphic_idl
#include <com/sun/star/graphic/XGraphic.idl>
#endif

//=============================================================================

module com {  module sun {  module star {  module awt {

/** specifies extended functions for a <type scope="com::sun::star::awt">PopupMenu</type>.

    @since OOo 3.1
 */
published interface XPopupMenuExtended
{
    /** specifies basic functions for a popup menu.
    */
    interface ::com::sun::star::awt::XPopupMenu;

    /** specifies extended menu functions, available for both
        <type scope="com::sun::star::awt">MenuBar</type> and
        <type scope="com::sun::star::awt">PopupMenu</type>.
    */
    interface ::com::sun::star::awt::XMenuExtended2;

    //=========================================================================

    /** queries if the <type scope="com::sun::star::awt">PopupMenu</type>
        is being executed as a result of invoking
        <member scope="com::sun::star::awt">XPopupMenu::execute()</member>; that is,
        for a <type>PopupMenu</type> activated by a <type>MenuBar</type> item,
        this methods returns <FALSE/>.

        @return
            <TRUE/> if the <type scope="com::sun::star::awt">PopupMenu</type>
            is being executed, <FALSE/> otherwise.

        @see <member scope="com::sun::star::awt">XPopupMenu::execute()</member>

        @since OOo 3.1
    */
    boolean isInExecute();

    /** ends the execution of the <type scope="com::sun::star::awt">PopupMenu</type>.
        <member scope="com::sun::star::awt">XPopupMenu::execute()</member> will then return 0.

        @see <member scope="com::sun::star::awt">XPopupMenu::execute()</member>

        @since OOo 3.1
    */
    void endExecute();

    //=============================================================================

    /** sets the <type>MenuLogo</type> for this <type>PopupMenu</type>.

        @param aMenuLogo
            the <type>MenuLogo</type>.

        @since OOo 3.1
    */
    void setLogo( [in] ::com::sun::star::awt::MenuLogo aMenuLogo );

    /** retrieves the <type>MenuLogo</type> for this <type>PopupMenu</type>.

        @return
            the <type>MenuLogo</type>.

        @since OOo 3.1
    */
    ::com::sun::star::awt::MenuLogo getLogo();


    //=========================================================================


    /** specifies whether mnemonics are automatically assigned to menu items, or not.

        @param bEnable
            if <TRUE/>, mnemonics are automatically assigned to menu items.
    */
    void enableAutoMnemonics( [in] boolean bEnable );


    //=========================================================================

    /** sets the <type>KeyEvent</type> for the menu item.

        <p>The <type>KeyEvent</type> is <b>only</b> used as a container to transport
        the shortcut information, this methods only draws the text corresponding to
        this keyboard shortcut. The client code is responsible for listening to
        keyboard events (typicaly done via <type>XUserInputInterception</type>),
        and dispatch the respective command.</p>

        @param nItemId
            specifies the menu item identifier for which the <type>KeyEvent</type> should be set.

        @param aKeyEvent
            specifies the <type>KeyEvent</type> for the menu item.

        @throws <type scope="com::sun::star::container">NoSuchElementException</type>
            if there is no menu item with the identifier specified in <var>nItemId</var>.

        @since OOo 3.1
    */
    void setAcceleratorKeyEvent( [in] short nItemId, [in] ::com::sun::star::awt::KeyEvent aKeyEvent )
        raises ( ::com::sun::star::container::NoSuchElementException );

    /** retrieves the <type>KeyEvent</type> for the menu item.

        <p>The <type>KeyEvent</type> is <b>only</b> used as a container to transport
        the shortcut information, so that in this case
        <member scope="::com::sun::star::lang::">EventObject::Source</member> is <NULL/>.</p>

        @param nItemId
            specifies the menu item identifier for which the <type>KeyEvent</type> should be retrieved.

        @return
            the <type>KeyEvent</type> struct assigned to the requested menu item.

        @throws <type scope="com::sun::star::container">NoSuchElementException</type>
            if there is no menu item with the identifier specified in <var>nItemId</var>.

        @since OOo 3.1
    */
    ::com::sun::star::awt::KeyEvent getAcceleratorKeyEvent( [in] short nItemId )
        raises ( ::com::sun::star::container::NoSuchElementException );

    //=============================================================================

    /** sets the help text for the menu item.

        @param nItemId
            specifies the menu item identifier for which the help text should be set.

        @param sHelpText
            specifies the help text for the menu item.

        @throws <type scope="com::sun::star::container">NoSuchElementException</type>
            if there is no menu item with the identifier specified in <var>nItemId</var>.

        @since OOo 3.1
    */
    void setHelpText( [in] short nItemId, [in] string sHelpText )
        raises ( ::com::sun::star::container::NoSuchElementException );

    /** retrieves the help text for the menu item.

        @param nItemId
            specifies the menu item identifier for which the help text should be retrieved.

        @return
            a string with the help text.

        @throws <type scope="com::sun::star::container">NoSuchElementException</type>
            if there is no menu item with the identifier specified in <var>nItemId</var>.

        @since OOo 3.1
    */
    string getHelpText( [in] short nItemId )
        raises ( ::com::sun::star::container::NoSuchElementException );

    //=============================================================================

    /** sets the tip help text for the menu item.

        @param nItemId
            specifies the menu item identifier for which the tip help text should be set.

        @param sTipHelpText
            specifies the tip help text for the menu item.

        @throws <type scope="com::sun::star::container">NoSuchElementException</type>
            if there is no menu item with the identifier specified in <var>nItemId</var>.

        @since OOo 3.1
    */
    void setTipHelpText( [in] short nItemId, [in] string sTipHelpText )
        raises ( ::com::sun::star::container::NoSuchElementException );

    /** retrieves the tip help text for the menu item.

        @param nItemId
            specifies the menu item identifier for which the tip help text should be retrieved.

        @return
            a string with the tip help text.

        @throws <type scope="com::sun::star::container">NoSuchElementException</type>
            if there is no menu item with the identifier specified in <var>nItemId</var>.

        @since OOo 3.1
    */
    string getTipHelpText( [in] short nItemId )
        raises ( ::com::sun::star::container::NoSuchElementException );

    //=============================================================================

    /** sets the image for the menu item.

        @param nItemId
            specifies the menu item identifier for which the image should be set.

        @param xGraphic
            specifies the image for the menu item.

        @param bScale
            if <TRUE/>, the image will be scaled to the standard size used internally by
            the implementation.

        @throws <type scope="com::sun::star::container">NoSuchElementException</type>
            if there is no menu item with the identifier specified in <var>nItemId</var>.

        @since OOo 3.1
    */
    void setItemImage(      [in] short nItemId,
                            [in] ::com::sun::star::graphic::XGraphic xGraphic,
                            [in] boolean bScale )
        raises ( ::com::sun::star::container::NoSuchElementException );

    /** retrieves the image for the menu item.

        @param nItemId
            specifies the menu item identifier for which the image should be retrieved.

        @return
            a <type scope="::com::sun::star::graphic::">XGraphic</type> reference
            to the current image for the requested menu item.

        @throws <type scope="com::sun::star::container">NoSuchElementException</type>
            if there is no menu item with the identifier specified in <var>nItemId</var>.

        @since OOo 3.1
    */
    ::com::sun::star::graphic::XGraphic getItemImage( [in] short nItemId )
        raises ( ::com::sun::star::container::NoSuchElementException );

    //.............................................................................


    /** sets the rotation angle of a menu item image.

        @param nItemId
            specifies the menu item identifier for which the image angle should be set.

        @param nAngle
            specifies the rotation angle for the menu item image.

        @throws <type scope="com::sun::star::container">NoSuchElementException</type>
            if there is no menu item with the identifier specified in <var>nItemId</var>.

        @since OOo 3.1
    */
    void setItemImageAngle( [in] short nItemId, [in] long nAngle )
        raises ( ::com::sun::star::container::NoSuchElementException );

    /** retrieves the rotation angle of a menu item image.

        @param nItemId
            specifies the menu item identifier for which the rotation angle should be retrieved.

        @return the rotation angle of the menu item image, or 0 if it has no rotation.

        @throws <type scope="com::sun::star::container">NoSuchElementException</type>
            if there is no menu item with the identifier specified in <var>nItemId</var>.

        @since OOo 3.1
    */
    long getItemImageAngle( [in] short nItemId )
        raises ( ::com::sun::star::container::NoSuchElementException );

    //.............................................................................

    /** sets the mirror mode of a menu item image.

        @param nItemId
            specifies the menu item identifier for which the mirror mode should be set.

        @param bMirror
            if <TRUE/>, the item image is mirrored.

        @throws <type scope="com::sun::star::container">NoSuchElementException</type>
            if there is no menu item with the identifier specified in <var>nItemId</var>.

        @since OOo 3.1
    */
    void setItemImageMirrorMode( [in] short nItemId, [in] boolean bMirror )
        raises ( ::com::sun::star::container::NoSuchElementException );

    /** indicates whether the menu item image is mirrored.

        @param nItemId
            specifies the menu item identifier for which the image mirror mode should be checked.

        @return <TRUE/> if the item image is mirrored, <FALSE/> otherwise.

        @throws <type scope="com::sun::star::container">NoSuchElementException</type>
            if there is no menu item with the identifier specified in <var>nItemId</var>.

        @since OOo 3.1
    */
    boolean isItemImageInMirrorMode( [in] short nItemId )
        raises ( ::com::sun::star::container::NoSuchElementException );

};

}; }; }; };

#endif