Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(417)

Side by Side Diff: chrome/browser/gtk/browser_window_gtk.cc

Issue 339074: GTK: add back toolbar border.... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 11 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « chrome/browser/gtk/browser_window_gtk.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 <string> 10 #include <string>
(...skipping 1467 matching lines...) Expand 10 before | Expand all | Expand 10 after
1478 } 1478 }
1479 1479
1480 bool BrowserWindowGtk::ShouldShowWindowIcon() const { 1480 bool BrowserWindowGtk::ShouldShowWindowIcon() const {
1481 return browser_->SupportsWindowFeature(Browser::FEATURE_TITLEBAR); 1481 return browser_->SupportsWindowFeature(Browser::FEATURE_TITLEBAR);
1482 } 1482 }
1483 1483
1484 void BrowserWindowGtk::AddFindBar(FindBarGtk* findbar) { 1484 void BrowserWindowGtk::AddFindBar(FindBarGtk* findbar) {
1485 gtk_box_pack_start(GTK_BOX(render_area_vbox_), findbar->widget(), 1485 gtk_box_pack_start(GTK_BOX(render_area_vbox_), findbar->widget(),
1486 FALSE, FALSE, 0); 1486 FALSE, FALSE, 0);
1487 gtk_box_reorder_child(GTK_BOX(render_area_vbox_), findbar->widget(), 0); 1487 gtk_box_reorder_child(GTK_BOX(render_area_vbox_), findbar->widget(), 0);
1488
1489 gtk_widget_hide(toolbar_border_);
1488 } 1490 }
1489 1491
1490 void BrowserWindowGtk::ResetCustomFrameCursor() { 1492 void BrowserWindowGtk::ResetCustomFrameCursor() {
1491 if (!frame_cursor_) 1493 if (!frame_cursor_)
1492 return; 1494 return;
1493 1495
1494 gdk_cursor_unref(frame_cursor_); 1496 gdk_cursor_unref(frame_cursor_);
1495 frame_cursor_ = NULL; 1497 frame_cursor_ = NULL;
1496 gdk_window_set_cursor(GTK_WIDGET(window_)->window, NULL); 1498 gdk_window_set_cursor(GTK_WIDGET(window_)->window, NULL);
1497 } 1499 }
(...skipping 189 matching lines...) Expand 10 before | Expand all | Expand 10 after
1687 } 1689 }
1688 #endif 1690 #endif
1689 1691
1690 // This vbox surrounds the render area: find bar, info bars and render view. 1692 // This vbox surrounds the render area: find bar, info bars and render view.
1691 // The reason is that this area as a whole needs to be grouped in its own 1693 // The reason is that this area as a whole needs to be grouped in its own
1692 // GdkWindow hierarchy so that animations originating inside it (infobar, 1694 // GdkWindow hierarchy so that animations originating inside it (infobar,
1693 // download shelf, find bar) are all clipped to that area. This is why 1695 // download shelf, find bar) are all clipped to that area. This is why
1694 // |render_area_vbox_| is packed in |render_area_event_box_|. 1696 // |render_area_vbox_| is packed in |render_area_event_box_|.
1695 render_area_vbox_ = gtk_vbox_new(FALSE, 0); 1697 render_area_vbox_ = gtk_vbox_new(FALSE, 0);
1696 gtk_widget_set_name(render_area_vbox_, "chrome-render-area-vbox"); 1698 gtk_widget_set_name(render_area_vbox_, "chrome-render-area-vbox");
1699
1700 toolbar_border_ = gtk_event_box_new();
1701 gtk_box_pack_start(GTK_BOX(render_area_vbox_),
1702 toolbar_border_, FALSE, FALSE, 0);
1703 gtk_widget_set_size_request(toolbar_border_, -1, 1);
1704 gtk_widget_show(toolbar_border_);
1705
1697 infobar_container_.reset(new InfoBarContainerGtk(browser_->profile())); 1706 infobar_container_.reset(new InfoBarContainerGtk(browser_->profile()));
1698 gtk_box_pack_start(GTK_BOX(render_area_vbox_), 1707 gtk_box_pack_start(GTK_BOX(render_area_vbox_),
1699 infobar_container_->widget(), 1708 infobar_container_->widget(),
1700 FALSE, FALSE, 0); 1709 FALSE, FALSE, 0);
1701 1710
1702 status_bubble_.reset(new StatusBubbleGtk(browser_->profile())); 1711 status_bubble_.reset(new StatusBubbleGtk(browser_->profile()));
1703 1712
1704 contents_container_.reset(new TabContentsContainerGtk(status_bubble_.get())); 1713 contents_container_.reset(new TabContentsContainerGtk(status_bubble_.get()));
1705 devtools_container_.reset(new TabContentsContainerGtk(NULL)); 1714 devtools_container_.reset(new TabContentsContainerGtk(NULL));
1706 ViewIDUtil::SetID(devtools_container_->widget(), VIEW_ID_DEV_TOOLS_DOCKED); 1715 ViewIDUtil::SetID(devtools_container_->widget(), VIEW_ID_DEV_TOOLS_DOCKED);
(...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after
1805 gtk_widget_set_size_request(status_widget->GetNativeView(), 1814 gtk_widget_set_size_request(status_widget->GetNativeView(),
1806 status_area_size.width(), 1815 status_area_size.width(),
1807 status_area_size.height()); 1816 status_area_size.height());
1808 status_widget->Show(); 1817 status_widget->Show();
1809 } 1818 }
1810 #endif // OS_CHROMEOS 1819 #endif // OS_CHROMEOS
1811 } 1820 }
1812 1821
1813 void BrowserWindowGtk::SetBackgroundColor() { 1822 void BrowserWindowGtk::SetBackgroundColor() {
1814 Profile* profile = browser()->profile(); 1823 Profile* profile = browser()->profile();
1815 ThemeProvider* theme_provider = profile->GetThemeProvider(); 1824 GtkThemeProvider* theme_provider = GtkThemeProvider::GetFrom(profile);
1816 int frame_color_id; 1825 int frame_color_id;
1817 if (IsActive()) { 1826 if (IsActive()) {
1818 frame_color_id = browser()->profile()->IsOffTheRecord() 1827 frame_color_id = browser()->profile()->IsOffTheRecord()
1819 ? BrowserThemeProvider::COLOR_FRAME_INCOGNITO 1828 ? BrowserThemeProvider::COLOR_FRAME_INCOGNITO
1820 : BrowserThemeProvider::COLOR_FRAME; 1829 : BrowserThemeProvider::COLOR_FRAME;
1821 } else { 1830 } else {
1822 frame_color_id = browser()->profile()->IsOffTheRecord() 1831 frame_color_id = browser()->profile()->IsOffTheRecord()
1823 ? BrowserThemeProvider::COLOR_FRAME_INCOGNITO_INACTIVE 1832 ? BrowserThemeProvider::COLOR_FRAME_INCOGNITO_INACTIVE
1824 : BrowserThemeProvider::COLOR_FRAME_INACTIVE; 1833 : BrowserThemeProvider::COLOR_FRAME_INACTIVE;
1825 } 1834 }
1826 1835
1827 SkColor frame_color = theme_provider->GetColor(frame_color_id); 1836 SkColor frame_color = theme_provider->GetColor(frame_color_id);
1828 1837
1829 // Paint the frame color on the left, right and bottom. 1838 // Paint the frame color on the left, right and bottom.
1830 GdkColor frame_color_gdk = SkColorToGdkColor(frame_color); 1839 GdkColor frame_color_gdk = SkColorToGdkColor(frame_color);
1831 gtk_widget_modify_bg(GTK_WIDGET(window_), GTK_STATE_NORMAL, 1840 gtk_widget_modify_bg(GTK_WIDGET(window_), GTK_STATE_NORMAL,
1832 &frame_color_gdk); 1841 &frame_color_gdk);
1833 1842
1834 // Set the color of the dev tools divider. 1843 // Set the color of the dev tools divider.
1835 gtk_widget_modify_bg(contents_split_, GTK_STATE_NORMAL, &frame_color_gdk); 1844 gtk_widget_modify_bg(contents_split_, GTK_STATE_NORMAL, &frame_color_gdk);
1836 1845
1837 // When the cursor is over the divider, GTK+ normally lightens the background 1846 // When the cursor is over the divider, GTK+ normally lightens the background
1838 // color by 1.3 (see LIGHTNESS_MULT in gtkstyle.c). Since we're setting the 1847 // color by 1.3 (see LIGHTNESS_MULT in gtkstyle.c). Since we're setting the
1839 // color, override the prelight also. 1848 // color, override the prelight also.
1840 color_utils::HSL hsl = { -1, 0.5, 0.65 }; 1849 color_utils::HSL hsl = { -1, 0.5, 0.65 };
1841 SkColor frame_prelight_color = color_utils::HSLShift(frame_color, hsl); 1850 SkColor frame_prelight_color = color_utils::HSLShift(frame_color, hsl);
1842 GdkColor frame_prelight_color_gdk = SkColorToGdkColor(frame_prelight_color); 1851 GdkColor frame_prelight_color_gdk = SkColorToGdkColor(frame_prelight_color);
1843 gtk_widget_modify_bg(contents_split_, GTK_STATE_PRELIGHT, 1852 gtk_widget_modify_bg(contents_split_, GTK_STATE_PRELIGHT,
1844 &frame_prelight_color_gdk); 1853 &frame_prelight_color_gdk);
1854
1855 GdkColor border_color = theme_provider->GetBorderColor();
1856 gtk_widget_modify_bg(toolbar_border_, GTK_STATE_NORMAL, &border_color);
1845 } 1857 }
1846 1858
1847 void BrowserWindowGtk::OnSizeChanged(int width, int height) { 1859 void BrowserWindowGtk::OnSizeChanged(int width, int height) {
1848 UpdateWindowShape(width, height); 1860 UpdateWindowShape(width, height);
1849 } 1861 }
1850 1862
1851 void BrowserWindowGtk::UpdateWindowShape(int width, int height) { 1863 void BrowserWindowGtk::UpdateWindowShape(int width, int height) {
1852 if (UseCustomFrame() && !IsFullscreen() && !IsMaximized()) { 1864 if (UseCustomFrame() && !IsFullscreen() && !IsMaximized()) {
1853 // Make the top corners rounded. We set a mask that includes most of the 1865 // Make the top corners rounded. We set a mask that includes most of the
1854 // window except for a few pixels in the top two corners. 1866 // window except for a few pixels in the top two corners.
(...skipping 447 matching lines...) Expand 10 before | Expand all | Expand 10 after
2302 // are taken from the WMs' source code. 2314 // are taken from the WMs' source code.
2303 return (wm_name == "Blackbox" || 2315 return (wm_name == "Blackbox" ||
2304 wm_name == "compiz" || 2316 wm_name == "compiz" ||
2305 wm_name == "e16" || // Enlightenment DR16 2317 wm_name == "e16" || // Enlightenment DR16
2306 wm_name == "KWin" || 2318 wm_name == "KWin" ||
2307 wm_name == "Metacity" || 2319 wm_name == "Metacity" ||
2308 wm_name == "Mutter" || 2320 wm_name == "Mutter" ||
2309 wm_name == "Openbox" || 2321 wm_name == "Openbox" ||
2310 wm_name == "Xfwm4"); 2322 wm_name == "Xfwm4");
2311 } 2323 }
OLDNEW
« no previous file with comments | « chrome/browser/gtk/browser_window_gtk.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698