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

Unified Diff: ash/wm/caption_buttons/frame_caption_button_container_view.cc

Issue 148003003: Use white header for app windows part #2 (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 11 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/wm/caption_buttons/frame_caption_button_container_view.cc
diff --git a/ash/wm/caption_buttons/frame_caption_button_container_view.cc b/ash/wm/caption_buttons/frame_caption_button_container_view.cc
index 0211ae74f97313f302d229f4705e8a258bae32c2..73d749ca432372cbfae3d557e0c9010cbc940c43 100644
--- a/ash/wm/caption_buttons/frame_caption_button_container_view.cc
+++ b/ash/wm/caption_buttons/frame_caption_button_container_view.cc
@@ -10,11 +10,9 @@
#include "ash/wm/caption_buttons/alternate_frame_size_button.h"
#include "ash/wm/caption_buttons/frame_caption_button.h"
#include "ash/wm/caption_buttons/frame_maximize_button.h"
-#include "grit/ash_resources.h"
#include "grit/ui_strings.h" // Accessibility names
#include "ui/base/hit_test.h"
#include "ui/base/l10n/l10n_util.h"
-#include "ui/base/resource/resource_bundle.h"
#include "ui/compositor/scoped_animation_duration_scale_mode.h"
#include "ui/gfx/canvas.h"
#include "ui/gfx/insets.h"
@@ -26,9 +24,6 @@ namespace ash {
namespace {
-// The distance between buttons.
-const int kDistanceBetweenButtons = -1;
James Cook 2014/02/03 18:46:35 Hooray, no more crazy overlap constant!
-
// Converts |point| from |src| to |dst| and hittests against |dst|.
bool ConvertPointToViewAndHitTest(const views::View* src,
const views::View* dst,
@@ -77,9 +72,6 @@ FrameCaptionButtonContainerView::FrameCaptionButtonContainerView(
close_button_->SetAccessibleName(
l10n_util::GetStringUTF16(IDS_APP_ACCNAME_CLOSE));
AddChildView(close_button_);
-
- button_separator_ = ui::ResourceBundle::GetSharedInstance().GetImageNamed(
- IDR_AURA_WINDOW_BUTTON_SEPARATOR).AsImageSkia();
}
FrameCaptionButtonContainerView::~FrameCaptionButtonContainerView() {
@@ -91,13 +83,16 @@ FrameCaptionButtonContainerView::GetOldStyleSizeButton() {
NULL : static_cast<FrameMaximizeButton*>(size_button_);
}
-void FrameCaptionButtonContainerView::SetButtonImages(CaptionButtonIcon icon,
- int normal_image_id,
- int hovered_image_id,
- int pressed_image_id) {
- button_icon_id_map_[icon] = ButtonIconIds(normal_image_id,
- hovered_image_id,
- pressed_image_id);
+void FrameCaptionButtonContainerView::SetButtonImages(
+ CaptionButtonIcon icon,
+ int icon_image_id,
+ int inactive_icon_image_id,
+ int hovered_background_image_id,
+ int pressed_background_image_id) {
+ button_icon_id_map_[icon] = ButtonIconIds(icon_image_id,
+ inactive_icon_image_id,
+ hovered_background_image_id,
+ pressed_background_image_id);
FrameCaptionButton* buttons[] = {
minimize_button_, size_button_, close_button_
};
@@ -105,13 +100,20 @@ void FrameCaptionButtonContainerView::SetButtonImages(CaptionButtonIcon icon,
if (buttons[i]->icon() == icon) {
buttons[i]->SetImages(icon,
FrameCaptionButton::ANIMATE_NO,
- normal_image_id,
- hovered_image_id,
- pressed_image_id);
+ icon_image_id,
+ inactive_icon_image_id,
+ hovered_background_image_id,
+ pressed_background_image_id);
}
}
}
+void FrameCaptionButtonContainerView::SetPaintAsActive(bool paint_as_active) {
+ minimize_button_->set_paint_as_active(paint_as_active);
+ size_button_->set_paint_as_active(paint_as_active);
+ close_button_->set_paint_as_active(paint_as_active);
+}
+
void FrameCaptionButtonContainerView::ResetWindowControls() {
SetButtonsToNormal(ANIMATE_NO);
}
@@ -133,16 +135,10 @@ int FrameCaptionButtonContainerView::NonClientHitTest(
gfx::Size FrameCaptionButtonContainerView::GetPreferredSize() {
int width = 0;
- bool first_visible = true;
for (int i = 0; i < child_count(); ++i) {
views::View* child = child_at(i);
- if (!child->visible())
- continue;
-
- width += child_at(i)->GetPreferredSize().width();
- if (!first_visible)
- width += kDistanceBetweenButtons;
- first_visible = false;
+ if (child->visible())
+ width += child_at(i)->GetPreferredSize().width();
}
return gfx::Size(width, close_button_->GetPreferredSize().height());
}
@@ -156,7 +152,7 @@ void FrameCaptionButtonContainerView::Layout() {
gfx::Size size = child->GetPreferredSize();
child->SetBounds(x, 0, size.width(), size.height());
- x += size.width() + kDistanceBetweenButtons;
+ x += size.width();
}
}
@@ -164,22 +160,6 @@ const char* FrameCaptionButtonContainerView::GetClassName() const {
return kViewClassName;
}
-void FrameCaptionButtonContainerView::OnPaint(gfx::Canvas* canvas) {
- views::View::OnPaint(canvas);
-
- // The alternate button style does not paint the button separator.
- if (!switches::UseAlternateFrameCaptionButtonStyle()) {
- // We should have at most two visible buttons. The button separator is
- // always painted underneath the close button regardless of whether a
- // button other than the close button is visible.
- gfx::Rect divider(close_button_->bounds().origin(),
- button_separator_.size());
- canvas->DrawImageInt(button_separator_,
- GetMirroredXForRect(divider),
- divider.y());
- }
-}
-
void FrameCaptionButtonContainerView::SetButtonIcon(FrameCaptionButton* button,
CaptionButtonIcon icon,
Animate animate) {
@@ -195,9 +175,10 @@ void FrameCaptionButtonContainerView::SetButtonIcon(FrameCaptionButton* button,
if (it != button_icon_id_map_.end()) {
button->SetImages(icon,
fcb_animate,
- it->second.normal_image_id,
- it->second.hovered_image_id,
- it->second.pressed_image_id);
+ it->second.icon_image_id,
+ it->second.inactive_icon_image_id,
+ it->second.hovered_background_image_id,
+ it->second.pressed_background_image_id);
}
}
@@ -283,7 +264,6 @@ FrameCaptionButtonContainerView::PressButtonAt(
pressed_button = button;
// Do not break in order to give preference to buttons which are
// closer to |position_in_screen| than the currently pressed button.
- // TODO(pkotwicz): Make the caption buttons not overlap.
}
} else if (ConvertPointToViewAndHitTest(this, button, position)) {
pressed_button = button;
@@ -299,17 +279,21 @@ FrameCaptionButtonContainerView::PressButtonAt(
}
FrameCaptionButtonContainerView::ButtonIconIds::ButtonIconIds()
- : normal_image_id(-1),
- hovered_image_id(-1),
- pressed_image_id(-1) {
+ : icon_image_id(-1),
+ inactive_icon_image_id(-1),
+ hovered_background_image_id(-1),
+ pressed_background_image_id(-1) {
}
-FrameCaptionButtonContainerView::ButtonIconIds::ButtonIconIds(int normal_id,
- int hovered_id,
- int pressed_id)
- : normal_image_id(normal_id),
- hovered_image_id(hovered_id),
- pressed_image_id(pressed_id) {
+FrameCaptionButtonContainerView::ButtonIconIds::ButtonIconIds(
+ int icon_id,
+ int inactive_icon_id,
+ int hovered_background_id,
+ int pressed_background_id)
+ : icon_image_id(icon_id),
+ inactive_icon_image_id(inactive_icon_id),
+ hovered_background_image_id(hovered_background_id),
+ pressed_background_image_id(pressed_background_id) {
}
FrameCaptionButtonContainerView::ButtonIconIds::~ButtonIconIds() {

Powered by Google App Engine
This is Rietveld 408576698