office-gobmx/offapi/com/sun/star/frame/XInfobarProvider.idl
Stephan Bergmann 5687eba49f Drop obsolete preprocessor directives from UNOIDL files
...which were used by ildc, which is gone since
a8485d558f "[API CHANGE] Remove deprecated idlc
and regmerge from the SDK", and have always been ignored as legacy by its
unoidl-write replacement.

This change has been carried out (making use of GNU sed extensions) with

> for i in $(git ls-files \*.idl); do sed -i -z -E -e 's/\n\n((#[^\n]*\n)+\n)*(#[^\n]*\n)+\n?/\n\n/g' -e 's/\n(#[^\n]*\n)+/\n/g' "$i"; done && git checkout extensions/source/activex/so_activex.idl odk/examples/OLE/activex/so_activex.idl

which apparently happened to do the work.  (The final two files are not UNOIDL
source files.)

Change-Id: Ic9369e05d46e8f7e8a304ab01740b171b92335cd
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/135683
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2022-06-13 16:27:45 +02:00

137 lines
5 KiB
Text

/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4; fill-column: 100 -*- */
/*
* 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/.
*/
module com { module sun { module star { module frame {
/** Allows to add Infobars to a frame.
This interface can be obtained via com::sun::star::frame::XController.
@since LibreOffice 6.4
*/
interface XInfobarProvider: uno::XInterface
{
/** Creates and displays a new Infobar.
@param id
The ID by which this Infobar is recognized.
You can remove the Infobar afterwards using this ID.
@param primaryMessage
The (short) primary message.
Will appear at the start of the infobar in bold letters.
May be empty.
@param secondaryMessage
The (longer) secondary message.
Will appear in normal letters after the primaryMessage
@param infobarType
The type of the Infobar.
See com::sun::star::frame::InfobarType for possible values.
@param 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).
@param 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.
@throws com::sun::star::lang::IllegalArgumentException
If an Infobar with the same ID already exists, or infobarType contains an invalid value.
<p> The example below adds a new infobar named MyInfoBar with type INFO and close (x) button.</p>
@code{.bas}
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
@endcode
*/
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);
/** Updates an existing Infobar.
Use if you want to update only small parts of the Infobar.
@see appendInfobar for parameter documentation.
@throws com::sun::star::container::NoSuchElementException
If no such Infobar exists (it might have been closed by the user already)
@throws com::sun::star::lang::IllegalArgumentException
If infobarType contains an invalid value.
<p>Update the infobar and change the type to WARNING</p>
@code{.bas}
Sub UpdateInfobar
ThisComponent.getCurrentController().updateInfobar("MyInfoBar", "WARNING","Do not read this message.", com.sun.star.frame.InfobarType.WARNING)
End Sub
@endcode
*/
void updateInfobar(
[in] string id,
[in] string primaryMessage,
[in] string secondaryMessage,
[in] long infobarType)
raises(com::sun::star::container::NoSuchElementException);
/** Removes an existing Infobar.
@param id
The ID which was used when creating this Infobar.
@throws com::sun::star::container::NoSuchElementException
If no such Infobar exists (it might have been closed by the user already)
<p>Remove MyInfoBar infobar</p>
@code{.bas}
Sub RemoveInfobar
ThisComponent.getCurrentController().removeInfobar("MyInfoBar")
End Sub
@endcode
*/
void removeInfobar([in] string id) raises(com::sun::star::container::NoSuchElementException);
/** Check if Infobar exists.
@param id
The ID which was used when creating this Infobar.
@since LibreOffice 7.0
@code{.bas}
Function HasMyInfobar as boolean
hasMyInfoBar = ThisComponent.getCurrentController().hasInfobar("MyInfoBar")
End Function
@endcode
*/
boolean hasInfobar([in] string id);
};
}; }; }; };
/* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s cinkeys+=0=break: */