OLD | NEW |
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 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/views/frame/browser_view.h" | 5 #include "chrome/browser/views/frame/browser_view.h" |
6 | 6 |
7 #if defined(OS_LINUX) | 7 #if defined(OS_LINUX) |
8 #include <gtk/gtk.h> | 8 #include <gtk/gtk.h> |
9 #endif | 9 #endif |
10 | 10 |
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
86 #include "chrome/browser/jumplist.h" | 86 #include "chrome/browser/jumplist.h" |
87 #elif defined(OS_LINUX) | 87 #elif defined(OS_LINUX) |
88 #include "chrome/browser/views/accelerator_table_gtk.h" | 88 #include "chrome/browser/views/accelerator_table_gtk.h" |
89 #include "views/window/hit_test.h" | 89 #include "views/window/hit_test.h" |
90 #endif | 90 #endif |
91 | 91 |
92 using base::TimeDelta; | 92 using base::TimeDelta; |
93 using views::ColumnSet; | 93 using views::ColumnSet; |
94 using views::GridLayout; | 94 using views::GridLayout; |
95 | 95 |
96 // static | |
97 SkBitmap BrowserView::default_favicon_; | |
98 SkBitmap BrowserView::otr_avatar_; | |
99 // The height of the status bubble. | 96 // The height of the status bubble. |
100 static const int kStatusBubbleHeight = 20; | 97 static const int kStatusBubbleHeight = 20; |
101 // The name of a key to store on the window handle so that other code can | 98 // The name of a key to store on the window handle so that other code can |
102 // locate this object using just the handle. | 99 // locate this object using just the handle. |
103 #if defined(OS_WIN) | 100 #if defined(OS_WIN) |
104 static const wchar_t* kBrowserViewKey = L"__BROWSER_VIEW__"; | 101 static const wchar_t* kBrowserViewKey = L"__BROWSER_VIEW__"; |
105 #else | 102 #else |
106 static const char* kBrowserViewKey = "__BROWSER_VIEW__"; | 103 static const char* kBrowserViewKey = "__BROWSER_VIEW__"; |
107 #endif | 104 #endif |
108 // How frequently we check for hung plugin windows. | 105 // How frequently we check for hung plugin windows. |
(...skipping 304 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
413 contents_split_(NULL), | 410 contents_split_(NULL), |
414 initialized_(false), | 411 initialized_(false), |
415 ignore_layout_(false), | 412 ignore_layout_(false), |
416 #if defined(OS_WIN) | 413 #if defined(OS_WIN) |
417 hung_window_detector_(&hung_plugin_action_), | 414 hung_window_detector_(&hung_plugin_action_), |
418 ticker_(0), | 415 ticker_(0), |
419 #endif | 416 #endif |
420 extension_shelf_(NULL), | 417 extension_shelf_(NULL), |
421 last_focused_view_storage_id_( | 418 last_focused_view_storage_id_( |
422 views::ViewStorage::GetSharedInstance()->CreateStorageID()) { | 419 views::ViewStorage::GetSharedInstance()->CreateStorageID()) { |
423 InitClass(); | |
424 browser_->tabstrip_model()->AddObserver(this); | 420 browser_->tabstrip_model()->AddObserver(this); |
425 } | 421 } |
426 | 422 |
427 BrowserView::~BrowserView() { | 423 BrowserView::~BrowserView() { |
428 browser_->tabstrip_model()->RemoveObserver(this); | 424 browser_->tabstrip_model()->RemoveObserver(this); |
429 | 425 |
430 #if defined(OS_WIN) | 426 #if defined(OS_WIN) |
431 // Remove this observer. | 427 // Remove this observer. |
432 if (aeropeek_manager_.get()) | 428 if (aeropeek_manager_.get()) |
433 browser_->tabstrip_model()->RemoveObserver(aeropeek_manager_.get()); | 429 browser_->tabstrip_model()->RemoveObserver(aeropeek_manager_.get()); |
(...skipping 180 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
614 void BrowserView::ActivationChanged(bool activated) { | 610 void BrowserView::ActivationChanged(bool activated) { |
615 if (activated) | 611 if (activated) |
616 BrowserList::SetLastActive(browser_.get()); | 612 BrowserList::SetLastActive(browser_.get()); |
617 } | 613 } |
618 | 614 |
619 TabContents* BrowserView::GetSelectedTabContents() const { | 615 TabContents* BrowserView::GetSelectedTabContents() const { |
620 return browser_->GetSelectedTabContents(); | 616 return browser_->GetSelectedTabContents(); |
621 } | 617 } |
622 | 618 |
623 SkBitmap BrowserView::GetOTRAvatarIcon() { | 619 SkBitmap BrowserView::GetOTRAvatarIcon() { |
624 if (otr_avatar_.isNull()) { | 620 static SkBitmap* otr_avatar_ = new SkBitmap(); |
| 621 |
| 622 if (otr_avatar_->isNull()) { |
625 ResourceBundle& rb = ResourceBundle::GetSharedInstance(); | 623 ResourceBundle& rb = ResourceBundle::GetSharedInstance(); |
626 otr_avatar_ = *rb.GetBitmapNamed(IDR_OTR_ICON); | 624 *otr_avatar_ = *rb.GetBitmapNamed(IDR_OTR_ICON); |
627 } | 625 } |
628 return otr_avatar_; | 626 return *otr_avatar_; |
629 } | 627 } |
630 | 628 |
631 #if defined(OS_WIN) | 629 #if defined(OS_WIN) |
632 void BrowserView::PrepareToRunSystemMenu(HMENU menu) { | 630 void BrowserView::PrepareToRunSystemMenu(HMENU menu) { |
633 system_menu_->UpdateStates(); | 631 system_menu_->UpdateStates(); |
634 } | 632 } |
635 #endif | 633 #endif |
636 | 634 |
637 void BrowserView::TraverseNextAccessibleToolbar(bool forward) { | 635 void BrowserView::TraverseNextAccessibleToolbar(bool forward) { |
638 // TODO(mohamed) This needs to be smart, that applies to all toolbars. | 636 // TODO(mohamed) This needs to be smart, that applies to all toolbars. |
(...skipping 1502 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2141 ticker_.Start(); | 2139 ticker_.Start(); |
2142 | 2140 |
2143 pref_service->SetInteger(prefs::kPluginMessageResponseTimeout, | 2141 pref_service->SetInteger(prefs::kPluginMessageResponseTimeout, |
2144 plugin_message_response_timeout); | 2142 plugin_message_response_timeout); |
2145 pref_service->SetInteger(prefs::kHungPluginDetectFrequency, | 2143 pref_service->SetInteger(prefs::kHungPluginDetectFrequency, |
2146 hung_plugin_detect_freq); | 2144 hung_plugin_detect_freq); |
2147 } | 2145 } |
2148 #endif | 2146 #endif |
2149 } | 2147 } |
2150 | 2148 |
2151 // static | |
2152 void BrowserView::InitClass() { | |
2153 static bool initialized = false; | |
2154 if (!initialized) { | |
2155 ResourceBundle& rb = ResourceBundle::GetSharedInstance(); | |
2156 default_favicon_ = *rb.GetBitmapNamed(IDR_DEFAULT_FAVICON); | |
2157 initialized = true; | |
2158 } | |
2159 } | |
2160 | |
2161 #if !defined(OS_CHROMEOS) | 2149 #if !defined(OS_CHROMEOS) |
2162 // static | 2150 // static |
2163 BrowserWindow* BrowserWindow::CreateBrowserWindow(Browser* browser) { | 2151 BrowserWindow* BrowserWindow::CreateBrowserWindow(Browser* browser) { |
2164 // Create the view and the frame. The frame will attach itself via the view | 2152 // Create the view and the frame. The frame will attach itself via the view |
2165 // so we don't need to do anything with the pointer. | 2153 // so we don't need to do anything with the pointer. |
2166 BrowserView* view = new BrowserView(browser); | 2154 BrowserView* view = new BrowserView(browser); |
2167 BrowserFrame::Create(view, browser->profile()); | 2155 BrowserFrame::Create(view, browser->profile()); |
2168 | 2156 |
2169 view->GetWindow()->GetNonClientView()-> | 2157 view->GetWindow()->GetNonClientView()-> |
2170 SetAccessibleName(l10n_util::GetString(IDS_PRODUCT_NAME)); | 2158 SetAccessibleName(l10n_util::GetString(IDS_PRODUCT_NAME)); |
2171 | 2159 |
2172 return view; | 2160 return view; |
2173 } | 2161 } |
2174 #endif | 2162 #endif |
2175 | 2163 |
2176 // static | 2164 // static |
2177 FindBar* BrowserWindow::CreateFindBar(Browser* browser) { | 2165 FindBar* BrowserWindow::CreateFindBar(Browser* browser) { |
2178 return browser::CreateFindBar(static_cast<BrowserView*>(browser->window())); | 2166 return browser::CreateFindBar(static_cast<BrowserView*>(browser->window())); |
2179 } | 2167 } |
OLD | NEW |