Chromium Code Reviews| Index: chrome/browser/ui/views/message_center/message_center_frame_view.cc |
| diff --git a/chrome/browser/ui/views/message_center/message_center_frame_view.cc b/chrome/browser/ui/views/message_center/message_center_frame_view.cc |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..371a1a9df7a60cf87be248aba61d301858ed6e83 |
| --- /dev/null |
| +++ b/chrome/browser/ui/views/message_center/message_center_frame_view.cc |
| @@ -0,0 +1,75 @@ |
| +// Copyright (c) 2013 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 "chrome/browser/ui/views/message_center/message_center_frame_view.h" |
| + |
| +#include "ui/base/hit_test.h" |
| +#include "ui/message_center/message_center_style.h" |
| +#include "ui/views/shadow_border.h" |
| +#include "ui/views/widget/widget.h" |
| + |
| +namespace { |
| + |
| +const int kBorderWidth = 1; |
| +const int kShadowBlur = 8; |
| + |
| +} // namepspace |
| + |
| +namespace message_center { |
| + |
| +MessageCenterFrameView::MessageCenterFrameView() { |
| +#if defined OS_WIN |
|
dewittj
2013/07/15 18:38:58
Style is defined(OS_WIN).
Also is there any way t
sidharthms
2013/07/15 23:16:37
Done. It doesn't look like we can detect if the pl
|
| + set_border(new views::ShadowBorder(kShadowBlur, |
| + message_center::kMessageCenterShadowColor, |
| + 0, // Vertical offset |
| + 0)); // Horizontal offset |
| +#else |
| + set_border(views::Border::CreateSolidBorder( |
| + kBorderWidth, message_center::kMessageCenterBorderColor)); |
| +#endif |
| +} |
| + |
| +MessageCenterFrameView::~MessageCenterFrameView() {} |
| + |
| +gfx::Rect MessageCenterFrameView::GetBoundsForClientView() const { |
| + gfx::Rect client_bounds = GetLocalBounds(); |
| + client_bounds.Inset(GetInsets()); |
| + return client_bounds; |
| +} |
| + |
| +gfx::Rect MessageCenterFrameView::GetWindowBoundsForClientBounds( |
| + const gfx::Rect& client_bounds) const { |
| + gfx::Rect window_bounds = client_bounds; |
| + window_bounds.Inset(GetInsets()); |
| + return window_bounds; |
| +} |
| + |
| +int MessageCenterFrameView::NonClientHitTest(const gfx::Point& point) { |
| + gfx::Rect frame_bounds = bounds(); |
| + frame_bounds.Inset(GetInsets()); |
| + if (!frame_bounds.Contains(point)) |
| + return HTNOWHERE; |
| + |
| + return GetWidget()->client_view()->NonClientHitTest(point); |
| +} |
| + |
| +gfx::Insets MessageCenterFrameView::GetInsets() const { |
| + return GetBorderInsets(); |
| +} |
| + |
| +const char* MessageCenterFrameView::GetClassName() const { |
| + return "MessageCenterFrameView"; |
| +} |
| + |
| +// static |
| +gfx::Insets MessageCenterFrameView::GetBorderInsets() { |
| +#if defined OS_WIN |
| + return gfx::Insets( |
| + kShadowBlur / 2, kShadowBlur / 2, kShadowBlur / 2, kShadowBlur / 2); |
| +#else |
| + return gfx::Insets(kBorderWidth, kBorderWidth, kBorderWidth, kBorderWidth); |
| +#endif |
| +} |
| + |
| +} // namespace message_center |