LibreOffice
LibreOffice 7.4 SDK API Reference
Public Member Functions | List of all members
XInfobarProvider Interface Reference

Allows to add Infobars to a frame. More...

import"XInfobarProvider.idl";

Inheritance diagram for XInfobarProvider:
XInterface

Public Member Functions

void appendInfobar ([in] string id, [in] string primaryMessage, [in] string secondaryMessage, [in] long infobarType, [in] sequence< com::sun::star::beans::StringPair > actionButtons, [in] boolean showCloseButton) raises (com::sun::star::lang::IllegalArgumentException)
 Creates and displays a new Infobar. More...
 
void updateInfobar ([in] string id, [in] string primaryMessage, [in] string secondaryMessage, [in] long infobarType) raises (com::sun::star::container::NoSuchElementException)
 Updates an existing Infobar. More...
 
void removeInfobar ([in] string id) raises (com::sun::star::container::NoSuchElementException)
 Removes an existing Infobar. More...
 
boolean hasInfobar ([in] string id)
 Check if Infobar exists. More...
 
- Public Member Functions inherited from XInterface
any queryInterface ([in] type aType)
 queries for a new interface to an existing UNO object. More...
 
void acquire ()
 increases the reference counter by one. More...
 
void release ()
 decreases the reference counter by one. More...
 

Detailed Description

Allows to add Infobars to a frame.

This interface can be obtained via com::sun::star::frame::XController.

Since
LibreOffice 6.4

Member Function Documentation

◆ appendInfobar()

void appendInfobar ( [in] string  id,
[in] string  primaryMessage,
[in] string  secondaryMessage,
[in] long  infobarType,
[in] sequence< com::sun::star::beans::StringPair actionButtons,
[in] boolean  showCloseButton 
)
raises (com::sun::star::lang::IllegalArgumentException
)

Creates and displays a new Infobar.

Parameters
idThe ID by which this Infobar is recognized. You can remove the Infobar afterwards using this ID.
primaryMessageThe (short) primary message. Will appear at the start of the infobar in bold letters. May be empty.
secondaryMessageThe (longer) secondary message. Will appear in normal letters after the primaryMessage
infobarTypeThe type of the Infobar. See com::sun::star::frame::InfobarType for possible values.
actionButtonsA sequence of action buttons. The buttons will be added from Right to Left at the right side of the info bar. Each button is represented by a com::sun::star::beans::StringPair. StringPair::First represents the button label, while StringPair::Second represents the button URL which will be called on button click. The URL can be any URL, either external (http://libreoffice.org), or internal (.uno:Save), or from your extension (service:your.example.Extension?anyAction).
showCloseButtonWhether the Close (x) button is shown at the end of the Infobar. Set to false, when you don't want the user to close the Infobar.
Exceptions
com::sun::star::lang::IllegalArgumentExceptionIf an Infobar with the same ID already exists, or infobarType contains an invalid value.

The example below adds a new infobar named MyInfoBar with type INFO and close (x) button.

Sub AddInfobar
Dim buttons(1) as new com.sun.star.beans.StringPair
buttons(0).first = "Close doc"
buttons(0).second = ".uno:CloseDoc"
buttons(1).first = "Paste into doc"
buttons(1).second = ".uno:Paste"
ThisComponent.getCurrentController().appendInfobar("MyInfoBar", "Hello world", "Things happened. What now?", com.sun.star.frame.InfobarType.INFO, buttons, true)
End Sub

◆ hasInfobar()

boolean hasInfobar ( [in] string  id)

Check if Infobar exists.

Parameters
idThe ID which was used when creating this Infobar.
Since
LibreOffice 7.0
Function HasMyInfobar as boolean
hasMyInfoBar = ThisComponent.getCurrentController().hasInfobar("MyInfoBar")
End Function

◆ removeInfobar()

void removeInfobar ( [in] string  id)
raises (com::sun::star::container::NoSuchElementException
)

Removes an existing Infobar.

Parameters
idThe ID which was used when creating this Infobar.
Exceptions
com::sun::star::container::NoSuchElementExceptionIf no such Infobar exists (it might have been closed by the user already)

Remove MyInfoBar infobar

Sub RemoveInfobar
ThisComponent.getCurrentController().removeInfobar("MyInfoBar")
End Sub

◆ updateInfobar()

void updateInfobar ( [in] string  id,
[in] string  primaryMessage,
[in] string  secondaryMessage,
[in] long  infobarType 
)
raises (com::sun::star::container::NoSuchElementException
)

Updates an existing Infobar.

Use if you want to update only small parts of the Infobar.

See also
appendInfobar for parameter documentation.
Exceptions
com::sun::star::container::NoSuchElementExceptionIf no such Infobar exists (it might have been closed by the user already)
com::sun::star::lang::IllegalArgumentExceptionIf infobarType contains an invalid value.

Update the infobar and change the type to WARNING

Sub UpdateInfobar
ThisComponent.getCurrentController().updateInfobar("MyInfoBar", "WARNING","Do not read this message.", com.sun.star.frame.InfobarType.WARNING)
End Sub

The documentation for this interface was generated from the following file: