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/autocomplete/autocomplete_edit_view_gtk.h" | 5 #include "chrome/browser/autocomplete/autocomplete_edit_view_gtk.h" |
6 | 6 |
7 #include <gdk/gdkkeysyms.h> | 7 #include <gdk/gdkkeysyms.h> |
8 #include <gtk/gtk.h> | 8 #include <gtk/gtk.h> |
9 | 9 |
10 #include <algorithm> | 10 #include <algorithm> |
(...skipping 743 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
754 } | 754 } |
755 | 755 |
756 gfx::NativeView AutocompleteEditViewGtk::GetNativeView() const { | 756 gfx::NativeView AutocompleteEditViewGtk::GetNativeView() const { |
757 return alignment_.get(); | 757 return alignment_.get(); |
758 } | 758 } |
759 | 759 |
760 CommandUpdater* AutocompleteEditViewGtk::GetCommandUpdater() { | 760 CommandUpdater* AutocompleteEditViewGtk::GetCommandUpdater() { |
761 return command_updater_; | 761 return command_updater_; |
762 } | 762 } |
763 | 763 |
764 void AutocompleteEditViewGtk::SetInstantSuggestion(const string16& suggestion) { | 764 void AutocompleteEditViewGtk::SetInstantSuggestion(const string16& suggestion, |
| 765 bool animate_to_complete) { |
765 std::string suggestion_utf8 = UTF16ToUTF8(suggestion); | 766 std::string suggestion_utf8 = UTF16ToUTF8(suggestion); |
766 | 767 |
767 gtk_label_set_text(GTK_LABEL(instant_view_), suggestion_utf8.c_str()); | 768 gtk_label_set_text(GTK_LABEL(instant_view_), suggestion_utf8.c_str()); |
768 | 769 |
769 StopAnimation(); | 770 StopAnimation(); |
770 | 771 |
771 if (suggestion.empty()) { | 772 if (suggestion.empty()) { |
772 gtk_widget_hide(instant_view_); | 773 gtk_widget_hide(instant_view_); |
773 return; | 774 return; |
774 } | 775 } |
775 if (InstantController::IsEnabled(model_->profile()) | 776 if (animate_to_complete |
776 #if GTK_CHECK_VERSION(2, 20, 0) | 777 #if GTK_CHECK_VERSION(2, 20, 0) |
777 && preedit_.empty() | 778 && preedit_.empty() |
778 #endif | 779 #endif |
779 ) { | 780 ) { |
780 instant_animation_->set_delegate(this); | 781 instant_animation_->set_delegate(this); |
781 instant_animation_->Start(); | 782 instant_animation_->Start(); |
782 } | 783 } |
783 | 784 |
784 gtk_widget_show(instant_view_); | 785 gtk_widget_show(instant_view_); |
785 AdjustVerticalAlignmentOfInstantView(); | 786 AdjustVerticalAlignmentOfInstantView(); |
(...skipping 1540 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2326 // baseline, so we need to move the |instant_view_| down to make sure it | 2327 // baseline, so we need to move the |instant_view_| down to make sure it |
2327 // has the same baseline as the |text_view_|. | 2328 // has the same baseline as the |text_view_|. |
2328 PangoLayout* layout = gtk_label_get_layout(GTK_LABEL(instant_view_)); | 2329 PangoLayout* layout = gtk_label_get_layout(GTK_LABEL(instant_view_)); |
2329 int height; | 2330 int height; |
2330 pango_layout_get_size(layout, NULL, &height); | 2331 pango_layout_get_size(layout, NULL, &height); |
2331 PangoLayoutIter* iter = pango_layout_get_iter(layout); | 2332 PangoLayoutIter* iter = pango_layout_get_iter(layout); |
2332 int baseline = pango_layout_iter_get_baseline(iter); | 2333 int baseline = pango_layout_iter_get_baseline(iter); |
2333 pango_layout_iter_free(iter); | 2334 pango_layout_iter_free(iter); |
2334 g_object_set(instant_anchor_tag_, "rise", baseline - height, NULL); | 2335 g_object_set(instant_anchor_tag_, "rise", baseline - height, NULL); |
2335 } | 2336 } |
OLD | NEW |