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 #ifndef CHROME_BROWSER_UI_VIEWS_AUTOCOMPLETE_TOUCH_AUTOCOMPLETE_POPUP_CONTENTS_VIEW_H_ 6 #define CHROME_BROWSER_UI_VIEWS_AUTOCOMPLETE_TOUCH_AUTOCOMPLETE_POPUP_CONTENTS_VIEW_H_ 7 #pragma once 8 9 #include "chrome/browser/ui/views/autocomplete/autocomplete_popup_contents_view.h" 10 #include "chrome/browser/ui/views/autocomplete/autocomplete_result_view.h" 11 12 class AutocompleteEditView; 13 class AutocompleteEditModel; 14 class Profile; 15 16 namespace gfx { 17 class Canvas; 18 class CanvasSkia; 19 } 20 21 namespace views { 22 class View; 23 } 24 25 class TouchAutocompleteResultView : public AutocompleteResultView { 26 public: 27 TouchAutocompleteResultView(AutocompleteResultViewModel* model, 28 int model_index, 29 const gfx::Font& font, 30 const gfx::Font& bold_font); 31 32 private: 33 virtual ~TouchAutocompleteResultView(); 34 35 // AutocompleteResultView: 36 virtual void PaintMatch(gfx::Canvas* canvas, 37 const AutocompleteMatch& match, 38 int x) OVERRIDE; 39 virtual int GetFontHeight() const OVERRIDE; 40 41 DISALLOW_COPY_AND_ASSIGN(TouchAutocompleteResultView); 42 }; 43 44 class TouchAutocompletePopupContentsView 45 : public AutocompletePopupContentsView { 46 public: 47 TouchAutocompletePopupContentsView(const gfx::Font& font, 48 AutocompleteEditView* edit_view, 49 AutocompleteEditModel* edit_model, 50 Profile* profile, 51 const views::View* location_bar); 52 virtual ~TouchAutocompletePopupContentsView(); 53 54 // AutocompletePopupContentsView: 55 virtual void UpdatePopupAppearance(); 56 virtual void LayoutChildren(); 57 58 protected: 59 // AutocompletePopupContentsView: 60 virtual void PaintResultViews(gfx::CanvasSkia* canvas); 61 virtual int CalculatePopupHeight(); 62 virtual AutocompleteResultView* CreateResultView( 63 AutocompleteResultViewModel* model, 64 int model_index, 65 const gfx::Font& font, 66 const gfx::Font& bold_font); 67 68 private: 69 std::vector<View*> GetVisibleChildren(); 70 71 DISALLOW_COPY_AND_ASSIGN(TouchAutocompletePopupContentsView); 72 }; 73 74 #endif // CHROME_BROWSER_UI_VIEWS_AUTOCOMPLETE_TOUCH_AUTOCOMPLETE_POPUP_CONTENTS_VIEW_H_ 75