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

Side by Side Diff: chrome/browser/ui/views/frame/browser_view.cc

Issue 7057014: Variety of tweaks to View API. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 9 years, 7 months 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
OLDNEW
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 "chrome/browser/ui/views/frame/browser_view.h" 5 #include "chrome/browser/ui/views/frame/browser_view.h"
6 6
7 #if defined(TOOLKIT_USES_GTK) 7 #if defined(TOOLKIT_USES_GTK)
8 #include <gtk/gtk.h> 8 #include <gtk/gtk.h>
9 #endif 9 #endif
10 10
(...skipping 425 matching lines...) Expand 10 before | Expand all | Expand 10 after
436 const gfx::Point& point) const { 436 const gfx::Point& point) const {
437 // The background image starts tiling horizontally at the window left edge and 437 // The background image starts tiling horizontally at the window left edge and
438 // vertically at the top edge of the horizontal tab strip (or where it would 438 // vertically at the top edge of the horizontal tab strip (or where it would
439 // be). We expect our parent's origin to be the window origin. 439 // be). We expect our parent's origin to be the window origin.
440 gfx::Point window_point(point.Add(GetMirroredPosition())); 440 gfx::Point window_point(point.Add(GetMirroredPosition()));
441 window_point.Offset(0, -frame_->GetHorizontalTabStripVerticalOffset(false)); 441 window_point.Offset(0, -frame_->GetHorizontalTabStripVerticalOffset(false));
442 return window_point; 442 return window_point;
443 } 443 }
444 444
445 int BrowserView::GetSidebarWidth() const { 445 int BrowserView::GetSidebarWidth() const {
446 if (!sidebar_container_ || !sidebar_container_->IsVisible()) 446 if (!sidebar_container_ || !sidebar_container_->visible())
447 return 0; 447 return 0;
448 return sidebar_split_->divider_offset(); 448 return sidebar_split_->divider_offset();
449 } 449 }
450 450
451 bool BrowserView::IsTabStripVisible() const { 451 bool BrowserView::IsTabStripVisible() const {
452 return browser_->SupportsWindowFeature(Browser::FEATURE_TABSTRIP); 452 return browser_->SupportsWindowFeature(Browser::FEATURE_TABSTRIP);
453 } 453 }
454 454
455 bool BrowserView::UseVerticalTabs() const { 455 bool BrowserView::UseVerticalTabs() const {
456 return browser_->tabstrip_model()->delegate()->UseVerticalTabs(); 456 return browser_->tabstrip_model()->delegate()->UseVerticalTabs();
(...skipping 388 matching lines...) Expand 10 before | Expand all | Expand 10 after
845 compact_location_bar_view_host_->UpdateOnTabChange( 845 compact_location_bar_view_host_->UpdateOnTabChange(
846 browser()->active_index(), true); 846 browser()->active_index(), true);
847 compact_location_bar_view_host_->GetCompactLocationBarView()->SetPaneFocus( 847 compact_location_bar_view_host_->GetCompactLocationBarView()->SetPaneFocus(
848 last_focused_view_storage_id_, NULL); 848 last_focused_view_storage_id_, NULL);
849 } else { 849 } else {
850 toolbar_->SetPaneFocus(last_focused_view_storage_id_, NULL); 850 toolbar_->SetPaneFocus(last_focused_view_storage_id_, NULL);
851 } 851 }
852 } 852 }
853 853
854 void BrowserView::FocusBookmarksToolbar() { 854 void BrowserView::FocusBookmarksToolbar() {
855 if (active_bookmark_bar_ && bookmark_bar_view_->IsVisible()) { 855 if (active_bookmark_bar_ && bookmark_bar_view_->visible()) {
856 SaveFocusedView(); 856 SaveFocusedView();
857 bookmark_bar_view_->SetPaneFocus(last_focused_view_storage_id_, NULL); 857 bookmark_bar_view_->SetPaneFocus(last_focused_view_storage_id_, NULL);
858 } 858 }
859 } 859 }
860 860
861 void BrowserView::FocusAppMenu() { 861 void BrowserView::FocusAppMenu() {
862 // Chrome doesn't have a traditional menu bar, but it has a menu button in the 862 // Chrome doesn't have a traditional menu bar, but it has a menu button in the
863 // main toolbar that plays the same role. If the user presses a key that 863 // main toolbar that plays the same role. If the user presses a key that
864 // would typically focus the menu bar, tell the toolbar to focus the menu 864 // would typically focus the menu bar, tell the toolbar to focus the menu
865 // button. If the user presses the key again, return focus to the previous 865 // button. If the user presses the key again, return focus to the previous
(...skipping 20 matching lines...) Expand all
886 // with NULL to represent the tab contents getting focus. If one of these 886 // with NULL to represent the tab contents getting focus. If one of these
887 // is currently invisible or has no focusable children it will be 887 // is currently invisible or has no focusable children it will be
888 // automatically skipped. 888 // automatically skipped.
889 std::vector<AccessiblePaneView*> accessible_panes; 889 std::vector<AccessiblePaneView*> accessible_panes;
890 GetAccessiblePanes(&accessible_panes); 890 GetAccessiblePanes(&accessible_panes);
891 int pane_count = static_cast<int>(accessible_panes.size()); 891 int pane_count = static_cast<int>(accessible_panes.size());
892 892
893 std::vector<views::View*> accessible_views( 893 std::vector<views::View*> accessible_views(
894 accessible_panes.begin(), accessible_panes.end()); 894 accessible_panes.begin(), accessible_panes.end());
895 accessible_views.push_back(GetTabContentsContainerView()); 895 accessible_views.push_back(GetTabContentsContainerView());
896 if (sidebar_container_ && sidebar_container_->IsVisible()) 896 if (sidebar_container_ && sidebar_container_->visible())
897 accessible_views.push_back(GetSidebarContainerView()); 897 accessible_views.push_back(GetSidebarContainerView());
898 if (devtools_container_->IsVisible()) 898 if (devtools_container_->visible())
899 accessible_views.push_back(devtools_container_->GetFocusView()); 899 accessible_views.push_back(devtools_container_->GetFocusView());
900 int count = static_cast<int>(accessible_views.size()); 900 int count = static_cast<int>(accessible_views.size());
901 901
902 // Figure out which view (if any) currently has the focus. 902 // Figure out which view (if any) currently has the focus.
903 views::View* focused_view = GetFocusManager()->GetFocusedView(); 903 views::View* focused_view = GetFocusManager()->GetFocusedView();
904 int index = -1; 904 int index = -1;
905 if (focused_view) { 905 if (focused_view) {
906 for (int i = 0; i < count; ++i) { 906 for (int i = 0; i < count; ++i) {
907 if (accessible_views[i] == focused_view || 907 if (accessible_views[i] == focused_view ||
908 accessible_views[i]->Contains(focused_view)) { 908 accessible_views[i]->Contains(focused_view)) {
(...skipping 972 matching lines...) Expand 10 before | Expand all | Expand 10 after
1881 1881
1882 contents_container_ = new TabContentsContainer; 1882 contents_container_ = new TabContentsContainer;
1883 contents_ = new ContentsContainer(contents_container_); 1883 contents_ = new ContentsContainer(contents_container_);
1884 1884
1885 SkColor bg_color = GetWidget()->GetThemeProvider()-> 1885 SkColor bg_color = GetWidget()->GetThemeProvider()->
1886 GetColor(ThemeService::COLOR_TOOLBAR); 1886 GetColor(ThemeService::COLOR_TOOLBAR);
1887 1887
1888 bool sidebar_allowed = SidebarManager::IsSidebarAllowed(); 1888 bool sidebar_allowed = SidebarManager::IsSidebarAllowed();
1889 if (sidebar_allowed) { 1889 if (sidebar_allowed) {
1890 sidebar_container_ = new TabContentsContainer; 1890 sidebar_container_ = new TabContentsContainer;
1891 sidebar_container_->SetID(VIEW_ID_SIDE_BAR_CONTAINER); 1891 sidebar_container_->set_id(VIEW_ID_SIDE_BAR_CONTAINER);
1892 sidebar_container_->SetVisible(false); 1892 sidebar_container_->SetVisible(false);
1893 1893
1894 sidebar_split_ = new views::SingleSplitView( 1894 sidebar_split_ = new views::SingleSplitView(
1895 contents_, 1895 contents_,
1896 sidebar_container_, 1896 sidebar_container_,
1897 views::SingleSplitView::HORIZONTAL_SPLIT, 1897 views::SingleSplitView::HORIZONTAL_SPLIT,
1898 this); 1898 this);
1899 sidebar_split_->SetID(VIEW_ID_SIDE_BAR_SPLIT); 1899 sidebar_split_->set_id(VIEW_ID_SIDE_BAR_SPLIT);
1900 sidebar_split_->SetAccessibleName( 1900 sidebar_split_->SetAccessibleName(
1901 l10n_util::GetStringUTF16(IDS_ACCNAME_SIDE_BAR)); 1901 l10n_util::GetStringUTF16(IDS_ACCNAME_SIDE_BAR));
1902 sidebar_split_->set_background( 1902 sidebar_split_->set_background(
1903 views::Background::CreateSolidBackground(bg_color)); 1903 views::Background::CreateSolidBackground(bg_color));
1904 } 1904 }
1905 1905
1906 devtools_container_ = new TabContentsContainer; 1906 devtools_container_ = new TabContentsContainer;
1907 devtools_container_->SetID(VIEW_ID_DEV_TOOLS_DOCKED); 1907 devtools_container_->set_id(VIEW_ID_DEV_TOOLS_DOCKED);
1908 devtools_container_->SetVisible(false); 1908 devtools_container_->SetVisible(false);
1909 1909
1910 views::View* contents_view = contents_; 1910 views::View* contents_view = contents_;
1911 if (sidebar_allowed) 1911 if (sidebar_allowed)
1912 contents_view = sidebar_split_; 1912 contents_view = sidebar_split_;
1913 1913
1914 contents_split_ = new views::SingleSplitView( 1914 contents_split_ = new views::SingleSplitView(
1915 contents_view, 1915 contents_view,
1916 devtools_container_, 1916 devtools_container_,
1917 views::SingleSplitView::VERTICAL_SPLIT, 1917 views::SingleSplitView::VERTICAL_SPLIT,
1918 this); 1918 this);
1919 contents_split_->SetID(VIEW_ID_CONTENTS_SPLIT); 1919 contents_split_->set_id(VIEW_ID_CONTENTS_SPLIT);
1920 contents_split_->SetAccessibleName( 1920 contents_split_->SetAccessibleName(
1921 l10n_util::GetStringUTF16(IDS_ACCNAME_WEB_CONTENTS)); 1921 l10n_util::GetStringUTF16(IDS_ACCNAME_WEB_CONTENTS));
1922 contents_split_->set_background( 1922 contents_split_->set_background(
1923 views::Background::CreateSolidBackground(bg_color)); 1923 views::Background::CreateSolidBackground(bg_color));
1924 AddChildView(contents_split_); 1924 AddChildView(contents_split_);
1925 set_contents_view(contents_split_); 1925 set_contents_view(contents_split_);
1926 1926
1927 status_bubble_.reset(new StatusBubbleViews(contents_)); 1927 status_bubble_.reset(new StatusBubbleViews(contents_));
1928 1928
1929 #if defined(OS_WIN) 1929 #if defined(OS_WIN)
(...skipping 12 matching lines...) Expand all
1942 browser_->tabstrip_model()->AddObserver(aeropeek_manager_.get()); 1942 browser_->tabstrip_model()->AddObserver(aeropeek_manager_.get());
1943 } 1943 }
1944 #endif 1944 #endif
1945 // Only create our compact navigation classes if the switch is enabled. Note 1945 // Only create our compact navigation classes if the switch is enabled. Note
1946 // that we directly check the switch and not the pref as the switch may be on 1946 // that we directly check the switch and not the pref as the switch may be on
1947 // and the pref could be off (currently not selected in the context menu). 1947 // and the pref could be off (currently not selected in the context menu).
1948 if (CommandLine::ForCurrentProcess()->HasSwitch( 1948 if (CommandLine::ForCurrentProcess()->HasSwitch(
1949 switches::kEnableCompactNavigation)) { 1949 switches::kEnableCompactNavigation)) {
1950 compact_location_bar_view_host_.reset(new CompactLocationBarViewHost(this)); 1950 compact_location_bar_view_host_.reset(new CompactLocationBarViewHost(this));
1951 compact_navigation_bar_ = new CompactNavigationBar(this); 1951 compact_navigation_bar_ = new CompactNavigationBar(this);
1952 compact_navigation_bar_->SetID(VIEW_ID_COMPACT_NAV_BAR); 1952 compact_navigation_bar_->set_id(VIEW_ID_COMPACT_NAV_BAR);
1953 AddChildView(compact_navigation_bar_); 1953 AddChildView(compact_navigation_bar_);
1954 compact_navigation_bar_->Init(); 1954 compact_navigation_bar_->Init();
1955 compact_options_bar_ = new CompactOptionsBar(this); 1955 compact_options_bar_ = new CompactOptionsBar(this);
1956 compact_options_bar_->SetID(VIEW_ID_COMPACT_OPT_BAR); 1956 compact_options_bar_->set_id(VIEW_ID_COMPACT_OPT_BAR);
1957 AddChildView(compact_options_bar_); 1957 AddChildView(compact_options_bar_);
1958 compact_options_bar_->Init(); 1958 compact_options_bar_->Init();
1959 } 1959 }
1960 1960
1961 // Use an empty view for the spacer since all it does is that it replaces the 1961 // Use an empty view for the spacer since all it does is that it replaces the
1962 // toolbar area in compact navigation mode. 1962 // toolbar area in compact navigation mode.
1963 compact_spacer_ = new views::View(); 1963 compact_spacer_ = new views::View();
1964 compact_spacer_->SetID(VIEW_ID_COMPACT_NAV_BAR_SPACER); 1964 compact_spacer_->set_id(VIEW_ID_COMPACT_NAV_BAR_SPACER);
1965 AddChildView(compact_spacer_); 1965 AddChildView(compact_spacer_);
1966 1966
1967 // We're now initialized and ready to process Layout requests. 1967 // We're now initialized and ready to process Layout requests.
1968 ignore_layout_ = false; 1968 ignore_layout_ = false;
1969 } 1969 }
1970 1970
1971 void BrowserView::LoadingAnimationCallback() { 1971 void BrowserView::LoadingAnimationCallback() {
1972 base::TimeTicks now = base::TimeTicks::Now(); 1972 base::TimeTicks now = base::TimeTicks::Now();
1973 if (!last_animation_time_.is_null()) { 1973 if (!last_animation_time_.is_null()) {
1974 UMA_HISTOGRAM_TIMES( 1974 UMA_HISTOGRAM_TIMES(
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after
2071 if (tab_contents) { 2071 if (tab_contents) {
2072 SidebarContainer* client_host = SidebarManager::GetInstance()-> 2072 SidebarContainer* client_host = SidebarManager::GetInstance()->
2073 GetActiveSidebarContainerFor(tab_contents->tab_contents()); 2073 GetActiveSidebarContainerFor(tab_contents->tab_contents());
2074 if (client_host) 2074 if (client_host)
2075 sidebar_contents = client_host->sidebar_contents(); 2075 sidebar_contents = client_host->sidebar_contents();
2076 } 2076 }
2077 2077
2078 bool visible = NULL != sidebar_contents && 2078 bool visible = NULL != sidebar_contents &&
2079 browser_->SupportsWindowFeature(Browser::FEATURE_SIDEBAR); 2079 browser_->SupportsWindowFeature(Browser::FEATURE_SIDEBAR);
2080 2080
2081 bool should_show = visible && !sidebar_container_->IsVisible(); 2081 bool should_show = visible && !sidebar_container_->visible();
2082 bool should_hide = !visible && sidebar_container_->IsVisible(); 2082 bool should_hide = !visible && sidebar_container_->visible();
2083 2083
2084 // Update sidebar content. 2084 // Update sidebar content.
2085 TabContents* old_contents = sidebar_container_->tab_contents(); 2085 TabContents* old_contents = sidebar_container_->tab_contents();
2086 sidebar_container_->ChangeTabContents(sidebar_contents); 2086 sidebar_container_->ChangeTabContents(sidebar_contents);
2087 SidebarManager::GetInstance()-> 2087 SidebarManager::GetInstance()->
2088 NotifyStateChanges(old_contents, sidebar_contents); 2088 NotifyStateChanges(old_contents, sidebar_contents);
2089 2089
2090 // Update sidebar UI width. 2090 // Update sidebar UI width.
2091 if (should_show) { 2091 if (should_show) {
2092 // Restore split offset. 2092 // Restore split offset.
(...skipping 28 matching lines...) Expand all
2121 2121
2122 void BrowserView::UpdateDevToolsForContents(TabContentsWrapper* wrapper) { 2122 void BrowserView::UpdateDevToolsForContents(TabContentsWrapper* wrapper) {
2123 TabContents* devtools_contents = NULL; 2123 TabContents* devtools_contents = NULL;
2124 if (wrapper) { 2124 if (wrapper) {
2125 TabContentsWrapper* devtools_contents_wrapper = 2125 TabContentsWrapper* devtools_contents_wrapper =
2126 DevToolsWindow::GetDevToolsContents(wrapper->tab_contents()); 2126 DevToolsWindow::GetDevToolsContents(wrapper->tab_contents());
2127 if (devtools_contents_wrapper) 2127 if (devtools_contents_wrapper)
2128 devtools_contents = devtools_contents_wrapper->tab_contents(); 2128 devtools_contents = devtools_contents_wrapper->tab_contents();
2129 } 2129 }
2130 2130
2131 bool should_show = devtools_contents && !devtools_container_->IsVisible(); 2131 bool should_show = devtools_contents && !devtools_container_->visible();
2132 bool should_hide = !devtools_contents && devtools_container_->IsVisible(); 2132 bool should_hide = !devtools_contents && devtools_container_->visible();
2133 2133
2134 devtools_container_->ChangeTabContents(devtools_contents); 2134 devtools_container_->ChangeTabContents(devtools_contents);
2135 2135
2136 if (should_show) { 2136 if (should_show) {
2137 if (!devtools_focus_tracker_.get()) { 2137 if (!devtools_focus_tracker_.get()) {
2138 // Install devtools focus tracker when dev tools window is shown for the 2138 // Install devtools focus tracker when dev tools window is shown for the
2139 // first time. 2139 // first time.
2140 devtools_focus_tracker_.reset( 2140 devtools_focus_tracker_.reset(
2141 new views::ExternalFocusTracker(devtools_container_, 2141 new views::ExternalFocusTracker(devtools_container_,
2142 GetFocusManager())); 2142 GetFocusManager()));
(...skipping 456 matching lines...) Expand 10 before | Expand all | Expand 10 after
2599 view->GetWindow()->non_client_view()->SetAccessibleName( 2599 view->GetWindow()->non_client_view()->SetAccessibleName(
2600 l10n_util::GetStringUTF16(IDS_PRODUCT_NAME)); 2600 l10n_util::GetStringUTF16(IDS_PRODUCT_NAME));
2601 return view; 2601 return view;
2602 } 2602 }
2603 #endif 2603 #endif
2604 2604
2605 // static 2605 // static
2606 FindBar* BrowserWindow::CreateFindBar(Browser* browser) { 2606 FindBar* BrowserWindow::CreateFindBar(Browser* browser) {
2607 return browser::CreateFindBar(static_cast<BrowserView*>(browser->window())); 2607 return browser::CreateFindBar(static_cast<BrowserView*>(browser->window()));
2608 } 2608 }
OLDNEW
« no previous file with comments | « chrome/browser/ui/views/frame/browser_root_view.cc ('k') | chrome/browser/ui/views/frame/browser_view_layout.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698