| Index: ash/wm/panel_frame_view.cc
|
| diff --git a/ash/wm/panel_frame_view.cc b/ash/wm/panel_frame_view.cc
|
| index 4ca949944e04c1fb4ed5d3dd96cadbc16d6ae131..52a53c5c56598c5901ce8503d8371dee66f57437 100644
|
| --- a/ash/wm/panel_frame_view.cc
|
| +++ b/ash/wm/panel_frame_view.cc
|
| @@ -2,8 +2,9 @@
|
| // Use of this source code is governed by a BSD-style license that can be
|
| // found in the LICENSE file.
|
|
|
| -#include "ash/wm/frame_painter.h"
|
| #include "ash/wm/panel_frame_view.h"
|
| +
|
| +#include "ash/wm/frame_painter.h"
|
| #include "grit/ash_resources.h"
|
| #include "grit/ui_strings.h" // Accessibility names
|
| #include "third_party/skia/include/core/SkPaint.h"
|
| @@ -22,8 +23,17 @@
|
|
|
| namespace ash {
|
|
|
| -PanelFrameView::PanelFrameView(views::Widget* frame)
|
| - : frame_painter_(new FramePainter) {
|
| +PanelFrameView::PanelFrameView(views::Widget* frame, FrameType frame_type) {
|
| + if (frame_type != FRAME_NONE)
|
| + InitFramePainter(frame);
|
| +}
|
| +
|
| +PanelFrameView::~PanelFrameView() {
|
| +}
|
| +
|
| +void PanelFrameView::InitFramePainter(views::Widget* frame) {
|
| + frame_painter_.reset(new FramePainter);
|
| +
|
| close_button_ = new views::ImageButton(this);
|
| close_button_->SetAccessibleName(
|
| l10n_util::GetStringUTF16(IDS_APP_ACCNAME_CLOSE));
|
| @@ -38,10 +48,9 @@ PanelFrameView::PanelFrameView(views::Widget* frame)
|
| FramePainter::SIZE_BUTTON_MINIMIZES);
|
| }
|
|
|
| -PanelFrameView::~PanelFrameView() {
|
| -}
|
| -
|
| void PanelFrameView::Layout() {
|
| + if (!frame_painter_.get())
|
| + return;
|
| frame_painter_->LayoutHeader(this, true);
|
| }
|
|
|
| @@ -54,7 +63,7 @@ void PanelFrameView::UpdateWindowIcon() {
|
| }
|
|
|
| void PanelFrameView::UpdateWindowTitle() {
|
| - NOTIMPLEMENTED();
|
| + // TODO(stevenjb): Support titles for panels?
|
| }
|
|
|
| void PanelFrameView::GetWindowMask(const gfx::Size&, gfx::Path*) {
|
| @@ -62,10 +71,14 @@ void PanelFrameView::GetWindowMask(const gfx::Size&, gfx::Path*) {
|
| }
|
|
|
| int PanelFrameView::NonClientHitTest(const gfx::Point& point) {
|
| + if (!frame_painter_.get())
|
| + return HTNOWHERE;
|
| return frame_painter_->NonClientHitTest(this, point);
|
| }
|
|
|
| void PanelFrameView::OnPaint(gfx::Canvas* canvas) {
|
| + if (!frame_painter_.get())
|
| + return;
|
| bool paint_as_active = ShouldPaintAsActive();
|
| int theme_image_id = paint_as_active ? IDR_AURA_WINDOW_HEADER_BASE_ACTIVE :
|
| IDR_AURA_WINDOW_HEADER_BASE_INACTIVE;
|
| @@ -79,6 +92,8 @@ void PanelFrameView::OnPaint(gfx::Canvas* canvas) {
|
| }
|
|
|
| gfx::Rect PanelFrameView::GetBoundsForClientView() const {
|
| + if (!frame_painter_.get())
|
| + return bounds();
|
| return frame_painter_->GetBoundsForClientView(
|
| close_button_->bounds().bottom(),
|
| bounds());
|
| @@ -86,6 +101,8 @@ gfx::Rect PanelFrameView::GetBoundsForClientView() const {
|
|
|
| gfx::Rect PanelFrameView::GetWindowBoundsForClientBounds(
|
| const gfx::Rect& client_bounds) const {
|
| + if (!frame_painter_.get())
|
| + return client_bounds;
|
| return frame_painter_->GetWindowBoundsForClientBounds(
|
| close_button_->bounds().bottom(), client_bounds);
|
| }
|
| @@ -94,6 +111,8 @@ void PanelFrameView::ButtonPressed(views::Button* sender,
|
| const ui::Event& event) {
|
| if (sender == close_button_)
|
| GetWidget()->Close();
|
| + if (sender == minimize_button_)
|
| + GetWidget()->Minimize();
|
| }
|
|
|
| } // namespace ash
|
|
|