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

Unified Diff: chrome/browser/ui/views/desktop_capture/desktop_media_source_view.cc

Issue 1990053002: Desktop Capture Picker New UI: Non Mac Appearance Change (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Nit Fixes Created 4 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
« no previous file with comments | « chrome/browser/ui/views/desktop_capture/desktop_media_source_view.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/ui/views/desktop_capture/desktop_media_source_view.cc
diff --git a/chrome/browser/ui/views/desktop_capture/desktop_media_source_view.cc b/chrome/browser/ui/views/desktop_capture/desktop_media_source_view.cc
index 02c9e68858b2b2eb353ba261867873b97aa7684c..76c5fa7e8e4ed56d2c9de40bc3f54056d72c4e24 100644
--- a/chrome/browser/ui/views/desktop_capture/desktop_media_source_view.cc
+++ b/chrome/browser/ui/views/desktop_capture/desktop_media_source_view.cc
@@ -10,20 +10,45 @@
#include "ui/gfx/canvas.h"
#include "ui/native_theme/native_theme.h"
#include "ui/views/background.h"
+#include "ui/views/border.h"
#include "ui/views/controls/image_view.h"
#include "ui/views/controls/label.h"
using content::DesktopMediaID;
-DesktopMediaSourceView::DesktopMediaSourceView(DesktopMediaListView* parent,
- DesktopMediaID source_id)
+DesktopMediaSourceViewStyle::DesktopMediaSourceViewStyle(
+ const DesktopMediaSourceViewStyle& style) = default;
+
+DesktopMediaSourceViewStyle::DesktopMediaSourceViewStyle(
+ int columns,
+ const gfx::Size& item_size,
+ const gfx::Rect& label_rect,
+ gfx::HorizontalAlignment text_alignment,
+ const gfx::Rect& image_rect,
+ int selection_border_thickness,
+ int focus_rectangle_inset)
+ : columns(columns),
+ item_size(item_size),
+ label_rect(label_rect),
+ text_alignment(text_alignment),
+ image_rect(image_rect),
+ selection_border_thickness(selection_border_thickness),
+ focus_rectangle_inset(focus_rectangle_inset) {}
+
+DesktopMediaSourceView::DesktopMediaSourceView(
+ DesktopMediaListView* parent,
+ DesktopMediaID source_id,
+ DesktopMediaSourceViewStyle style)
: parent_(parent),
source_id_(source_id),
+ style_(style),
image_view_(new views::ImageView()),
label_(new views::Label()),
selected_(false) {
AddChildView(image_view_);
AddChildView(label_);
+ image_view_->set_interactive(false);
+
SetFocusBehavior(FocusBehavior::ALWAYS);
}
@@ -59,12 +84,27 @@ void DesktopMediaSourceView::SetSelected(bool selected) {
}
}
- const SkColor bg_color = GetNativeTheme()->GetSystemColor(
+ const SkColor border_color = GetNativeTheme()->GetSystemColor(
ui::NativeTheme::kColorId_FocusedMenuItemBackgroundColor);
- set_background(views::Background::CreateSolidBackground(bg_color));
-
+ image_view_->SetBorder(views::Border::CreateSolidBorder(
+ style_.selection_border_thickness, border_color));
+ label_->SetFontList(label_->font_list().Derive(0, gfx::Font::BOLD));
parent_->OnSelectionChanged();
} else {
+ image_view_->SetBorder(views::Border::NullBorder());
+ label_->SetFontList(label_->font_list().Derive(0, gfx::Font::NORMAL));
+ }
+
+ SchedulePaint();
+}
+
+void DesktopMediaSourceView::SetHovered(bool hovered) {
+ if (hovered) {
+ // Use background color to show mouse hover.
+ const SkColor bg_color = GetNativeTheme()->GetSystemColor(
+ ui::NativeTheme::kColorId_HoverMenuItemBackgroundColor);
+ set_background(views::Background::CreateSolidBackground(bg_color));
+ } else {
set_background(NULL);
}
@@ -76,15 +116,15 @@ const char* DesktopMediaSourceView::GetClassName() const {
}
void DesktopMediaSourceView::Layout() {
- image_view_->SetBounds(DesktopMediaPickerDialogView::kThumbnailMargin,
- DesktopMediaPickerDialogView::kThumbnailMargin,
- DesktopMediaPickerDialogView::kThumbnailWidth,
- DesktopMediaPickerDialogView::kThumbnailHeight);
- label_->SetBounds(DesktopMediaPickerDialogView::kThumbnailMargin,
- DesktopMediaPickerDialogView::kThumbnailHeight +
- DesktopMediaPickerDialogView::kThumbnailMargin,
- DesktopMediaPickerDialogView::kThumbnailWidth,
- DesktopMediaPickerDialogView::kLabelHeight);
+ image_view_->SetBoundsRect(style_.image_rect);
+ if (selected_) {
+ const SkColor border_color = GetNativeTheme()->GetSystemColor(
+ ui::NativeTheme::kColorId_FocusedMenuItemBackgroundColor);
+ image_view_->SetBorder(views::Border::CreateSolidBorder(
+ style_.selection_border_thickness, border_color));
+ }
+ label_->SetBoundsRect(style_.label_rect);
+ label_->SetHorizontalAlignment(style_.text_alignment);
}
views::View* DesktopMediaSourceView::GetSelectedViewForGroup(int group) {
@@ -112,8 +152,7 @@ void DesktopMediaSourceView::OnPaint(gfx::Canvas* canvas) {
View::OnPaint(canvas);
if (HasFocus()) {
msw 2016/05/26 20:50:33 I'd be nice to avoid overriding paint and change t
qiangchen 2016/05/26 21:38:38 Acknowledged.
gfx::Rect bounds(GetLocalBounds());
- bounds.Inset(DesktopMediaPickerDialogView::kThumbnailMargin / 2,
- DesktopMediaPickerDialogView::kThumbnailMargin / 2);
+ bounds.Inset(style_.focus_rectangle_inset, style_.focus_rectangle_inset);
canvas->DrawFocusRect(bounds);
}
}
@@ -142,6 +181,14 @@ bool DesktopMediaSourceView::OnMousePressed(const ui::MouseEvent& event) {
return true;
}
+void DesktopMediaSourceView::OnMouseEntered(const ui::MouseEvent& event) {
+ SetHovered(true);
+}
+
+void DesktopMediaSourceView::OnMouseExited(const ui::MouseEvent& event) {
+ SetHovered(false);
+}
+
void DesktopMediaSourceView::OnGestureEvent(ui::GestureEvent* event) {
if (event->type() == ui::ET_GESTURE_TAP &&
event->details().tap_count() == 2) {
« no previous file with comments | « chrome/browser/ui/views/desktop_capture/desktop_media_source_view.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698