blob: 048dafe97536f04ac5bf1103d9f91da9e0388d9c [file] [log] [blame]
/**************************************************************
*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*
*************************************************************/
#ifndef __com_sun_star_frame_PopupMenuController_idl__
#define __com_sun_star_frame_PopupMenuController_idl__
#ifndef __com_sun_star_frame_XPopupMenuController_idl__
#include <com/sun/star/frame/XPopupMenuController.idl>
#endif
#ifndef _com_sun_star_lang_XInitialization_idl__
#include <com/sun/star/lang/XInitialization.idl>
#endif
#ifndef __com_sun_star_frame_XStatusListener_idl__
#include <com/sun/star/frame/XStatusListener.idl>
#endif
#ifndef __com_sun_star_frame_XDispatchProvider_idl__
#include <com/sun/star/frame/XDispatchProvider.idl>
#endif
#ifndef __com_sun_star_lang_XComponent_idl__
#include <com/sun/star/lang/XComponent.idl>
#endif
//=============================================================================
module com { module sun { module star { module frame {
//=============================================================================
/** provides access to a popup menu controller.
<p>
A popup menu controller is used to make special functions available to
users, which depend on runtime or context specific conditions.<br/>
A typical example for a popup menu controller can be a recent file list
implementation which provides a list of latest files that a user has
worked on. This list gets changes consistently during a work session.
</p>
@since OpenOffice 2.0
*/
service PopupMenuController
{
//-------------------------------------------------------------------------
/** supports functions to initialize and update a popup menu controller
implementation.
<p>
A popup menu controller implementation gets initialized with a
<type scope="com::sun::star::awt">XPopupMenu</type> object. This assures
that a popup menu controller can be implemented with any UNO based
language.
</p>
*/
interface com::sun::star::frame::XPopupMenuController;
//-------------------------------------------------------------------------
/** provides functions to initialize a popup menu controller with
specific data which are needed.
<p>
This interface should not directly used. A factory service is responsible to
initialize every controller correctly.<br/>
A popup menu controller needs at least two additional arguments
provided as <type scope="com::sun::star::beans">PropertyValue</type>:
<ul>
<li><b>Frame</b><br>specifies the <type scope="com::sun::star::frame">XFrame</type>
instance to which the popup menu controller belongs to.</li>
<li><b>CommandURL</b><br>specifies which popup menu controller should be created.</li>
</ul>
</p>
@see PopupMenuControllerFactory
*/
interface com::sun::star::lang::XInitialization;
//-------------------------------------------------------------------------
/** used to brief the popup menu controller with new status information.
<p>
A popup menu controller makes special functions available to users which
normally depend on the state of other data. This interface is used to
send this data to a controller implementation.
</p>
*/
interface com::sun::star::frame::XStatusListener;
//-------------------------------------------------------------------------
/** used to query for commands supported by the popup menu controller to
execute them directly.
<p>
A popup menu controller provides special functions which should be
available by the normal dispatch API. This optional interface enables
popup menu controller to be normal dispatch providers.<br/>
<b>Attention:</b><br/>
Popup menu controller functions must be specified using the following
the dispatch URL scheme: "vnd.sun.star.popup:" opaque_part [ "?" query ].
</p>
@since OpenOffice 2.2
*/
[optional] interface com::sun::star::frame::XDispatchProvider;
//-------------------------------------------------------------------------
/** used to dispose popup menu controller by the owner instance.
<p>
A popup menu controller resides in a menu which has a limited
life-time. For correct life-time handling a popup menu
controller should support this interface.
</p>
@since OpenOffice 2.2
*/
[optional] interface com::sun::star::lang::XComponent;
};
}; }; }; };
//=============================================================================
#endif