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

Side by Side Diff: chrome/browser/ui/gtk/omnibox/omnibox_popup_view_gtk.h

Issue 8781001: GTK: Port omnibox drawing from GdkGC interface to cairo. (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Added comment for thakis Created 9 years 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
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 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 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_GTK_OMNIBOX_OMNIBOX_POPUP_VIEW_GTK_H_ 5 #ifndef CHROME_BROWSER_UI_GTK_OMNIBOX_OMNIBOX_POPUP_VIEW_GTK_H_
6 #define CHROME_BROWSER_UI_GTK_OMNIBOX_OMNIBOX_POPUP_VIEW_GTK_H_ 6 #define CHROME_BROWSER_UI_GTK_OMNIBOX_OMNIBOX_POPUP_VIEW_GTK_H_
7 #pragma once 7 #pragma once
8 8
9 #include <gtk/gtk.h> 9 #include <gtk/gtk.h>
10 10
(...skipping 10 matching lines...) Expand all
21 #include "ui/base/gtk/gtk_signal.h" 21 #include "ui/base/gtk/gtk_signal.h"
22 #include "ui/gfx/font.h" 22 #include "ui/gfx/font.h"
23 #include "webkit/glue/window_open_disposition.h" 23 #include "webkit/glue/window_open_disposition.h"
24 24
25 class AutocompleteEditModel; 25 class AutocompleteEditModel;
26 class AutocompletePopupModel; 26 class AutocompletePopupModel;
27 class GtkThemeService; 27 class GtkThemeService;
28 class OmniboxView; 28 class OmniboxView;
29 class SkBitmap; 29 class SkBitmap;
30 30
31 namespace gfx {
32 class Image;
33 }
34
31 class OmniboxPopupViewGtk : public AutocompletePopupView, 35 class OmniboxPopupViewGtk : public AutocompletePopupView,
32 public content::NotificationObserver { 36 public content::NotificationObserver {
33 public: 37 public:
34 OmniboxPopupViewGtk(const gfx::Font& font, 38 OmniboxPopupViewGtk(const gfx::Font& font,
35 OmniboxView* omnibox_view, 39 OmniboxView* omnibox_view,
36 AutocompleteEditModel* edit_model, 40 AutocompleteEditModel* edit_model,
37 GtkWidget* location_bar); 41 GtkWidget* location_bar);
38 virtual ~OmniboxPopupViewGtk(); 42 virtual ~OmniboxPopupViewGtk();
39 43
40 // Overridden from AutocompletePopupView: 44 // Overridden from AutocompletePopupView:
(...skipping 27 matching lines...) Expand all
68 72
69 // Restack the popup window directly above the browser's toplevel window. 73 // Restack the popup window directly above the browser's toplevel window.
70 void StackWindow(); 74 void StackWindow();
71 75
72 // Convert a y-coordinate to the closest line / result. 76 // Convert a y-coordinate to the closest line / result.
73 size_t LineFromY(int y); 77 size_t LineFromY(int y);
74 78
75 // Accept a line of the results, for example, when the user clicks a line. 79 // Accept a line of the results, for example, when the user clicks a line.
76 void AcceptLine(size_t line, WindowOpenDisposition disposition); 80 void AcceptLine(size_t line, WindowOpenDisposition disposition);
77 81
78 GdkPixbuf* IconForMatch(const AutocompleteMatch& match, bool selected); 82 const gfx::Image* IconForMatch(const AutocompleteMatch& match, bool selected);
79 83
80 CHROMEGTK_CALLBACK_1(OmniboxPopupViewGtk, gboolean, HandleMotion, 84 CHROMEGTK_CALLBACK_1(OmniboxPopupViewGtk, gboolean, HandleMotion,
81 GdkEventMotion*); 85 GdkEventMotion*);
82 86
83 CHROMEGTK_CALLBACK_1(OmniboxPopupViewGtk, gboolean, HandleButtonPress, 87 CHROMEGTK_CALLBACK_1(OmniboxPopupViewGtk, gboolean, HandleButtonPress,
84 GdkEventButton*); 88 GdkEventButton*);
85 89
86 CHROMEGTK_CALLBACK_1(OmniboxPopupViewGtk, gboolean, HandleButtonRelease, 90 CHROMEGTK_CALLBACK_1(OmniboxPopupViewGtk, gboolean, HandleButtonRelease,
87 GdkEventButton*); 91 GdkEventButton*);
88 92
(...skipping 12 matching lines...) Expand all
101 105
102 GtkThemeService* theme_service_; 106 GtkThemeService* theme_service_;
103 content::NotificationRegistrar registrar_; 107 content::NotificationRegistrar registrar_;
104 108
105 // Font used for suggestions after being derived from the constructor's 109 // Font used for suggestions after being derived from the constructor's
106 // |font|. 110 // |font|.
107 gfx::Font font_; 111 gfx::Font font_;
108 112
109 // Used to cache GdkPixbufs and map them from the SkBitmaps they were created 113 // Used to cache GdkPixbufs and map them from the SkBitmaps they were created
110 // from. 114 // from.
111 typedef std::map<const SkBitmap*, GdkPixbuf*> PixbufMap; 115 typedef std::map<const SkBitmap*, gfx::Image*> ImageMap;
112 PixbufMap pixbufs_; 116 ImageMap images_;
113 117
114 // A list of colors which we should use for drawing the popup. These change 118 // A list of colors which we should use for drawing the popup. These change
115 // between gtk and normal mode. 119 // between gtk and normal mode.
116 GdkColor border_color_; 120 GdkColor border_color_;
117 GdkColor background_color_; 121 GdkColor background_color_;
118 GdkColor selected_background_color_; 122 GdkColor selected_background_color_;
119 GdkColor hovered_background_color_; 123 GdkColor hovered_background_color_;
120 GdkColor content_text_color_; 124 GdkColor content_text_color_;
121 GdkColor selected_content_text_color_; 125 GdkColor selected_content_text_color_;
122 GdkColor content_dim_text_color_; 126 GdkColor content_dim_text_color_;
123 GdkColor selected_content_dim_text_color_; 127 GdkColor selected_content_dim_text_color_;
124 GdkColor url_text_color_; 128 GdkColor url_text_color_;
125 GdkColor url_selected_text_color_; 129 GdkColor url_selected_text_color_;
126 130
127 // If the user cancels a dragging action (i.e. by pressing ESC), we don't have 131 // If the user cancels a dragging action (i.e. by pressing ESC), we don't have
128 // a convenient way to release mouse capture. Instead we use this flag to 132 // a convenient way to release mouse capture. Instead we use this flag to
129 // simply ignore all remaining drag events, and the eventual mouse release 133 // simply ignore all remaining drag events, and the eventual mouse release
130 // event. Since OnDragCanceled() can be called when we're not dragging, this 134 // event. Since OnDragCanceled() can be called when we're not dragging, this
131 // flag is reset to false on a mouse pressed event, to make sure we don't 135 // flag is reset to false on a mouse pressed event, to make sure we don't
132 // erroneously ignore the next drag. 136 // erroneously ignore the next drag.
133 bool ignore_mouse_drag_; 137 bool ignore_mouse_drag_;
134 138
135 // Whether our popup is currently open / shown, or closed / hidden. 139 // Whether our popup is currently open / shown, or closed / hidden.
136 bool opened_; 140 bool opened_;
137 141
138 DISALLOW_COPY_AND_ASSIGN(OmniboxPopupViewGtk); 142 DISALLOW_COPY_AND_ASSIGN(OmniboxPopupViewGtk);
139 }; 143 };
140 144
141 #endif // CHROME_BROWSER_UI_GTK_OMNIBOX_OMNIBOX_POPUP_VIEW_GTK_H_ 145 #endif // CHROME_BROWSER_UI_GTK_OMNIBOX_OMNIBOX_POPUP_VIEW_GTK_H_
OLDNEW
« no previous file with comments | « chrome/browser/themes/theme_service.cc ('k') | chrome/browser/ui/gtk/omnibox/omnibox_popup_view_gtk.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698