/* -*- 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" interface nsIPrincipal; [scriptable, uuid(d446bede-fcf7-403d-b6b6-5fd67b19ba58)] interface nsIAlertsService : nsISupports { /** * Displays a sliding notification window. * * @param imageUrl A URL identifying the image to put in the alert. * The OS X implemenation limits the amount of time it * will wait for an icon to load to six seconds. After * that time the alert will show with no icon. * @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 Android and OS X. On Android the name is * hashed and used as a notification ID. Notifications * will replace previous notifications with the same name. * @param dir Bidi override for the title. Valid values are * "auto", "ltr" or "rtl". Only available on supported * platforms. * @param lang Language of title and text of the alert. Only available * on supported platforms. * @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 * "alertshow" when the alert is shown * 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, [optional] in AString dir, [optional] in AString lang, [optional] in AString data, [optional] in nsIPrincipal principal); /** * Close alerts created by the service. * * @param name The name of the notification to close. If no name * is provided then only a notification created with * no name (if any) will be closed. */ void closeAlert([optional] in AString name, [optional] in nsIPrincipal principal); }; [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); };