| 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/native_widget_gtk.h" | 5 #include "views/widget/native_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 #include <X11/Xatom.h> | 10 #include <X11/Xatom.h> |
| (...skipping 986 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 997 } else { | 997 } else { |
| 998 // We have no parent window, center over the screen. | 998 // We have no parent window, center over the screen. |
| 999 center_rect = gfx::Screen::GetMonitorWorkAreaNearestWindow(GetNativeView()); | 999 center_rect = gfx::Screen::GetMonitorWorkAreaNearestWindow(GetNativeView()); |
| 1000 } | 1000 } |
| 1001 gfx::Rect bounds(center_rect.x() + (center_rect.width() - size.width()) / 2, | 1001 gfx::Rect bounds(center_rect.x() + (center_rect.width() - size.width()) / 2, |
| 1002 center_rect.y() + (center_rect.height() - size.height()) / 2, | 1002 center_rect.y() + (center_rect.height() - size.height()) / 2, |
| 1003 size.width(), size.height()); | 1003 size.width(), size.height()); |
| 1004 SetBoundsConstrained(bounds, NULL); | 1004 SetBoundsConstrained(bounds, NULL); |
| 1005 } | 1005 } |
| 1006 | 1006 |
| 1007 void NativeWidgetGtk::GetWindowPlacement( | 1007 void NativeWidgetGtk::GetWindowBoundsAndMaximizedState(gfx::Rect* bounds, |
| 1008 gfx::Rect* bounds, | 1008 bool* maximized) const { |
| 1009 ui::WindowShowState* show_state) const { | |
| 1010 // Do nothing for now. ChromeOS isn't yet saving window placement. | 1009 // Do nothing for now. ChromeOS isn't yet saving window placement. |
| 1011 } | 1010 } |
| 1012 | 1011 |
| 1013 void NativeWidgetGtk::SetWindowTitle(const std::wstring& title) { | 1012 void NativeWidgetGtk::SetWindowTitle(const std::wstring& title) { |
| 1014 // We don't have a window title on ChromeOS (right now). | 1013 // We don't have a window title on ChromeOS (right now). |
| 1015 } | 1014 } |
| 1016 | 1015 |
| 1017 void NativeWidgetGtk::SetWindowIcons(const SkBitmap& window_icon, | 1016 void NativeWidgetGtk::SetWindowIcons(const SkBitmap& window_icon, |
| 1018 const SkBitmap& app_icon) { | 1017 const SkBitmap& app_icon) { |
| 1019 // We don't have window icons on ChromeOS. | 1018 // We don't have window icons on ChromeOS. |
| (...skipping 160 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1180 delegate_->OnNativeWidgetVisibilityChanged(false); | 1179 delegate_->OnNativeWidgetVisibilityChanged(false); |
| 1181 } | 1180 } |
| 1182 } | 1181 } |
| 1183 | 1182 |
| 1184 void NativeWidgetGtk::ShowMaximizedWithBounds( | 1183 void NativeWidgetGtk::ShowMaximizedWithBounds( |
| 1185 const gfx::Rect& restored_bounds) { | 1184 const gfx::Rect& restored_bounds) { |
| 1186 // TODO: when we add maximization support update this. | 1185 // TODO: when we add maximization support update this. |
| 1187 Show(); | 1186 Show(); |
| 1188 } | 1187 } |
| 1189 | 1188 |
| 1190 void NativeWidgetGtk::ShowWithWindowState(ui::WindowShowState show_state) { | 1189 void NativeWidgetGtk::ShowWithState(ShowState state) { |
| 1191 // No concept of maximization (yet) on ChromeOS. | 1190 // No concept of maximization (yet) on ChromeOS. |
| 1192 if (show_state == ui::SHOW_STATE_INACTIVE) | 1191 if (state == internal::NativeWidgetPrivate::SHOW_INACTIVE) |
| 1193 gtk_window_set_focus_on_map(GetNativeWindow(), false); | 1192 gtk_window_set_focus_on_map(GetNativeWindow(), false); |
| 1194 gtk_widget_show(GetNativeView()); | 1193 gtk_widget_show(GetNativeView()); |
| 1195 } | 1194 } |
| 1196 | 1195 |
| 1197 bool NativeWidgetGtk::IsVisible() const { | 1196 bool NativeWidgetGtk::IsVisible() const { |
| 1198 return GTK_WIDGET_VISIBLE(GetNativeView()); | 1197 return GTK_WIDGET_VISIBLE(GetNativeView()); |
| 1199 } | 1198 } |
| 1200 | 1199 |
| 1201 void NativeWidgetGtk::Activate() { | 1200 void NativeWidgetGtk::Activate() { |
| 1202 gtk_window_present(GetNativeWindow()); | 1201 gtk_window_present(GetNativeWindow()); |
| (...skipping 867 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2070 gdk_cairo_region(cr, event->region); | 2069 gdk_cairo_region(cr, event->region); |
| 2071 cairo_fill(cr); | 2070 cairo_fill(cr); |
| 2072 cairo_destroy(cr); | 2071 cairo_destroy(cr); |
| 2073 } | 2072 } |
| 2074 | 2073 |
| 2075 void NativeWidgetGtk::SaveWindowPosition() { | 2074 void NativeWidgetGtk::SaveWindowPosition() { |
| 2076 // The delegate may have gone away on us. | 2075 // The delegate may have gone away on us. |
| 2077 if (!GetWidget()->widget_delegate()) | 2076 if (!GetWidget()->widget_delegate()) |
| 2078 return; | 2077 return; |
| 2079 | 2078 |
| 2080 ui::WindowShowState show_state = ui::SHOW_STATE_NORMAL; | 2079 bool maximized = window_state_ & GDK_WINDOW_STATE_MAXIMIZED; |
| 2081 if (IsMaximized()) | |
| 2082 show_state = ui::SHOW_STATE_MAXIMIZED; | |
| 2083 else if (IsMinimized()) | |
| 2084 show_state = ui::SHOW_STATE_MINIMIZED; | |
| 2085 GetWidget()->widget_delegate()->SaveWindowPlacement( | 2080 GetWidget()->widget_delegate()->SaveWindowPlacement( |
| 2086 GetWidget()->GetWindowScreenBounds(), | 2081 GetWidget()->GetWindowScreenBounds(), |
| 2087 show_state); | 2082 maximized); |
| 2088 } | 2083 } |
| 2089 | 2084 |
| 2090 //////////////////////////////////////////////////////////////////////////////// | 2085 //////////////////////////////////////////////////////////////////////////////// |
| 2091 // Widget, public: | 2086 // Widget, public: |
| 2092 | 2087 |
| 2093 // static | 2088 // static |
| 2094 void Widget::NotifyLocaleChanged() { | 2089 void Widget::NotifyLocaleChanged() { |
| 2095 GList *window_list = gtk_window_list_toplevels(); | 2090 GList *window_list = gtk_window_list_toplevels(); |
| 2096 for (GList* element = window_list; element; element = g_list_next(element)) { | 2091 for (GList* element = window_list; element; element = g_list_next(element)) { |
| 2097 Widget* widget = | 2092 Widget* widget = |
| (...skipping 151 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2249 button_pressed = event->type == GDK_BUTTON_PRESS || | 2244 button_pressed = event->type == GDK_BUTTON_PRESS || |
| 2250 event->type == GDK_2BUTTON_PRESS || | 2245 event->type == GDK_2BUTTON_PRESS || |
| 2251 event->type == GDK_3BUTTON_PRESS; | 2246 event->type == GDK_3BUTTON_PRESS; |
| 2252 gdk_event_free(event); | 2247 gdk_event_free(event); |
| 2253 } | 2248 } |
| 2254 return button_pressed; | 2249 return button_pressed; |
| 2255 } | 2250 } |
| 2256 | 2251 |
| 2257 } // namespace internal | 2252 } // namespace internal |
| 2258 } // namespace views | 2253 } // namespace views |
| OLD | NEW |