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

Side by Side Diff: views/widget/widget_gtk.cc

Issue 197031: Fleshes out the tooltip implementation for views on Gtk. It doesn't... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 11 years, 3 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
« no previous file with comments | « views/widget/widget_gtk.h ('k') | no next file » | 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) 2009 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2009 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 "views/widget/widget_gtk.h" 5 #include "views/widget/widget_gtk.h"
6 6
7 #include "app/drag_drop_types.h" 7 #include "app/drag_drop_types.h"
8 #include "app/gfx/path.h" 8 #include "app/gfx/path.h"
9 #include "app/os_exchange_data.h" 9 #include "app/os_exchange_data.h"
10 #include "app/os_exchange_data_provider_gtk.h" 10 #include "app/os_exchange_data_provider_gtk.h"
(...skipping 269 matching lines...) Expand 10 before | Expand all | Expand 10 after
280 G_CALLBACK(CallDragLeave), this); 280 G_CALLBACK(CallDragLeave), this);
281 g_signal_connect(G_OBJECT(window_contents_), "drag_data_get", 281 g_signal_connect(G_OBJECT(window_contents_), "drag_data_get",
282 G_CALLBACK(CallDragDataGet), this); 282 G_CALLBACK(CallDragDataGet), this);
283 g_signal_connect(G_OBJECT(window_contents_), "drag_end", 283 g_signal_connect(G_OBJECT(window_contents_), "drag_end",
284 G_CALLBACK(CallDragEnd), this); 284 G_CALLBACK(CallDragEnd), this);
285 g_signal_connect(G_OBJECT(window_contents_), "drag_failed", 285 g_signal_connect(G_OBJECT(window_contents_), "drag_failed",
286 G_CALLBACK(CallDragFailed), this); 286 G_CALLBACK(CallDragFailed), this);
287 287
288 tooltip_manager_.reset(new TooltipManagerGtk(this)); 288 tooltip_manager_.reset(new TooltipManagerGtk(this));
289 289
290 // Register for tooltips.
291 g_object_set(G_OBJECT(window_contents_), "has-tooltip", TRUE, NULL);
292 g_signal_connect(G_OBJECT(window_contents_), "query_tooltip",
293 G_CALLBACK(CallQueryTooltip), this);
294
290 if (type_ == TYPE_CHILD) { 295 if (type_ == TYPE_CHILD) {
291 if (parent) { 296 if (parent) {
292 WidgetGtk* parent_widget = GetViewForNative(parent); 297 WidgetGtk* parent_widget = GetViewForNative(parent);
293 parent_widget->AddChild(widget_); 298 parent_widget->AddChild(widget_);
294 parent_widget->PositionChild(widget_, bounds.x(), bounds.y(), 299 parent_widget->PositionChild(widget_, bounds.x(), bounds.y(),
295 bounds.width(), bounds.height()); 300 bounds.width(), bounds.height());
296 } 301 }
297 } else { 302 } else {
298 if (bounds.width() > 0 && bounds.height() > 0) 303 if (bounds.width() > 0 && bounds.height() > 0)
299 gtk_window_resize(GTK_WINDOW(widget_), bounds.width(), bounds.height()); 304 gtk_window_resize(GTK_WINDOW(widget_), bounds.width(), bounds.height());
(...skipping 361 matching lines...) Expand 10 before | Expand all | Expand 10 after
661 } 666 }
662 667
663 gboolean WidgetGtk::OnEnterNotify(GtkWidget* widget, GdkEventCrossing* event) { 668 gboolean WidgetGtk::OnEnterNotify(GtkWidget* widget, GdkEventCrossing* event) {
664 return false; 669 return false;
665 } 670 }
666 671
667 gboolean WidgetGtk::OnLeaveNotify(GtkWidget* widget, GdkEventCrossing* event) { 672 gboolean WidgetGtk::OnLeaveNotify(GtkWidget* widget, GdkEventCrossing* event) {
668 last_mouse_event_was_move_ = false; 673 last_mouse_event_was_move_ = false;
669 if (!has_capture_ && !is_mouse_down_) 674 if (!has_capture_ && !is_mouse_down_)
670 root_view_->ProcessOnMouseExited(); 675 root_view_->ProcessOnMouseExited();
671 return true; 676 return false;
672 } 677 }
673 678
674 gboolean WidgetGtk::OnKeyPress(GtkWidget* widget, GdkEventKey* event) { 679 gboolean WidgetGtk::OnKeyPress(GtkWidget* widget, GdkEventKey* event) {
675 KeyEvent key_event(event, false); 680 KeyEvent key_event(event, false);
676 return root_view_->ProcessKeyEvent(key_event); 681 return root_view_->ProcessKeyEvent(key_event);
677 } 682 }
678 683
679 gboolean WidgetGtk::OnKeyRelease(GtkWidget* widget, GdkEventKey* event) { 684 gboolean WidgetGtk::OnKeyRelease(GtkWidget* widget, GdkEventKey* event) {
680 KeyEvent key_event(event, false); 685 KeyEvent key_event(event, false);
681 return root_view_->ProcessKeyEvent(key_event); 686 return root_view_->ProcessKeyEvent(key_event);
682 } 687 }
683 688
689 gboolean WidgetGtk::OnQueryTooltip(gint x,
690 gint y,
691 gboolean keyboard_mode,
692 GtkTooltip* tooltip) {
693 return tooltip_manager_->ShowTooltip(x, y, keyboard_mode, tooltip);
694 }
695
684 gboolean WidgetGtk::OnGrabBrokeEvent(GtkWidget* widget, GdkEvent* event) { 696 gboolean WidgetGtk::OnGrabBrokeEvent(GtkWidget* widget, GdkEvent* event) {
685 HandleGrabBroke(); 697 HandleGrabBroke();
686 return false; // To let other widgets get the event. 698 return false; // To let other widgets get the event.
687 } 699 }
688 700
689 void WidgetGtk::OnGrabNotify(GtkWidget* widget, gboolean was_grabbed) { 701 void WidgetGtk::OnGrabNotify(GtkWidget* widget, gboolean was_grabbed) {
690 gtk_grab_remove(window_contents_); 702 gtk_grab_remove(window_contents_);
691 HandleGrabBroke(); 703 HandleGrabBroke();
692 } 704 }
693 705
(...skipping 271 matching lines...) Expand 10 before | Expand all | Expand 10 after
965 } 977 }
966 978
967 gboolean WidgetGtk::CallKeyRelease(GtkWidget* widget, GdkEventKey* event) { 979 gboolean WidgetGtk::CallKeyRelease(GtkWidget* widget, GdkEventKey* event) {
968 WidgetGtk* widget_gtk = GetViewForNative(widget); 980 WidgetGtk* widget_gtk = GetViewForNative(widget);
969 if (!widget_gtk) 981 if (!widget_gtk)
970 return false; 982 return false;
971 983
972 return widget_gtk->OnKeyRelease(widget, event); 984 return widget_gtk->OnKeyRelease(widget, event);
973 } 985 }
974 986
987 // static
988 gboolean WidgetGtk::CallQueryTooltip(GtkWidget* widget,
989 gint x,
990 gint y,
991 gboolean keyboard_mode,
992 GtkTooltip* tooltip,
993 WidgetGtk* host) {
994 return host->OnQueryTooltip(x, y, keyboard_mode, tooltip);
995 }
996
975 gboolean WidgetGtk::CallScroll(GtkWidget* widget, GdkEventScroll* event) { 997 gboolean WidgetGtk::CallScroll(GtkWidget* widget, GdkEventScroll* event) {
976 WidgetGtk* widget_gtk = GetViewForNative(widget); 998 WidgetGtk* widget_gtk = GetViewForNative(widget);
977 if (!widget_gtk) 999 if (!widget_gtk)
978 return false; 1000 return false;
979 1001
980 return widget_gtk->OnScroll(widget, event); 1002 return widget_gtk->OnScroll(widget, event);
981 } 1003 }
982 1004
983 gboolean WidgetGtk::CallVisibilityNotify(GtkWidget* widget, 1005 gboolean WidgetGtk::CallVisibilityNotify(GtkWidget* widget,
984 GdkEventVisibility* event) { 1006 GdkEventVisibility* event) {
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after
1071 1093
1072 // static 1094 // static
1073 Widget* Widget::CreateTransparentPopupWidget(bool delete_on_destroy) { 1095 Widget* Widget::CreateTransparentPopupWidget(bool delete_on_destroy) {
1074 WidgetGtk* popup = new WidgetGtk(WidgetGtk::TYPE_POPUP); 1096 WidgetGtk* popup = new WidgetGtk(WidgetGtk::TYPE_POPUP);
1075 popup->set_delete_on_destroy(delete_on_destroy); 1097 popup->set_delete_on_destroy(delete_on_destroy);
1076 popup->MakeTransparent(); 1098 popup->MakeTransparent();
1077 return popup; 1099 return popup;
1078 } 1100 }
1079 1101
1080 } // namespace views 1102 } // namespace views
OLDNEW
« no previous file with comments | « views/widget/widget_gtk.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698