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

Unified Diff: chrome/browser/ui/views/location_bar/content_setting_image_view.cc

Issue 10821114: Refactor the content setting view to allow a subclass for the web intents button. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Consume tap-down gesture Created 8 years, 4 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/views/location_bar/content_setting_image_view.cc
diff --git a/chrome/browser/ui/views/location_bar/content_setting_image_view.cc b/chrome/browser/ui/views/location_bar/content_setting_image_view.cc
index 0aaf76d8af8e94e232d9e932613cbfb44244f862..de78376f3191a80bcf93fd14b3cd1f0dd022924d 100644
--- a/chrome/browser/ui/views/location_bar/content_setting_image_view.cc
+++ b/chrome/browser/ui/views/location_bar/content_setting_image_view.cc
@@ -20,6 +20,7 @@
#include "ui/gfx/canvas.h"
#include "ui/gfx/skia_util.h"
#include "ui/views/border.h"
+#include "ui/views/events/event.h"
#include "ui/views/widget/widget.h"
using content::WebContents;
@@ -69,8 +70,11 @@ ContentSettingImageView::~ContentSettingImageView() {
}
}
-void ContentSettingImageView::UpdateFromWebContents(WebContents* web_contents) {
- content_setting_image_model_->UpdateFromWebContents(web_contents);
+void ContentSettingImageView::Update(TabContents* tab_contents) {
+ if (tab_contents) {
+ content_setting_image_model_->UpdateFromWebContents(
+ tab_contents->web_contents());
+ }
if (!content_setting_image_model_->is_visible()) {
SetVisible(false);
return;
@@ -81,10 +85,9 @@ void ContentSettingImageView::UpdateFromWebContents(WebContents* web_contents) {
SetVisible(true);
TabSpecificContentSettings* content_settings = NULL;
- if (web_contents) {
- content_settings =
- TabContents::FromWebContents(web_contents)->content_settings();
- }
+ if (tab_contents)
+ content_settings = tab_contents->content_settings();
+
if (!content_settings || content_settings->IsBlockageIndicated(
content_setting_image_model_->get_content_settings_type()))
return;
@@ -126,6 +129,19 @@ gfx::Size ContentSettingImageView::GetPreferredSize() {
return preferred_size;
}
+ui::GestureStatus ContentSettingImageView::OnGestureEvent(
+ const views::GestureEvent& event) {
+ if (event.type() == ui::ET_GESTURE_TAP) {
+ OnClick();
+ return ui::GESTURE_STATUS_CONSUMED;
+ } else if (event.type() == ui::ET_GESTURE_TAP_DOWN) {
+ return ui::GESTURE_STATUS_CONSUMED;
+ }
+
+ return ui::GESTURE_STATUS_UNKNOWN;
+}
+
+
void ContentSettingImageView::AnimationEnded(const ui::Animation* animation) {
if (pause_animation_)
pause_animation_ = false;
@@ -168,6 +184,10 @@ void ContentSettingImageView::OnMouseReleased(const views::MouseEvent& event) {
if (!HitTest(event.location()))
return;
+ OnClick();
+}
+
+void ContentSettingImageView::OnClick() {
TabContents* tab_contents = parent_->GetTabContents();
if (!tab_contents)
return;
@@ -234,7 +254,7 @@ void ContentSettingImageView::OnPaintBackground(gfx::Canvas* canvas) {
SkPaint paint;
paint.setShader(gfx::CreateGradientShader(kEdgeThickness,
height() - (2 * kEdgeThickness),
- kTopBoxColor, kBottomBoxColor));
+ GradientTopColor(), GradientBottomColor()));
SkSafeUnref(paint.getShader());
SkRect color_rect;
color_rect.iset(0, 0, width() - 1, height() - 1);
@@ -242,7 +262,7 @@ void ContentSettingImageView::OnPaintBackground(gfx::Canvas* canvas) {
kBoxCornerRadius, paint);
SkPaint outer_paint;
outer_paint.setStyle(SkPaint::kStroke_Style);
- outer_paint.setColor(kBorderColor);
+ outer_paint.setColor(ButtonBorderColor());
color_rect.inset(SkIntToScalar(kEdgeThickness),
SkIntToScalar(kEdgeThickness));
canvas->sk_canvas()->drawRoundRect(color_rect, kBoxCornerRadius,
@@ -270,3 +290,14 @@ int ContentSettingImageView::GetBuiltInHorizontalPadding() const {
return GetBuiltInHorizontalPaddingImpl();
}
+SkColor ContentSettingImageView::ButtonBorderColor() const {
+ return kBorderColor;
+}
+
+SkColor ContentSettingImageView::GradientTopColor() const {
+ return kTopBoxColor;
+}
+
+SkColor ContentSettingImageView::GradientBottomColor() const {
+ return kBottomBoxColor;
+}

Powered by Google App Engine
This is Rietveld 408576698