| // Copyright 2012 The Chromium Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| // Manages an app's system indicator icon, an image displayed in the system's |
| // menubar, system tray, or other visible area provided by the OS. |
| // This is modelled after the other extension action APIs, such as |
| // chrome.browserAction and chrome.pageAction. |
| namespace systemIndicator { |
| dictionary SetIconDetails { |
| any? path; |
| any? imageData; |
| }; |
| |
| callback DoneCallback = void (); |
| |
| interface Functions { |
| // Set the image to be used as an indicator icon, using a set of ImageData |
| // objects. These objects should have multiple resolutions so that an |
| // appropriate size can be selected for the given icon size and DPI scaling |
| // settings. Only square ImageData objects are accepted. |
| [supportsPromises] static void setIcon(SetIconDetails details, |
| optional DoneCallback callback); |
| |
| // Show the icon in the status tray. |
| static void enable(); |
| |
| // Hide the icon from the status tray. |
| static void disable(); |
| }; |
| |
| interface Events { |
| // Fired only when a click on the icon does not result in a menu being |
| // shown. |
| static void onClicked(); |
| }; |
| }; |