Bug 1889091 - Part 4: Remove extra stack pointer move. r=jandem
[gecko.git] / widget / nsILegacyJumpListItem.idl
blob29011215ac0aef0c1e8e8b2dd47ab0d50a3fd01e
1 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2 /* This Source Code Form is subject to the terms of the Mozilla Public
3 * License, v. 2.0. If a copy of the MPL was not distributed with this
4 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
6 #include "nsISupports.idl"
8 interface nsIURI;
9 interface nsILocalHandlerApp;
10 interface nsIMutableArray;
12 /**
13 * Implements Win7 Taskbar jump list item interfaces.
15 * Note to consumers: it's reasonable to expect we'll need support for other types
16 * of jump list items (an audio file, an email message, etc.). To add types,
17 * create the specific interface here, add an implementation class to WinJumpListItem,
18 * and add support to addListBuild & removed items processing.
22 [scriptable, uuid(ACB8FB3C-E1B0-4044-8A50-E52C3E7C1057)]
23 interface nsILegacyJumpListItem : nsISupports
25 const short JUMPLIST_ITEM_EMPTY = 0; // Empty list item
26 const short JUMPLIST_ITEM_SEPARATOR = 1; // Separator
27 const short JUMPLIST_ITEM_LINK = 2; // Web link item
28 const short JUMPLIST_ITEM_SHORTCUT = 3; // Application shortcut
30 /**
31 * Retrieves the jump list item type.
33 readonly attribute short type;
35 /**
36 * Compare this item to another.
38 * Compares the type and other properties specific to this item's
39 * type.
41 * separator: type
42 * link: type, uri, title
43 * shortcut: type, handler app
45 boolean equals(in nsILegacyJumpListItem item);
48 /**
49 * A menu separator.
52 [scriptable, uuid(69A2D5C5-14DC-47da-925D-869E0BD64D27)]
53 interface nsILegacyJumpListSeparator : nsILegacyJumpListItem
55 /* nothing needed here */
58 /**
59 * A URI link jump list item.
61 * Note the application must be the registered protocol
62 * handler for the protocol of the link.
65 [scriptable, uuid(76EA47B1-C797-49b3-9F18-5E740A688524)]
66 interface nsILegacyJumpListLink : nsILegacyJumpListItem
68 /**
69 * Set or get the uri for this link item.
71 attribute nsIURI uri;
73 /**
74 * Set or get the title for a link item.
76 attribute AString uriTitle;
79 /**
80 * A generic application shortcut with command line support.
83 [scriptable, uuid(CBE3A37C-BCE1-4fec-80A5-5FFBC7F33EEA)]
84 interface nsILegacyJumpListShortcut : nsILegacyJumpListItem
86 /**
87 * Set or get the handler app for this shortcut item.
89 * The handler app may also be used along with iconIndex to generate an icon
90 * for the jump list item.
92 * @throw NS_ERROR_FILE_NOT_FOUND if the handler app can
93 * not be found on the system.
95 * @see faviconPageUri
97 attribute nsILocalHandlerApp app;
99 /**
100 * Set or get the icon displayed with the jump list item.
102 * Indicates the resource index of the icon contained within the handler
103 * executable which may be used as the jump list icon.
105 * @see faviconPageUri
107 attribute long iconIndex;
110 * Set or get the URI of a page whose favicon may be used as the icon.
112 * When a jump list build occurs, the favicon to be used for the item is
113 * obtained using the following steps:
114 * - First, attempt to use the asynchronously retrieved and scaled favicon
115 * associated with the faviconPageUri.
116 * - If faviconPageUri is null, or if retrieving the favicon fails, fall
117 * back to using the handler executable and iconIndex.
119 attribute nsIURI faviconPageUri;