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

Unified Diff: chrome/browser/accessibility/invert_bubble_views.cc

Issue 10419002: browser: Move invert_bubble_views.{cc,h} into views/ directory. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years, 7 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/accessibility/invert_bubble_views.cc
diff --git a/chrome/browser/accessibility/invert_bubble_views.cc b/chrome/browser/accessibility/invert_bubble_views.cc
deleted file mode 100644
index 068d5089587466c109a7f488ff6f731a70bd7bff..0000000000000000000000000000000000000000
--- a/chrome/browser/accessibility/invert_bubble_views.cc
+++ /dev/null
@@ -1,168 +0,0 @@
-// Copyright (c) 2012 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 "base/utf_string_conversions.h"
-#include "chrome/browser/accessibility/invert_bubble_views.h"
-#include "chrome/browser/prefs/pref_service.h"
-#include "chrome/browser/profiles/profile.h"
-#include "chrome/browser/ui/browser.h"
-#include "chrome/browser/ui/browser_finder.h"
-#include "chrome/browser/ui/browser_list.h"
-#include "chrome/browser/ui/views/event_utils.h"
-#include "chrome/common/pref_names.h"
-#include "content/public/browser/page_navigator.h"
-#include "grit/generated_resources.h"
-#include "ui/base/l10n/l10n_util.h"
-#include "ui/base/resource/resource_bundle.h"
-#include "ui/gfx/sys_color_change_listener.h"
-#include "ui/views/bubble/bubble_delegate.h"
-#include "ui/views/controls/label.h"
-#include "ui/views/controls/link.h"
-#include "ui/views/controls/link_listener.h"
-#include "ui/views/layout/grid_layout.h"
-#include "ui/views/layout/layout_constants.h"
-
-namespace {
-const char kHighContrastExtensionUrl[] = "https://chrome.google.com/webstore/detail/djcfdncoelnlbldjfhinnjlhdjlikmph";
-const char kDarkThemeSearchUrl[] = "https://chrome.google.com/webstore/search-themes/dark";
-const char kLearnMoreUrl[] = "https://groups.google.com/a/googleproductforums.com/d/topic/chrome/Xrco2HsXS-8/discussion";
-const int kBubbleWidth = 500;
-} // namespace
-
-class InvertBubbleView : public views::BubbleDelegateView,
- public views::LinkListener {
- public:
- InvertBubbleView(Profile* profile, views::View* anchor_view);
- virtual ~InvertBubbleView();
-
- protected:
- // views::BubbleDelegateView overrides:
- virtual void Init() OVERRIDE;
-
- // views::BubbleDelegateView overrides:
- virtual gfx::Rect GetAnchorRect() OVERRIDE;
-
- // views::LinkListener overrides:
- virtual void LinkClicked(views::Link* source, int event_flags) OVERRIDE;
-
- void OpenLink(const std::string& url, int event_flags);
-
- Profile* profile_;
- views::Link* high_contrast_;
- views::Link* dark_theme_;
- views::Link* learn_more_;
- views::Link* close_;
-
- DISALLOW_COPY_AND_ASSIGN(InvertBubbleView);
-};
-
-InvertBubbleView::InvertBubbleView(Profile* profile, views::View* anchor_view)
- : views::BubbleDelegateView(anchor_view, views::BubbleBorder::TOP_LEFT),
- profile_(profile) {
-}
-
-InvertBubbleView::~InvertBubbleView() {
-}
-
-void InvertBubbleView::Init() {
- ResourceBundle& rb = ResourceBundle::GetSharedInstance();
- const gfx::Font& original_font = rb.GetFont(ResourceBundle::MediumFont);
-
- views::Label* title = new views::Label(
- l10n_util::GetStringUTF16(IDS_HIGH_CONTRAST_NOTIFICATION));
- title->SetFont(original_font.DeriveFont(2, gfx::Font::BOLD));
- title->SetMultiLine(true);
- title->SizeToFit(kBubbleWidth);
-
- learn_more_ = new views::Link(l10n_util::GetStringUTF16(IDS_LEARN_MORE));
- learn_more_->SetFont(original_font);
- learn_more_->set_listener(this);
-
- high_contrast_ =
- new views::Link(l10n_util::GetStringUTF16(IDS_HIGH_CONTRAST_EXT));
- high_contrast_->SetFont(original_font);
- high_contrast_->set_listener(this);
-
- dark_theme_ =
- new views::Link(l10n_util::GetStringUTF16(IDS_DARK_THEME));
- dark_theme_->SetFont(original_font);
- dark_theme_->set_listener(this);
-
- close_ = new views::Link(l10n_util::GetStringUTF16(IDS_CLOSE));
- close_->SetFont(original_font);
- close_->set_listener(this);
-
- views::GridLayout* layout = views::GridLayout::CreatePanel(this);
- SetLayoutManager(layout);
-
- views::ColumnSet* columns = layout->AddColumnSet(0);
- for (int i = 0; i < 4; i++) {
- columns->AddColumn(views::GridLayout::LEADING,
- views::GridLayout::LEADING, 0,
- views::GridLayout::USE_PREF, 0, 0);
- }
-
- layout->StartRow(0, 0);
- layout->AddView(title, 4, 1);
- layout->StartRowWithPadding(0, 0, 0,
- views::kRelatedControlSmallVerticalSpacing);
- layout->AddView(high_contrast_);
- layout->AddView(dark_theme_);
- layout->AddView(learn_more_);
- layout->AddView(close_);
-
- // Switching to high-contrast mode has a nasty habit of causing Chrome
- // top-level windows to lose focus, so closing the bubble on deactivate
- // makes it disappear before the user has even seen it. This forces the
- // user to close it explicitly, which should be okay because it affects
- // a small minority of users, and only once.
- set_close_on_deactivate(false);
- set_move_with_anchor(true);
-}
-
-gfx::Rect InvertBubbleView::GetAnchorRect() {
- // Set the height to 0 so we display the bubble at the top of the
- // anchor rect.
- gfx::Rect rect(BubbleDelegateView::GetAnchorRect());
- rect.set_height(0);
- return rect;
-}
-
-void InvertBubbleView::LinkClicked(views::Link* source, int event_flags) {
- if (source == high_contrast_)
- OpenLink(kHighContrastExtensionUrl, event_flags);
- else if (source == dark_theme_)
- OpenLink(kDarkThemeSearchUrl, event_flags);
- else if (source == learn_more_)
- OpenLink(kLearnMoreUrl, event_flags);
- else if (source == close_)
- GetWidget()->Close();
- else
- NOTREACHED();
-}
-
-void InvertBubbleView::OpenLink(const std::string& url, int event_flags) {
- Browser* browser = browser::FindLastActiveWithProfile(profile_);
- if (browser) {
- WindowOpenDisposition disposition =
- event_utils::DispositionFromEventFlags(event_flags);
- content::OpenURLParams params(
- GURL(url), content::Referrer(),
- disposition == CURRENT_TAB ? NEW_FOREGROUND_TAB : disposition,
- content::PAGE_TRANSITION_LINK, false);
- browser->OpenURL(params);
- }
-}
-
-void InvertBubble::MaybeShowInvertBubble(Profile* profile,
- views::View* anchor_view) {
- PrefService* pref_service = profile->GetPrefs();
- if (gfx::IsInvertedColorScheme() &&
- !pref_service->GetBoolean(prefs::kInvertNotificationShown)) {
- pref_service->SetBoolean(prefs::kInvertNotificationShown, true);
- InvertBubbleView* delegate = new InvertBubbleView(profile, anchor_view);
- views::BubbleDelegateView::CreateBubble(delegate);
- delegate->StartFade(true);
- }
-}
« no previous file with comments | « chrome/browser/accessibility/invert_bubble_views.h ('k') | chrome/browser/ui/views/accessibility/invert_bubble_view.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698