diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 09:06:44 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 09:06:44 +0000 |
commit | ed5640d8b587fbcfed7dd7967f3de04b37a76f26 (patch) | |
tree | 7a5f7c6c9d02226d7471cb3cc8fbbf631b415303 /offapi/com/sun/star/frame/XStatusbarController.idl | |
parent | Initial commit. (diff) | |
download | libreoffice-upstream.tar.xz libreoffice-upstream.zip |
Adding upstream version 4:7.4.7.upstream/4%7.4.7upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to '')
-rw-r--r-- | offapi/com/sun/star/frame/XStatusbarController.idl | 213 |
1 files changed, 213 insertions, 0 deletions
diff --git a/offapi/com/sun/star/frame/XStatusbarController.idl b/offapi/com/sun/star/frame/XStatusbarController.idl new file mode 100644 index 000000000..633e694d8 --- /dev/null +++ b/offapi/com/sun/star/frame/XStatusbarController.idl @@ -0,0 +1,213 @@ +/* -*- 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_XStatusbarController_idl__ +#define __com_sun_star_frame_XStatusbarController_idl__ + +#include <com/sun/star/awt/MouseEvent.idl> +#include <com/sun/star/awt/Point.idl> +#include <com/sun/star/awt/Rectangle.idl> +#include <com/sun/star/awt/XGraphics.idl> +#include <com/sun/star/frame/XStatusListener.idl> +#include <com/sun/star/lang/XComponent.idl> +#include <com/sun/star/lang/XInitialization.idl> +#include <com/sun/star/util/XUpdatable.idl> + +module com { module sun { module star { module frame { + +/** interface to be implemented by a component offering a more complex user + interface to users within a status bar. + + <p> + A generic status bar field is represented as a simple text field. A status + bar controller can be added to a Statusbar and provide information or + functions with a more sophisticated user interface.<br/> + A typical example for status bar controller is a zoom chooser. It shows + the current zoom and provides general zoom levels on a pop-up menu + that can be activated by a mouse action for context menus. + <p> + + @see com::sun::star::frame::XDispatchProvider + + @since OOo 2.0 +*/ +interface XStatusbarController +{ + /** used to control the life-time of the component + + Used by a status bar implementation to control the life-time of + a status bar controller. The status bar is the only instance which + is allowed to dispose the component. + */ + interface com::sun::star::lang::XComponent; + + /** used to initialize a component with required arguments. + + <p>A status bar controller is initialized with <b>five</b> additional + arguments provided as a sequence of + com::sun::star::beans::PropertyValue:</p> + + <ul> + <li><b>Frame</b><br/>a com::sun::star::frame::XFrame + instance to which the status bar controller belongs. + </li> + <li><b>CommandURL</b><br/>a string which specifies the command + associated with the statusbar controller.<br> + The command is used to identify the status bar controller + implementation. + </li> + <li><b>StatusbarItem</b><br/>a com::sun::star::ui::XStatusbarItem + instance which represents the status bar item associated with + this controller. + </li> + <li><b>ParentWindow</b><br/>a com::sun::star::awt::Window + instance which represents the parent window (status bar window). + </li> + <li><b>ModuleName</b><br/>a string which specifies the name of the + office module attached to the frame to which this controller + belongs; the value is taken from + com::sun::star::frame::XModuleManager::identify(). + </li> + </ul> + */ + interface com::sun::star::lang::XInitialization; + + /** with this interface a component can receive events if a feature has + changed. + + <p>The status bar controller implementation should register itself as a + listener when its com::sun::star::util::XUpdatable + interface has been called.</p> + */ + interface com::sun::star::frame::XStatusListener; + + /** used to notify an implementation that it needs to add its listener or + remove and add them again. + + <p> + A status bar controller instance is ready for use after this call has + been made the first time. The status bar implementation guarantees that + the controller's item window has been added to the status bar and its + reference is held by it. + </p> + */ + interface com::sun::star::util::XUpdatable; + + /** is called by a status bar if the mouse position is within the controller + and a mouse button has been pressed. If the controller has captured the + mouse input this function is also called when the mouse position is not + within the controller. + + @param aMouseEvent + current information about the mouse pointer. + + @return + return `TRUE` if the event should not be processed and `FALSE` + if the event should be processed by the status bar. + */ + boolean mouseButtonDown( [in] ::com::sun::star::awt::MouseEvent aMouseEvent ); + + /** is called by a status bar if the mouse position is within the controller + and a mouse has been moved. If the controller has captured the + mouse input this function is also called when the mouse position is not + within the controller. + + @param aMouseEvent + current information about the mouse pointer. + + @return + return `TRUE` if the event should not be processed and `FALSE` + if the event should be processed by the status bar. + */ + boolean mouseMove( [in] ::com::sun::star::awt::MouseEvent aMouseEvent ); + + /** is called by a status bar if the mouse position is within the controller + and a mouse button has been released. If the controller has captured the + mouse input this function is also called when the mouse position is not + within the controller. + + @param aMouseEvent + current information about the mouse pointer. + + @return + return `TRUE` if the event should not be processed and `FALSE` + if the event should be processed by the status bar. + */ + boolean mouseButtonUp( [in] ::com::sun::star::awt::MouseEvent aMouseEvent ); + + /** is called by a status bar if a command event is available for a controller. + + @param aPos + the current mouse position in pixel. + + @param nCommand + describes which command has been invoked. + <br/>See com::sun::star::awt::Command for + possible values. + + @param bMouseEvent + `TRUE` if the command is based on a mouse event, otherwise `FALSE`. + + @param aData + for future use only. + */ + void command( [in] ::com::sun::star::awt::Point aPos, + [in] long nCommand, + [in] boolean bMouseEvent, + [in] any aData ); + + /** is called by a status bar if the controller has to update the visual + representation. + + @param xGraphics + a reference to a com::sun::star::awt::XGraphics + which has to be used to update the visual representation. + + @param OutputRectangle + a com::sun::star::awt::Rectangle which + determine the output rectangle for all drawing operations + + @param nStyle + reserved for future use. + */ + void paint( [in] ::com::sun::star::awt::XGraphics xGraphics, + [in] ::com::sun::star::awt::Rectangle OutputRectangle, + [in] long nStyle ); + + /** is called by a status bar if the user clicked with mouse into the + field of the corresponding control. + + @param aPos + the current mouse position in pixel. + */ + void click( [in] ::com::sun::star::awt::Point aPos ); + + /** is called by a status bar if the user double-clicked with mouse + into the field of the corresponding control. + + @param aPos + the current mouse position in pixel. + */ + void doubleClick( [in] ::com::sun::star::awt::Point aPos ); +}; + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |