17dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch// Copyright 2013 The Chromium Authors. All rights reserved.
27dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch// Use of this source code is governed by a BSD-style license that can be
37dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch// found in the LICENSE file.
47dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch
57dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#include "chrome/browser/ui/views/message_center/message_center_frame_view.h"
67dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch
77dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#include "ui/base/hit_test.h"
87dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#include "ui/message_center/message_center_style.h"
97dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#include "ui/views/shadow_border.h"
107dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#include "ui/views/widget/widget.h"
117dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch
127dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdochnamespace message_center {
137dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch
147dbb3d5cf0c15f500944d211057644d6a2f37371Ben MurdochMessageCenterFrameView::MessageCenterFrameView() {
157dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
168bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles)  const int kBorderWidth = 1;
175d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  SetBorder(views::Border::CreateSolidBorder(
187dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch      kBorderWidth, message_center::kMessageCenterBorderColor));
197dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#else
208bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles)  const int kShadowBlur = 8;
215d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  SetBorder(scoped_ptr<views::Border>(new views::ShadowBorder(
225d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)      kShadowBlur,
235d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)      message_center::kMessageCenterShadowColor,
245d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)      0,    // Vertical offset
255d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)      0)));  // Horizontal offset
267dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#endif
277dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch}
287dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch
297dbb3d5cf0c15f500944d211057644d6a2f37371Ben MurdochMessageCenterFrameView::~MessageCenterFrameView() {}
307dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch
317dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdochgfx::Rect MessageCenterFrameView::GetBoundsForClientView() const {
327dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch  gfx::Rect client_bounds = GetLocalBounds();
337dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch  client_bounds.Inset(GetInsets());
347dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch  return client_bounds;
357dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch}
367dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch
377dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdochgfx::Rect MessageCenterFrameView::GetWindowBoundsForClientBounds(
387dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch    const gfx::Rect& client_bounds) const {
397dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch  gfx::Rect window_bounds = client_bounds;
407dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch  window_bounds.Inset(GetInsets());
417dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch  return window_bounds;
427dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch}
437dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch
447dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdochint MessageCenterFrameView::NonClientHitTest(const gfx::Point& point) {
457dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch  gfx::Rect frame_bounds = bounds();
467dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch  frame_bounds.Inset(GetInsets());
477dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch  if (!frame_bounds.Contains(point))
487dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch    return HTNOWHERE;
497dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch
507dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch  return GetWidget()->client_view()->NonClientHitTest(point);
517dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch}
527dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch
537dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdochvoid MessageCenterFrameView::GetWindowMask(const gfx::Size& size,
547dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch                                           gfx::Path* window_mask) {
557dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch}
567dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch
577dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdochvoid MessageCenterFrameView::ResetWindowControls() {
587dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch}
597dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch
607dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdochvoid MessageCenterFrameView::UpdateWindowIcon() {
617dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch}
627dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch
637dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdochvoid MessageCenterFrameView::UpdateWindowTitle() {
647dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch}
657dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch
661320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccivoid MessageCenterFrameView::SizeConstraintsChanged() {
671320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci}
681320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
697dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdochgfx::Insets MessageCenterFrameView::GetInsets() const {
707dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch  return border()->GetInsets();
717dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch}
727dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch
737dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdochconst char* MessageCenterFrameView::GetClassName() const {
747dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch  return "MessageCenterFrameView";
757dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch}
767dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch
777dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch}  // namespace message_center
78