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

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

Issue 10800054: Add pin icon to the omnibar in windows 8 metro mode. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: linux tests Created 8 years, 4 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) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 #include <algorithm> 7 #include <algorithm>
8 8
9 #include "base/auto_reset.h" 9 #include "base/auto_reset.h"
10 #include "base/command_line.h" 10 #include "base/command_line.h"
(...skipping 21 matching lines...) Expand all
32 #include "chrome/browser/speech/extension_api/tts_extension_api.h" 32 #include "chrome/browser/speech/extension_api/tts_extension_api.h"
33 #include "chrome/browser/themes/theme_service.h" 33 #include "chrome/browser/themes/theme_service.h"
34 #include "chrome/browser/ui/app_modal_dialogs/app_modal_dialog_queue.h" 34 #include "chrome/browser/ui/app_modal_dialogs/app_modal_dialog_queue.h"
35 #include "chrome/browser/ui/browser.h" 35 #include "chrome/browser/ui/browser.h"
36 #include "chrome/browser/ui/browser_command_controller.h" 36 #include "chrome/browser/ui/browser_command_controller.h"
37 #include "chrome/browser/ui/browser_commands.h" 37 #include "chrome/browser/ui/browser_commands.h"
38 #include "chrome/browser/ui/browser_dialogs.h" 38 #include "chrome/browser/ui/browser_dialogs.h"
39 #include "chrome/browser/ui/browser_list.h" 39 #include "chrome/browser/ui/browser_list.h"
40 #include "chrome/browser/ui/browser_tabstrip.h" 40 #include "chrome/browser/ui/browser_tabstrip.h"
41 #include "chrome/browser/ui/browser_window_state.h" 41 #include "chrome/browser/ui/browser_window_state.h"
42 #include "chrome/browser/ui/metro_pin_tab_helper.h"
42 #include "chrome/browser/ui/omnibox/omnibox_popup_model.h" 43 #include "chrome/browser/ui/omnibox/omnibox_popup_model.h"
43 #include "chrome/browser/ui/omnibox/omnibox_popup_view.h" 44 #include "chrome/browser/ui/omnibox/omnibox_popup_view.h"
44 #include "chrome/browser/ui/omnibox/omnibox_view.h" 45 #include "chrome/browser/ui/omnibox/omnibox_view.h"
45 #include "chrome/browser/ui/search/search.h" 46 #include "chrome/browser/ui/search/search.h"
46 #include "chrome/browser/ui/search/search_model.h" 47 #include "chrome/browser/ui/search/search_model.h"
47 #include "chrome/browser/ui/tab_contents/tab_contents.h" 48 #include "chrome/browser/ui/tab_contents/tab_contents.h"
48 #include "chrome/browser/ui/tabs/tab_menu_model.h" 49 #include "chrome/browser/ui/tabs/tab_menu_model.h"
49 #include "chrome/browser/ui/tabs/tab_strip_model.h" 50 #include "chrome/browser/ui/tabs/tab_strip_model.h"
50 #include "chrome/browser/ui/view_ids.h" 51 #include "chrome/browser/ui/view_ids.h"
51 #include "chrome/browser/ui/views/accessibility/invert_bubble_view.h" 52 #include "chrome/browser/ui/views/accessibility/invert_bubble_view.h"
(...skipping 884 matching lines...) Expand 10 before | Expand all | Expand 10 after
936 } 937 }
937 938
938 void BrowserView::UpdateReloadStopState(bool is_loading, bool force) { 939 void BrowserView::UpdateReloadStopState(bool is_loading, bool force) {
939 toolbar_->reload_button()->ChangeMode( 940 toolbar_->reload_button()->ChangeMode(
940 is_loading ? ReloadButton::MODE_STOP : ReloadButton::MODE_RELOAD, force); 941 is_loading ? ReloadButton::MODE_STOP : ReloadButton::MODE_RELOAD, force);
941 } 942 }
942 943
943 void BrowserView::UpdateToolbar(TabContents* contents, 944 void BrowserView::UpdateToolbar(TabContents* contents,
944 bool should_restore_state) { 945 bool should_restore_state) {
945 toolbar_->Update(contents->web_contents(), should_restore_state); 946 toolbar_->Update(contents->web_contents(), should_restore_state);
947 GetLocationBarView()->SetMetroPinnedState(
948 contents->metro_pin_tab_helper()->is_pinned());
946 } 949 }
947 950
948 void BrowserView::FocusToolbar() { 951 void BrowserView::FocusToolbar() {
949 // Start the traversal within the main toolbar. SetPaneFocus stores 952 // Start the traversal within the main toolbar. SetPaneFocus stores
950 // the current focused view before changing focus. 953 // the current focused view before changing focus.
951 toolbar_->SetPaneFocus(NULL); 954 toolbar_->SetPaneFocus(NULL);
952 } 955 }
953 956
954 void BrowserView::FocusBookmarksToolbar() { 957 void BrowserView::FocusBookmarksToolbar() {
955 if (active_bookmark_bar_ && bookmark_bar_view_->visible()) 958 if (active_bookmark_bar_ && bookmark_bar_view_->visible())
(...skipping 454 matching lines...) Expand 10 before | Expand all | Expand 10 after
1410 return contents_container_; 1413 return contents_container_;
1411 } 1414 }
1412 1415
1413 ToolbarView* BrowserView::GetToolbarView() const { 1416 ToolbarView* BrowserView::GetToolbarView() const {
1414 return toolbar_; 1417 return toolbar_;
1415 } 1418 }
1416 1419
1417 /////////////////////////////////////////////////////////////////////////////// 1420 ///////////////////////////////////////////////////////////////////////////////
1418 // BrowserView, TabStripModelObserver implementation: 1421 // BrowserView, TabStripModelObserver implementation:
1419 1422
1423 void BrowserView::TabInsertedAt(TabContents* contents,
1424 int index,
1425 bool foreground) {
1426 contents->metro_pin_tab_helper()->set_observer(this);
1427 }
1428
1420 void BrowserView::TabDetachedAt(TabContents* contents, int index) { 1429 void BrowserView::TabDetachedAt(TabContents* contents, int index) {
1430 contents->metro_pin_tab_helper()->set_observer(NULL);
1421 // We use index here rather than comparing |contents| because by this time 1431 // We use index here rather than comparing |contents| because by this time
1422 // the model has already removed |contents| from its list, so 1432 // the model has already removed |contents| from its list, so
1423 // browser_->GetActiveWebContents() will return NULL or something else. 1433 // browser_->GetActiveWebContents() will return NULL or something else.
1424 if (index == browser_->active_index()) { 1434 if (index == browser_->active_index()) {
1425 // We need to reset the current tab contents to NULL before it gets 1435 // We need to reset the current tab contents to NULL before it gets
1426 // freed. This is because the focus manager performs some operations 1436 // freed. This is because the focus manager performs some operations
1427 // on the selected WebContents when it is removed. 1437 // on the selected WebContents when it is removed.
1428 contents_container_->SetWebContents(NULL); 1438 contents_container_->SetWebContents(NULL);
1429 infobar_container_->ChangeTabContents(NULL); 1439 infobar_container_->ChangeTabContents(NULL);
1430 UpdateDevToolsForContents(NULL); 1440 UpdateDevToolsForContents(NULL);
(...skipping 16 matching lines...) Expand all
1447 TabContents* new_contents, 1457 TabContents* new_contents,
1448 int index, 1458 int index,
1449 bool user_gesture) { 1459 bool user_gesture) {
1450 ProcessTabSelected(new_contents); 1460 ProcessTabSelected(new_contents);
1451 } 1461 }
1452 1462
1453 void BrowserView::TabReplacedAt(TabStripModel* tab_strip_model, 1463 void BrowserView::TabReplacedAt(TabStripModel* tab_strip_model,
1454 TabContents* old_contents, 1464 TabContents* old_contents,
1455 TabContents* new_contents, 1465 TabContents* new_contents,
1456 int index) { 1466 int index) {
1467 new_contents->metro_pin_tab_helper()->set_observer(this);
1468
1457 if (index != browser_->tab_strip_model()->active_index()) 1469 if (index != browser_->tab_strip_model()->active_index())
1458 return; 1470 return;
1459 1471
1460 if (contents_->preview_web_contents() == new_contents->web_contents()) { 1472 if (contents_->preview_web_contents() == new_contents->web_contents()) {
1461 // If 'preview' is becoming active, swap the 'active' and 'preview' and 1473 // If 'preview' is becoming active, swap the 'active' and 'preview' and
1462 // delete what was the active. 1474 // delete what was the active.
1463 contents_->MakePreviewContentsActiveContents(); 1475 contents_->MakePreviewContentsActiveContents();
1464 views::WebView* old_container = contents_container_; 1476 views::WebView* old_container = contents_container_;
1465 contents_container_ = preview_container_; 1477 contents_container_ = preview_container_;
1466 old_container->SetWebContents(NULL); 1478 old_container->SetWebContents(NULL);
(...skipping 403 matching lines...) Expand 10 before | Expand all | Expand 10 after
1870 sender->child_at(i)->InvalidateLayout(); 1882 sender->child_at(i)->InvalidateLayout();
1871 SchedulePaint(); 1883 SchedulePaint();
1872 Layout(); 1884 Layout();
1873 return false; 1885 return false;
1874 } 1886 }
1875 1887
1876 void BrowserView::OnSysColorChange() { 1888 void BrowserView::OnSysColorChange() {
1877 browser::MaybeShowInvertBubbleView(browser_.get(), contents_); 1889 browser::MaybeShowInvertBubbleView(browser_.get(), contents_);
1878 } 1890 }
1879 1891
1892 void BrowserView::MetroPinnedStateChanged(content::WebContents* contents,
1893 bool is_pinned) {
1894 if (contents == chrome::GetActiveWebContents(browser()))
1895 GetLocationBarView()->SetMetroPinnedState(is_pinned);
1896 }
1897
1880 int BrowserView::GetOTRIconResourceID() const { 1898 int BrowserView::GetOTRIconResourceID() const {
1881 int otr_resource_id = IDR_OTR_ICON; 1899 int otr_resource_id = IDR_OTR_ICON;
1882 if (ui::GetDisplayLayout() == ui::LAYOUT_TOUCH) { 1900 if (ui::GetDisplayLayout() == ui::LAYOUT_TOUCH) {
1883 if (IsFullscreen()) 1901 if (IsFullscreen())
1884 otr_resource_id = IDR_OTR_ICON_FULLSCREEN; 1902 otr_resource_id = IDR_OTR_ICON_FULLSCREEN;
1885 #if defined(OS_WIN) && !defined(USE_AURA) 1903 #if defined(OS_WIN) && !defined(USE_AURA)
1886 if (base::win::IsMetroProcess()) 1904 if (base::win::IsMetroProcess())
1887 otr_resource_id = IDR_OTR_ICON_FULLSCREEN; 1905 otr_resource_id = IDR_OTR_ICON_FULLSCREEN;
1888 #endif 1906 #endif
1889 } 1907 }
(...skipping 693 matching lines...) Expand 10 before | Expand all | Expand 10 after
2583 if (contents && contents->GetContentNativeView() && 2601 if (contents && contents->GetContentNativeView() &&
2584 contents->GetContentNativeView()->HasFocus()) { 2602 contents->GetContentNativeView()->HasFocus()) {
2585 (contents->GetRenderViewHost()->*method)(); 2603 (contents->GetRenderViewHost()->*method)();
2586 return true; 2604 return true;
2587 } 2605 }
2588 #elif defined(OS_WIN) 2606 #elif defined(OS_WIN)
2589 // TODO(yusukes): Support non-Aura Windows. 2607 // TODO(yusukes): Support non-Aura Windows.
2590 #endif 2608 #endif
2591 return false; 2609 return false;
2592 } 2610 }
OLDNEW
« no previous file with comments | « chrome/browser/ui/views/frame/browser_view.h ('k') | chrome/browser/ui/views/location_bar/location_bar_view.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698