summaryrefslogtreecommitdiffstats
path: root/offapi/com/sun/star/system/windows/XJumpList.idl
blob: ddf9415243c29ca397e1c5c5014571c8d7b51a65 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
/* -*- 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)

    To add a new jump list, call
    1. XJumpList::beginList
    2. XJumpList::appendCategory / XJumpList::addTasks / XJumpList::showRecentFiles / XJumpList::showFrequentFiles
    3. XJumpList::commitList

    Use XJumpList::abortList to cancel a current list building session.
    Use XJumpList::getRemovedItems to see which items were removed by the user.

    @since LibreOffice 7.4
*/
interface XJumpList: com::sun::star::uno::XInterface
{
    /**
       Start a new jump list.

       @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 `application` is invalid

        @throws com::sun::star::util::InvalidStateException
        When there is already an open list.
     */
    void beginList([in] string application)
        raises( ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::util::InvalidStateException );

    /** Add a jump list category.

        Users can pin or remove items added via this method.
        Use XJumpList::getRemovedItems to see which items were removed by the user.

        @param category
        Specifies the category name. It will appear as the title of the custom jump list.
        Must not include embedded NULs ('\\0')

        @param jumpListItems
        Specifies a list of com::sun::star::system::JumpListItem.
        Must contain at least one item.
        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).
        If you try to add items which the user removed before,
        they will be silently ignored and not added to the list.

        @throws com::sun::star::lang::IllegalArgumentException
        When one of the following applies:
        <ul>
            <li>`category` is empty</li>
            <li>`jumpListItems` is empty or contains only items which were removed by the user</li>
        </ul>

        @throws com::sun::star::util::InvalidStateException
        When there is no open list.
    */
    void appendCategory( [in] string category,
                         [in] sequence<com::sun::star::system::windows::JumpListItem> jumpListItems )
        raises( ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::util::InvalidStateException );

    /** Add items to the "Tasks" category. This category is system-defined and the category title cannot be changed.
        Also the user cannot remove or pin items from this category (as he can with items added via XJumpList::appendCategory ).

        @param jumpListItems
        Specifies a list of com::sun::star::system::JumpListItem.
        Must contain at least one item.
        These will be added as entries below the "Tasks" system category.

        @throws com::sun::star::lang::IllegalArgumentException
        When `jumpListItems` is empty

        @throws com::sun::star::util::InvalidStateException
        When there is no open list.
    */
    void addTasks([in] sequence<com::sun::star::system::windows::JumpListItem> jumpListItems)
        raises( ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::util::InvalidStateException );

    /** Display the recently used files (populated by LibreOffice)

        @throws com::sun::star::util::InvalidStateException
        When there is no open list.
     */
    void showRecentFiles()
        raises (::com::sun::star::util::InvalidStateException);

    /** Display the frequently used files (populated by LibreOffice)

        @throws com::sun::star::util::InvalidStateException
        When there is no open list.
     */
    void showFrequentFiles()
        raises (::com::sun::star::util::InvalidStateException);

    /**
        Commits the list.

        @throws com::sun::star::util::InvalidStateException
        When there is no open list.
     */
    void commitList()
        raises( ::com::sun::star::util::InvalidStateException );

    /**
        Aborts a list building session started with beginList.

        @throws com::sun::star::util::InvalidStateException
        When there is no open list.
     */
    void abortList()
        raises( ::com::sun::star::util::InvalidStateException );

    /** Deletes the Jump List for a certain application

        @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 `application` is invalid
    */
    void deleteList( [in] string application )
        raises( ::com::sun::star::lang::IllegalArgumentException );

    /** Returns items that were removed from the jump list by the user.

        `appendCategory` will ignore items which were 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: */