blob: 171afca4e17a340819c9386b318e23e84c64f30a [file] [log] [blame]
// Copyright 2013 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "chrome/browser/ui/views/translate/translate_icon_view.h"
#include "base/metrics/histogram_macros.h"
#include "base/strings/utf_string_conversions.h"
#include "chrome/app/chrome_command_ids.h"
#include "chrome/app/vector_icons/vector_icons.h"
#include "chrome/browser/ui/browser_command_controller.h"
#include "chrome/browser/ui/browser_commands.h"
#include "chrome/browser/ui/translate/translate_bubble_view_state_transition.h"
#include "chrome/browser/ui/view_ids.h"
#include "chrome/browser/ui/views/translate/translate_bubble_view.h"
#include "chrome/grit/generated_resources.h"
#include "components/translate/core/browser/language_state.h"
#include "ui/base/l10n/l10n_util.h"
#include "ui/base/resource/resource_bundle.h"
TranslateIconView::TranslateIconView(CommandUpdater* command_updater,
PageActionIconView::Delegate* delegate)
: PageActionIconView(command_updater, IDC_TRANSLATE_PAGE, delegate) {
DCHECK(delegate);
set_id(VIEW_ID_TRANSLATE_BUTTON);
}
TranslateIconView::~TranslateIconView() {}
views::BubbleDialogDelegateView* TranslateIconView::GetBubble() const {
return TranslateBubbleView::GetCurrentBubble();
}
bool TranslateIconView::Refresh() {
if (!GetWebContents())
return false;
const bool was_visible = visible();
const translate::LanguageState& language_state =
ChromeTranslateClient::FromWebContents(GetWebContents())
->GetLanguageState();
bool enabled = language_state.translate_enabled();
// Enable Translate page command or disable icon.
enabled &= SetCommandEnabled(enabled);
SetVisible(enabled);
if (!enabled)
TranslateBubbleView::CloseCurrentBubble();
return was_visible != visible();
}
void TranslateIconView::OnExecuting(
PageActionIconView::ExecuteSource execute_source) {}
void TranslateIconView::OnPressed(bool activated) {
translate::ReportUiAction(activated
? translate::PAGE_ACTION_ICON_ACTIVATED
: translate::PAGE_ACTION_ICON_DEACTIVATED);
}
const gfx::VectorIcon& TranslateIconView::GetVectorIcon() const {
return kTranslateIcon;
}
base::string16 TranslateIconView::GetTextForTooltipAndAccessibleName() const {
return l10n_util::GetStringUTF16(IDS_TOOLTIP_TRANSLATE);
}