Bug 463209 No sound when message box is opened (alert/confirm/prompt/etc...) r+sr=roc, ui-jboriss, a=beltzner

This commit is contained in:
Masayuki Nakano
2008-11-27 11:50:35 +09:00
parent 08c3f2cbc6
commit 6f10662c51
11 changed files with 108 additions and 25 deletions

View File

@@ -52,6 +52,7 @@
#include "nsString.h"
#include "nsIStringBundle.h"
#include "nsXPIDLString.h"
#include "nsISound.h"
static const char kPromptURL[] = "chrome://global/content/commonDialog.xul";
static const char kSelectPromptURL[] = "chrome://global/content/selectDialog.xul";
@@ -139,6 +140,7 @@ nsPromptService::Alert(nsIDOMWindow *parent,
nsString url;
NS_ConvertASCIItoUTF16 styleClass(kAlertIconClass);
block->SetString(eIconClass, styleClass.get());
block->SetString(eOpeningSound, NS_SYSSOUND_WARNING_DIALOG.get());
rv = DoDialog(parent, block, kPromptURL);
@@ -183,6 +185,7 @@ nsPromptService::AlertCheck(nsIDOMWindow *parent,
block->SetString(eIconClass, styleClass.get());
block->SetString(eCheckboxMsg, checkMsg);
block->SetInt(eCheckboxState, *checkValue);
block->SetString(eOpeningSound, NS_SYSSOUND_WARNING_DIALOG.get());
rv = DoDialog(parent, block, kPromptURL);
if (NS_FAILED(rv))
@@ -228,7 +231,8 @@ nsPromptService::Confirm(nsIDOMWindow *parent,
NS_ConvertASCIItoUTF16 styleClass(kQuestionIconClass);
block->SetString(eIconClass, styleClass.get());
block->SetString(eOpeningSound, NS_SYSSOUND_QUESTION_DIALOG.get());
rv = DoDialog(parent, block, kPromptURL);
if (NS_FAILED(rv))
return rv;
@@ -277,6 +281,7 @@ nsPromptService::ConfirmCheck(nsIDOMWindow *parent,
block->SetString(eIconClass, styleClass.get());
block->SetString(eCheckboxMsg, checkMsg);
block->SetInt(eCheckboxState, *checkValue);
block->SetString(eOpeningSound, NS_SYSSOUND_QUESTION_DIALOG.get());
rv = DoDialog(parent, block, kPromptURL);
if (NS_FAILED(rv))
@@ -376,8 +381,9 @@ nsPromptService::ConfirmEx(nsIDOMWindow *parent,
buttonFlags >>= 8;
}
block->SetInt(eNumberButtons, numberButtons);
block->SetString(eIconClass, NS_ConvertASCIItoUTF16(kQuestionIconClass).get());
block->SetString(eOpeningSound, NS_SYSSOUND_QUESTION_DIALOG.get());
if (checkMsg && checkValue) {
block->SetString(eCheckboxMsg, checkMsg);
@@ -453,6 +459,7 @@ nsPromptService::Prompt(nsIDOMWindow *parent,
block->SetString(eCheckboxMsg, checkMsg);
block->SetInt(eCheckboxState, *checkValue);
}
block->SetString(eOpeningSound, NS_SYSSOUND_QUESTION_DIALOG.get());
rv = DoDialog(parent, block, kPromptURL);
if (NS_FAILED(rv))
@@ -528,7 +535,8 @@ nsPromptService::PromptUsernameAndPassword(nsIDOMWindow *parent,
block->SetString(eCheckboxMsg, checkMsg);
block->SetInt(eCheckboxState, *checkValue);
}
block->SetString(eOpeningSound, NS_SYSSOUND_QUESTION_DIALOG.get());
rv = DoDialog(parent, block, kPromptURL);
if (NS_FAILED(rv))
return rv;
@@ -607,6 +615,7 @@ NS_IMETHODIMP nsPromptService::PromptPassword(nsIDOMWindow *parent,
block->SetString(eCheckboxMsg, checkMsg);
block->SetInt(eCheckboxState, *checkValue);
}
block->SetString(eOpeningSound, NS_SYSSOUND_QUESTION_DIALOG.get());
rv = DoDialog(parent, block, kPromptURL);
if (NS_FAILED(rv))
@@ -698,14 +707,15 @@ nsPromptService::Select(nsIDOMWindow *parent, const PRUnichar *dialogTitle,
if (NS_FAILED(rv))
return rv;
block->SetNumberStrings(count + 2);
block->SetNumberStrings(count + 3);
if (dialogTitle)
block->SetString(0, dialogTitle);
block->SetString(1, text);
block->SetString(2, NS_SYSSOUND_QUESTION_DIALOG.get());
block->SetInt(eSelection, count);
for (PRUint32 i = 2; i <= count+1; i++) {
nsAutoString temp(selectList[i-2]);
for (PRUint32 i = 3; i <= count+2; i++) {
nsAutoString temp(selectList[i-3]);
const PRUnichar* text = temp.get();
block->SetString(i, text);
}
@@ -741,6 +751,7 @@ nsPromptService::ShowNonBlockingAlert(nsIDOMWindow *aParent,
paramBlock->SetString(nsPIPromptService::eIconClass, NS_LITERAL_STRING("alert-icon").get());
paramBlock->SetString(nsPIPromptService::eDialogTitle, aDialogTitle);
paramBlock->SetString(nsPIPromptService::eMsg, aText);
paramBlock->SetString(eOpeningSound, NS_SYSSOUND_WARNING_DIALOG.get());
nsCOMPtr<nsIDOMWindow> dialog;
mWatcher->OpenWindow(aParent, "chrome://global/content/commonDialog.xul",