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 #include <X11/XF86keysym.h> | 8 #include <X11/XF86keysym.h> |
9 | 9 |
10 #include "app/resource_bundle.h" | 10 #include "app/resource_bundle.h" |
11 #include "app/theme_provider.h" | 11 #include "app/theme_provider.h" |
12 #include "base/base_paths_linux.h" | 12 #include "base/base_paths_linux.h" |
| 13 #include "base/command_line.h" |
13 #include "base/gfx/gtk_util.h" | 14 #include "base/gfx/gtk_util.h" |
14 #include "base/logging.h" | 15 #include "base/logging.h" |
15 #include "base/message_loop.h" | 16 #include "base/message_loop.h" |
16 #include "base/path_service.h" | 17 #include "base/path_service.h" |
17 #include "base/string_util.h" | 18 #include "base/string_util.h" |
18 #include "base/time.h" | 19 #include "base/time.h" |
19 #include "chrome/app/chrome_dll_resource.h" | 20 #include "chrome/app/chrome_dll_resource.h" |
20 #include "chrome/browser/bookmarks/bookmark_utils.h" | 21 #include "chrome/browser/bookmarks/bookmark_utils.h" |
21 #include "chrome/browser/browser.h" | 22 #include "chrome/browser/browser.h" |
22 #include "chrome/browser/browser_list.h" | 23 #include "chrome/browser/browser_list.h" |
23 #include "chrome/browser/browser_process.h" | 24 #include "chrome/browser/browser_process.h" |
24 #include "chrome/browser/browser_theme_provider.h" | 25 #include "chrome/browser/browser_theme_provider.h" |
25 #include "chrome/browser/download/download_item_model.h" | 26 #include "chrome/browser/download/download_item_model.h" |
26 #include "chrome/browser/download/download_manager.h" | 27 #include "chrome/browser/download/download_manager.h" |
27 #include "chrome/browser/gtk/about_chrome_dialog.h" | 28 #include "chrome/browser/gtk/about_chrome_dialog.h" |
28 #include "chrome/browser/gtk/bookmark_bar_gtk.h" | 29 #include "chrome/browser/gtk/bookmark_bar_gtk.h" |
29 #include "chrome/browser/gtk/bookmark_manager_gtk.h" | 30 #include "chrome/browser/gtk/bookmark_manager_gtk.h" |
30 #include "chrome/browser/gtk/browser_titlebar.h" | 31 #include "chrome/browser/gtk/browser_titlebar.h" |
31 #include "chrome/browser/gtk/browser_toolbar_gtk.h" | 32 #include "chrome/browser/gtk/browser_toolbar_gtk.h" |
32 #include "chrome/browser/gtk/clear_browsing_data_dialog_gtk.h" | 33 #include "chrome/browser/gtk/clear_browsing_data_dialog_gtk.h" |
33 #include "chrome/browser/gtk/download_shelf_gtk.h" | 34 #include "chrome/browser/gtk/download_shelf_gtk.h" |
34 #include "chrome/browser/gtk/edit_search_engine_dialog.h" | 35 #include "chrome/browser/gtk/edit_search_engine_dialog.h" |
35 #include "chrome/browser/gtk/find_bar_gtk.h" | 36 #include "chrome/browser/gtk/find_bar_gtk.h" |
36 #include "chrome/browser/gtk/go_button_gtk.h" | 37 #include "chrome/browser/gtk/go_button_gtk.h" |
| 38 #include "chrome/browser/gtk/gtk_theme_provider.h" |
37 #include "chrome/browser/gtk/import_dialog_gtk.h" | 39 #include "chrome/browser/gtk/import_dialog_gtk.h" |
38 #include "chrome/browser/gtk/infobar_container_gtk.h" | 40 #include "chrome/browser/gtk/infobar_container_gtk.h" |
39 #include "chrome/browser/gtk/keyword_editor_view.h" | 41 #include "chrome/browser/gtk/keyword_editor_view.h" |
40 #include "chrome/browser/gtk/nine_box.h" | 42 #include "chrome/browser/gtk/nine_box.h" |
41 #include "chrome/browser/gtk/status_bubble_gtk.h" | 43 #include "chrome/browser/gtk/status_bubble_gtk.h" |
42 #include "chrome/browser/gtk/tab_contents_container_gtk.h" | 44 #include "chrome/browser/gtk/tab_contents_container_gtk.h" |
43 #include "chrome/browser/gtk/tabs/tab_strip_gtk.h" | 45 #include "chrome/browser/gtk/tabs/tab_strip_gtk.h" |
44 #include "chrome/browser/gtk/task_manager_gtk.h" | 46 #include "chrome/browser/gtk/task_manager_gtk.h" |
45 #include "chrome/browser/gtk/toolbar_star_toggle_gtk.h" | 47 #include "chrome/browser/gtk/toolbar_star_toggle_gtk.h" |
46 #include "chrome/browser/location_bar.h" | 48 #include "chrome/browser/location_bar.h" |
(...skipping 659 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
706 | 708 |
707 void BrowserWindowGtk::ShowHTMLDialog(HtmlDialogUIDelegate* delegate, | 709 void BrowserWindowGtk::ShowHTMLDialog(HtmlDialogUIDelegate* delegate, |
708 gfx::NativeWindow parent_window) { | 710 gfx::NativeWindow parent_window) { |
709 NOTIMPLEMENTED(); | 711 NOTIMPLEMENTED(); |
710 } | 712 } |
711 | 713 |
712 void BrowserWindowGtk::UserChangedTheme() { | 714 void BrowserWindowGtk::UserChangedTheme() { |
713 SetBackgroundColor(); | 715 SetBackgroundColor(); |
714 gdk_window_invalidate_rect(GTK_WIDGET(window_)->window, | 716 gdk_window_invalidate_rect(GTK_WIDGET(window_)->window, |
715 >K_WIDGET(window_)->allocation, TRUE); | 717 >K_WIDGET(window_)->allocation, TRUE); |
| 718 |
| 719 toolbar_->UserChangedTheme(); |
| 720 bookmark_bar_->UserChangedTheme(browser_->profile()); |
716 } | 721 } |
717 | 722 |
718 int BrowserWindowGtk::GetExtraRenderViewHeight() const { | 723 int BrowserWindowGtk::GetExtraRenderViewHeight() const { |
719 int sum = infobar_container_->TotalHeightOfClosingBars(); | 724 int sum = infobar_container_->TotalHeightOfClosingBars(); |
720 if (bookmark_bar_->IsClosing()) | 725 if (bookmark_bar_->IsClosing()) |
721 sum += bookmark_bar_->GetHeight(); | 726 sum += bookmark_bar_->GetHeight(); |
722 if (download_shelf_.get() && download_shelf_->IsClosing()) { | 727 if (download_shelf_.get() && download_shelf_->IsClosing()) { |
723 sum += download_shelf_->GetHeight(); | 728 sum += download_shelf_->GetHeight(); |
724 } | 729 } |
725 return sum; | 730 return sum; |
(...skipping 306 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1032 gtk_widget_show(event_box); | 1037 gtk_widget_show(event_box); |
1033 gtk_container_add(GTK_CONTAINER(content_vbox_), event_box); | 1038 gtk_container_add(GTK_CONTAINER(content_vbox_), event_box); |
1034 gtk_container_add(GTK_CONTAINER(window_vbox), content_vbox_); | 1039 gtk_container_add(GTK_CONTAINER(window_vbox), content_vbox_); |
1035 gtk_container_add(GTK_CONTAINER(window_), window_container_); | 1040 gtk_container_add(GTK_CONTAINER(window_), window_container_); |
1036 gtk_widget_show(window_container_); | 1041 gtk_widget_show(window_container_); |
1037 browser_->tabstrip_model()->AddObserver(this); | 1042 browser_->tabstrip_model()->AddObserver(this); |
1038 } | 1043 } |
1039 | 1044 |
1040 void BrowserWindowGtk::SetBackgroundColor() { | 1045 void BrowserWindowGtk::SetBackgroundColor() { |
1041 // TODO(tc): Handle active/inactive colors. | 1046 // TODO(tc): Handle active/inactive colors. |
1042 | 1047 Profile* profile = browser()->profile(); |
1043 ThemeProvider* theme_provider = browser()->profile()->GetThemeProvider(); | 1048 ThemeProvider* theme_provider = profile->GetThemeProvider(); |
1044 | |
1045 SkColor frame_color; | 1049 SkColor frame_color; |
1046 if (browser()->profile()->IsOffTheRecord()) { | 1050 if (browser()->profile()->IsOffTheRecord()) { |
1047 frame_color = theme_provider->GetColor( | 1051 frame_color = theme_provider->GetColor( |
1048 BrowserThemeProvider::COLOR_FRAME_INCOGNITO); | 1052 BrowserThemeProvider::COLOR_FRAME_INCOGNITO); |
1049 } else { | 1053 } else { |
1050 frame_color = theme_provider->GetColor(BrowserThemeProvider::COLOR_FRAME); | 1054 frame_color = theme_provider->GetColor(BrowserThemeProvider::COLOR_FRAME); |
1051 } | 1055 } |
1052 | 1056 |
1053 // Paint the frame color on the left, right and bottom. | 1057 // Paint the frame color on the left, right and bottom. |
1054 GdkColor frame_color_gdk = GDK_COLOR_RGB(SkColorGetR(frame_color), | 1058 GdkColor frame_color_gdk = GDK_COLOR_RGB(SkColorGetR(frame_color), |
(...skipping 290 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1345 *edge = GDK_WINDOW_EDGE_NORTH_EAST; | 1349 *edge = GDK_WINDOW_EDGE_NORTH_EAST; |
1346 } else if (y < bounds_.height() - kResizeAreaCornerSize) { | 1350 } else if (y < bounds_.height() - kResizeAreaCornerSize) { |
1347 *edge = GDK_WINDOW_EDGE_EAST; | 1351 *edge = GDK_WINDOW_EDGE_EAST; |
1348 } else { | 1352 } else { |
1349 *edge = GDK_WINDOW_EDGE_SOUTH_EAST; | 1353 *edge = GDK_WINDOW_EDGE_SOUTH_EAST; |
1350 } | 1354 } |
1351 return true; | 1355 return true; |
1352 } | 1356 } |
1353 NOTREACHED(); | 1357 NOTREACHED(); |
1354 } | 1358 } |
OLD | NEW |