/************************************************************************* * * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * Copyright 2008 by Sun Microsystems, Inc. * * OpenOffice.org - a multi-platform office productivity suite * * $RCSfile: XStatusbarController.idl,v $ * $Revision: 1.6 $ * * This file is part of OpenOffice.org. * * OpenOffice.org is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License version 3 * only, as published by the Free Software Foundation. * * OpenOffice.org is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License version 3 for more details * (a copy is included in the LICENSE file that accompanied this code). * * You should have received a copy of the GNU Lesser General Public License * version 3 along with OpenOffice.org. If not, see * * for a copy of the LGPLv3 License. * ************************************************************************/ #ifndef __com_sun_star_frame_XStatusbarController_idl__ #define __com_sun_star_frame_XStatusbarController_idl__ #ifndef __com_sun_star_awt_Point_idl__ #include #endif #ifndef __com_sun_star_awt_MouseEvent_idl__ #include #endif #ifndef __com_sun_star_awt_Rectangle_idl__ #include #endif #ifndef __com_sun_star_awt_XGraphics_idl__ #include #endif //============================================================================= module com { module sun { module star { module frame { //============================================================================= /** is an abstract service for a component which offers a more complex user interface to users within a status bar.

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.
A typical example for status bar controller is a zoom chooser. It shows the current zoom and provides general zoom levels on a popup menu that can be activated by a mouse action for context menus.

@see com::sun::star::frame::XDispatchProvider @since OOo 2.0.0 */ interface XStatusbarController : ::com::sun::star::uno::XInterface { //============================================================================= /** 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 if the event should not be processed and 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 if the event should not be processed and 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 if the event should not be processed and 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. @param bMouseEvent if the command is based on a mouse event, otherwise . @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 XGraphics which has to be used to update the visual representation. @param nCommand a Rectangle which determine the output rectangle for all drawing operations @param nItemID the unique ID of the control within the status bar. @param nStyle reserved for future use. */ void paint( [in] ::com::sun::star::awt::XGraphics xGraphics, [in] ::com::sun::star::awt::Rectangle rOutputRectangle, [in] long nItemId, [in] long nStyle ); //============================================================================= /** is called by a status bar if the user clicked with mouse into the field of the corresponding control. */ void click(); //============================================================================= /** is called by a status bar if the user double-clicked with mouse into the field of the corresponding control. */ void doubleClick(); }; }; }; }; }; #endif