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 "views/widget/widget_gtk.h" | 5 #include "views/widget/widget_gtk.h" |
6 | 6 |
7 #include <gdk/gdk.h> | 7 #include <gdk/gdk.h> |
8 #include <gdk/gdkx.h> | 8 #include <gdk/gdkx.h> |
9 #include <X11/extensions/shape.h> | 9 #include <X11/extensions/shape.h> |
10 | 10 |
(...skipping 1550 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1561 GList *window_list = gtk_window_list_toplevels(); | 1561 GList *window_list = gtk_window_list_toplevels(); |
1562 for (GList* element = window_list; element; element = g_list_next(element)) { | 1562 for (GList* element = window_list; element; element = g_list_next(element)) { |
1563 NativeWidget* native_widget = | 1563 NativeWidget* native_widget = |
1564 NativeWidget::GetNativeWidgetForNativeWindow(GTK_WINDOW(element->data)); | 1564 NativeWidget::GetNativeWidgetForNativeWindow(GTK_WINDOW(element->data)); |
1565 if (native_widget) | 1565 if (native_widget) |
1566 native_widget->GetWidget()->LocaleChanged(); | 1566 native_widget->GetWidget()->LocaleChanged(); |
1567 } | 1567 } |
1568 g_list_free(window_list); | 1568 g_list_free(window_list); |
1569 } | 1569 } |
1570 | 1570 |
| 1571 // static |
| 1572 bool Widget::ConvertRect(const Widget* source, |
| 1573 const Widget* target, |
| 1574 gfx::Rect* rect) { |
| 1575 DCHECK(source); |
| 1576 DCHECK(target); |
| 1577 DCHECK(rect); |
| 1578 |
| 1579 GtkWidget* source_widget = source->GetNativeView(); |
| 1580 GtkWidget* target_widget = target->GetNativeView(); |
| 1581 if (source_widget == target_widget) |
| 1582 return true; |
| 1583 |
| 1584 if (!source_widget || !target_widget) |
| 1585 return false; |
| 1586 |
| 1587 GdkRectangle gdk_rect = rect->ToGdkRectangle(); |
| 1588 if (gtk_widget_translate_coordinates(source_widget, target_widget, |
| 1589 gdk_rect.x, gdk_rect.y, |
| 1590 &gdk_rect.x, &gdk_rect.y)) { |
| 1591 *rect = gdk_rect; |
| 1592 return true; |
| 1593 } |
| 1594 return false; |
| 1595 } |
| 1596 |
1571 //////////////////////////////////////////////////////////////////////////////// | 1597 //////////////////////////////////////////////////////////////////////////////// |
1572 // NativeWidget, public: | 1598 // NativeWidget, public: |
1573 | 1599 |
1574 // static | 1600 // static |
1575 NativeWidget* NativeWidget::GetNativeWidgetForNativeView( | 1601 NativeWidget* NativeWidget::GetNativeWidgetForNativeView( |
1576 gfx::NativeView native_view) { | 1602 gfx::NativeView native_view) { |
1577 if (!native_view) | 1603 if (!native_view) |
1578 return NULL; | 1604 return NULL; |
1579 return reinterpret_cast<WidgetGtk*>( | 1605 return reinterpret_cast<WidgetGtk*>( |
1580 g_object_get_data(G_OBJECT(native_view), kNativeWidgetKey)); | 1606 g_object_get_data(G_OBJECT(native_view), kNativeWidgetKey)); |
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1617 | 1643 |
1618 NativeWidget* native_widget = GetNativeWidgetForNativeView(native_view); | 1644 NativeWidget* native_widget = GetNativeWidgetForNativeView(native_view); |
1619 if (native_widget) | 1645 if (native_widget) |
1620 children->insert(native_widget); | 1646 children->insert(native_widget); |
1621 gtk_container_foreach(GTK_CONTAINER(native_view), | 1647 gtk_container_foreach(GTK_CONTAINER(native_view), |
1622 EnumerateChildWidgetsForNativeWidgets, | 1648 EnumerateChildWidgetsForNativeWidgets, |
1623 reinterpret_cast<gpointer>(children)); | 1649 reinterpret_cast<gpointer>(children)); |
1624 } | 1650 } |
1625 | 1651 |
1626 } // namespace views | 1652 } // namespace views |
OLD | NEW |