diff options
author | Ariel Constenla-Haile <arielch@apache.org> | 2012-12-06 12:28:31 +0000 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2013-05-21 14:01:17 +0100 |
commit | 418118e8be4d71f6359333961f9e4cbe9c12a246 (patch) | |
tree | 1ec7b18535f33879a10a69ebc0a0221713f1fb4c /offapi | |
parent | 7de47fe4ce076695a654198cf2c81ce3021d2cfb (diff) |
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
Diffstat (limited to 'offapi')
-rw-r--r-- | offapi/UnoApi_offapi.mk | 1 | ||||
-rw-r--r-- | offapi/com/sun/star/ui/XStatusbarItem.idl | 110 |
2 files changed, 111 insertions, 0 deletions
diff --git a/offapi/UnoApi_offapi.mk b/offapi/UnoApi_offapi.mk index 61a25c119fcd..ac61fc68f639 100644 --- a/offapi/UnoApi_offapi.mk +++ b/offapi/UnoApi_offapi.mk @@ -3974,6 +3974,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 <com/sun/star/awt/Rectangle.idl> + +module com { module sun { module star { module ui { + +/** Represents an item in a status bar + + @see <type scope="com::sun::star::frame">XStatusbarController</type> + + @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 + + <p>The following values apply for a status bar item:</p> + <ul> + <li>Alignment + <ul> + <li><member scope="com::sun::star::ui">ItemStyle::ALIGN_LEFT</member></li> + <li><member scope="com::sun::star::ui">ItemStyle::ALIGN_CENTER</member></li> + <li><member scope="com::sun::star::ui">ItemStyle::ALIGN_RIGHT</member></li> + </ul> + </li> + <li>Drawing + <ul> + <li><member scope="com::sun::star::ui">ItemStyle::DRAW_OUT3D</member></li> + <li><member scope="com::sun::star::ui">ItemStyle::DRAW_IN3D</member></li> + <li><member scope="com::sun::star::ui">ItemStyle::DRAW_FLAT</member></li> + </ul> + </li> + <li><member scope="com::sun::star::ui">ItemStyle::AUTO_SIZE</member></li> + <li><member scope="com::sun::star::ui">ItemStyle::OWNER_DRAW</member></li> + </ul> + + @see <type scope="com::sun::star::ui">ItemStyle</type> + */ + [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 <member scope="com::sun::star::frame">XStatusbarController::paint()</member> + */ + [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 <member scope="com::sun::star::frame">XStatusbarController::paint()</member> + */ + void repaint(); +}; + +}; }; }; }; + +#endif |