LibreOffice LibreOffice 24.2 SDK API Reference

Loading...
Searching...
No Matches
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:

## 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.
void | updateInfobar ([in] string id, [in] string primaryMessage, [in] string secondaryMessage, [in] long infobarType) raises (com::sun::star::container::NoSuchElementException)
| Updates an existing Infobar.
void | removeInfobar ([in] string id) raises (com::sun::star::container::NoSuchElementException)
| Removes an existing Infobar.
boolean | hasInfobar ([in] string id)
| Check if Infobar exists.
Public Member Functions inherited from XInterface
any | queryInterface ([in] type aType)
| queries for a new interface to an existing UNO object.
void | acquire ()
| increases the reference counter by one.
void | release ()
| decreases the reference counter by one.

## 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

  id | The ID by which this Infobar is recognized. You can remove the Infobar afterwards using this ID.
  primaryMessage | The (short) primary message. Will appear at the start of the infobar in bold letters. May be empty.
  secondaryMessage | The (longer) secondary message. Will appear in normal letters after the primaryMessage
  infobarType | The type of the Infobar. See com::sun::star::frame::InfobarType for possible values.
  actionButtons | A 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).
  showCloseButton | Whether 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::IllegalArgumentException | If 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

  id | The 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

  id | The ID which was used when creating this Infobar.

Exceptions

  com::sun::star::container::NoSuchElementException | If 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::NoSuchElementException | If no such Infobar exists (it might have been closed by the user already)
  com::sun::star::lang::IllegalArgumentException | If 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:

- com/sun/star/frame/XInfobarProvider.idl