172a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen// Copyright (c) 2011 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_TABS_SIDE_TAB_H_ 64a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch#define CHROME_BROWSER_UI_VIEWS_TABS_SIDE_TAB_H_ 74a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch#pragma once 84a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch 972a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen#include "chrome/browser/ui/views/tabs/base_tab.h" 1072a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen#include "ui/gfx/font.h" 114a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch 124a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdochclass SideTab; 134a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdochclass TabStripController; 144a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch 154a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdochclass SideTab : public BaseTab { 164a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch public: 174a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch explicit SideTab(TabController* controller); 184a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch virtual ~SideTab(); 194a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch 204a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch // Returns the preferred height of side tabs. 214a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch static int GetPreferredHeight(); 224a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch 234a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch // views::View Overrides: 24ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen virtual void Layout() OVERRIDE; 25ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen virtual void OnPaint(gfx::Canvas* canvas) OVERRIDE; 26ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen virtual gfx::Size GetPreferredSize() OVERRIDE; 274a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch 284a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch protected: 29ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen virtual const gfx::Rect& GetTitleBounds() const OVERRIDE; 30ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen virtual const gfx::Rect& GetIconBounds() const OVERRIDE; 314a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch 324a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch // Returns true if the selected highlight should be rendered. 334a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch virtual bool ShouldPaintHighlight() const; 344a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch 354a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch private: 364a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch // Returns true if the icon should be shown. 374a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch bool ShouldShowIcon() const; 384a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch 394a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch gfx::Rect icon_bounds_; 404a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch gfx::Rect title_bounds_; 414a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch 424a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch DISALLOW_COPY_AND_ASSIGN(SideTab); 434a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch}; 444a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch 454a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch#endif // CHROME_BROWSER_UI_VIEWS_TABS_SIDE_TAB_H_ 46