Chromium Code Reviews| Index: chrome/browser/ui/cocoa/infobars/translate_infobar_base.mm |
| =================================================================== |
| --- chrome/browser/ui/cocoa/infobars/translate_infobar_base.mm (revision 154486) |
| +++ chrome/browser/ui/cocoa/infobars/translate_infobar_base.mm (working copy) |
| @@ -101,15 +101,7 @@ |
| - (id)initWithDelegate:(InfoBarDelegate*)delegate |
| owner:(InfoBarService*)owner { |
| - if ((self = [super initWithDelegate:delegate owner:owner])) { |
| - originalLanguageMenuModel_.reset( |
| - new LanguagesMenuModel([self delegate], |
| - LanguagesMenuModel::ORIGINAL)); |
| - |
| - targetLanguageMenuModel_.reset( |
| - new LanguagesMenuModel([self delegate], |
| - LanguagesMenuModel::TARGET)); |
| - } |
| + [super initWithDelegate:delegate owner:owner]; |
|
Peter Kasting
2012/09/19 00:42:02
Can we just get rid of this function entirely or s
sail
2012/09/19 02:13:31
Yep!
Peter Kasting
2012/09/19 02:37:26
OK, done.
|
| return self; |
| } |
| @@ -131,7 +123,7 @@ |
| fromLanguagePopUp_.reset([[NSPopUpButton alloc] initWithFrame:bogusFrame |
| pullsDown:NO]); |
| toLanguagePopUp_.reset([[NSPopUpButton alloc] initWithFrame:bogusFrame |
| - pullsDown:NO]); |
| + pullsDown:NO]); |
| showOriginalButton_.reset([[NSButton alloc] init]); |
| translateMessageButton_.reset([[NSButton alloc] init]); |
| } |
| @@ -141,7 +133,9 @@ |
| DCHECK_NE(TranslateInfoBarDelegate::kNoIndex, newLanguageIdxSizeT); |
| if (newLanguageIdxSizeT == [self delegate]->original_language_index()) |
| return; |
| - [self delegate]->SetOriginalLanguage(newLanguageIdxSizeT); |
| + [self delegate]->set_original_language_index(newLanguageIdxSizeT); |
| + if ([self delegate]->type() == TranslateInfoBarDelegate::AFTER_TRANSLATE) |
| + [self delegate]->Translate(); |
| int commandId = IDC_TRANSLATE_ORIGINAL_LANGUAGE_BASE + newLanguageIdx; |
| int newMenuIdx = [fromLanguagePopUp_ indexOfItemWithTag:commandId]; |
| [fromLanguagePopUp_ selectItemAtIndex:newMenuIdx]; |
| @@ -152,7 +146,9 @@ |
| DCHECK_NE(TranslateInfoBarDelegate::kNoIndex, newLanguageIdxSizeT); |
| if (newLanguageIdxSizeT == [self delegate]->target_language_index()) |
| return; |
| - [self delegate]->SetTargetLanguage(newLanguageIdxSizeT); |
| + [self delegate]->set_target_language_index(newLanguageIdxSizeT); |
| + if ([self delegate]->type() == TranslateInfoBarDelegate::AFTER_TRANSLATE) |
| + [self delegate]->Translate(); |
| int commandId = IDC_TRANSLATE_TARGET_LANGUAGE_BASE + newLanguageIdx; |
| int newMenuIdx = [toLanguagePopUp_ indexOfItemWithTag:commandId]; |
| [toLanguagePopUp_ selectItemAtIndex:newMenuIdx]; |
| @@ -241,18 +237,13 @@ |
| NSMenu* optionsMenu = [optionsPopUp_ menu]; |
| [optionsMenu setAutoenablesItems:NO]; |
| for (int i = 0; i < optionsMenuModel_->GetItemCount(); ++i) { |
| - NSString* title = base::SysUTF16ToNSString( |
| - optionsMenuModel_->GetLabelAt(i)); |
| - int cmd = optionsMenuModel_->GetCommandIdAt(i); |
| - bool checked = optionsMenuModel_->IsItemCheckedAt(i); |
| - bool enabled = optionsMenuModel_->IsEnabledAt(i); |
| AddMenuItem(optionsMenu, |
| self, |
| @selector(optionsMenuChanged:), |
| - title, |
| - cmd, |
| - enabled, |
| - checked); |
| + base::SysUTF16ToNSString(optionsMenuModel_->GetLabelAt(i)), |
| + optionsMenuModel_->GetCommandIdAt(i), |
| + optionsMenuModel_->IsEnabledAt(i), |
| + optionsMenuModel_->IsItemCheckedAt(i)); |
| } |
| } |
| @@ -263,50 +254,30 @@ |
| - (void)populateLanguageMenus { |
| NSMenu* originalLanguageMenu = [fromLanguagePopUp_ menu]; |
| [originalLanguageMenu setAutoenablesItems:NO]; |
| - int selectedMenuIndex = 0; |
| - int selectedLangIndex = |
| - static_cast<int>([self delegate]->original_language_index()); |
| - for (int i = 0; i < originalLanguageMenuModel_->GetItemCount(); ++i) { |
| - NSString* title = base::SysUTF16ToNSString( |
| - originalLanguageMenuModel_->GetLabelAt(i)); |
| - int cmd = originalLanguageMenuModel_->GetCommandIdAt(i); |
| - bool checked = (cmd == selectedLangIndex); |
| - if (checked) |
| - selectedMenuIndex = i; |
| - bool enabled = originalLanguageMenuModel_->IsEnabledAt(i); |
| - cmd += IDC_TRANSLATE_ORIGINAL_LANGUAGE_BASE; |
| + NSMenu* targetLanguageMenu = [toLanguagePopUp_ menu]; |
| + [targetLanguageMenu setAutoenablesItems:NO]; |
| + for (size_t i = 0; i < [self delegate]->num_languages(); ++i) { |
| + NSString* title = |
| + base::SysUTF16ToNSString([self delegate]->language_name_at(i)); |
| AddMenuItem(originalLanguageMenu, |
| self, |
| @selector(languageMenuChanged:), |
| title, |
| - cmd, |
| - enabled, |
| - checked); |
| - } |
| - [fromLanguagePopUp_ selectItemAtIndex:selectedMenuIndex]; |
| - |
| - NSMenu* targetLanguageMenu = [toLanguagePopUp_ menu]; |
| - [targetLanguageMenu setAutoenablesItems:NO]; |
| - selectedLangIndex = |
| - static_cast<int>([self delegate]->target_language_index()); |
| - for (int i = 0; i < targetLanguageMenuModel_->GetItemCount(); ++i) { |
| - NSString* title = base::SysUTF16ToNSString( |
| - targetLanguageMenuModel_->GetLabelAt(i)); |
| - int cmd = targetLanguageMenuModel_->GetCommandIdAt(i); |
| - bool checked = (cmd == selectedLangIndex); |
| - if (checked) |
| - selectedMenuIndex = i; |
| - bool enabled = targetLanguageMenuModel_->IsEnabledAt(i); |
| - cmd += IDC_TRANSLATE_TARGET_LANGUAGE_BASE; |
| + IDC_TRANSLATE_ORIGINAL_LANGUAGE_BASE + i, |
| + i != [self delegate]->target_language_index(), |
| + i == [self delegate]->original_language_index()); |
| AddMenuItem(targetLanguageMenu, |
| self, |
| @selector(languageMenuChanged:), |
| title, |
| - cmd, |
| - enabled, |
| - checked); |
| + IDC_TRANSLATE_TARGET_LANGUAGE_BASE + i, |
| + i != [self delegate]->original_language_index(), |
| + i == [self delegate]->target_language_index()); |
| } |
| - [toLanguagePopUp_ selectItemAtIndex:selectedMenuIndex]; |
| + [fromLanguagePopUp_ |
| + selectItemAtIndex:([self delegate]->original_language_index())]; |
| + [toLanguagePopUp_ |
| + selectItemAtIndex:([self delegate]->target_language_index())]; |
| } |
| - (void)addAdditionalControls { |