зеркало из https://github.com/mozilla/pjs.git
Bug #132643 --> land the animated alerts infrastructure from the ALERTS_SERVICE_BRANCH
These files aren't part of the windows build yet but they soon will be. r=sspitzer sr=hewitt a=asa
This commit is contained in:
Родитель
b61e6438ca
Коммит
711dc2fcaa
|
@ -0,0 +1,71 @@
|
||||||
|
/* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
||||||
|
/* ***** BEGIN LICENSE BLOCK *****
|
||||||
|
* Version: NPL 1.1/GPL 2.0/LGPL 2.1
|
||||||
|
*
|
||||||
|
* The contents of this file are subject to the Netscape Public License
|
||||||
|
* Version 1.1 (the "License"); you may not use this file except in
|
||||||
|
* compliance with the License. You may obtain a copy of the License at
|
||||||
|
* http://www.mozilla.org/NPL/
|
||||||
|
*
|
||||||
|
* Software distributed under the License is distributed on an "AS IS" basis,
|
||||||
|
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||||
|
* for the specific language governing rights and limitations under the
|
||||||
|
* License.
|
||||||
|
*
|
||||||
|
* The Original Code is mozilla.org code.
|
||||||
|
*
|
||||||
|
* The Initial Developer of the Original Code is
|
||||||
|
* Netscape Communications Corporation.
|
||||||
|
* Portions created by the Initial Developer are Copyright (C) 2002
|
||||||
|
* the Initial Developer. All Rights Reserved.
|
||||||
|
*
|
||||||
|
* Contributor(s):
|
||||||
|
* Scott MacGregor <mscott@netscape.com>
|
||||||
|
*
|
||||||
|
* Alternatively, the contents of this file may be used under the terms of
|
||||||
|
* either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||||
|
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||||
|
* in which case the provisions of the GPL or the LGPL are applicable instead
|
||||||
|
* of those above. If you wish to allow use of your version of this file only
|
||||||
|
* under the terms of either the GPL or the LGPL, and not to allow others to
|
||||||
|
* use your version of this file under the terms of the NPL, indicate your
|
||||||
|
* decision by deleting the provisions above and replace them with the notice
|
||||||
|
* and other provisions required by the GPL or the LGPL. If you do not delete
|
||||||
|
* the provisions above, a recipient may use your version of this file under
|
||||||
|
* the terms of any one of the NPL, the GPL or the LGPL.
|
||||||
|
*
|
||||||
|
* ***** END LICENSE BLOCK ***** */
|
||||||
|
|
||||||
|
|
||||||
|
#include "nsISupports.idl"
|
||||||
|
|
||||||
|
/* nsIAlertsListener --> when a consumer asks the alerts service to put up an alert, they have the option
|
||||||
|
of passing in an alert listener as well. The alert listener gets notified when the alert has gone away.
|
||||||
|
*/
|
||||||
|
[scriptable, uuid(A840623B-5B87-4e99-A74A-9EF0886C11DD)]
|
||||||
|
interface nsIAlertListener : nsISupports
|
||||||
|
{
|
||||||
|
void onAlertFinished(in wstring aAlertCookie);
|
||||||
|
void onAlertClickCallback(in wstring aAlertCookie); // if the user clicks on the link and you wanted notified....
|
||||||
|
};
|
||||||
|
|
||||||
|
[scriptable, uuid(7E8B76C6-A70C-4075-81AA-D48B6152E1B4)]
|
||||||
|
interface nsIAlertsService : nsISupports
|
||||||
|
{
|
||||||
|
/* showAlertNotification: shows an animated alert icon
|
||||||
|
aImageUrl --> a url identifying an image to put in the alert.
|
||||||
|
aAlertTitle --> the title text for the alert (i.e. You have New Mail)
|
||||||
|
aAlertText --> the contents of the alert
|
||||||
|
alertTextClickable --> set to true if you wish to be notified if the user attempts to click
|
||||||
|
the alert text. Also causes the alert text to look like a link.
|
||||||
|
aAlertCookie --> a blind cookie the alert will pass back to the consumer during the alert listener callbacks
|
||||||
|
*/
|
||||||
|
void showAlertNotification(in string aImageUrl, in wstring aAlertTitle,
|
||||||
|
in wstring aAlertText, in boolean alertTextClickable,
|
||||||
|
in wstring aAlertCookie,
|
||||||
|
in nsIAlertListener aAlertListener );
|
||||||
|
};
|
||||||
|
|
||||||
|
%{ C++
|
||||||
|
#define NS_ALERTSERVICE_CONTRACTID "@mozilla.org/alerts-service;1"
|
||||||
|
%}
|
|
@ -0,0 +1,137 @@
|
||||||
|
/* ***** BEGIN LICENSE BLOCK *****
|
||||||
|
* Version: NPL 1.1/GPL 2.0/LGPL 2.1
|
||||||
|
*
|
||||||
|
* The contents of this file are subject to the Netscape Public License
|
||||||
|
* Version 1.1 (the "License"); you may not use this file except in
|
||||||
|
* compliance with the License. You may obtain a copy of the License at
|
||||||
|
* http://www.mozilla.org/NPL/
|
||||||
|
*
|
||||||
|
* Software distributed under the License is distributed on an "AS IS" basis,
|
||||||
|
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||||
|
* for the specific language governing rights and limitations under the
|
||||||
|
* License.
|
||||||
|
*
|
||||||
|
* The Original Code is mozilla.org code.
|
||||||
|
*
|
||||||
|
* The Initial Developer of the Original Code is
|
||||||
|
* Netscape Communications Corporation.
|
||||||
|
* Portions created by the Initial Developer are Copyright (C) 1998
|
||||||
|
* the Initial Developer. All Rights Reserved.
|
||||||
|
*
|
||||||
|
* Contributor(s):
|
||||||
|
* Scott MacGregor <mscott@netscape.com>
|
||||||
|
*
|
||||||
|
* Alternatively, the contents of this file may be used under the terms of
|
||||||
|
* either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||||
|
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||||
|
* in which case the provisions of the GPL or the LGPL are applicable instead
|
||||||
|
* of those above. If you wish to allow use of your version of this file only
|
||||||
|
* under the terms of either the GPL or the LGPL, and not to allow others to
|
||||||
|
* use your version of this file under the terms of the NPL, indicate your
|
||||||
|
* decision by deleting the provisions above and replace them with the notice
|
||||||
|
* and other provisions required by the GPL or the LGPL. If you do not delete
|
||||||
|
* the provisions above, a recipient may use your version of this file under
|
||||||
|
* the terms of any one of the NPL, the GPL or the LGPL.
|
||||||
|
*
|
||||||
|
* ***** END LICENSE BLOCK ***** */
|
||||||
|
|
||||||
|
var gCurrentHeight = 0;
|
||||||
|
var gFinalHeight = 50;
|
||||||
|
var gWidth = 260;
|
||||||
|
var gSlideIncrement = 1;
|
||||||
|
var gSlideTime = 10;
|
||||||
|
var gOpenTime = 3000; // total time the alert should stay up once we are done animating.
|
||||||
|
|
||||||
|
var gAlertListener = null;
|
||||||
|
var gAlertTextClickable = false;
|
||||||
|
var gAlertCookie = "";
|
||||||
|
|
||||||
|
// fudge factor constants used to help guess a good width for the alert
|
||||||
|
var imageWidthFudgeFactor = 40; // an alert image should be 26 pixels wide plus a fudge factor
|
||||||
|
var alertTextFudgeMultiplier = 7;
|
||||||
|
|
||||||
|
function onAlertLoad()
|
||||||
|
{
|
||||||
|
// unwrap all the args....
|
||||||
|
// arguments[0] --> the image src url
|
||||||
|
// arguments[1] --> the alert title
|
||||||
|
// arguments[2] --> the alert text
|
||||||
|
// arguments[3] --> is the text clickable?
|
||||||
|
// arguments[4] --> the alert cookie to be passed back to the listener
|
||||||
|
// arguments[5] --> an optional callback listener (nsIAlertListener)
|
||||||
|
|
||||||
|
document.getElementById('alertImage').setAttribute('src', window.arguments[0]);
|
||||||
|
document.getElementById('alertTitleLabel').firstChild.nodeValue = window.arguments[1];
|
||||||
|
document.getElementById('alertTextLabel').firstChild.nodeValue = window.arguments[2];
|
||||||
|
gAlertTextClickable = window.arguments[3];
|
||||||
|
gAlertCookie = window.arguments[4];
|
||||||
|
|
||||||
|
// HACK: we need to make sure the alert is wide enough to cleanly hold the image
|
||||||
|
// plus the length of the text passed in. Unfortunately we currently have no way to convert
|
||||||
|
// .ems into pixels. So I'm "faking" this by multiplying the length of the alert text by a fudge
|
||||||
|
// factor. I'm then adding to that the width of the image + a small fudge factor.
|
||||||
|
window.outerWidth = imageWidthFudgeFactor + window.arguments[2].length * alertTextFudgeMultiplier;
|
||||||
|
|
||||||
|
if (gAlertTextClickable)
|
||||||
|
document.getElementById('alertTextLabel').setAttribute('clickable', true);
|
||||||
|
|
||||||
|
// the 5th argument is optional
|
||||||
|
if (window.arguments[5])
|
||||||
|
gAlertListener = window.arguments[5].QueryInterface(Components.interfaces.nsIAlertListener);
|
||||||
|
|
||||||
|
// read out our initial settings from prefs.
|
||||||
|
try
|
||||||
|
{
|
||||||
|
var prefService = Components.classes["@mozilla.org/preferences-service;1"].getService();
|
||||||
|
prefService = prefService.QueryInterface(Components.interfaces.nsIPrefService);
|
||||||
|
var prefBranch = prefService.getBranch(null);
|
||||||
|
gSlideIncrement = prefBranch.getIntPref("alerts.slideIncrement");
|
||||||
|
gSlideTime = prefBranch.getIntPref("alerts.slideIncrementTime");
|
||||||
|
gOpenTime = prefBranch.getIntPref("alerts.totalOpenTime");
|
||||||
|
gFinalHeight = prefBranch.getIntPref("alerts.height");
|
||||||
|
} catch (ex) {}
|
||||||
|
|
||||||
|
// offset the alert by 10 pixels from the far right edge of the screen
|
||||||
|
gWidth = window.outerWidth + 10;
|
||||||
|
|
||||||
|
window.moveTo(screen.availWidth, screen.availHeight); // move it offscreen initially
|
||||||
|
// force a resize on the window to make sure it is wide enough then after that, begin animating the alert.
|
||||||
|
setTimeout('window.resizeTo(gWidth - 10, 1);', 1);
|
||||||
|
setTimeout(animateAlert, 10);
|
||||||
|
}
|
||||||
|
|
||||||
|
function animateAlert()
|
||||||
|
{
|
||||||
|
if (gCurrentHeight < gFinalHeight)
|
||||||
|
{
|
||||||
|
gCurrentHeight += gSlideIncrement;
|
||||||
|
window.outerHeight = gCurrentHeight;
|
||||||
|
window.moveTo((screen.availWidth - gWidth), screen.availHeight - gCurrentHeight);
|
||||||
|
setTimeout(animateAlert, gSlideTime);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
setTimeout(closeAlert, gOpenTime);
|
||||||
|
}
|
||||||
|
|
||||||
|
function closeAlert()
|
||||||
|
{
|
||||||
|
if (gCurrentHeight)
|
||||||
|
{
|
||||||
|
gCurrentHeight -= gSlideIncrement;
|
||||||
|
window.outerHeight = gCurrentHeight;
|
||||||
|
window.moveTo((screen.availWidth - gWidth), screen.availHeight - gCurrentHeight);
|
||||||
|
setTimeout(closeAlert, gSlideTime);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (gAlertListener)
|
||||||
|
gAlertListener.onAlertFinished(gAlertCookie);
|
||||||
|
window.close();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function onAlertClick()
|
||||||
|
{
|
||||||
|
if (gAlertListener && gAlertTextClickable)
|
||||||
|
gAlertListener.onAlertClickCallback(gAlertCookie);
|
||||||
|
}
|
|
@ -0,0 +1,46 @@
|
||||||
|
<?xml version="1.0"?>
|
||||||
|
<!--
|
||||||
|
The contents of this file are subject to the Netscape Public
|
||||||
|
License Version 1.1 (the "License"); you may not use this file
|
||||||
|
except in compliance with the License. You may obtain a copy of
|
||||||
|
the License at http://www.mozilla.org/NPL/
|
||||||
|
|
||||||
|
Software distributed under the License is distributed on an "AS
|
||||||
|
IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
|
||||||
|
implied. See the License for the specific language governing
|
||||||
|
rights and limitations under the License.
|
||||||
|
|
||||||
|
The Original Code is Mozilla Communicator client code, released
|
||||||
|
March 31, 1998.
|
||||||
|
|
||||||
|
The Initial Developer of the Original Code is Netscape
|
||||||
|
Communications Corporation. Portions created by Netscape are
|
||||||
|
Copyright (C) 1998-1999 Netscape Communications Corporation. All
|
||||||
|
Rights Reserved.
|
||||||
|
-->
|
||||||
|
|
||||||
|
<?xml-stylesheet href="chrome://communicator/skin/alerts/alert.css" type="text/css"?>
|
||||||
|
|
||||||
|
<window id="alertNotification"
|
||||||
|
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
|
||||||
|
windowtype="alert:alert"
|
||||||
|
height="50"
|
||||||
|
onload="onAlertLoad()">
|
||||||
|
|
||||||
|
<script type="application/x-javascript" src="chrome://communicator/content/alerts/alert.js"/>
|
||||||
|
|
||||||
|
<hbox class="alertBox" flex="1">
|
||||||
|
|
||||||
|
<hbox class="alertImageBox" align="center" valign="center">
|
||||||
|
<image id="alertImage" autostretch="never"/>
|
||||||
|
</hbox>
|
||||||
|
|
||||||
|
<vbox flex="1">
|
||||||
|
<label id="alertTitleLabel" class="alertTitle plain">*</label>
|
||||||
|
<label id="alertTextLabel" class="alertText plain" flex="1" onclick="onAlertClick();">*</label>
|
||||||
|
</vbox>
|
||||||
|
|
||||||
|
</hbox>
|
||||||
|
|
||||||
|
</window>
|
||||||
|
|
|
@ -0,0 +1,123 @@
|
||||||
|
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode:nil; c-basic-offset: 2 -*- */
|
||||||
|
/* ***** BEGIN LICENSE BLOCK *****
|
||||||
|
* Version: NPL 1.1/GPL 2.0/LGPL 2.1
|
||||||
|
*
|
||||||
|
* The contents of this file are subject to the Netscape Public License
|
||||||
|
* Version 1.1 (the "License"); you may not use this file except in
|
||||||
|
* compliance with the License. You may obtain a copy of the License at
|
||||||
|
* http://www.mozilla.org/NPL/
|
||||||
|
*
|
||||||
|
* Software distributed under the License is distributed on an "AS IS" basis,
|
||||||
|
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||||
|
* for the specific language governing rights and limitations under the
|
||||||
|
* License.
|
||||||
|
*
|
||||||
|
* The Original Code is mozilla.org code.
|
||||||
|
*
|
||||||
|
* The Initial Developer of the Original Code is
|
||||||
|
* Netscape Communications Corporation.
|
||||||
|
* Portions created by the Initial Developer are Copyright (C) 2002
|
||||||
|
* the Initial Developer. All Rights Reserved.
|
||||||
|
*
|
||||||
|
* Contributor(s):
|
||||||
|
* Scott MacGregor <mscott@netscape.com>
|
||||||
|
*
|
||||||
|
* Alternatively, the contents of this file may be used under the terms of
|
||||||
|
* either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||||
|
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||||
|
* in which case the provisions of the GPL or the LGPL are applicable instead
|
||||||
|
* of those above. If you wish to allow use of your version of this file only
|
||||||
|
* under the terms of either the GPL or the LGPL, and not to allow others to
|
||||||
|
* use your version of this file under the terms of the NPL, indicate your
|
||||||
|
* decision by deleting the provisions above and replace them with the notice
|
||||||
|
* and other provisions required by the GPL or the LGPL. If you do not delete
|
||||||
|
* the provisions above, a recipient may use your version of this file under
|
||||||
|
* the terms of any one of the NPL, the GPL or the LGPL.
|
||||||
|
*
|
||||||
|
* ***** END LICENSE BLOCK ***** */
|
||||||
|
|
||||||
|
#include "nsAlertsService.h"
|
||||||
|
#include "nsISupportsArray.h"
|
||||||
|
#include "nsISupportsPrimitives.h"
|
||||||
|
#include "nsIServiceManager.h"
|
||||||
|
#include "nsIDOMWindowInternal.h"
|
||||||
|
#include "nsIWindowWatcher.h"
|
||||||
|
|
||||||
|
#define ALERT_CHROME_URL "chrome://communicator/content/alerts/alert.xul"
|
||||||
|
|
||||||
|
NS_IMPL_THREADSAFE_ADDREF(nsAlertsService);
|
||||||
|
NS_IMPL_THREADSAFE_RELEASE(nsAlertsService);
|
||||||
|
|
||||||
|
NS_INTERFACE_MAP_BEGIN(nsAlertsService)
|
||||||
|
NS_INTERFACE_MAP_ENTRY_AMBIGUOUS(nsISupports, nsIAlertsService)
|
||||||
|
NS_INTERFACE_MAP_ENTRY(nsIAlertsService)
|
||||||
|
NS_INTERFACE_MAP_END_THREADSAFE
|
||||||
|
|
||||||
|
nsAlertsService::nsAlertsService()
|
||||||
|
{
|
||||||
|
NS_INIT_ISUPPORTS();
|
||||||
|
}
|
||||||
|
|
||||||
|
nsAlertsService::~nsAlertsService()
|
||||||
|
{}
|
||||||
|
|
||||||
|
NS_IMETHODIMP nsAlertsService::ShowAlertNotification(const char * aImageUrl, const PRUnichar * aAlertTitle,
|
||||||
|
const PRUnichar * aAlertText, PRBool aAlertTextClickable,
|
||||||
|
const PRUnichar * aAlertCookie,
|
||||||
|
nsIAlertListener * aAlertListener)
|
||||||
|
{
|
||||||
|
nsCOMPtr<nsIWindowWatcher> wwatch(do_GetService("@mozilla.org/embedcomp/window-watcher;1"));
|
||||||
|
nsCOMPtr<nsIDOMWindow> newWindow;
|
||||||
|
nsresult rv;
|
||||||
|
|
||||||
|
nsCOMPtr<nsISupportsArray> argsArray;
|
||||||
|
rv = NS_NewISupportsArray(getter_AddRefs(argsArray));
|
||||||
|
NS_ENSURE_SUCCESS(rv, rv);
|
||||||
|
|
||||||
|
// create scriptable versions of our strings that we can store in our nsISupportsArray....
|
||||||
|
nsCOMPtr<nsISupportsString> scriptableImageUrl (do_CreateInstance(NS_SUPPORTS_STRING_CONTRACTID));
|
||||||
|
NS_ENSURE_TRUE(scriptableImageUrl, NS_ERROR_FAILURE);
|
||||||
|
|
||||||
|
scriptableImageUrl->SetData(aImageUrl);
|
||||||
|
argsArray->AppendElement(scriptableImageUrl);
|
||||||
|
|
||||||
|
nsCOMPtr<nsISupportsWString> scriptableAlertTitle (do_CreateInstance(NS_SUPPORTS_WSTRING_CONTRACTID));
|
||||||
|
NS_ENSURE_TRUE(scriptableAlertTitle, NS_ERROR_FAILURE);
|
||||||
|
|
||||||
|
scriptableAlertTitle->SetData(aAlertTitle);
|
||||||
|
argsArray->AppendElement(scriptableAlertTitle);
|
||||||
|
|
||||||
|
nsCOMPtr<nsISupportsWString> scriptableAlertText (do_CreateInstance(NS_SUPPORTS_WSTRING_CONTRACTID));
|
||||||
|
NS_ENSURE_TRUE(scriptableAlertText, NS_ERROR_FAILURE);
|
||||||
|
|
||||||
|
scriptableAlertText->SetData(aAlertText);
|
||||||
|
argsArray->AppendElement(scriptableAlertText);
|
||||||
|
|
||||||
|
nsCOMPtr<nsISupportsPRBool> scriptableIsClickable (do_CreateInstance(NS_SUPPORTS_PRBOOL_CONTRACTID));
|
||||||
|
NS_ENSURE_TRUE(scriptableIsClickable, NS_ERROR_FAILURE);
|
||||||
|
|
||||||
|
scriptableIsClickable->SetData(aAlertTextClickable);
|
||||||
|
argsArray->AppendElement(scriptableIsClickable);
|
||||||
|
|
||||||
|
nsCOMPtr<nsISupportsWString> scriptableAlertCookie (do_CreateInstance(NS_SUPPORTS_WSTRING_CONTRACTID));
|
||||||
|
NS_ENSURE_TRUE(scriptableAlertCookie, NS_ERROR_FAILURE);
|
||||||
|
|
||||||
|
scriptableAlertCookie->SetData(aAlertCookie);
|
||||||
|
argsArray->AppendElement(scriptableAlertCookie);
|
||||||
|
|
||||||
|
if (aAlertListener)
|
||||||
|
{
|
||||||
|
nsCOMPtr<nsISupportsInterfacePointer> ifptr = do_CreateInstance(NS_SUPPORTS_INTERFACE_POINTER_CONTRACTID, &rv);
|
||||||
|
NS_ENSURE_SUCCESS(rv, rv);
|
||||||
|
|
||||||
|
nsCOMPtr<nsISupports> iSupports (do_QueryInterface(aAlertListener));
|
||||||
|
ifptr->SetData(iSupports);
|
||||||
|
ifptr->SetDataIID(&NS_GET_IID(nsIAlertListener));
|
||||||
|
argsArray->AppendElement(ifptr);
|
||||||
|
}
|
||||||
|
|
||||||
|
rv = wwatch->OpenWindow(0, ALERT_CHROME_URL, "_blank",
|
||||||
|
"chrome,dialog=yes,titlebar=no,popup=yes", argsArray,
|
||||||
|
getter_AddRefs(newWindow));
|
||||||
|
return rv;
|
||||||
|
}
|
|
@ -0,0 +1,59 @@
|
||||||
|
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
||||||
|
/* ***** BEGIN LICENSE BLOCK *****
|
||||||
|
* Version: NPL 1.1/GPL 2.0/LGPL 2.1
|
||||||
|
*
|
||||||
|
* The contents of this file are subject to the Netscape Public License
|
||||||
|
* Version 1.1 (the "License"); you may not use this file except in
|
||||||
|
* compliance with the License. You may obtain a copy of the License at
|
||||||
|
* http://www.mozilla.org/NPL/
|
||||||
|
*
|
||||||
|
* Software distributed under the License is distributed on an "AS IS" basis,
|
||||||
|
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||||
|
* for the specific language governing rights and limitations under the
|
||||||
|
* License.
|
||||||
|
*
|
||||||
|
* The Original Code is mozilla.org code.
|
||||||
|
*
|
||||||
|
* The Initial Developer of the Original Code is
|
||||||
|
* Netscape Communications Corporation.
|
||||||
|
* Portions created by the Initial Developer are Copyright (C) 2002
|
||||||
|
* the Initial Developer. All Rights Reserved.
|
||||||
|
*
|
||||||
|
* Contributor(s):
|
||||||
|
* Scott MacGregor <mscott@netscape.com>
|
||||||
|
*
|
||||||
|
* Alternatively, the contents of this file may be used under the terms of
|
||||||
|
* either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||||
|
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||||
|
* in which case the provisions of the GPL or the LGPL are applicable instead
|
||||||
|
* of those above. If you wish to allow use of your version of this file only
|
||||||
|
* under the terms of either the GPL or the LGPL, and not to allow others to
|
||||||
|
* use your version of this file under the terms of the NPL, indicate your
|
||||||
|
* decision by deleting the provisions above and replace them with the notice
|
||||||
|
* and other provisions required by the GPL or the LGPL. If you do not delete
|
||||||
|
* the provisions above, a recipient may use your version of this file under
|
||||||
|
* the terms of any one of the NPL, the GPL or the LGPL.
|
||||||
|
*
|
||||||
|
* ***** END LICENSE BLOCK ***** */
|
||||||
|
|
||||||
|
#ifndef nsAlertsService_h__
|
||||||
|
#define nsAlertsService_h__
|
||||||
|
|
||||||
|
#include "nsIAlertsService.h"
|
||||||
|
#include "nsCOMPtr.h"
|
||||||
|
|
||||||
|
#define NS_ALERTSSERVICE_CID { 0xa0ccaaf8, 0x9da, 0x44d8, { 0xb2, 0x50, 0x9a, 0xc3, 0xe9, 0x3c, 0x81, 0x17 } }
|
||||||
|
|
||||||
|
class nsAlertsService : public nsIAlertsService
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
NS_DECL_NSIALERTSSERVICE
|
||||||
|
NS_DECL_ISUPPORTS
|
||||||
|
|
||||||
|
nsAlertsService();
|
||||||
|
virtual ~nsAlertsService();
|
||||||
|
|
||||||
|
protected:
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif /* nsAlertsService_h__ */
|
Загрузка…
Ссылка в новой задаче