• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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