diff options
author | Laurent Godard <lgodard.libre@laposte.net> | 2015-04-30 16:56:14 +0200 |
---|---|---|
committer | Tomaž Vajngerl <quikee@gmail.com> | 2015-06-22 04:59:07 +0000 |
commit | a64999511ae654131d997eec9a3d78478cfc1c75 (patch) | |
tree | e2a06cde98747c7f8b1eb409f9c7b1918582c897 /offapi | |
parent | d16e154c627ecc0cb21aaf4b28f7f5ae48ebbde1 (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.mk | 5 | ||||
-rw-r--r-- | offapi/com/sun/star/frame/XController2.idl | 5 | ||||
-rw-r--r-- | offapi/com/sun/star/ui/XDeck.idl | 90 | ||||
-rw-r--r-- | offapi/com/sun/star/ui/XDecks.idl | 32 | ||||
-rw-r--r-- | offapi/com/sun/star/ui/XPanel.idl | 92 | ||||
-rw-r--r-- | offapi/com/sun/star/ui/XPanels.idl | 34 | ||||
-rw-r--r-- | offapi/com/sun/star/ui/XSidebarProvider.idl | 61 |
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: */ |