summaryrefslogtreecommitdiff
path: root/offapi
diff options
context:
space:
mode:
authorAriel Constenla-Haile <arielch@apache.org>2012-12-06 12:28:31 +0000
committerCaolán McNamara <caolanm@redhat.com>2013-05-21 14:01:17 +0100
commit418118e8be4d71f6359333961f9e4cbe9c12a246 (patch)
tree1ec7b18535f33879a10a69ebc0a0221713f1fb4c /offapi
parent7de47fe4ce076695a654198cf2c81ce3021d2cfb (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.mk1
-rw-r--r--offapi/com/sun/star/ui/XStatusbarItem.idl110
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