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

Unified Diff: ash/frame/default_header_painter.cc

Issue 441803004: Introduce new WebApp header style for hosted apps and fizzy apps on ash. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Review feedback Created 6 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: ash/frame/default_header_painter.cc
diff --git a/ash/frame/default_header_painter.cc b/ash/frame/default_header_painter.cc
index fd31d776e91913c78bc0c304370793280d4db70e..3985ecf8982830b0304a66ffb08b339cb00b561c 100644
--- a/ash/frame/default_header_painter.cc
+++ b/ash/frame/default_header_painter.cc
@@ -74,8 +74,9 @@ namespace ash {
DefaultHeaderPainter::DefaultHeaderPainter()
: frame_(NULL),
view_(NULL),
- window_icon_(NULL),
- window_icon_size_(HeaderPainterUtil::GetDefaultIconSize()),
+ left_header_view_(NULL),
+ left_header_view_size_(0),
+ left_header_view_offset_(0),
caption_button_container_(NULL),
height_(0),
mode_(MODE_INACTIVE),
@@ -89,15 +90,12 @@ DefaultHeaderPainter::~DefaultHeaderPainter() {
void DefaultHeaderPainter::Init(
views::Widget* frame,
views::View* header_view,
- views::View* window_icon,
FrameCaptionButtonContainerView* caption_button_container) {
DCHECK(frame);
DCHECK(header_view);
- // window_icon may be NULL.
DCHECK(caption_button_container);
frame_ = frame;
view_ = header_view;
- window_icon_ = window_icon;
caption_button_container_ = caption_button_container;
caption_button_container_->SetButtonImages(
@@ -210,15 +208,7 @@ void DefaultHeaderPainter::LayoutHeader() {
caption_button_container_size.width(),
caption_button_container_size.height());
- if (window_icon_) {
- // Vertically center the window icon with respect to the caption button
- // container.
- // Floor when computing the center of |caption_button_container_|.
- int icon_offset_y =
- caption_button_container_->height() / 2 - window_icon_size_ / 2;
- window_icon_->SetBounds(HeaderPainterUtil::GetIconXOffset(), icon_offset_y,
- window_icon_size_, window_icon_size_);
- }
+ LayoutLeftHeaderView();
// The header/content separator line overlays the caption buttons.
SetHeaderHeightForPainting(caption_button_container_->height());
@@ -236,10 +226,17 @@ void DefaultHeaderPainter::SchedulePaintForTitle() {
view_->SchedulePaintInRect(GetTitleBounds());
}
-void DefaultHeaderPainter::UpdateWindowIcon(views::View* window_icon,
- int window_icon_size) {
- window_icon_ = window_icon;
- window_icon_size_ = window_icon_size;
+void DefaultHeaderPainter::UpdateHeaderOffset(int left_header_view_offset) {
pkotwicz 2014/08/13 01:19:47 I think that |left_view_x_inset| is a better name.
benwells 2014/08/13 08:09:28 Done.
+ int old_offset = left_header_view_offset_;
+ left_header_view_offset_ = left_header_view_offset;
+ if (old_offset != left_header_view_offset_)
+ LayoutLeftHeaderView();
+}
+
+void DefaultHeaderPainter::UpdateLeftHeaderView(views::View* left_header_view,
+ int left_header_view_size) {
+ left_header_view_ = left_header_view;
+ left_header_view_size_ = left_header_view_size;
}
///////////////////////////////////////////////////////////////////////////////
@@ -313,13 +310,27 @@ void DefaultHeaderPainter::PaintHeaderContentSeparator(gfx::Canvas* canvas) {
canvas->sk_canvas()->drawLine(0, y, SkIntToScalar(view_->width()), y, paint);
}
+void DefaultHeaderPainter::LayoutLeftHeaderView() {
+ if (left_header_view_) {
+ // Vertically center the window icon with respect to the caption button
+ // container.
+ // Floor when computing the center of |caption_button_container_|.
+ int icon_offset_y = caption_button_container_->height() / 2 -
+ left_header_view_->height() / 2;
+ int offset = left_header_view_offset_ ? left_header_view_offset_
+ : HeaderPainterUtil::GetIconXOffset();
pkotwicz 2014/08/13 01:19:47 Nit: I think that checking equality to zero here w
benwells 2014/08/13 08:09:28 Done.
+ left_header_view_->SetBounds(
+ offset, icon_offset_y, left_header_view_size_, left_header_view_size_);
pkotwicz 2014/08/13 01:19:47 Can we use left_header_view_->GetPreferredSize() a
benwells 2014/08/13 08:09:28 Seems so. The code sure is nicer! I hope it doesn'
+ }
+}
+
gfx::Rect DefaultHeaderPainter::GetLocalBounds() const {
return gfx::Rect(view_->width(), height_);
}
gfx::Rect DefaultHeaderPainter::GetTitleBounds() const {
return HeaderPainterUtil::GetTitleBounds(
- window_icon_, caption_button_container_, GetTitleFontList());
+ left_header_view_, caption_button_container_, GetTitleFontList());
}
gfx::ImageSkia* DefaultHeaderPainter::GetActiveFrameImage() const {

Powered by Google App Engine
This is Rietveld 408576698