sad_tab_view.h revision 4a5e2dc747d50c653511c68ccb2cfbfb740bd5a7
14a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch// Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. 24a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch// Use of this source code is governed by a BSD-style license that can be 34a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch// found in the LICENSE file. 44a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch 54a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch#ifndef CHROME_BROWSER_UI_VIEWS_SAD_TAB_VIEW_H_ 64a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch#define CHROME_BROWSER_UI_VIEWS_SAD_TAB_VIEW_H_ 74a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch#pragma once 84a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch 94a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch#include "base/basictypes.h" 104a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch#include "gfx/font.h" 114a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch#include "views/controls/link.h" 124a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch#include "views/view.h" 134a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch 144a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdochclass SkBitmap; 154a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdochclass TabContents; 164a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch 174a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch/////////////////////////////////////////////////////////////////////////////// 184a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch// 194a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch// SadTabView 204a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch// 214a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch// A views::View subclass used to render the presentation of the crashed 224a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch// "sad tab" in the browser window when a renderer is destroyed unnaturally. 234a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch// 244a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch/////////////////////////////////////////////////////////////////////////////// 254a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdochclass SadTabView : public views::View, 264a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch public views::LinkController { 274a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch public: 284a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch explicit SadTabView(TabContents* tab_contents); 294a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch virtual ~SadTabView() {} 304a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch 314a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch // Overridden from views::View: 324a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch virtual void Paint(gfx::Canvas* canvas); 334a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch virtual void Layout(); 344a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch 354a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch // Overridden from views::LinkController: 364a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch virtual void LinkActivated(views::Link* source, int event_flags); 374a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch 384a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch private: 394a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch static void InitClass(); 404a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch 414a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch // Assorted resources for display. 424a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch static SkBitmap* sad_tab_bitmap_; 434a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch static gfx::Font* title_font_; 444a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch static gfx::Font* message_font_; 454a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch static std::wstring title_; 464a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch static std::wstring message_; 474a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch static int title_width_; 484a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch 494a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch TabContents* tab_contents_; 504a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch views::Link* learn_more_link_; 514a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch 524a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch // Regions within the display for different components, populated by 534a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch // Layout(). 544a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch gfx::Rect icon_bounds_; 554a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch gfx::Rect title_bounds_; 564a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch gfx::Rect message_bounds_; 574a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch gfx::Rect link_bounds_; 584a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch 594a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch DISALLOW_COPY_AND_ASSIGN(SadTabView); 604a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch}; 614a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch 624a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch#endif // CHROME_BROWSER_UI_VIEWS_SAD_TAB_VIEW_H__ 63