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

Side by Side Diff: chrome/browser/ui/gtk/autofill/autofill_popup_view_gtk.cc

Issue 44543002: Enable touch for autofill popup view (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fixed Gtk and Cocoa compile errors Created 7 years, 1 month 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 #include "chrome/browser/ui/gtk/autofill/autofill_popup_view_gtk.h" 5 #include "chrome/browser/ui/gtk/autofill/autofill_popup_view_gtk.h"
6 6
7 #include <gdk/gdkkeysyms.h> 7 #include <gdk/gdkkeysyms.h>
8 8
9 #include "base/logging.h" 9 #include "base/logging.h"
10 #include "base/strings/utf_string_conversions.h" 10 #include "base/strings/utf_string_conversions.h"
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after
110 controller_->Hide(); 110 controller_->Hide();
111 return FALSE; 111 return FALSE;
112 } 112 }
113 113
114 gboolean AutofillPopupViewGtk::HandleButtonRelease(GtkWidget* widget, 114 gboolean AutofillPopupViewGtk::HandleButtonRelease(GtkWidget* widget,
115 GdkEventButton* event) { 115 GdkEventButton* event) {
116 // We only care about the left click. 116 // We only care about the left click.
117 if (event->button != 1) 117 if (event->button != 1)
118 return FALSE; 118 return FALSE;
119 119
120 controller_->MouseClicked(event->x, event->y); 120 controller_->PointPreselected(event->x, event->y);
121 return TRUE; 121 return TRUE;
122 } 122 }
123 123
124 gboolean AutofillPopupViewGtk::HandleExpose(GtkWidget* widget, 124 gboolean AutofillPopupViewGtk::HandleExpose(GtkWidget* widget,
125 GdkEventExpose* event) { 125 GdkEventExpose* event) {
126 cairo_t* cr = gdk_cairo_create(GDK_DRAWABLE(gtk_widget_get_window(widget))); 126 cairo_t* cr = gdk_cairo_create(GDK_DRAWABLE(gtk_widget_get_window(widget)));
127 gdk_cairo_rectangle(cr, &event->area); 127 gdk_cairo_rectangle(cr, &event->area);
128 cairo_clip(cr); 128 cairo_clip(cr);
129 129
130 // This assert is kinda ugly, but it would be more currently unneeded work 130 // This assert is kinda ugly, but it would be more currently unneeded work
(...skipping 20 matching lines...) Expand all
151 DrawAutofillEntry(cr, i, line_rect); 151 DrawAutofillEntry(cr, i, line_rect);
152 } 152 }
153 153
154 cairo_destroy(cr); 154 cairo_destroy(cr);
155 155
156 return TRUE; 156 return TRUE;
157 } 157 }
158 158
159 gboolean AutofillPopupViewGtk::HandleLeave(GtkWidget* widget, 159 gboolean AutofillPopupViewGtk::HandleLeave(GtkWidget* widget,
160 GdkEventCrossing* event) { 160 GdkEventCrossing* event) {
161 controller_->MouseExitedPopup(); 161 controller_->PreselectionCleared();
162 162
163 return FALSE; 163 return FALSE;
164 } 164 }
165 165
166 gboolean AutofillPopupViewGtk::HandleMotion(GtkWidget* widget, 166 gboolean AutofillPopupViewGtk::HandleMotion(GtkWidget* widget,
167 GdkEventMotion* event) { 167 GdkEventMotion* event) {
168 controller_->MouseHovered(event->x, event->y); 168 controller_->PointPreselected(event->x, event->y);
169 169
170 return TRUE; 170 return TRUE;
171 } 171 }
172 172
173 void AutofillPopupViewGtk::SetUpLayout() { 173 void AutofillPopupViewGtk::SetUpLayout() {
174 pango_layout_set_width(layout_, window_->allocation.width * PANGO_SCALE); 174 pango_layout_set_width(layout_, window_->allocation.width * PANGO_SCALE);
175 pango_layout_set_height(layout_, window_->allocation.height * PANGO_SCALE); 175 pango_layout_set_height(layout_, window_->allocation.height * PANGO_SCALE);
176 } 176 }
177 177
178 void AutofillPopupViewGtk::SetLayoutText(const string16& text, 178 void AutofillPopupViewGtk::SetLayoutText(const string16& text,
(...skipping 26 matching lines...) Expand all
205 cairo_line_to(cairo_context, 205 cairo_line_to(cairo_context,
206 separator_rect.width(), 206 separator_rect.width(),
207 separator_rect.y() + separator_rect.height()); 207 separator_rect.y() + separator_rect.height());
208 cairo_stroke(cairo_context); 208 cairo_stroke(cairo_context);
209 cairo_restore(cairo_context); 209 cairo_restore(cairo_context);
210 } 210 }
211 211
212 void AutofillPopupViewGtk::DrawAutofillEntry(cairo_t* cairo_context, 212 void AutofillPopupViewGtk::DrawAutofillEntry(cairo_t* cairo_context,
213 size_t index, 213 size_t index,
214 const gfx::Rect& entry_rect) { 214 const gfx::Rect& entry_rect) {
215 if (controller_->selected_line() == static_cast<int>(index)) { 215 if (controller_->preselected_line() == static_cast<int>(index)) {
216 gdk_cairo_set_source_color(cairo_context, &kHoveredBackgroundColor); 216 gdk_cairo_set_source_color(cairo_context, &kHoveredBackgroundColor);
217 cairo_rectangle(cairo_context, entry_rect.x(), entry_rect.y(), 217 cairo_rectangle(cairo_context, entry_rect.x(), entry_rect.y(),
218 entry_rect.width(), entry_rect.height()); 218 entry_rect.width(), entry_rect.height());
219 cairo_fill(cairo_context); 219 cairo_fill(cairo_context);
220 } 220 }
221 221
222 // Draw the value. 222 // Draw the value.
223 SetLayoutText(controller_->names()[index], 223 SetLayoutText(controller_->names()[index],
224 controller_->GetNameFontForRow(index), 224 controller_->GetNameFontForRow(index),
225 controller_->IsWarning(index) ? kWarningColor : kNameColor); 225 controller_->IsWarning(index) ? kWarningColor : kNameColor);
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
285 pango_cairo_show_layout(cairo_context, layout_); 285 pango_cairo_show_layout(cairo_context, layout_);
286 cairo_restore(cairo_context); 286 cairo_restore(cairo_context);
287 } 287 }
288 288
289 AutofillPopupView* AutofillPopupView::Create( 289 AutofillPopupView* AutofillPopupView::Create(
290 AutofillPopupController* controller) { 290 AutofillPopupController* controller) {
291 return new AutofillPopupViewGtk(controller); 291 return new AutofillPopupViewGtk(controller);
292 } 292 }
293 293
294 } // namespace autofill 294 } // namespace autofill
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698