OLD | NEW |
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "chrome/browser/platform_util.h" | 5 #include "chrome/browser/platform_util.h" |
6 | 6 |
7 #import <Cocoa/Cocoa.h> | 7 #import <Cocoa/Cocoa.h> |
8 | 8 |
9 #include "app/l10n_util.h" | 9 #include "app/l10n_util.h" |
10 #include "app/l10n_util_mac.h" | 10 #include "app/l10n_util_mac.h" |
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
56 // A reasonable approximation of how you'd expect this to behave. | 56 // A reasonable approximation of how you'd expect this to behave. |
57 return (view && | 57 return (view && |
58 ![view isHiddenOrHasHiddenAncestor] && | 58 ![view isHiddenOrHasHiddenAncestor] && |
59 [view window] && | 59 [view window] && |
60 [[view window] isVisible]); | 60 [[view window] isVisible]); |
61 } | 61 } |
62 | 62 |
63 void SimpleErrorBox(gfx::NativeWindow parent, | 63 void SimpleErrorBox(gfx::NativeWindow parent, |
64 const string16& title, | 64 const string16& title, |
65 const string16& message) { | 65 const string16& message) { |
| 66 // Ignore the title; it's the window title on other platforms and ignorable. |
66 NSAlert* alert = [[[NSAlert alloc] init] autorelease]; | 67 NSAlert* alert = [[[NSAlert alloc] init] autorelease]; |
67 [alert addButtonWithTitle:l10n_util::GetNSString(IDS_OK)]; | 68 [alert addButtonWithTitle:l10n_util::GetNSString(IDS_OK)]; |
68 [alert setMessageText:base::SysUTF16ToNSString(title)]; | 69 [alert setMessageText:base::SysUTF16ToNSString(message)]; |
69 [alert setInformativeText:base::SysUTF16ToNSString(message)]; | |
70 [alert setAlertStyle:NSWarningAlertStyle]; | 70 [alert setAlertStyle:NSWarningAlertStyle]; |
71 [alert runModal]; | 71 [alert runModal]; |
72 } | 72 } |
73 | 73 |
| 74 bool SimpleYesNoBox(gfx::NativeWindow parent, |
| 75 const string16& title, |
| 76 const string16& message) { |
| 77 // Ignore the title; it's the window title on other platforms and ignorable. |
| 78 NSAlert* alert = [[[NSAlert alloc] init] autorelease]; |
| 79 [alert setMessageText:base::SysUTF16ToNSString(message)]; |
| 80 [alert setAlertStyle:NSWarningAlertStyle]; |
| 81 |
| 82 [alert addButtonWithTitle: |
| 83 l10n_util::GetNSString(IDS_CONFIRM_MESSAGEBOX_YES_BUTTON_LABEL)]; |
| 84 [alert addButtonWithTitle: |
| 85 l10n_util::GetNSString(IDS_CONFIRM_MESSAGEBOX_NO_BUTTON_LABEL)]; |
| 86 |
| 87 NSInteger result = [alert runModal]; |
| 88 return result == NSAlertFirstButtonReturn; |
| 89 } |
| 90 |
74 string16 GetVersionStringModifier() { | 91 string16 GetVersionStringModifier() { |
75 #if defined(GOOGLE_CHROME_BUILD) | 92 #if defined(GOOGLE_CHROME_BUILD) |
76 // Use the main application bundle and not the framework bundle. Keystone | 93 // Use the main application bundle and not the framework bundle. Keystone |
77 // keys don't live in the framework. | 94 // keys don't live in the framework. |
78 NSBundle* bundle = [NSBundle mainBundle]; | 95 NSBundle* bundle = [NSBundle mainBundle]; |
79 NSString* channel = [bundle objectForInfoDictionaryKey:@"KSChannelID"]; | 96 NSString* channel = [bundle objectForInfoDictionaryKey:@"KSChannelID"]; |
80 | 97 |
81 // Only ever return "", "unknown", "beta" or "dev" in a branded build. | 98 // Only ever return "", "unknown", "beta" or "dev" in a branded build. |
82 if (![bundle objectForInfoDictionaryKey:@"KSProductID"]) { | 99 if (![bundle objectForInfoDictionaryKey:@"KSProductID"]) { |
83 // This build is not Keystone-enabled, it can't have a channel. | 100 // This build is not Keystone-enabled, it can't have a channel. |
84 channel = @"unknown"; | 101 channel = @"unknown"; |
85 } else if (!channel) { | 102 } else if (!channel) { |
86 // For the stable channel, KSChannelID is not set. | 103 // For the stable channel, KSChannelID is not set. |
87 channel = @""; | 104 channel = @""; |
88 } else if ([channel isEqual:@"beta"] || [channel isEqual:@"dev"]) { | 105 } else if ([channel isEqual:@"beta"] || [channel isEqual:@"dev"]) { |
89 // do nothing. | 106 // do nothing. |
90 } else { | 107 } else { |
91 channel = @"unknown"; | 108 channel = @"unknown"; |
92 } | 109 } |
93 | 110 |
94 return base::SysNSStringToUTF16(channel); | 111 return base::SysNSStringToUTF16(channel); |
95 #else | 112 #else |
96 return string16(); | 113 return string16(); |
97 #endif | 114 #endif |
98 } | 115 } |
99 | 116 |
100 } // namespace platform_util | 117 } // namespace platform_util |
OLD | NEW |