1// Copyright (c) 2011 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#include "chrome/browser/chromeos/panels/panel_scroller_header.h"
6
7#include "base/utf_string_conversions.h"
8#include "chrome/browser/chromeos/panels/panel_scroller.h"
9#include "ui/base/resource/resource_bundle.h"
10#include "ui/gfx/canvas.h"
11#include "ui/gfx/font.h"
12
13PanelScrollerHeader::PanelScrollerHeader(PanelScroller* scroller)
14    : views::View(),
15      scroller_(scroller) {
16}
17
18PanelScrollerHeader::~PanelScrollerHeader() {
19}
20
21bool PanelScrollerHeader::OnMousePressed(const views::MouseEvent& event) {
22  return true;
23}
24
25bool PanelScrollerHeader::OnMouseDragged(const views::MouseEvent& event) {
26  return false;
27}
28
29void PanelScrollerHeader::OnMouseReleased(const views::MouseEvent& event) {
30  OnMouseCaptureLost();
31}
32
33void PanelScrollerHeader::OnMouseCaptureLost() {
34  scroller_->HeaderClicked(this);
35}
36
37gfx::Size PanelScrollerHeader::GetPreferredSize() {
38  return gfx::Size(size().width(), 18);
39}
40
41void PanelScrollerHeader::OnPaint(gfx::Canvas* canvas) {
42  // TODO(brettw) fill this out with real styling.
43  canvas->FillRectInt(0xFFFFFFFF, 0, 0, size().width(), size().height());
44  canvas->DrawLineInt(0xFFE6E6E6, 0, size().height() - 1,
45                      size().width(), size().height() - 1);
46
47  ResourceBundle& rb = ResourceBundle::GetSharedInstance();
48  gfx::Font font =
49      rb.GetFont(ResourceBundle::BaseFont).DeriveFont(0, gfx::Font::BOLD);
50  int font_top = 1;
51  canvas->DrawStringInt(title_, font, 0xFF000000, 3, font_top,
52                        size().width(), size().height() - font_top);
53}
54