Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(68)

Unified Diff: chrome/browser/ui/cocoa/infobars/translate_infobar_base.mm

Issue 10952016: Simplify the translate infobar code some. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 8 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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 {

Powered by Google App Engine
This is Rietveld 408576698