/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ /* * This file is part of the LibreOffice project. * * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. * * This file incorporates work covered by the following license notice: * * 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 . */ #ifndef __com_sun_star_frame_PopupMenuController_idl__ #define __com_sun_star_frame_PopupMenuController_idl__ #include #include #include #include #include module com { module sun { module star { module frame { /** provides access to a pop-up menu controller.

A pop-up menu controller is used to make special functions available to users, which depend on runtime or context specific conditions.
A typical example for a pop-up 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.

@since OOo 2.0 */ service PopupMenuController { /** supports functions to initialize and update a pop-up menu controller implementation.

A pop-up menu controller implementation gets initialized with a com::sun::star::awt::XPopupMenu object. This assures that a pop-up menu controller can be implemented with any UNO based language.

*/ interface com::sun::star::frame::XPopupMenuController; /** provides functions to initialize a pop-up menu controller with specific data which are needed.

This interface should not directly used. A factory service is responsible to initialize every controller correctly.
A pop-up menu controller needs at least two additional arguments provided as com::sun::star::beans::PropertyValue:

  • Frame
    specifies the com::sun::star::frame::XFrame instance to which the pop-up menu controller belongs to.
  • CommandURL
    specifies which pop-up menu controller should be created.

@see PopupMenuControllerFactory */ interface com::sun::star::lang::XInitialization; /** used to brief the pop-up menu controller with new status information.

A pop-up 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.

*/ interface com::sun::star::frame::XStatusListener; /** used to query for commands supported by the pop-up menu controller to execute them directly.

A pop-up menu controller provides special functions which should be available by the normal dispatch API. This optional interface enables pop-up menu controller to be normal dispatch providers.
Attention:
Po-pup menu controller functions must be specified using the following the dispatch URL scheme: "vnd.sun.star.popup:" opaque_part [ "?" query ].

@since OOo 2.2 */ [optional] interface com::sun::star::frame::XDispatchProvider; /** used to dispose pop-up menu controller by the owner instance.

A pop-up menu controller resides in a menu which has a limited life-time. For correct life-time handling a pop-up menu controller should support this interface.

@since OOo 2.2 */ [optional] interface com::sun::star::lang::XComponent; }; }; }; }; }; #endif /* vim:set shiftwidth=4 softtabstop=4 expandtab: */