/* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* 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/. */ #include "nsISupports.idl" #include "nsIObserver.idl" [scriptable, uuid(e177399e-2e31-4019-aed3-cba63ce9fa99)] interface nsIAlertsService : nsISupports { /** * Displays a sliding notification window. * * @param imageUrl A URL identifying the image to put in the alert. * @param title The title for the alert. * @param text The contents of the alert. * @param textClickable If true, causes the alert text to look like a link * and notifies the listener when user attempts to * click the alert text. * @param cookie A blind cookie the alert will pass back to the * consumer during the alert listener callbacks. * @param alertListener Used for callbacks. May be null if the caller * doesn't care about callbacks. * @param name The name of the notification. This is currently * only used on OS X with Growl and Android. * On OS X with Growl, users can disable notifications * with a given name. On Android the name is hashed * and used as a notification ID. * * @throws NS_ERROR_NOT_AVAILABLE If the notification cannot be displayed. * * The following arguments will be passed to the alertListener's observe() * method: * subject - null * topic - "alertfinished" when the alert goes away * "alertclickcallback" when the text is clicked * data - the value of the cookie parameter passed to showAlertNotification. * * @note Depending on current circumstances (if the user's in a fullscreen * application, for instance), the alert might not be displayed at all. * In that case, if an alert listener is passed in it will receive the * "alertfinished" notification immediately. */ void showAlertNotification(in AString imageUrl, in AString title, in AString text, [optional] in boolean textClickable, [optional] in AString cookie, [optional] in nsIObserver alertListener, [optional] in AString name); }; [scriptable, uuid(df1bd4b0-3a8c-40e6-806a-203f38b0bd9f)] interface nsIAlertsProgressListener : nsISupports { /** * Called to notify the alert service that progress has occurred for the * given notification previously displayed with showAlertNotification(). * * @param name The name of the notification displaying the * progress. On Android the name is hashed and used * as a notification ID. * @param progress Numeric value in the range 0 to progressMax * indicating the current progress. * @param progressMax Numeric value indicating the maximum progress. * @param text The contents of the alert. If not provided, * the percentage will be displayed. */ void onProgress(in AString name, in long long progress, in long long progressMax, [optional] in AString text); /** * Called to cancel and hide the given notification previously displayed * with showAlertNotification(). * * @param name The name of the notification. */ void onCancel(in AString name); };