summaryrefslogtreecommitdiff
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-22 11:34:35 +0100
commitb4fede4cb1fbf760386e1d2f21726334c0a96322 (patch)
tree46827ae0e072e62264df40032ba3bd91e4a830ab
parent7469c8901648879098fe668ebbd239c606342639 (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 (cherry picked from commit 418118e8be4d71f6359333961f9e4cbe9c12a246)
-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 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 <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