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 "chrome/browser/gtk/browser_window_gtk.h" | 5 #include "chrome/browser/gtk/browser_window_gtk.h" |
6 | 6 |
7 #include <gdk/gdkkeysyms.h> | 7 #include <gdk/gdkkeysyms.h> |
8 | 8 |
9 #include "base/base_paths_linux.h" | 9 #include "base/base_paths_linux.h" |
10 #include "base/command_line.h" | 10 #include "base/command_line.h" |
(...skipping 188 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
199 | 199 |
200 // TODO(estade): Break up this constructor into helper functions to improve | 200 // TODO(estade): Break up this constructor into helper functions to improve |
201 // readability. | 201 // readability. |
202 BrowserWindowGtk::BrowserWindowGtk(Browser* browser) | 202 BrowserWindowGtk::BrowserWindowGtk(Browser* browser) |
203 : browser_(browser), | 203 : browser_(browser), |
204 // TODO(port): make this a pref. | 204 // TODO(port): make this a pref. |
205 custom_frame_(false), | 205 custom_frame_(false), |
206 full_screen_(false), | 206 full_screen_(false), |
207 method_factory_(this) { | 207 method_factory_(this) { |
208 window_ = GTK_WINDOW(gtk_window_new(GTK_WINDOW_TOPLEVEL)); | 208 window_ = GTK_WINDOW(gtk_window_new(GTK_WINDOW_TOPLEVEL)); |
209 gtk_window_set_default_size(window_, 640, 480); | 209 SetGeometryHints(); |
210 g_object_set_data(G_OBJECT(window_), "browser_window_gtk", this); | 210 g_object_set_data(G_OBJECT(window_), "browser_window_gtk", this); |
211 g_signal_connect(window_, "delete-event", | 211 g_signal_connect(window_, "delete-event", |
212 G_CALLBACK(MainWindowDeleteEvent), this); | 212 G_CALLBACK(MainWindowDeleteEvent), this); |
213 g_signal_connect(window_, "destroy", | 213 g_signal_connect(window_, "destroy", |
214 G_CALLBACK(MainWindowDestroy), this); | 214 G_CALLBACK(MainWindowDestroy), this); |
215 g_signal_connect(window_, "configure-event", | 215 g_signal_connect(window_, "configure-event", |
216 G_CALLBACK(MainWindowConfigured), this); | 216 G_CALLBACK(MainWindowConfigured), this); |
217 g_signal_connect(window_, "window-state-event", | 217 g_signal_connect(window_, "window-state-event", |
218 G_CALLBACK(MainWindowStateChanged), this); | 218 G_CALLBACK(MainWindowStateChanged), this); |
219 g_signal_connect(window_, "key-press-event", | 219 g_signal_connect(window_, "key-press-event", |
(...skipping 432 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
652 return browser_->SupportsWindowFeature(Browser::FEATURE_TITLEBAR); | 652 return browser_->SupportsWindowFeature(Browser::FEATURE_TITLEBAR); |
653 } | 653 } |
654 | 654 |
655 void BrowserWindowGtk::AddFindBar(FindBarGtk* findbar) { | 655 void BrowserWindowGtk::AddFindBar(FindBarGtk* findbar) { |
656 contents_container_->set_find_bar(findbar); | 656 contents_container_->set_find_bar(findbar); |
657 gtk_box_pack_start(GTK_BOX(content_vbox_), findbar->widget(), | 657 gtk_box_pack_start(GTK_BOX(content_vbox_), findbar->widget(), |
658 FALSE, FALSE, 0); | 658 FALSE, FALSE, 0); |
659 gtk_box_reorder_child(GTK_BOX(content_vbox_), findbar->widget(), 2); | 659 gtk_box_reorder_child(GTK_BOX(content_vbox_), findbar->widget(), 2); |
660 } | 660 } |
661 | 661 |
| 662 void BrowserWindowGtk::SetGeometryHints() { |
| 663 gtk_window_set_default_size(window_, 640, 480); |
| 664 |
| 665 // Allow the user to resize us arbitrarily small. |
| 666 GdkGeometry geometry; |
| 667 geometry.min_width = 1; |
| 668 geometry.min_height = 1; |
| 669 gtk_window_set_geometry_hints(window_, NULL, &geometry, GDK_HINT_MIN_SIZE); |
| 670 } |
| 671 |
662 void BrowserWindowGtk::ConnectAccelerators() { | 672 void BrowserWindowGtk::ConnectAccelerators() { |
663 GtkAccelGroup* accel_group = gtk_accel_group_new(); | 673 GtkAccelGroup* accel_group = gtk_accel_group_new(); |
664 gtk_window_add_accel_group(window_, accel_group); | 674 gtk_window_add_accel_group(window_, accel_group); |
665 // Drop the initial ref on |accel_group| so |window_| will own it. | 675 // Drop the initial ref on |accel_group| so |window_| will own it. |
666 g_object_unref(accel_group); | 676 g_object_unref(accel_group); |
667 | 677 |
668 for (size_t i = 0; i < arraysize(kAcceleratorMap); ++i) { | 678 for (size_t i = 0; i < arraysize(kAcceleratorMap); ++i) { |
669 gtk_accel_group_connect( | 679 gtk_accel_group_connect( |
670 accel_group, | 680 accel_group, |
671 kAcceleratorMap[i].keyval, | 681 kAcceleratorMap[i].keyval, |
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
705 } else { | 715 } else { |
706 browser_window->ExecuteBrowserCommand(command_id); | 716 browser_window->ExecuteBrowserCommand(command_id); |
707 } | 717 } |
708 | 718 |
709 return TRUE; | 719 return TRUE; |
710 } | 720 } |
711 | 721 |
712 void BrowserWindowGtk::ExecuteBrowserCommand(int id) { | 722 void BrowserWindowGtk::ExecuteBrowserCommand(int id) { |
713 browser_->ExecuteCommand(id); | 723 browser_->ExecuteCommand(id); |
714 } | 724 } |
OLD | NEW |