1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
3 * This file is part of the LibreOffice project.
5 * This Source Code Form is subject to the terms of the Mozilla Public
6 * License, v. 2.0. If a copy of the MPL was not distributed with this
7 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
9 * This file incorporates work covered by the following license notice:
11 * Licensed to the Apache Software Foundation (ASF) under one or more
12 * contributor license agreements. See the NOTICE file distributed
13 * with this work for additional information regarding copyright
14 * ownership. The ASF licenses this file to you under the Apache
15 * License, Version 2.0 (the "License"); you may not use this file
16 * except in compliance with the License. You may obtain a copy of
17 * the License at http://www.apache.org/licenses/LICENSE-2.0 .
20 #ifndef __com_sun_star_frame_PopupMenuController_idl__
21 #define __com_sun_star_frame_PopupMenuController_idl__
23 #include
<com
/sun
/star
/frame
/XPopupMenuController.idl
>
24 #include
<com
/sun
/star
/lang
/XInitialization.idl
>
25 #include
<com
/sun
/star
/frame
/XStatusListener.idl
>
26 #include
<com
/sun
/star
/frame
/XDispatchProvider.idl
>
27 #include
<com
/sun
/star
/lang
/XComponent.idl
>
30 module com
{ module sun
{ module star
{ module frame
{
33 /** provides access to a pop-up menu controller.
36 A pop-up menu controller is used to make special functions available to
37 users, which depend on runtime or context specific conditions.<br/>
38 A typical example for a pop-up menu controller can be a recent file list
39 implementation which provides a list of latest files that a user has
40 worked on. This list gets changes consistently during a work session.
46 service PopupMenuController
48 /** supports functions to initialize and update a pop-up menu controller
52 A pop-up menu controller implementation gets initialized with a
53 com::sun::star::awt::XPopupMenu object. This assures
54 that a pop-up menu controller can be implemented with any UNO based
58 interface com
::sun
::star
::frame
::XPopupMenuController
;
60 /** provides functions to initialize a pop-up menu controller with
61 specific data which are needed.
64 This interface should not directly used. A factory service is responsible to
65 initialize every controller correctly.<br/>
67 A pop-up menu controller needs at least two additional arguments
68 provided as com::sun::star::beans::PropertyValue:
70 <li><b>Frame</b><br>specifies the com::sun::star::frame::XFrame
71 instance to which the pop-up menu controller belongs to.</li>
72 <li><b>CommandURL</b><br>specifies which pop-up menu controller should be created.</li>
76 @see PopupMenuControllerFactory
78 interface com
::sun
::star
::lang
::XInitialization
;
80 /** used to brief the pop-up menu controller with new status information.
83 A pop-up menu controller makes special functions available to users which
84 normally depend on the state of other data. This interface is used to
85 send this data to a controller implementation.
88 interface com
::sun
::star
::frame
::XStatusListener
;
90 /** used to query for commands supported by the pop-up menu controller to
91 execute them directly.
94 A pop-up menu controller provides special functions which should be
95 available by the normal dispatch API. This optional interface enables
96 pop-up menu controller to be normal dispatch providers.<br/>
97 <b>Attention:</b><br/>
98 Po-pup menu controller functions must be specified using the following
99 the dispatch URL scheme: "vnd.sun.star.popup:" opaque_part [ "?" query ].
104 [optional] interface com
::sun
::star
::frame
::XDispatchProvider
;
106 /** used to dispose pop-up menu controller by the owner instance.
109 A pop-up menu controller resides in a menu which has a limited
110 life-time. For correct life-time handling a pop-up menu
111 controller should support this interface.
116 [optional] interface com
::sun
::star
::lang
::XComponent
;
124 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */