diff options
author | ben@chromium.org <ben@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-01-15 00:59:16 +0000 |
---|---|---|
committer | ben@chromium.org <ben@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-01-15 00:59:16 +0000 |
commit | f3ec774a2c177d3c6845553d3bf9735a7b8a5907 (patch) | |
tree | ed09ccf69300383bd4b2e8ac7c8b9d1bdeead07b /chrome/browser/tab_contents/status_view.cc | |
parent | bb515eda39129537a089a062c3db3152e63f24d9 (diff) | |
download | chromium_src-f3ec774a2c177d3c6845553d3bf9735a7b8a5907.zip chromium_src-f3ec774a2c177d3c6845553d3bf9735a7b8a5907.tar.gz chromium_src-f3ec774a2c177d3c6845553d3bf9735a7b8a5907.tar.bz2 |
Move a bunch of TabContents related files into a tab_contents subdir
Review URL: http://codereview.chromium.org/18250
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@8058 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/tab_contents/status_view.cc')
-rw-r--r-- | chrome/browser/tab_contents/status_view.cc | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/chrome/browser/tab_contents/status_view.cc b/chrome/browser/tab_contents/status_view.cc new file mode 100644 index 0000000..349ac53 --- /dev/null +++ b/chrome/browser/tab_contents/status_view.cc @@ -0,0 +1,74 @@ +// Copyright (c) 2006-2008 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/tab_contents/status_view.h" + +const int StatusView::kLayoutPadding = 5; +const int StatusView::kButtonWidth = 200; +const int StatusView::kButtonHeight = 30; + +StatusView::StatusView(TabContentsType type) : TabContents(type) { +} + +StatusView::~StatusView() { + for (size_t i = 0; i < buttons_.size(); ++i) + delete buttons_[i].button; +} + +void StatusView::CreateView() { + Create(GetDesktopWindow()); +} + +LRESULT StatusView::OnCreate(LPCREATESTRUCT create_struct) { + CRect rect(kLayoutPadding, kButtonHeight + kLayoutPadding * 2, 200, 200); + OnCreate(rect); + return 0; +} + +void StatusView::OnSize(WPARAM wParam, const CSize& size) { + int start_x = kLayoutPadding; + int start_y = kButtonHeight + kLayoutPadding * 2; + int end_x = size.cx - kLayoutPadding; + int end_y = size.cy - kLayoutPadding; + CRect rect(start_x, start_y, end_x, end_y); + OnSize(rect); +} + +LRESULT StatusView::OnEraseBkgnd(HDC hdc) { + HBRUSH brush = GetSysColorBrush(COLOR_3DFACE); + HGDIOBJ old_brush = SelectObject(hdc, brush); + + RECT rc; + GetClientRect(&rc); + FillRect(hdc, &rc, brush); + + SelectObject(hdc, old_brush); + return 1; +} + +void StatusView::CreateButton(int id, const wchar_t* title) { + int button_count = static_cast<int>(buttons_.size()); + int width_offset = + kLayoutPadding + button_count * (kButtonWidth + kLayoutPadding); + CRect rect(0, 0, kButtonWidth, kButtonHeight); + rect.OffsetRect(width_offset, kLayoutPadding); + ButtonInfo bi; + bi.button = new CButton(); + bi.id = id; + bi.button->Create(m_hWnd, rect, NULL, WS_CHILD | WS_VISIBLE, 0, bi.id); + bi.button->SetWindowText(title); + buttons_.push_back(bi); +} + +void StatusView::SetButtonText(int id, const wchar_t* title) { + for (size_t i = 0; i < buttons_.size(); ++i) { + if (buttons_[i].id == id) { + buttons_[i].button->SetWindowText(title); + return; + } + } + + DLOG(INFO) << "No button with id " << id << " to set title " << title; +} + |