| OLD | NEW |
| 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 "base/compiler_specific.h" | 7 #include "base/compiler_specific.h" |
| 8 #include "views/fill_layout.h" | 8 #include "views/fill_layout.h" |
| 9 #include "views/widget/root_view.h" | 9 #include "views/widget/root_view.h" |
| 10 #include "views/widget/tooltip_manager_gtk.h" |
| 10 #include "views/window/window_gtk.h" | 11 #include "views/window/window_gtk.h" |
| 11 | 12 |
| 12 namespace views { | 13 namespace views { |
| 13 | 14 |
| 14 // Returns the position of a widget on screen. | 15 // Returns the position of a widget on screen. |
| 15 static void GetWidgetPositionOnScreen(GtkWidget* widget, int* x, int *y) { | 16 static void GetWidgetPositionOnScreen(GtkWidget* widget, int* x, int *y) { |
| 16 while (widget) { | 17 while (widget) { |
| 17 if (GTK_IS_WINDOW(widget)) { | 18 if (GTK_IS_WINDOW(widget)) { |
| 18 int window_x, window_y; | 19 int window_x, window_y; |
| 19 gtk_window_get_position(GTK_WINDOW(widget), &window_x, &window_y); | 20 gtk_window_get_position(GTK_WINDOW(widget), &window_x, &window_y); |
| (...skipping 125 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 145 // | 146 // |
| 146 // g_signal_connect(G_OBJECT(widget_), "drag_motion", | 147 // g_signal_connect(G_OBJECT(widget_), "drag_motion", |
| 147 // G_CALLBACK(drag_motion_event_cb), NULL); | 148 // G_CALLBACK(drag_motion_event_cb), NULL); |
| 148 // g_signal_connect(G_OBJECT(widget_), "drag_leave", | 149 // g_signal_connect(G_OBJECT(widget_), "drag_leave", |
| 149 // G_CALLBACK(drag_leave_event_cb), NULL); | 150 // G_CALLBACK(drag_leave_event_cb), NULL); |
| 150 // g_signal_connect(G_OBJECT(widget_), "drag_drop", | 151 // g_signal_connect(G_OBJECT(widget_), "drag_drop", |
| 151 // G_CALLBACK(drag_drop_event_cb), NULL); | 152 // G_CALLBACK(drag_drop_event_cb), NULL); |
| 152 // g_signal_connect(G_OBJECT(widget_), "drag_data_received", | 153 // g_signal_connect(G_OBJECT(widget_), "drag_data_received", |
| 153 // G_CALLBACK(drag_data_received_event_cb), NULL); | 154 // G_CALLBACK(drag_data_received_event_cb), NULL); |
| 154 | 155 |
| 156 tooltip_manager_.reset(new TooltipManagerGtk(this)); |
| 157 |
| 155 if (type_ == TYPE_CHILD) { | 158 if (type_ == TYPE_CHILD) { |
| 156 WidgetGtk* parent_widget = GetViewForNative(parent); | 159 WidgetGtk* parent_widget = GetViewForNative(parent); |
| 157 parent_widget->AddChild(widget_); | 160 parent_widget->AddChild(widget_); |
| 158 parent_widget->PositionChild(widget_, bounds.x(), bounds.y(), | 161 parent_widget->PositionChild(widget_, bounds.x(), bounds.y(), |
| 159 bounds.width(), bounds.height()); | 162 bounds.width(), bounds.height()); |
| 160 } | 163 } |
| 161 } | 164 } |
| 162 | 165 |
| 163 void WidgetGtk::AddChild(GtkWidget* child) { | 166 void WidgetGtk::AddChild(GtkWidget* child) { |
| 164 gtk_container_add(GTK_CONTAINER(child_widget_parent_), child); | 167 gtk_container_add(GTK_CONTAINER(child_widget_parent_), child); |
| (...skipping 129 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 294 return GTK_WIDGET_VISIBLE(widget_); | 297 return GTK_WIDGET_VISIBLE(widget_); |
| 295 } | 298 } |
| 296 | 299 |
| 297 bool WidgetGtk::IsActive() const { | 300 bool WidgetGtk::IsActive() const { |
| 298 // If this only applies to windows, it shouldn't be in widget. | 301 // If this only applies to windows, it shouldn't be in widget. |
| 299 DCHECK(GTK_IS_WINDOW(widget_)); | 302 DCHECK(GTK_IS_WINDOW(widget_)); |
| 300 return gtk_window_is_active(GTK_WINDOW(widget_)); | 303 return gtk_window_is_active(GTK_WINDOW(widget_)); |
| 301 } | 304 } |
| 302 | 305 |
| 303 TooltipManager* WidgetGtk::GetTooltipManager() { | 306 TooltipManager* WidgetGtk::GetTooltipManager() { |
| 304 NOTIMPLEMENTED(); | 307 return tooltip_manager_.get(); |
| 305 return NULL; | |
| 306 } | 308 } |
| 307 | 309 |
| 308 bool WidgetGtk::GetAccelerator(int cmd_id, Accelerator* accelerator) { | 310 bool WidgetGtk::GetAccelerator(int cmd_id, Accelerator* accelerator) { |
| 309 NOTIMPLEMENTED(); | 311 NOTIMPLEMENTED(); |
| 310 return false; | 312 return false; |
| 311 } | 313 } |
| 312 | 314 |
| 313 Window* WidgetGtk::GetWindow() { | 315 Window* WidgetGtk::GetWindow() { |
| 314 return GetWindowImpl(widget_); | 316 return GetWindowImpl(widget_); |
| 315 } | 317 } |
| (...skipping 357 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 673 void WidgetGtk::HandleGrabBroke() { | 675 void WidgetGtk::HandleGrabBroke() { |
| 674 if (has_capture_) { | 676 if (has_capture_) { |
| 675 if (is_mouse_down_) | 677 if (is_mouse_down_) |
| 676 root_view_->ProcessMouseDragCanceled(); | 678 root_view_->ProcessMouseDragCanceled(); |
| 677 is_mouse_down_ = false; | 679 is_mouse_down_ = false; |
| 678 has_capture_ = false; | 680 has_capture_ = false; |
| 679 } | 681 } |
| 680 } | 682 } |
| 681 | 683 |
| 682 } // namespace views | 684 } // namespace views |
| OLD | NEW |