Uno sidebar API proposal

Laurent Godard lgodard.libre at laposte.net
Wed Apr 29 01:06:15 PDT 2015


Hi all

The libreoffice sidebar can be enhanced by adding Decks and Panels via 
extensions
Unfortunatelly, there is no available UNO API to easily manipulate the 
sidebar, the decks, the panels once deployed

So I plan to write some (first ideas at the end of the mail)
(targeting calc & writer for the moment)

i did some premiminary PoC using the existing sfx2/sidebar stuff
There seems to be some limitations and i'll probably have to rework this

for example, only the current active deck object is available. deck 
seems to be rebuilt at each changes
why such a choice ?
would it be too costly to build/store all the desks/panels

I would like your opinion about the approach and be assured that this 
work will be not dropped (if i succeed as my skills are limited)

I'll work on a separate branch and will follow carefully the GSoC 
related to this sidebar topic

Any comment welcomme

Laurent

'------------------
firs ideas on an UNO Sidebar API


* currenController or XComponent ?
     --> getSidebar --> see *currentSidebar

* currentSidebar
     --> enable/disable : show or hides the sidebar (as menu view > sidebar)
     --> getDesks --> see *Desks
     --> getEnabledDesksNames
     --> getActiveDesk --> see *Desk

* Desks
     --> count
     --> getByName --> see *Desk
     --> getByindex --> see *Desk

* Desk
     --> show/hide (or activate ?)
     --> enable/disable (same as the checkboxes of the sidebar 
customization dropdown menu)
     --> setIndex : to control the dispaly order of desks icons ? moves 
down the other ? only for custom desks (deployed by extension) to 
preserve built-in desks layout ?
     --> getPanels --> see *Panels
     --> some properties (name, label, context ...)

* Panels
     --> count
     --> getByName --> see *Panel
     --> getByindex --> see *Panel

* Panel
     --> expand/collapse (with option for collapsing all the other if 
expand)
     --> setIndex : to control the display order of panels in the deck ? 
moves down the other ?
     --> getDialog : get the dialog object to be able to access UI controls
     --> some properties (name, label, )


More information about the LibreOffice mailing list