OLD | NEW |
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/chromeos/frame/browser_view.h" | 5 #include "chrome/browser/chromeos/frame/browser_view.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 #include <string> | 8 #include <string> |
9 #include <vector> | 9 #include <vector> |
10 | 10 |
(...skipping 222 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
233 // BrowserView, ::BrowserView overrides: | 233 // BrowserView, ::BrowserView overrides: |
234 | 234 |
235 void BrowserView::Init() { | 235 void BrowserView::Init() { |
236 ::BrowserView::Init(); | 236 ::BrowserView::Init(); |
237 status_area_ = new StatusAreaView(this); | 237 status_area_ = new StatusAreaView(this); |
238 status_area_->SetID(VIEW_ID_STATUS_AREA); | 238 status_area_->SetID(VIEW_ID_STATUS_AREA); |
239 AddChildView(status_area_); | 239 AddChildView(status_area_); |
240 status_area_->Init(); | 240 status_area_->Init(); |
241 InitSystemMenu(); | 241 InitSystemMenu(); |
242 | 242 |
243 // The ContextMenuController has to be set to a NonClientView but | 243 frame()->non_client_view()->SetContextMenuController(this); |
244 // not to a NonClientFrameView because a TabStrip is not a child of | |
245 // a NonClientFrameView even though visually a TabStrip is over a | |
246 // NonClientFrameView. | |
247 BrowserFrameGtk* gtk_frame = static_cast<BrowserFrameGtk*>(frame()); | |
248 gtk_frame->non_client_view()->SetContextMenuController(this); | |
249 | 244 |
250 // Listen to wrench menu opens. | 245 // Listen to wrench menu opens. |
251 if (toolbar()) | 246 if (toolbar()) |
252 toolbar()->AddMenuListener(this); | 247 toolbar()->AddMenuListener(this); |
253 | 248 |
254 // Make sure the window is set to the right type. | 249 // Make sure the window is set to the right type. |
255 std::vector<int> params; | 250 std::vector<int> params; |
256 params.push_back(browser()->tab_count()); | 251 params.push_back(browser()->tab_count()); |
257 params.push_back(browser()->active_index()); | 252 params.push_back(browser()->active_index()); |
258 params.push_back(gtk_get_current_event_time()); | 253 params.push_back(gtk_get_current_event_time()); |
259 WmIpc::instance()->SetWindowType( | 254 WmIpc::instance()->SetWindowType( |
260 GTK_WIDGET(frame()->GetWindow()->GetNativeWindow()), | 255 GTK_WIDGET(frame()->GetNativeWindow()), |
261 WM_IPC_WINDOW_CHROME_TOPLEVEL, | 256 WM_IPC_WINDOW_CHROME_TOPLEVEL, |
262 ¶ms); | 257 ¶ms); |
263 } | 258 } |
264 | 259 |
265 void BrowserView::Show() { | 260 void BrowserView::Show() { |
266 ShowInternal(true); | 261 ShowInternal(true); |
267 } | 262 } |
268 | 263 |
269 void BrowserView::ShowInactive() { | 264 void BrowserView::ShowInactive() { |
270 ShowInternal(false); | 265 ShowInternal(false); |
271 } | 266 } |
272 | 267 |
273 void BrowserView::ShowInternal(bool is_active) { | 268 void BrowserView::ShowInternal(bool is_active) { |
274 bool was_visible = frame()->GetWindow()->IsVisible(); | 269 bool was_visible = frame()->IsVisible(); |
275 if (is_active) | 270 if (is_active) |
276 ::BrowserView::Show(); | 271 ::BrowserView::Show(); |
277 else | 272 else |
278 ::BrowserView::ShowInactive(); | 273 ::BrowserView::ShowInactive(); |
279 if (!was_visible) { | 274 if (!was_visible) { |
280 // Have to update the tab count and selected index to reflect reality. | 275 // Have to update the tab count and selected index to reflect reality. |
281 std::vector<int> params; | 276 std::vector<int> params; |
282 params.push_back(browser()->tab_count()); | 277 params.push_back(browser()->tab_count()); |
283 params.push_back(browser()->active_index()); | 278 params.push_back(browser()->active_index()); |
284 WmIpc::instance()->SetWindowType( | 279 WmIpc::instance()->SetWindowType( |
285 GTK_WIDGET(frame()->GetWindow()->GetNativeWindow()), | 280 GTK_WIDGET(frame()->GetNativeWindow()), |
286 WM_IPC_WINDOW_CHROME_TOPLEVEL, | 281 WM_IPC_WINDOW_CHROME_TOPLEVEL, |
287 ¶ms); | 282 ¶ms); |
288 } | 283 } |
289 } | 284 } |
290 | 285 |
291 void BrowserView::FocusChromeOSStatus() { | 286 void BrowserView::FocusChromeOSStatus() { |
292 SaveFocusedView(); | 287 SaveFocusedView(); |
293 status_area_->SetPaneFocus(last_focused_view_storage_id(), NULL); | 288 status_area_->SetPaneFocus(last_focused_view_storage_id(), NULL); |
294 } | 289 } |
295 | 290 |
(...skipping 132 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
428 } // namespace chromeos | 423 } // namespace chromeos |
429 | 424 |
430 // static | 425 // static |
431 BrowserWindow* BrowserWindow::CreateBrowserWindow(Browser* browser) { | 426 BrowserWindow* BrowserWindow::CreateBrowserWindow(Browser* browser) { |
432 // Create a browser view for chromeos. | 427 // Create a browser view for chromeos. |
433 BrowserView* view; | 428 BrowserView* view; |
434 if (browser->is_type_popup() || browser->is_type_panel()) | 429 if (browser->is_type_popup() || browser->is_type_panel()) |
435 view = new chromeos::PanelBrowserView(browser); | 430 view = new chromeos::PanelBrowserView(browser); |
436 else | 431 else |
437 view = new chromeos::BrowserView(browser); | 432 view = new chromeos::BrowserView(browser); |
438 BrowserFrame::Create(view, browser->profile()); | 433 (new BrowserFrame(view))->InitBrowserFrame(); |
439 return view; | 434 return view; |
440 } | 435 } |
OLD | NEW |