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/omnibox/omnibox_popup_view_gtk.h" | 5 #include "chrome/browser/ui/gtk/omnibox/omnibox_popup_view_gtk.h" |
6 | 6 |
7 #include <gtk/gtk.h> | 7 #include <gtk/gtk.h> |
8 | 8 |
9 #include <algorithm> | 9 #include <algorithm> |
10 #include <string> | 10 #include <string> |
(...skipping 10 matching lines...) Expand all Loading... |
21 #include "chrome/browser/defaults.h" | 21 #include "chrome/browser/defaults.h" |
22 #include "chrome/browser/profiles/profile.h" | 22 #include "chrome/browser/profiles/profile.h" |
23 #include "chrome/browser/search_engines/template_url.h" | 23 #include "chrome/browser/search_engines/template_url.h" |
24 #include "chrome/browser/search_engines/template_url_service.h" | 24 #include "chrome/browser/search_engines/template_url_service.h" |
25 #include "chrome/browser/ui/gtk/gtk_theme_service.h" | 25 #include "chrome/browser/ui/gtk/gtk_theme_service.h" |
26 #include "chrome/browser/ui/gtk/gtk_util.h" | 26 #include "chrome/browser/ui/gtk/gtk_util.h" |
27 #include "chrome/browser/ui/omnibox/omnibox_view.h" | 27 #include "chrome/browser/ui/omnibox/omnibox_view.h" |
28 #include "chrome/common/chrome_notification_types.h" | 28 #include "chrome/common/chrome_notification_types.h" |
29 #include "content/public/browser/notification_source.h" | 29 #include "content/public/browser/notification_source.h" |
30 #include "grit/theme_resources.h" | 30 #include "grit/theme_resources.h" |
| 31 #include "ui/base/gtk/gtk_compat.h" |
31 #include "ui/base/gtk/gtk_hig_constants.h" | 32 #include "ui/base/gtk/gtk_hig_constants.h" |
32 #include "ui/base/gtk/gtk_windowing.h" | 33 #include "ui/base/gtk/gtk_windowing.h" |
33 #include "ui/gfx/color_utils.h" | 34 #include "ui/gfx/color_utils.h" |
34 #include "ui/gfx/font.h" | 35 #include "ui/gfx/font.h" |
35 #include "ui/gfx/gtk_util.h" | 36 #include "ui/gfx/gtk_util.h" |
36 #include "ui/gfx/rect.h" | 37 #include "ui/gfx/rect.h" |
37 #include "ui/gfx/skia_utils_gtk.h" | 38 #include "ui/gfx/skia_utils_gtk.h" |
38 | 39 |
39 namespace { | 40 namespace { |
40 | 41 |
(...skipping 317 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
358 if (result.empty()) { | 359 if (result.empty()) { |
359 Hide(); | 360 Hide(); |
360 return; | 361 return; |
361 } | 362 } |
362 | 363 |
363 Show(result.size()); | 364 Show(result.size()); |
364 gtk_widget_queue_draw(window_); | 365 gtk_widget_queue_draw(window_); |
365 } | 366 } |
366 | 367 |
367 gfx::Rect OmniboxPopupViewGtk::GetTargetBounds() { | 368 gfx::Rect OmniboxPopupViewGtk::GetTargetBounds() { |
368 if (!GTK_WIDGET_REALIZED(window_)) | 369 if (!gtk_widget_get_realized(window_)) |
369 return gfx::Rect(); | 370 return gfx::Rect(); |
370 | 371 |
371 gfx::Rect retval = gtk_util::GetWidgetScreenBounds(window_); | 372 gfx::Rect retval = gtk_util::GetWidgetScreenBounds(window_); |
372 | 373 |
373 // The widget bounds don't update synchronously so may be out of sync with | 374 // The widget bounds don't update synchronously so may be out of sync with |
374 // our last size request. | 375 // our last size request. |
375 GtkRequisition req; | 376 GtkRequisition req; |
376 gtk_widget_size_request(window_, &req); | 377 gtk_widget_size_request(window_, &req); |
377 retval.set_width(req.width); | 378 retval.set_width(req.width); |
378 retval.set_height(req.height); | 379 retval.set_height(req.height); |
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
454 | 455 |
455 void OmniboxPopupViewGtk::Hide() { | 456 void OmniboxPopupViewGtk::Hide() { |
456 gtk_widget_hide(window_); | 457 gtk_widget_hide(window_); |
457 opened_ = false; | 458 opened_ = false; |
458 } | 459 } |
459 | 460 |
460 void OmniboxPopupViewGtk::StackWindow() { | 461 void OmniboxPopupViewGtk::StackWindow() { |
461 gfx::NativeView omnibox_view = omnibox_view_->GetNativeView(); | 462 gfx::NativeView omnibox_view = omnibox_view_->GetNativeView(); |
462 DCHECK(GTK_IS_WIDGET(omnibox_view)); | 463 DCHECK(GTK_IS_WIDGET(omnibox_view)); |
463 GtkWidget* toplevel = gtk_widget_get_toplevel(omnibox_view); | 464 GtkWidget* toplevel = gtk_widget_get_toplevel(omnibox_view); |
464 DCHECK(GTK_WIDGET_TOPLEVEL(toplevel)); | 465 DCHECK(gtk_widget_is_toplevel(toplevel)); |
465 ui::StackPopupWindow(window_, toplevel); | 466 ui::StackPopupWindow(window_, toplevel); |
466 } | 467 } |
467 | 468 |
468 size_t OmniboxPopupViewGtk::LineFromY(int y) { | 469 size_t OmniboxPopupViewGtk::LineFromY(int y) { |
469 size_t line = std::max(y - kBorderThickness, 0) / kHeightPerResult; | 470 size_t line = std::max(y - kBorderThickness, 0) / kHeightPerResult; |
470 return std::min(line, model_->result().size() - 1); | 471 return std::min(line, model_->result().size() - 1); |
471 } | 472 } |
472 | 473 |
473 void OmniboxPopupViewGtk::AcceptLine(size_t line, | 474 void OmniboxPopupViewGtk::AcceptLine(size_t line, |
474 WindowOpenDisposition disposition) { | 475 WindowOpenDisposition disposition) { |
(...skipping 206 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
681 (text_width - actual_content_width - | 682 (text_width - actual_content_width - |
682 (actual_description_width / PANGO_SCALE)), | 683 (actual_description_width / PANGO_SCALE)), |
683 content_y, layout_); | 684 content_y, layout_); |
684 } | 685 } |
685 } | 686 } |
686 | 687 |
687 g_object_unref(gc); | 688 g_object_unref(gc); |
688 | 689 |
689 return TRUE; | 690 return TRUE; |
690 } | 691 } |
OLD | NEW |