| Index: chrome/browser/ui/cocoa/translate/translate_bubble_controller.mm
|
| diff --git a/chrome/browser/ui/cocoa/translate/translate_bubble_controller.mm b/chrome/browser/ui/cocoa/translate/translate_bubble_controller.mm
|
| index 74d0f3b6a96f190cd3e0f456450c3ccb7a2a3d2b..2cbab0784e9c65c0c82781bec30fb92d5dbe4ded 100644
|
| --- a/chrome/browser/ui/cocoa/translate/translate_bubble_controller.mm
|
| +++ b/chrome/browser/ui/cocoa/translate/translate_bubble_controller.mm
|
| @@ -9,6 +9,7 @@
|
| #include "base/mac/foundation_util.h"
|
| #include "base/mac/scoped_nsobject.h"
|
| #include "base/macros.h"
|
| +#include "base/metrics/histogram_macros.h"
|
| #include "base/strings/sys_string_conversions.h"
|
| #import "chrome/browser/ui/cocoa/browser_window_controller.h"
|
| #import "chrome/browser/ui/cocoa/bubble_combobox.h"
|
| @@ -17,6 +18,7 @@
|
| #import "chrome/browser/ui/cocoa/toolbar/toolbar_controller.h"
|
| #include "chrome/browser/ui/translate/language_combobox_model.h"
|
| #include "chrome/browser/ui/translate/translate_bubble_model_impl.h"
|
| +#include "chrome/browser/ui/translate/translate_bubble_view_state_transition.h"
|
| #include "chrome/grit/generated_resources.h"
|
| #include "components/translate/core/browser/translate_ui_delegate.h"
|
| #include "content/public/browser/browser_context.h"
|
| @@ -91,11 +93,12 @@ const CGFloat kContentWidth = kWindowWidth - 2 * kFramePadding;
|
| action:(SEL)action
|
| toView:(NSView*)view;
|
| - (NSButton*)addCheckbox:(NSString*)title
|
| + action:(SEL)action
|
| toView:(NSView*)view;
|
| - (NSPopUpButton*)addPopUpButton:(ui::ComboboxModel*)model
|
| action:(SEL)action
|
| toView:(NSView*)view;
|
| -- (void)handleNopeButtonPressed;
|
| +- (void)handleAlwaysTranslateCheckboxPressed;
|
| - (void)handleDoneButtonPressed;
|
| - (void)handleCancelButtonPressed;
|
| - (void)handleShowOriginalButtonPressed;
|
| @@ -426,7 +429,9 @@ const CGFloat kContentWidth = kWindowWidth - 2 * kFramePadding;
|
| if (!isIncognitoWindow) {
|
| NSString* title =
|
| l10n_util::GetNSStringWithFixup(IDS_TRANSLATE_BUBBLE_ALWAYS);
|
| + action = @selector(handleAlwaysTranslateCheckboxPressed);
|
| alwaysTranslateCheckbox_ = [self addCheckbox:title
|
| + action:action
|
| toView:view];
|
| }
|
|
|
| @@ -567,6 +572,7 @@ const CGFloat kContentWidth = kWindowWidth - 2 * kFramePadding;
|
| }
|
|
|
| - (NSButton*)addCheckbox:(NSString*)title
|
| + action:(SEL)action
|
| toView:(NSView*)view {
|
| base::scoped_nsobject<NSButton> button(
|
| [[NSButton alloc] initWithFrame:NSZeroRect]);
|
| @@ -575,6 +581,8 @@ const CGFloat kContentWidth = kWindowWidth - 2 * kFramePadding;
|
| [[button cell] setControlSize:NSSmallControlSize];
|
| [button setButtonType:NSSwitchButton];
|
| [button sizeToFit];
|
| + [button setTarget:self];
|
| + [button setAction:action];
|
|
|
| [view addSubview:button.get()];
|
|
|
| @@ -596,16 +604,19 @@ const CGFloat kContentWidth = kWindowWidth - 2 * kFramePadding;
|
| }
|
|
|
| - (void)handleTranslateButtonPressed {
|
| + translate::ReportUiAction(translate::TRANSLATE_BUTTON_CLICKED);
|
| translateExecuted_ = YES;
|
| model_->Translate();
|
| }
|
|
|
| -- (void)handleNopeButtonPressed {
|
| - model_->DeclineTranslation();
|
| - [self close];
|
| +- (void)handleAlwaysTranslateCheckboxPressed {
|
| + translate::ReportUiAction([alwaysTranslateCheckbox_ state] == NSOnState
|
| + ? translate::ALWAYS_TRANSLATE_CHECKED
|
| + : translate::ALWAYS_TRANSLATE_UNCHECKED);
|
| }
|
|
|
| - (void)handleDoneButtonPressed {
|
| + translate::ReportUiAction(translate::DONE_BUTTON_CLICKED);
|
| if (alwaysTranslateCheckbox_) {
|
| model_->SetAlwaysTranslate(
|
| [alwaysTranslateCheckbox_ state] == NSOnState);
|
| @@ -621,43 +632,51 @@ const CGFloat kContentWidth = kWindowWidth - 2 * kFramePadding;
|
| }
|
|
|
| - (void)handleCancelButtonPressed {
|
| + translate::ReportUiAction(translate::CANCEL_BUTTON_CLICKED);
|
| model_->GoBackFromAdvanced();
|
| [self performLayout];
|
| }
|
|
|
| - (void)handleShowOriginalButtonPressed {
|
| + translate::ReportUiAction(translate::SHOW_ORIGINAL_BUTTON_CLICKED);
|
| model_->RevertTranslation();
|
| [self close];
|
| }
|
|
|
| - (void)handleAdvancedLinkButtonPressed {
|
| + translate::ReportUiAction(translate::ADVANCED_LINK_CLICKED);
|
| [self switchView:TranslateBubbleModel::VIEW_STATE_ADVANCED];
|
| }
|
|
|
| - (void)handleDenialPopUpButtonNopeSelected {
|
| + translate::ReportUiAction(translate::NOPE_MENU_CLICKED);
|
| model_->DeclineTranslation();
|
| [self close];
|
| }
|
|
|
| - (void)handleDenialPopUpButtonNeverTranslateLanguageSelected {
|
| + translate::ReportUiAction(translate::NEVER_TRANSLATE_LANGUAGE_MENU_CLICKED);
|
| model_->DeclineTranslation();
|
| model_->SetNeverTranslateLanguage(true);
|
| [self close];
|
| }
|
|
|
| - (void)handleDenialPopUpButtonNeverTranslateSiteSelected {
|
| + translate::ReportUiAction(translate::NEVER_TRANSLATE_SITE_MENU_CLICKED);
|
| model_->DeclineTranslation();
|
| model_->SetNeverTranslateSite(true);
|
| [self close];
|
| }
|
|
|
| - (void)handleSourceLanguagePopUpButtonSelectedItemChanged:(id)sender {
|
| + translate::ReportUiAction(translate::SOURCE_LANGUAGE_MENU_CLICKED);
|
| NSPopUpButton* button = base::mac::ObjCCastStrict<NSPopUpButton>(sender);
|
| model_->UpdateOriginalLanguageIndex([button indexOfSelectedItem]);
|
| [self updateAdvancedView];
|
| }
|
|
|
| - (void)handleTargetLanguagePopUpButtonSelectedItemChanged:(id)sender {
|
| + translate::ReportUiAction(translate::TARGET_LANGUAGE_MENU_CLICKED);
|
| NSPopUpButton* button = base::mac::ObjCCastStrict<NSPopUpButton>(sender);
|
| model_->UpdateTargetLanguageIndex([button indexOfSelectedItem]);
|
| [self updateAdvancedView];
|
|
|