diff options
author | Samuel Mehrbrodt <samuel.mehrbrodt@allotropia.de> | 2022-03-14 10:04:17 +0100 |
---|---|---|
committer | Samuel Mehrbrodt <samuel.mehrbrodt@allotropia.de> | 2022-03-25 10:27:06 +0100 |
commit | b54d0d262bbafbc08efd1cbc93af61b786f89821 (patch) | |
tree | 20178ace8e1eb8f391c7454ae610275d1b8d8a0c /offapi/com/sun/star | |
parent | Use sal::systools::COMReference in getAdoDatalink (diff) | |
download | core-b54d0d262bbafbc08efd1cbc93af61b786f89821.tar.gz core-b54d0d262bbafbc08efd1cbc93af61b786f89821.zip |
Add UNO API for custom Jump Lists
Allows adding custom jump list categories to Windows Task Bar
Change-Id: I13b6c3ad5de386cf74e2b346f10889bc46a8ad4e
Diffstat (limited to 'offapi/com/sun/star')
-rwxr-xr-x | offapi/com/sun/star/system/windows/JumpList.idl | 33 | ||||
-rwxr-xr-x | offapi/com/sun/star/system/windows/JumpListItem.idl | 45 | ||||
-rwxr-xr-x | offapi/com/sun/star/system/windows/XJumpList.idl | 88 |
3 files changed, 166 insertions, 0 deletions
diff --git a/offapi/com/sun/star/system/windows/JumpList.idl b/offapi/com/sun/star/system/windows/JumpList.idl new file mode 100755 index 000000000000..82becd522b69 --- /dev/null +++ b/offapi/com/sun/star/system/windows/JumpList.idl @@ -0,0 +1,33 @@ +/* -*- 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/. + */ + +#ifndef __com_sun_star_system_windows_JumpList_idl__ +#define __com_sun_star_system_windows_JumpList_idl__ + + +module com { module sun { module star { module system { module windows { + + +interface XJumpList; + +/** Specifies a Jump List service. Allows to add custom commands to the Windows Jump List. + + @since LibreOffice 7.4 + + @see com::sun::star::system::windows::XJumpList +*/ + +service JumpList : XJumpList; + + +}; }; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s cinkeys+=0=break: */ diff --git a/offapi/com/sun/star/system/windows/JumpListItem.idl b/offapi/com/sun/star/system/windows/JumpListItem.idl new file mode 100755 index 000000000000..310e5551911a --- /dev/null +++ b/offapi/com/sun/star/system/windows/JumpListItem.idl @@ -0,0 +1,45 @@ +/* -*- 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/. + */ + +#ifndef __com_sun_star_system_windows_JumpListItem_idl__ +#define __com_sun_star_system_windows_JumpListItem_idl__ + +#include <com/sun/star/uno/XInterface.idl> +#include <com/sun/star/lang/IllegalArgumentException.idl> +#include <com/sun/star/uno/Sequence.idl> + + +module com { module sun { module star { module system { module windows { + +/** Specifies an item for com::sun::star::system::windows::XJumpList . + + @since LibreOffice 7.4 +*/ + +struct JumpListItem +{ + /** Item name. Appears in the JumpList. Has to be unique per category. */ + string name; + + /** Item description, appears as tooltip */ + string description; + + /** Arguments to be passed to LibreOffice. + This can be a file to be loaded, or any command line parameter supported by LibreOffice, and any combination of the two. */ + string arguments; + + /** Icon to be displayed along the name. This should be a local path name like `C:\path\to\icon` */ + string iconPath; +}; + +}; }; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s cinkeys+=0=break: */ diff --git a/offapi/com/sun/star/system/windows/XJumpList.idl b/offapi/com/sun/star/system/windows/XJumpList.idl new file mode 100755 index 000000000000..c483149e5dd8 --- /dev/null +++ b/offapi/com/sun/star/system/windows/XJumpList.idl @@ -0,0 +1,88 @@ +/* -*- 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/. + */ + +#ifndef __com_sun_star_system_windows_XJumpList_idl__ +#define __com_sun_star_system_windows_XJumpList_idl__ + +#include <com/sun/star/uno/XInterface.idl> +#include <com/sun/star/lang/IllegalArgumentException.idl> +#include <com/sun/star/system/SystemShellExecuteException.idl> + + +module com { module sun { module star { module system { module windows { + +/** Specifies an interface for adding custom jump lists to the task bar (Windows only) + + @since LibreOffice 7.4 +*/ +interface XJumpList: com::sun::star::uno::XInterface +{ + /** Add a jump list category + + @param category + Specifies the category name. It will appear as the title of the custom jump list. + + @param jumpListItems + Specifies a list of com::sun::star::system::JumpListItem. + These will be added as entries below the category name in the custom jump list. + Make sure you don't add items which the user has removed before + (check the result of `getRemovedItems` before updating a category). + + @param application + Used to map the jump list to the correct application. Use one of the following values: + <ul> + <li>Writer</li> + <li>Calc</li> + <li>Impress</li> + <li>Draw</li> + <li>Math</li> + <li>Base</li> + <li>Startcenter</li> + </ul> + + "Startcenter" will map to the generic "LibreOffice" icon. + + @throws com::sun::star::lang::IllegalArgumentException + When an empty category name, or an invalid application name is given. + */ + void appendCategory( [in] string category, + [in] sequence<com::sun::star::system::windows::JumpListItem> jumpListItems, + [in] string application ) + raises( ::com::sun::star::lang::IllegalArgumentException ); + + /** Returns items that were removed from the jump list by the user. + + `appendCategory` will fail if you try to reinsert an item which was removed by the user before. + Use this method to learn which items were removed by the user. + + @param application + Used to map the jump list to the correct application. Use one of the following values: + <ul> + <li>Writer</li> + <li>Calc</li> + <li>Impress</li> + <li>Draw</li> + <li>Math</li> + <li>Base</li> + <li>Startcenter</li> + </ul> + + "Startcenter" will map to the generic "LibreOffice" icon. + + @return List of removed items. + */ + sequence<com::sun::star::system::windows::JumpListItem> getRemovedItems([in] string application); +}; + + +}; }; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s cinkeys+=0=break: */ |