summaryrefslogtreecommitdiffstats
path: root/offapi/com/sun/star/frame/XStatusbarController.idl
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--offapi/com/sun/star/frame/XStatusbarController.idl213
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: */