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

Side by Side Diff: views/controls/textfield/native_textfield_gtk.cc

Issue 5857002: no native implementation of Textfield. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix comment Created 10 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 | Annotate | Revision Log
« no previous file with comments | « chrome/chrome_tests.gypi ('k') | views/controls/textfield/native_textfield_views.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 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 <gdk/gdkkeysyms.h> 5 #include <gdk/gdkkeysyms.h>
6 #include <gtk/gtk.h> 6 #include <gtk/gtk.h>
7 7
8 #include "views/controls/textfield/native_textfield_gtk.h" 8 #include "views/controls/textfield/native_textfield_gtk.h"
9 9
10 #include "base/logging.h" 10 #include "base/logging.h"
(...skipping 338 matching lines...) Expand 10 before | Expand all | Expand 10 after
349 gboolean NativeTextfieldGtk::OnKeyPressEventHandler( 349 gboolean NativeTextfieldGtk::OnKeyPressEventHandler(
350 GtkWidget* widget, 350 GtkWidget* widget,
351 GdkEventKey* event, 351 GdkEventKey* event,
352 NativeTextfieldGtk* textfield) { 352 NativeTextfieldGtk* textfield) {
353 return textfield->OnKeyPressEvent(event); 353 return textfield->OnKeyPressEvent(event);
354 } 354 }
355 355
356 gboolean NativeTextfieldGtk::OnKeyPressEvent(GdkEventKey* event) { 356 gboolean NativeTextfieldGtk::OnKeyPressEvent(GdkEventKey* event) {
357 Textfield::Controller* controller = textfield_->GetController(); 357 Textfield::Controller* controller = textfield_->GetController();
358 if (controller) { 358 if (controller) {
359 Textfield::Keystroke ks(event); 359 KeyEvent key_event(event);
360 Textfield::Keystroke ks(&key_event);
360 return controller->HandleKeystroke(textfield_, ks); 361 return controller->HandleKeystroke(textfield_, ks);
361 } 362 }
362 return false; 363 return false;
363 } 364 }
364 365
365 // static 366 // static
366 gboolean NativeTextfieldGtk::OnActivateHandler( 367 gboolean NativeTextfieldGtk::OnActivateHandler(
367 GtkWidget* widget, 368 GtkWidget* widget,
368 NativeTextfieldGtk* textfield) { 369 NativeTextfieldGtk* textfield) {
369 return textfield->OnActivate(); 370 return textfield->OnActivate();
370 } 371 }
371 372
372 gboolean NativeTextfieldGtk::OnActivate() { 373 gboolean NativeTextfieldGtk::OnActivate() {
373 GdkEvent* event = gtk_get_current_event(); 374 GdkEvent* event = gtk_get_current_event();
374 if (!event || event->type != GDK_KEY_PRESS) 375 if (!event || event->type != GDK_KEY_PRESS)
375 return false; 376 return false;
376 377
377 GdkEventKey* key_event = reinterpret_cast<GdkEventKey*>(event); 378 GdkEventKey* key_event = reinterpret_cast<GdkEventKey*>(event);
378 gboolean handled = false; 379 gboolean handled = false;
379 380
380 Textfield::Controller* controller = textfield_->GetController(); 381 Textfield::Controller* controller = textfield_->GetController();
381 if (controller) { 382 if (controller) {
382 Textfield::Keystroke ks(key_event); 383 KeyEvent views_key_event(key_event);
384 Textfield::Keystroke ks(&views_key_event);
383 handled = controller->HandleKeystroke(textfield_, ks); 385 handled = controller->HandleKeystroke(textfield_, ks);
384 } 386 }
385 387
386 WidgetGtk* widget = static_cast<WidgetGtk*>(GetWidget()); 388 WidgetGtk* widget = static_cast<WidgetGtk*>(GetWidget());
387 if (!handled && widget) 389 if (!handled && widget)
388 handled = widget->HandleKeyboardEvent(key_event); 390 handled = widget->HandleKeyboardEvent(key_event);
389 391
390 return handled; 392 return handled;
391 } 393 }
392 394
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
437 g_signal_connect(widget, "changed", 439 g_signal_connect(widget, "changed",
438 G_CALLBACK(OnChangedHandler), this); 440 G_CALLBACK(OnChangedHandler), this);
439 } 441 }
440 g_signal_connect_after(widget, "key-press-event", 442 g_signal_connect_after(widget, "key-press-event",
441 G_CALLBACK(OnKeyPressEventHandler), this); 443 G_CALLBACK(OnKeyPressEventHandler), this);
442 // In order to properly trigger Accelerators bound to VKEY_RETURN, we need to 444 // In order to properly trigger Accelerators bound to VKEY_RETURN, we need to
443 // send an event when the widget gets the activate signal. 445 // send an event when the widget gets the activate signal.
444 g_signal_connect(widget, "activate", G_CALLBACK(OnActivateHandler), this); 446 g_signal_connect(widget, "activate", G_CALLBACK(OnActivateHandler), this);
445 } 447 }
446 448
447 ////////////////////////////////////////////////////////////////////////////////
448 // NativeTextfieldWrapper, public:
449
450 // static
451 NativeTextfieldWrapper* NativeTextfieldWrapper::CreateWrapper(
452 Textfield* field) {
453 return new NativeTextfieldGtk(field);
454 }
455
456 } // namespace views 449 } // namespace views
OLDNEW
« no previous file with comments | « chrome/chrome_tests.gypi ('k') | views/controls/textfield/native_textfield_views.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698