| OLD | NEW |
| 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 #include "chrome/browser/ui/gtk/find_bar_gtk.h" | 5 #include "chrome/browser/ui/gtk/find_bar_gtk.h" |
| 6 | 6 |
| 7 #include <gdk/gdkkeysyms.h> | 7 #include <gdk/gdkkeysyms.h> |
| 8 | 8 |
| 9 #include <algorithm> | 9 #include <algorithm> |
| 10 #include <string> | 10 #include <string> |
| (...skipping 188 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 199 g_signal_connect(text_entry_, "focus", | 199 g_signal_connect(text_entry_, "focus", |
| 200 G_CALLBACK(OnFocus), this); | 200 G_CALLBACK(OnFocus), this); |
| 201 gtk_widget_add_events(text_entry_, GDK_BUTTON_PRESS_MASK); | 201 gtk_widget_add_events(text_entry_, GDK_BUTTON_PRESS_MASK); |
| 202 g_signal_connect(text_entry_, "button-press-event", | 202 g_signal_connect(text_entry_, "button-press-event", |
| 203 G_CALLBACK(OnButtonPress), this); | 203 G_CALLBACK(OnButtonPress), this); |
| 204 g_signal_connect(text_entry_, "move-cursor", G_CALLBACK(OnMoveCursor), this); | 204 g_signal_connect(text_entry_, "move-cursor", G_CALLBACK(OnMoveCursor), this); |
| 205 g_signal_connect(text_entry_, "activate", G_CALLBACK(OnActivateThunk), this); | 205 g_signal_connect(text_entry_, "activate", G_CALLBACK(OnActivateThunk), this); |
| 206 g_signal_connect(text_entry_, "direction-changed", | 206 g_signal_connect(text_entry_, "direction-changed", |
| 207 G_CALLBACK(OnWidgetDirectionChanged), this); | 207 G_CALLBACK(OnWidgetDirectionChanged), this); |
| 208 g_signal_connect(text_entry_, "focus-in-event", | 208 g_signal_connect(text_entry_, "focus-in-event", |
| 209 G_CALLBACK(OnFocusIn), this); | 209 G_CALLBACK(OnFocusInThunk), this); |
| 210 g_signal_connect(text_entry_, "focus-out-event", | 210 g_signal_connect(text_entry_, "focus-out-event", |
| 211 G_CALLBACK(OnFocusOut), this); | 211 G_CALLBACK(OnFocusOutThunk), this); |
| 212 g_signal_connect(container_, "expose-event", | 212 g_signal_connect(container_, "expose-event", |
| 213 G_CALLBACK(OnExpose), this); | 213 G_CALLBACK(OnExpose), this); |
| 214 } | 214 } |
| 215 | 215 |
| 216 FindBarGtk::~FindBarGtk() { | 216 FindBarGtk::~FindBarGtk() { |
| 217 } | 217 } |
| 218 | 218 |
| 219 void FindBarGtk::InitWidgets() { | 219 void FindBarGtk::InitWidgets() { |
| 220 // The find bar is basically an hbox with a gtkentry (text box) followed by 3 | 220 // The find bar is basically an hbox with a gtkentry (text box) followed by 3 |
| 221 // buttons (previous result, next result, close). We wrap the hbox in a gtk | 221 // buttons (previous result, next result, close). We wrap the hbox in a gtk |
| (...skipping 503 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 725 void FindBarGtk::OnParentSet(GtkWidget* widget, GtkObject* old_parent, | 725 void FindBarGtk::OnParentSet(GtkWidget* widget, GtkObject* old_parent, |
| 726 FindBarGtk* find_bar) { | 726 FindBarGtk* find_bar) { |
| 727 if (!widget->parent) | 727 if (!widget->parent) |
| 728 return; | 728 return; |
| 729 | 729 |
| 730 g_signal_connect(widget->parent, "set-floating-position", | 730 g_signal_connect(widget->parent, "set-floating-position", |
| 731 G_CALLBACK(OnSetFloatingPosition), find_bar); | 731 G_CALLBACK(OnSetFloatingPosition), find_bar); |
| 732 } | 732 } |
| 733 | 733 |
| 734 // static | 734 // static |
| 735 void FindBarGtk::OnSetFloatingPosition( | 735 void FindBarGtk::OnSetFloatingPosition(GtkFloatingContainer* floating_container, |
| 736 GtkFloatingContainer* floating_container, | 736 GtkAllocation* allocation, |
| 737 GtkAllocation* allocation, | 737 FindBarGtk* find_bar) { |
| 738 FindBarGtk* find_bar) { | |
| 739 GtkWidget* findbar = find_bar->widget(); | 738 GtkWidget* findbar = find_bar->widget(); |
| 740 | 739 |
| 741 int xposition = find_bar->GetDialogPosition(find_bar->selection_rect_).x(); | 740 int xposition = find_bar->GetDialogPosition(find_bar->selection_rect_).x(); |
| 742 | 741 |
| 743 GValue value = { 0, }; | 742 GValue value = { 0, }; |
| 744 g_value_init(&value, G_TYPE_INT); | 743 g_value_init(&value, G_TYPE_INT); |
| 745 g_value_set_int(&value, xposition); | 744 g_value_set_int(&value, xposition); |
| 746 gtk_container_child_set_property(GTK_CONTAINER(floating_container), | 745 gtk_container_child_set_property(GTK_CONTAINER(floating_container), |
| 747 findbar, "x", &value); | 746 findbar, "x", &value); |
| 748 | 747 |
| (...skipping 207 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 956 } | 955 } |
| 957 | 956 |
| 958 gdk_event_free(event); | 957 gdk_event_free(event); |
| 959 } | 958 } |
| 960 } | 959 } |
| 961 | 960 |
| 962 void FindBarGtk::OnActivate(GtkWidget* entry) { | 961 void FindBarGtk::OnActivate(GtkWidget* entry) { |
| 963 FindEntryTextInContents(true); | 962 FindEntryTextInContents(true); |
| 964 } | 963 } |
| 965 | 964 |
| 966 // static | 965 gboolean FindBarGtk::OnFocusIn(GtkWidget* entry, GdkEventFocus* event) { |
| 967 gboolean FindBarGtk::OnFocusIn(GtkWidget* entry, GdkEventFocus* event, | 966 g_signal_connect(gdk_keymap_get_for_display(gtk_widget_get_display(entry)), |
| 968 FindBarGtk* find_bar) { | 967 "direction-changed", |
| 969 g_signal_connect( | 968 G_CALLBACK(&OnKeymapDirectionChanged), this); |
| 970 gdk_keymap_get_for_display(gtk_widget_get_display(entry)), | |
| 971 "direction-changed", | |
| 972 G_CALLBACK(&OnKeymapDirectionChanged), find_bar); | |
| 973 | 969 |
| 974 find_bar->AdjustTextAlignment(); | 970 AdjustTextAlignment(); |
| 975 | 971 |
| 976 return FALSE; // Continue propagation. | 972 return FALSE; // Continue propagation. |
| 977 } | 973 } |
| 978 | 974 |
| 979 // static | 975 gboolean FindBarGtk::OnFocusOut(GtkWidget* entry, GdkEventFocus* event) { |
| 980 gboolean FindBarGtk::OnFocusOut(GtkWidget* entry, GdkEventFocus* event, | |
| 981 FindBarGtk* find_bar) { | |
| 982 g_signal_handlers_disconnect_by_func( | 976 g_signal_handlers_disconnect_by_func( |
| 983 gdk_keymap_get_for_display(gtk_widget_get_display(entry)), | 977 gdk_keymap_get_for_display(gtk_widget_get_display(entry)), |
| 984 reinterpret_cast<gpointer>(&OnKeymapDirectionChanged), find_bar); | 978 reinterpret_cast<gpointer>(&OnKeymapDirectionChanged), this); |
| 985 | 979 |
| 986 return FALSE; // Continue propagation. | 980 return FALSE; // Continue propagation. |
| 987 } | 981 } |
| OLD | NEW |