Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(110)

Side by Side Diff: chrome/browser/ui/views/omnibox/omnibox_popup_contents_view.h

Issue 19666006: Supports FontList in Textfield. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Removes ResourceBundle::Delegate::GetFontList. Created 7 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef CHROME_BROWSER_UI_VIEWS_OMNIBOX_OMNIBOX_POPUP_CONTENTS_VIEW_H_ 5 #ifndef CHROME_BROWSER_UI_VIEWS_OMNIBOX_OMNIBOX_POPUP_CONTENTS_VIEW_H_
6 #define CHROME_BROWSER_UI_VIEWS_OMNIBOX_OMNIBOX_POPUP_CONTENTS_VIEW_H_ 6 #define CHROME_BROWSER_UI_VIEWS_OMNIBOX_OMNIBOX_POPUP_CONTENTS_VIEW_H_
7 7
8 #include "base/memory/weak_ptr.h" 8 #include "base/memory/weak_ptr.h"
9 #include "chrome/browser/ui/omnibox/omnibox_popup_model.h" 9 #include "chrome/browser/ui/omnibox/omnibox_popup_model.h"
10 #include "chrome/browser/ui/omnibox/omnibox_popup_view.h" 10 #include "chrome/browser/ui/omnibox/omnibox_popup_view.h"
11 #include "chrome/browser/ui/views/omnibox/omnibox_result_view_model.h" 11 #include "chrome/browser/ui/views/omnibox/omnibox_result_view_model.h"
12 #include "ui/base/animation/animation_delegate.h" 12 #include "ui/base/animation/animation_delegate.h"
13 #include "ui/base/animation/slide_animation.h" 13 #include "ui/base/animation/slide_animation.h"
14 #include "ui/base/window_open_disposition.h" 14 #include "ui/base/window_open_disposition.h"
15 #include "ui/gfx/font.h" 15 #include "ui/gfx/font_list.h"
16 #include "ui/views/view.h" 16 #include "ui/views/view.h"
17 17
18 struct AutocompleteMatch; 18 struct AutocompleteMatch;
19 class LocationBarView; 19 class LocationBarView;
20 class OmniboxEditModel; 20 class OmniboxEditModel;
21 class OmniboxResultView; 21 class OmniboxResultView;
22 class OmniboxView; 22 class OmniboxView;
23 class Profile; 23 class Profile;
24 24
25 // A view representing the contents of the autocomplete popup. 25 // A view representing the contents of the autocomplete popup.
26 class OmniboxPopupContentsView : public views::View, 26 class OmniboxPopupContentsView : public views::View,
27 public OmniboxResultViewModel, 27 public OmniboxResultViewModel,
28 public OmniboxPopupView, 28 public OmniboxPopupView,
29 public ui::AnimationDelegate { 29 public ui::AnimationDelegate {
30 public: 30 public:
31 // Factory method for creating the AutocompletePopupView. 31 // Factory method for creating the AutocompletePopupView.
32 static OmniboxPopupView* Create(const gfx::Font& font, 32 static OmniboxPopupView* Create(const gfx::FontList& font_list,
33 OmniboxView* omnibox_view, 33 OmniboxView* omnibox_view,
34 OmniboxEditModel* edit_model, 34 OmniboxEditModel* edit_model,
35 LocationBarView* location_bar_view); 35 LocationBarView* location_bar_view);
36 36
37 // Returns the bounds the popup should be shown at. This is the display bounds 37 // Returns the bounds the popup should be shown at. This is the display bounds
38 // and includes offsets for the dropshadow which this view's border renders. 38 // and includes offsets for the dropshadow which this view's border renders.
39 gfx::Rect GetPopupBounds() const; 39 gfx::Rect GetPopupBounds() const;
40 40
41 virtual void LayoutChildren(); 41 virtual void LayoutChildren();
42 42
(...skipping 24 matching lines...) Expand all
67 virtual void OnMouseReleased(const ui::MouseEvent& event) OVERRIDE; 67 virtual void OnMouseReleased(const ui::MouseEvent& event) OVERRIDE;
68 virtual void OnMouseCaptureLost() OVERRIDE; 68 virtual void OnMouseCaptureLost() OVERRIDE;
69 virtual void OnMouseMoved(const ui::MouseEvent& event) OVERRIDE; 69 virtual void OnMouseMoved(const ui::MouseEvent& event) OVERRIDE;
70 virtual void OnMouseEntered(const ui::MouseEvent& event) OVERRIDE; 70 virtual void OnMouseEntered(const ui::MouseEvent& event) OVERRIDE;
71 virtual void OnMouseExited(const ui::MouseEvent& event) OVERRIDE; 71 virtual void OnMouseExited(const ui::MouseEvent& event) OVERRIDE;
72 72
73 // Overridden from ui::EventHandler: 73 // Overridden from ui::EventHandler:
74 virtual void OnGestureEvent(ui::GestureEvent* event) OVERRIDE; 74 virtual void OnGestureEvent(ui::GestureEvent* event) OVERRIDE;
75 75
76 protected: 76 protected:
77 OmniboxPopupContentsView(const gfx::Font& font, 77 OmniboxPopupContentsView(const gfx::FontList& font_list,
78 OmniboxView* omnibox_view, 78 OmniboxView* omnibox_view,
79 OmniboxEditModel* edit_model, 79 OmniboxEditModel* edit_model,
80 LocationBarView* location_bar_view); 80 LocationBarView* location_bar_view);
81 virtual ~OmniboxPopupContentsView(); 81 virtual ~OmniboxPopupContentsView();
82 82
83 LocationBarView* location_bar_view() { return location_bar_view_; } 83 LocationBarView* location_bar_view() { return location_bar_view_; }
84 84
85 virtual void PaintResultViews(gfx::Canvas* canvas); 85 virtual void PaintResultViews(gfx::Canvas* canvas);
86 86
87 // Calculates the height needed to show all the results in the model. 87 // Calculates the height needed to show all the results in the model.
88 virtual int CalculatePopupHeight(); 88 virtual int CalculatePopupHeight();
89 virtual OmniboxResultView* CreateResultView(OmniboxResultViewModel* model, 89 virtual OmniboxResultView* CreateResultView(OmniboxResultViewModel* model,
90 int model_index, 90 int model_index,
91 const gfx::Font& font); 91 const gfx::FontList& font_list);
92 92
93 // Overridden from views::View: 93 // Overridden from views::View:
94 virtual void OnPaint(gfx::Canvas* canvas) OVERRIDE; 94 virtual void OnPaint(gfx::Canvas* canvas) OVERRIDE;
95 // This method should not be triggered directly as we paint our children 95 // This method should not be triggered directly as we paint our children
96 // in an un-conventional way inside OnPaint. We use a separate canvas to 96 // in an un-conventional way inside OnPaint. We use a separate canvas to
97 // paint the children. Hence we override this method to a no-op so that 97 // paint the children. Hence we override this method to a no-op so that
98 // the view hierarchy does not "accidentally" trigger this. 98 // the view hierarchy does not "accidentally" trigger this.
99 virtual void PaintChildren(gfx::Canvas* canvas) OVERRIDE; 99 virtual void PaintChildren(gfx::Canvas* canvas) OVERRIDE;
100 100
101 scoped_ptr<OmniboxPopupModel> model_; 101 scoped_ptr<OmniboxPopupModel> model_;
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
137 // when its window is destroyed. This is a WeakPtr because it's possible for 137 // when its window is destroyed. This is a WeakPtr because it's possible for
138 // the OS to destroy the window and thus delete this object before we're 138 // the OS to destroy the window and thus delete this object before we're
139 // deleted, or without our knowledge. 139 // deleted, or without our knowledge.
140 base::WeakPtr<AutocompletePopupWidget> popup_; 140 base::WeakPtr<AutocompletePopupWidget> popup_;
141 141
142 // The edit view that invokes us. 142 // The edit view that invokes us.
143 OmniboxView* omnibox_view_; 143 OmniboxView* omnibox_view_;
144 144
145 LocationBarView* location_bar_view_; 145 LocationBarView* location_bar_view_;
146 146
147 // The font used for result rows, based on the omnibox font. 147 // The font list used for result rows, based on the omnibox font list.
148 gfx::Font font_; 148 gfx::FontList font_list_;
149 149
150 // If the user cancels a dragging action (i.e. by pressing ESC), we don't have 150 // If the user cancels a dragging action (i.e. by pressing ESC), we don't have
151 // a convenient way to release mouse capture. Instead we use this flag to 151 // a convenient way to release mouse capture. Instead we use this flag to
152 // simply ignore all remaining drag events, and the eventual mouse release 152 // simply ignore all remaining drag events, and the eventual mouse release
153 // event. Since OnDragCanceled() can be called when we're not dragging, this 153 // event. Since OnDragCanceled() can be called when we're not dragging, this
154 // flag is reset to false on a mouse pressed event, to make sure we don't 154 // flag is reset to false on a mouse pressed event, to make sure we don't
155 // erroneously ignore the next drag. 155 // erroneously ignore the next drag.
156 bool ignore_mouse_drag_; 156 bool ignore_mouse_drag_;
157 157
158 // The popup sizes vertically using an animation when the popup is getting 158 // The popup sizes vertically using an animation when the popup is getting
159 // shorter (not larger, that makes it look "slow"). 159 // shorter (not larger, that makes it look "slow").
160 ui::SlideAnimation size_animation_; 160 ui::SlideAnimation size_animation_;
161 gfx::Rect start_bounds_; 161 gfx::Rect start_bounds_;
162 gfx::Rect target_bounds_; 162 gfx::Rect target_bounds_;
163 163
164 int left_margin_; 164 int left_margin_;
165 int right_margin_; 165 int right_margin_;
166 166
167 const gfx::ImageSkia* bottom_shadow_; // Ptr owned by resource bundle. 167 const gfx::ImageSkia* bottom_shadow_; // Ptr owned by resource bundle.
168 168
169 // Amount of extra padding to add to the popup on the top and bottom. 169 // Amount of extra padding to add to the popup on the top and bottom.
170 int outside_vertical_padding_; 170 int outside_vertical_padding_;
171 171
172 DISALLOW_COPY_AND_ASSIGN(OmniboxPopupContentsView); 172 DISALLOW_COPY_AND_ASSIGN(OmniboxPopupContentsView);
173 }; 173 };
174 174
175 #endif // CHROME_BROWSER_UI_VIEWS_OMNIBOX_OMNIBOX_POPUP_CONTENTS_VIEW_H_ 175 #endif // CHROME_BROWSER_UI_VIEWS_OMNIBOX_OMNIBOX_POPUP_CONTENTS_VIEW_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698