summaryrefslogtreecommitdiff
path: root/offapi
diff options
context:
space:
mode:
authorLaurent Godard <lgodard.libre@laposte.net>2015-04-30 16:56:14 +0200
committerTomaž Vajngerl <quikee@gmail.com>2015-06-22 04:59:07 +0000
commita64999511ae654131d997eec9a3d78478cfc1c75 (patch)
treee2a06cde98747c7f8b1eb409f9c7b1918582c897 /offapi
parentd16e154c627ecc0cb21aaf4b28f7f5ae48ebbde1 (diff)
new uno sidebar api tdf#91806
the entry point is SfxBaseController::getSidebar() the Decks and panels are now per SidebarController and not global anymore ' macro example Sub testSidebarApi controller = thisComponent.currentcontroller frameIni = thisComponent.currentcontroller.frame sidebar = thisComponent.currentcontroller.getSidebar() sidebar.setVisible(true) frame = sidebar.getFrame() decks = sidebar.getdecks() c = decks.count h = decks.hasElements() e = decks.getElementNames() a = decks.hasByName("MyDeck") deck = decks.getByName("MyDeck") deck.activate(true) t = deck.getTitle() deck.setTitle("new deck title") deck.moveFirst() deck.moveLast() deck.moveUp() deck.moveDown() index = deck.getOrderIndex() panels = deck.getPanels() ep = panels.getElementnames() ap = panels.hasByName("aPanelName") panel = panels.getByName("aPanelName") panel.setTitle("new panel title") panel.collapse() panel.expand(true) ' expand and collapse other index = panel.getOrderIndex() panel.moveLast() panel.moveFirst() panel.moveDown() panel.moveUp() End Sub Change-Id: I7a4b953f2277dea483bb296ba6ead35de7205ace Reviewed-on: https://gerrit.libreoffice.org/15856 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Tomaž Vajngerl <quikee@gmail.com> Tested-by: Tomaž Vajngerl <quikee@gmail.com>
Diffstat (limited to 'offapi')
-rw-r--r--offapi/UnoApi_offapi.mk5
-rw-r--r--offapi/com/sun/star/frame/XController2.idl5
-rw-r--r--offapi/com/sun/star/ui/XDeck.idl90
-rw-r--r--offapi/com/sun/star/ui/XDecks.idl32
-rw-r--r--offapi/com/sun/star/ui/XPanel.idl92
-rw-r--r--offapi/com/sun/star/ui/XPanels.idl34
-rw-r--r--offapi/com/sun/star/ui/XSidebarProvider.idl61
7 files changed, 319 insertions, 0 deletions
diff --git a/offapi/UnoApi_offapi.mk b/offapi/UnoApi_offapi.mk
index 97f4f3e3321c..fd1b03a58118 100644
--- a/offapi/UnoApi_offapi.mk
+++ b/offapi/UnoApi_offapi.mk
@@ -4020,6 +4020,11 @@ $(eval $(call gb_UnoApi_add_idlfiles,offapi,com/sun/star/ui,\
XModuleUIConfigurationManagerSupplier \
XSidebar \
XSidebarPanel \
+ XPanel \
+ XPanels \
+ XDeck \
+ XDecks \
+ XSidebarProvider \
XStatusbarItem \
XToolPanel \
XUIConfiguration \
diff --git a/offapi/com/sun/star/frame/XController2.idl b/offapi/com/sun/star/frame/XController2.idl
index bd4eaba16482..400b7aea68da 100644
--- a/offapi/com/sun/star/frame/XController2.idl
+++ b/offapi/com/sun/star/frame/XController2.idl
@@ -23,6 +23,7 @@
#include <com/sun/star/frame/XController.idl>
#include <com/sun/star/awt/XWindow.idl>
#include <com/sun/star/beans/PropertyValue.idl>
+#include <com/sun/star/ui/XSidebarProvider.idl>
module com { module sun { module star { module frame {
@@ -60,6 +61,10 @@ interface XController2 : XController
*/
[readonly, attribute] sequence< ::com::sun::star::beans::PropertyValue >
CreationArguments;
+
+ /** get the sidebar if exists
+ */
+ ::com::sun::star::ui::XSidebarProvider getSidebar();
};
diff --git a/offapi/com/sun/star/ui/XDeck.idl b/offapi/com/sun/star/ui/XDeck.idl
new file mode 100644
index 000000000000..53b739703587
--- /dev/null
+++ b/offapi/com/sun/star/ui/XDeck.idl
@@ -0,0 +1,90 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * 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/.
+ *
+ */
+#ifndef __com_sun_star_ui_XDeck_idl__
+#define __com_sun_star_ui_XDeck_idl__
+
+#include <com/sun/star/ui/XPanels.idl>
+
+
+ module com { module sun { module star { module ui {
+
+/** provides access to Desk */
+
+interface XDeck
+
+{
+ /** The deck identifier
+ */
+ string getId();
+
+ /** Get the deck title string
+ */
+ string getTitle();
+
+ /** Set the deck title string
+
+ @param newTitle
+ The new title string
+ */
+ void setTitle( [in] string newTitle );
+
+ /** Is the deck the active one
+ */
+ boolean isActive();
+
+ /** Activate the deck and isplays its content
+
+ @param bActivate
+ The requested state for the deck
+ <ul>
+ <li>TRUE sets the deck as the active one</li>
+ <li>FALSE hide the deck and defaults to the first deck of the sidebar</li>
+ </ul>
+ */
+ void activate( [in] boolean bActivate );
+
+ /** Get the ordering index of the deck button in sidebar
+ */
+ long getOrderIndex();
+
+ /** Set the ordering index of the deck button in sidebar
+
+ @param newOrderIndex
+ The new position
+ */
+ void setOrderIndex( [in] long newOrderIndex );
+
+ /** Move deck button at first position in sidebar
+ */
+ void moveFirst();
+
+ /** Move deck button at last position in sidebar
+ */
+ void moveLast();
+
+ /** Move deck one step up in the sidebar
+ */
+ void moveUp();
+
+ /** Move deck one step down in the sidebar
+ */
+ void moveDown();
+
+ /** Panels collection attached to the deck
+ */
+ com::sun::star::ui::XPanels getPanels();
+};
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ \ No newline at end of file
diff --git a/offapi/com/sun/star/ui/XDecks.idl b/offapi/com/sun/star/ui/XDecks.idl
new file mode 100644
index 000000000000..ba7c3a7f3107
--- /dev/null
+++ b/offapi/com/sun/star/ui/XDecks.idl
@@ -0,0 +1,32 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * 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/.
+ *
+ */
+#ifndef __com_sun_star_ui_XDecks_idl__
+#define __com_sun_star_ui_XDecks_idl__
+
+#include <com/sun/star/container/XIndexAccess.idl>
+#include <com/sun/star/container/XNameAccess.idl>
+
+ module com { module sun { module star { module ui {
+
+/** provides access to Desks of a Sidebar.*/
+
+interface XDecks
+
+{
+ interface com::sun::star::container::XIndexAccess;
+ interface com::sun::star::container::XNameAccess;
+};
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ \ No newline at end of file
diff --git a/offapi/com/sun/star/ui/XPanel.idl b/offapi/com/sun/star/ui/XPanel.idl
new file mode 100644
index 000000000000..0070d2356cca
--- /dev/null
+++ b/offapi/com/sun/star/ui/XPanel.idl
@@ -0,0 +1,92 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * 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/.
+ *
+ */
+#ifndef __com_sun_star_ui_XPanel_idl__
+#define __com_sun_star_ui_XPanel_idl__
+
+#include <com/sun/star/ui/XPanel.idl>
+#include <com/sun/star/awt/XWindow.idl>
+
+
+ module com { module sun { module star { module ui {
+
+/** provides access to Desk */
+
+interface XPanel
+
+{
+ /** The panel identifier
+ */
+ string getId();
+
+ /** Get the panel title string
+ */
+ string getTitle();
+
+ /** Set the panel title string
+
+ @param newTitle
+ The new title string
+ */
+ void setTitle( [in] string newTitle );
+
+ /** Is the panel expanded
+ */
+ boolean isExpanded();
+
+ /** Collapse the panel to only show its title bar
+ */
+ void collapse ();
+
+ /** Expand and display the panel
+
+ @param bCollapseOther
+ <ul>
+ <li>TRUE collapse all other panels of the deck</li>
+ <li>FALSE do not change other panels state</li>
+ </ul>
+ */
+ void expand ( [in] boolean bCollapseOther );
+
+ /** Get the ordering index of the panel in the deck
+ */
+ long getOrderIndex();
+
+ /** Set the ordering index of the panel in the deck
+ */
+ void setOrderIndex( [in] long newOrderIndex );
+
+ /** Move panel as first item of the deck
+ */
+ void moveFirst();
+
+ /** Move panel as last item of the deck
+ **/
+ void moveLast();
+
+ /** Move panel one step up in the deck
+ */
+ void moveUp();
+
+ /** Move the panel one step down in the deck
+ */
+ void moveDown();
+
+ /** Get the panel dialog element
+ */
+ com::sun::star::awt::XWindow getDialog();
+
+};
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ \ No newline at end of file
diff --git a/offapi/com/sun/star/ui/XPanels.idl b/offapi/com/sun/star/ui/XPanels.idl
new file mode 100644
index 000000000000..a2aa85103e46
--- /dev/null
+++ b/offapi/com/sun/star/ui/XPanels.idl
@@ -0,0 +1,34 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * 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/.
+ *
+ */
+#ifndef __com_sun_star_ui_XPanels_idl__
+#define __com_sun_star_ui_XPanels_idl__
+
+#include <com/sun/star/container/XIndexAccess.idl>
+#include <com/sun/star/container/XNameAccess.idl>
+
+ module com { module sun { module star { module ui {
+
+/** provides access to Panels of a Deck.*/
+
+interface XPanels
+
+{
+ interface com::sun::star::container::XIndexAccess;
+ interface com::sun::star::container::XNameAccess;
+
+ string getDeckId();
+};
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ \ No newline at end of file
diff --git a/offapi/com/sun/star/ui/XSidebarProvider.idl b/offapi/com/sun/star/ui/XSidebarProvider.idl
new file mode 100644
index 000000000000..370925ec8084
--- /dev/null
+++ b/offapi/com/sun/star/ui/XSidebarProvider.idl
@@ -0,0 +1,61 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * 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/.
+ *
+ */
+#ifndef __com_sun_star_ui_XSidebarProvider_idl__
+#define __com_sun_star_ui_XSidebarProvider_idl__
+
+#include <com/sun/star/uno/XInterface.idl>
+#include <com/sun/star/frame/XFrame.idl>
+#include <com/sun/star/awt/XWindow2.idl>
+
+#include <com/sun/star/ui/XDecks.idl>
+
+
+module com { module sun { module star { module ui {
+
+/** Interface of the sidebar
+*/
+interface XSidebarProvider: com::sun::star::uno::XInterface
+{
+ /** Display the sidebar
+
+ @param bVisible
+ the requested visible state
+ */
+ void setVisible ( [in] boolean bVisible);
+
+ /** Is the sidebar visible
+ */
+ boolean isVisible();
+
+ /** Get the XFrame owner
+ */
+ com::sun::star::frame::XFrame getFrame();
+
+ /* Decks collection attached to the sidebar
+ */
+ com::sun::star::ui::XDecks getDecks();
+
+ /** Decks container visibility
+
+ @param bVisible
+ the requested visible state
+ <ul>
+ <li>FALSE collapses the deck container horizontally. Then Only shows the deck TabBar selector</li>
+ <li>TRUE expands the deck container and show active Deck content</li>
+ </ul>
+ */
+ void showDecks([in] boolean bVisible);
+} ;
+
+} ; } ; } ; } ;
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */