Change the default browser prompt to use "Yes" and "No" for button titles, and fix up nsAlertController methods to return standard cocoa button values.

This commit is contained in:
smfr%smfr.org 2005-09-10 23:39:19 +00:00
parent b917f6b7c5
commit 3d2e377a9f
6 changed files with 36 additions and 25 deletions

View File

@ -334,7 +334,8 @@ const int kReuseWindowOnAE = 2;
if (!browserWindow)
[self newWindow:self];
[self checkDefaultBrowser];
// delay the default browser check to give the first page time to load
[self performSelector:@selector(checkDefaultBrowser) withObject:nil afterDelay:2.0f];
}
- (NSApplicationTerminateReply)applicationShouldTerminate:(NSApplication *)sender
@ -448,12 +449,16 @@ const int kReuseWindowOnAE = 2;
{
nsAlertController* controller = [[nsAlertController alloc] init];
BOOL dontAskAgain = NO;
BOOL confirmed = [controller confirmCheck:nil
title:NSLocalizedString(@"DefaultBrowserTitle", nil)
text:NSLocalizedString(@"DefaultBrowserMessage", nil)
checkMsg:NSLocalizedString(@"DefaultBrowserChecboxTitle", nil)
checkValue:&dontAskAgain];
if (confirmed)
int result = [controller confirmCheckEx:nil // parent
title:NSLocalizedString(@"DefaultBrowserTitle", nil)
text:NSLocalizedString(@"DefaultBrowserMessage", nil)
button1:NSLocalizedString(@"DefaultBrowserAcceptButton", nil)
button2:NSLocalizedString(@"DefaultBrowserDenyButton", nil)
button3:nil
checkMsg:NSLocalizedString(@"DefaultBrowserChecboxTitle", nil)
checkValue:&dontAskAgain];
if (result == NSAlertDefaultReturn)
{
[[NSWorkspace sharedWorkspace] setDefaultBrowserWithIdentifier:myIdentifier];
}

View File

@ -204,20 +204,28 @@ CocoaPromptService::ConfirmEx(nsIDOMWindow *parent,
CHBrowserView* browserView = [CHBrowserView browserViewFromDOMWindow:parent];
[browserView doBeforePromptDisplay];
int result;
if (checkValue) {
BOOL valueBool = *checkValue ? YES : NO;
*buttonPressed = [controller confirmCheckEx:[browserView getNativeWindow] title:titleStr text:textStr
result = [controller confirmCheckEx:[browserView getNativeWindow] title:titleStr text:textStr
button1: btn1Str button2: btn2Str button3: btn3Str
checkMsg:msgStr checkValue:&valueBool];
*checkValue = (valueBool == YES) ? PR_TRUE : PR_FALSE;
}
else {
*buttonPressed = [controller confirmEx:[browserView getNativeWindow] title:titleStr text:textStr
result = [controller confirmEx:[browserView getNativeWindow] title:titleStr text:textStr
button1: btn1Str button2: btn2Str button3: btn3Str];
}
switch (result)
{
case NSAlertDefaultReturn: *buttonPressed = 0; break;
default:
case NSAlertAlternateReturn: *buttonPressed = 1; break;
case NSAlertOtherReturn: *buttonPressed = 2; break;
}
[browserView doAfterPromptDismissal];
return NS_OK;

View File

@ -364,21 +364,19 @@ int KeychainPrefChangedCallback(const char* inPref, void* unused)
// actions for the buttons of the keychain prompt dialogs.
//
enum { kOKButton = 0, kCancelButton = 1, kOtherButton = 2 };
- (IBAction)hitButtonOK:(id)sender
{
[NSApp stopModalWithCode:kOKButton];
[NSApp stopModalWithCode:NSAlertDefaultReturn];
}
- (IBAction)hitButtonCancel:(id)sender
{
[NSApp stopModalWithCode:kCancelButton];
[NSApp stopModalWithCode:NSAlertAlternateReturn];
}
- (IBAction)hitButtonOther:(id)sender
{
[NSApp stopModalWithCode:kOtherButton];
[NSApp stopModalWithCode:NSAlertOtherReturn];
}
//
@ -408,7 +406,7 @@ enum { kOKButton = 0, kCancelButton = 1, kOtherButton = 2 };
{
int result = [NSApp runModalForWindow:confirmChangePasswordPanel relativeToWindow:parent];
[confirmChangePasswordPanel close];
return (result == kOKButton);
return (result == NSAlertDefaultReturn);
}

View File

@ -52,6 +52,7 @@
- (BOOL)confirm:(NSWindow*)parent title:(NSString*)title text:(NSString*)text;
- (BOOL)confirmCheck:(NSWindow*)parent title:(NSString*)title text:(NSString*)text checkMsg:(NSString*)checkMsg checkValue:(BOOL*)checkValue;
// these return NSAlertDefaultReturn, NSAlertAlternateReturn or NSAlertOtherReturn
- (int)confirmEx:(NSWindow*)parent title:(NSString*)title text:(NSString*)text
button1:(NSString*)btn1 button2:(NSString*)btn2 button3:(NSString*)btn3;
- (int)confirmCheckEx:(NSWindow*)parent title:(NSString*)title text:(NSString*)text

View File

@ -38,7 +38,6 @@
#import "nsAlertController.h"
#import "CHBrowserService.h"
enum { kOKButton = 0, kCancelButton = 1, kOtherButton = 2 };
const int kMinDialogWidth = 500;
const int kMaxDialogHeight = 400;
@ -117,17 +116,17 @@ const int kLabelCheckboxAdjustment = 2; // # pixels the label must be pushed dow
- (IBAction)hitButton1:(id)sender
{
[NSApp stopModalWithCode:kOKButton];
[NSApp stopModalWithCode:NSAlertDefaultReturn];
}
- (IBAction)hitButton2:(id)sender
{
[NSApp stopModalWithCode:kCancelButton];
[NSApp stopModalWithCode:NSAlertAlternateReturn];
}
- (IBAction)hitButton3:(id)sender
{
[NSApp stopModalWithCode:kOtherButton];
[NSApp stopModalWithCode:NSAlertOtherReturn];
}
- (void)alert:(NSWindow*)parent title:(NSString*)title text:(NSString*)text
@ -174,7 +173,7 @@ const int kLabelCheckboxAdjustment = 2; // # pixels the label must be pushed dow
[panel close];
return (result == kOKButton);
return (result == NSAlertDefaultReturn);
}
- (BOOL)confirmCheck:(NSWindow*)parent title:(NSString*)title text:(NSString*)text checkMsg:(NSString*)checkMsg checkValue:(BOOL*)checkValue
@ -203,7 +202,7 @@ const int kLabelCheckboxAdjustment = 2; // # pixels the label must be pushed dow
*checkValue = ([checkBox state] == NSOnState);
[panel close];
return (result == kOKButton);
return (result == NSAlertDefaultReturn);
}
- (int)confirmEx:(NSWindow*)parent title:(NSString*)title text:(NSString*)text button1:(NSString*)btn1 button2:(NSString*)btn2 button3:(NSString*)btn3
@ -295,7 +294,7 @@ const int kLabelCheckboxAdjustment = 2; // # pixels the label must be pushed dow
if (doCheck)
*checkValue = ([checkBox state] == NSOnState);
return (result == kOKButton);
return (result == NSAlertDefaultReturn);
}
@ -355,7 +354,7 @@ const int kLabelCheckboxAdjustment = 2; // # pixels the label must be pushed dow
if (doCheck)
*checkValue = ([checkBox state] == NSOnState);
return (result == kOKButton);
return (result == NSAlertDefaultReturn);
}
- (BOOL)promptPassword:(NSWindow*)parent title:(NSString*)title text:(NSString*)text passwordText:(NSMutableString*)passwordText
@ -405,7 +404,7 @@ const int kLabelCheckboxAdjustment = 2; // # pixels the label must be pushed dow
if (doCheck)
*checkValue = ([checkBox state] == NSOnState);
return (result == kOKButton);
return (result == NSAlertDefaultReturn);
}