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

Unified Diff: ash/wm/dialog_frame_view.cc

Issue 11571023: Move ash/wm's DialogFrameView to ui/views/window; etc. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Reorder DialogDelegate functions; inline Get*Params into WidgetExample::ButtonPressed; etc. Created 8 years 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 | « ash/wm/dialog_frame_view.h ('k') | chrome/browser/chromeos/enrollment_dialog_view.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ash/wm/dialog_frame_view.cc
diff --git a/ash/wm/dialog_frame_view.cc b/ash/wm/dialog_frame_view.cc
deleted file mode 100644
index 0f47e937c8fb2fb64aaf58344cd3d59df5356027..0000000000000000000000000000000000000000
--- a/ash/wm/dialog_frame_view.cc
+++ /dev/null
@@ -1,193 +0,0 @@
-// Copyright (c) 2012 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "ash/wm/dialog_frame_view.h"
-
-#include "grit/ui_resources.h"
-#include "ui/base/hit_test.h"
-#include "ui/base/resource/resource_bundle.h"
-#include "ui/gfx/canvas.h"
-#include "ui/gfx/font.h"
-#include "ui/gfx/image/image.h"
-#include "ui/gfx/insets.h"
-#include "ui/views/background.h"
-#include "ui/views/border.h"
-#include "ui/views/controls/button/image_button.h"
-#include "ui/views/widget/widget.h"
-#include "ui/views/widget/widget_delegate.h"
-
-namespace {
-
-// TODO(benrg): Make frame shadow and stroke agree with the spec.
-
-// TODO(benrg): Title bar text should be #222, not black. Text in the client
-// area should also be #222, but is currently usually black. Punting on this
-// until the overhaul of color handling that will be happening Real Soon Now.
-const SkColor kDialogTitleColor = SK_ColorBLACK;
-const SkColor kDialogBackgroundColor = SK_ColorWHITE;
-
-// Dialog-size-dependent padding values from the spec, in pixels.
-const int kGoogleSmallDialogVPadding = 16;
-const int kGoogleSmallDialogHPadding = 20;
-const int kGoogleMediumDialogVPadding = 28;
-const int kGoogleMediumDialogHPadding = 32;
-const int kGoogleLargeDialogVPadding = 30;
-const int kGoogleLargeDialogHPadding = 42;
-
-// Dialog layouts themselves contain some padding, which should be ignored in
-// favor of the padding values above. Currently we hack it by nudging the
-// client area outward.
-const int kDialogHPaddingNudge = 13;
-const int kDialogTopPaddingNudge = 5;
-const int kDialogBottomPaddingNudge = 10;
-
-// TODO(benrg): There are no examples in the spec of close boxes on medium- or
-// small-size dialogs, and the close button size is not factored into other
-// sizing decisions. This value could cause problems with smaller dialogs.
-const int kCloseButtonSize = 44;
-
-} // namespace
-
-namespace ash {
-namespace internal {
-
-// static
-const char DialogFrameView::kViewClassName[] = "ash/wm/DialogFrameView";
-
-////////////////////////////////////////////////////////////////////////////////
-// DialogFrameView, public:
-
-DialogFrameView::DialogFrameView() {
- set_background(views::Background::CreateSolidBackground(
- kDialogBackgroundColor));
-
- ui::ResourceBundle& rb = ui::ResourceBundle::GetSharedInstance();
- title_font_.reset(new gfx::Font(rb.GetFont(ui::ResourceBundle::MediumFont)));
- close_button_ = new views::ImageButton(this);
- close_button_->SetImage(views::CustomButton::STATE_NORMAL,
- rb.GetImageNamed(IDR_CLOSE_BAR).ToImageSkia());
- close_button_->SetImage(views::CustomButton::STATE_HOVERED,
- rb.GetImageNamed(IDR_CLOSE_BAR_H).ToImageSkia());
- close_button_->SetImage(views::CustomButton::STATE_PRESSED,
- rb.GetImageNamed(IDR_CLOSE_BAR_P).ToImageSkia());
- close_button_->SetImageAlignment(views::ImageButton::ALIGN_CENTER,
- views::ImageButton::ALIGN_MIDDLE);
- AddChildView(close_button_);
-}
-
-DialogFrameView::~DialogFrameView() {
-}
-
-////////////////////////////////////////////////////////////////////////////////
-// DialogFrameView, views::NonClientFrameView:
-
-gfx::Rect DialogFrameView::GetBoundsForClientView() const {
- gfx::Rect client_bounds = GetLocalBounds();
- client_bounds.Inset(GetClientInsets());
- return client_bounds;
-}
-
-gfx::Rect DialogFrameView::GetWindowBoundsForClientBounds(
- const gfx::Rect& client_bounds) const {
- gfx::Rect window_bounds = client_bounds;
- window_bounds.Inset(-GetClientInsets());
- return window_bounds;
-}
-
-int DialogFrameView::NonClientHitTest(const gfx::Point& point) {
- if (close_button_->GetMirroredBounds().Contains(point))
- return HTCLOSE;
- return point.y() < GetClientInsets().top() ? HTCAPTION : HTCLIENT;
-}
-
-void DialogFrameView::GetWindowMask(const gfx::Size& size,
- gfx::Path* window_mask) {
- // Nothing to do.
-}
-
-void DialogFrameView::ResetWindowControls() {
- // Nothing to do.
-}
-
-void DialogFrameView::UpdateWindowIcon() {
- // Nothing to do.
-}
-
-void DialogFrameView::UpdateWindowTitle() {
- // Nothing to do.
-}
-
-////////////////////////////////////////////////////////////////////////////////
-// DialogFrameView, views::View overrides:
-
-std::string DialogFrameView::GetClassName() const {
- return kViewClassName;
-}
-
-void DialogFrameView::Layout() {
- title_display_rect_ = GetLocalBounds();
- title_display_rect_.Inset(GetPaddingInsets());
- title_display_rect_.set_height(title_font_->GetHeight());
-
- // The hot rectangle for the close button is flush with the upper right of the
- // dialog. The close button image is smaller, and is centered in the hot rect.
- close_button_->SetBounds(
- width() - kCloseButtonSize,
- 0, kCloseButtonSize, kCloseButtonSize);
-}
-
-void DialogFrameView::OnPaint(gfx::Canvas* canvas) {
- views::View::OnPaint(canvas);
- views::WidgetDelegate* delegate = GetWidget()->widget_delegate();
- if (!delegate)
- return;
- canvas->DrawStringInt(delegate->GetWindowTitle(), *title_font_.get(),
- kDialogTitleColor, title_display_rect_);
-}
-
-////////////////////////////////////////////////////////////////////////////////
-// DialogFrameView, views::ButtonListener overrides:
-
-void DialogFrameView::ButtonPressed(views::Button* sender,
- const ui::Event& event) {
- if (sender == close_button_)
- GetWidget()->Close();
-}
-
-////////////////////////////////////////////////////////////////////////////////
-// DialogFrameView, private:
-
-gfx::Insets DialogFrameView::GetPaddingInsets() const {
- // These three discrete padding sizes come from the spec. If we ever wanted
- // our Google-style dialogs to be resizable, we would probably need to
- // smoothly interpolate the padding size instead.
- int v_padding, h_padding;
- if (width() <= 280) {
- v_padding = kGoogleSmallDialogVPadding;
- h_padding = kGoogleSmallDialogHPadding;
- } else if (width() <= 480) {
- v_padding = kGoogleMediumDialogVPadding;
- h_padding = kGoogleMediumDialogHPadding;
- } else {
- v_padding = kGoogleLargeDialogVPadding;
- h_padding = kGoogleLargeDialogHPadding;
- }
- return gfx::Insets(v_padding, h_padding, v_padding, h_padding);
-}
-
-gfx::Insets DialogFrameView::GetClientInsets() const {
- gfx::Insets insets = GetPaddingInsets();
- // The title should be separated from the client area by 1 em (dialog spec),
- // and one em is equal to the font size (CSS spec).
- insets += gfx::Insets(
- title_font_->GetHeight() + title_font_->GetFontSize() -
- kDialogTopPaddingNudge,
- -kDialogHPaddingNudge,
- -kDialogBottomPaddingNudge,
- -kDialogHPaddingNudge);
- return insets;
-}
-
-} // namespace internal
-} // namespace views
« no previous file with comments | « ash/wm/dialog_frame_view.h ('k') | chrome/browser/chromeos/enrollment_dialog_view.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698