From b4fede4cb1fbf760386e1d2f21726334c0a96322 Mon Sep 17 00:00:00 2001 From: Ariel Constenla-Haile Date: Thu, 6 Dec 2012 12:28:31 +0000 Subject: Related: #i121442# API wrapping StatusBar functionality In the current implementation and its API design, it is impossible to implement a StatusbarController in UNO, because there is no way in UNO for the controller to manipulate its status bar item; the current implementation of UNO based StatusbarController have to access directly the VCL StatusBar through the AWT XWindow in order to manipulate its item. Designing an API that wraps the VCL StatusBar does not make sense: a StatusbarController should only have access to the status bar item it controls, not the whole status bar. Therefore this new interface represents only the functionality of an item in a status bar, to be controlled by a StatusbarController (cherry picked from commit f556d8d542b069778e9b9d2bf25575e740602a6f) Conflicts: offapi/com/sun/star/ui/makefile.mk Change-Id: I197d49ac4516370f0d352ee03f86519016bf030c (cherry picked from commit 418118e8be4d71f6359333961f9e4cbe9c12a246) --- offapi/UnoApi_offapi.mk | 1 + offapi/com/sun/star/ui/XStatusbarItem.idl | 110 ++++++++++++++++++++++++++++++ 2 files changed, 111 insertions(+) create mode 100644 offapi/com/sun/star/ui/XStatusbarItem.idl diff --git a/offapi/UnoApi_offapi.mk b/offapi/UnoApi_offapi.mk index 3b9312ca7ab3..d88825745b4b 100644 --- a/offapi/UnoApi_offapi.mk +++ b/offapi/UnoApi_offapi.mk @@ -3966,6 +3966,7 @@ $(eval $(call gb_UnoApi_add_idlfiles,offapi,offapi/com/sun/star/ui,\ XModuleUIConfigurationManagerSupplier \ XSidebar \ XSidebarPanel \ + XStatusbarItem \ XToolPanel \ XUIConfiguration \ XUIConfigurationListener \ diff --git a/offapi/com/sun/star/ui/XStatusbarItem.idl b/offapi/com/sun/star/ui/XStatusbarItem.idl new file mode 100644 index 000000000000..182af2f4428b --- /dev/null +++ b/offapi/com/sun/star/ui/XStatusbarItem.idl @@ -0,0 +1,110 @@ +/* + * 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_ui_XStatusbarItem_idl__ +#define __com_sun_star_ui_XStatusbarItem_idl__ + +#include + +module com { module sun { module star { module ui { + +/** Represents an item in a status bar + + @see XStatusbarController + + @since LibreOffice 4.1 +*/ +interface XStatusbarItem +{ + /** the command of the status bar item + */ + [attribute, readonly] string Command; + + /** the unique ID of the control within the status bar + */ + [attribute, readonly] unsigned short ItemId; + + /** the width of the status bar item + */ + [attribute, readonly] unsigned long Width; + + /** the style of the status bar item + +

The following values apply for a status bar item:

+ + + @see ItemStyle + */ + [attribute, readonly] unsigned short Style; + + /** the offset between this status bar item and the following + */ + [attribute, readonly] long Offset; + + /** the rectangle on the status bar device onto which the item is drawn + + @see XStatusbarController::paint() + */ + [attribute, readonly] com::sun::star::awt::Rectangle ItemRect; + + /** the text of status bar item + */ + [attribute] string Text; + + /** the help text of the status bar item when extended help tips are on + */ + [attribute] string HelpText; + + /** the help text of the status bar item when help tips are on + */ + [attribute] string QuickHelpText; + + /** the accesible name of the status bar item + */ + [attribute] string AccessibleName; + + /** whether the item is visible or not + */ + [attribute] boolean Visible; + + /** forces repainting the item onto the status bar device + + @see XStatusbarController::paint() + */ + void repaint(); +}; + +}; }; }; }; + +#endif -- cgit v1.2.3