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

Side by Side Diff: chrome/browser/chromeos/frame/browser_view.cc

Issue 8509027: Add status area to Aura builds. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Move status area view ids back to chromeos Created 9 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
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/chromeos/frame/browser_view.h" 5 #include "chrome/browser/chromeos/frame/browser_view.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <set> 8 #include <set>
9 #include <string> 9 #include <string>
10 #include <vector> 10 #include <vector>
(...skipping 137 matching lines...) Expand 10 before | Expand all | Expand 10 after
148 layout_mode_button_ = static_cast<chromeos::LayoutModeButton*>(view); 148 layout_mode_button_ = static_cast<chromeos::LayoutModeButton*>(view);
149 break; 149 break;
150 } 150 }
151 } 151 }
152 152
153 // In the normal and the compact navigation bar mode, ChromeOS 153 // In the normal and the compact navigation bar mode, ChromeOS
154 // lays out compact navigation buttons and status views in the title 154 // lays out compact navigation buttons and status views in the title
155 // area. See Layout 155 // area. See Layout
156 virtual int LayoutTabStripRegion() OVERRIDE { 156 virtual int LayoutTabStripRegion() OVERRIDE {
157 if (browser_view_->IsFullscreen() || !browser_view_->IsTabStripVisible()) { 157 if (browser_view_->IsFullscreen() || !browser_view_->IsTabStripVisible()) {
158 status_area_->SetVisible(false); 158 if (status_area_) {
159 UpdateStatusAreaBoundsProperty(); 159 status_area_->SetVisible(false);
160 UpdateStatusAreaBoundsProperty();
161 }
160 tabstrip_->SetVisible(false); 162 tabstrip_->SetVisible(false);
161 tabstrip_->SetBounds(0, 0, 0, 0); 163 tabstrip_->SetBounds(0, 0, 0, 0);
162 layout_mode_button_->SetVisible(false); 164 layout_mode_button_->SetVisible(false);
163 layout_mode_button_->SetBounds(0, 0, 0, 0); 165 layout_mode_button_->SetBounds(0, 0, 0, 0);
164 return 0; 166 return 0;
165 } 167 }
166 168
167 gfx::Rect tabstrip_bounds( 169 gfx::Rect tabstrip_bounds(
168 browser_view_->frame()->GetBoundsForTabStrip(tabstrip_)); 170 browser_view_->frame()->GetBoundsForTabStrip(tabstrip_));
169 gfx::Point tabstrip_origin = tabstrip_bounds.origin(); 171 gfx::Point tabstrip_origin = tabstrip_bounds.origin();
(...skipping 19 matching lines...) Expand all
189 191
190 private: 192 private:
191 chromeos::BrowserView* chromeos_browser_view() { 193 chromeos::BrowserView* chromeos_browser_view() {
192 return static_cast<chromeos::BrowserView*>(browser_view_); 194 return static_cast<chromeos::BrowserView*>(browser_view_);
193 } 195 }
194 196
195 // Tests if the point is on one of views that are within the 197 // Tests if the point is on one of views that are within the
196 // considered title bar area of client view. 198 // considered title bar area of client view.
197 bool IsPointInViewsInTitleArea(const gfx::Point& point) 199 bool IsPointInViewsInTitleArea(const gfx::Point& point)
198 const { 200 const {
199 gfx::Point point_in_status_area_coords(point); 201 if (status_area_) {
200 views::View::ConvertPointToView(browser_view_, status_area_, 202 gfx::Point point_in_status_area_coords(point);
201 &point_in_status_area_coords); 203 views::View::ConvertPointToView(browser_view_, status_area_,
202 if (status_area_->HitTest(point_in_status_area_coords)) 204 &point_in_status_area_coords);
203 return true; 205 if (status_area_->HitTest(point_in_status_area_coords))
204 206 return true;
207 }
205 gfx::Point point_in_layout_mode_button_coords(point); 208 gfx::Point point_in_layout_mode_button_coords(point);
206 views::View::ConvertPointToView(browser_view_, layout_mode_button_, 209 views::View::ConvertPointToView(browser_view_, layout_mode_button_,
207 &point_in_layout_mode_button_coords); 210 &point_in_layout_mode_button_coords);
208 if (layout_mode_button_->HitTest(point_in_layout_mode_button_coords)) 211 if (layout_mode_button_->HitTest(point_in_layout_mode_button_coords))
209 return true; 212 return true;
210 213
211 return false; 214 return false;
212 } 215 }
213 216
214 // Lays out tabstrip, status area, and layout mode button in the title bar 217 // Lays out tabstrip, status area, and layout mode button in the title bar
215 // area (given by |bounds|). 218 // area (given by |bounds|).
216 int LayoutTitlebarComponents(const gfx::Rect& bounds) { 219 int LayoutTitlebarComponents(const gfx::Rect& bounds) {
217 if (bounds.IsEmpty()) 220 if (bounds.IsEmpty())
218 return 0; 221 return 0;
219 222
220 const bool show_layout_mode_button = 223 const bool show_layout_mode_button =
221 chromeos_browser_view()->should_show_layout_mode_button(); 224 chromeos_browser_view()->should_show_layout_mode_button();
222 225
223 tabstrip_->SetVisible(true); 226 tabstrip_->SetVisible(true);
224 status_area_->SetVisible( 227 if (status_area_) {
225 !chromeos_browser_view()->has_hide_status_area_property()); 228 status_area_->SetVisible(
229 !chromeos_browser_view()->has_hide_status_area_property());
230 }
226 layout_mode_button_->SetVisible(show_layout_mode_button); 231 layout_mode_button_->SetVisible(show_layout_mode_button);
227 232
228 const gfx::Size layout_mode_button_size = 233 const gfx::Size layout_mode_button_size =
229 layout_mode_button_->GetPreferredSize(); 234 layout_mode_button_->GetPreferredSize();
230 layout_mode_button_->SetBounds( 235 layout_mode_button_->SetBounds(
231 bounds.right() - layout_mode_button_size.width(), 236 bounds.right() - layout_mode_button_size.width(),
232 bounds.y(), 237 bounds.y(),
233 layout_mode_button_size.width(), 238 layout_mode_button_size.width(),
234 layout_mode_button_size.height()); 239 layout_mode_button_size.height());
235 240
236 // Lay out status area after tab strip and before layout mode button (if 241 if (status_area_) {
237 // shown). 242 // Lay out status area after tab strip and before layout mode button (if
238 gfx::Size status_size = status_area_->GetPreferredSize(); 243 // shown).
239 const int status_right = 244 gfx::Size status_size = status_area_->GetPreferredSize();
240 show_layout_mode_button ? 245 const int status_right =
241 layout_mode_button_->bounds().x() : 246 show_layout_mode_button ?
242 bounds.right(); 247 layout_mode_button_->bounds().x() :
243 status_area_->SetBounds( 248 bounds.right();
244 status_right - status_size.width(), 249 status_area_->SetBounds(
245 bounds.y() + kStatusAreaVerticalAdjustment, 250 status_right - status_size.width(),
246 status_size.width(), 251 bounds.y() + kStatusAreaVerticalAdjustment,
247 status_size.height()); 252 status_size.width(),
248 UpdateStatusAreaBoundsProperty(); 253 status_size.height());
254 UpdateStatusAreaBoundsProperty();
255 }
249 tabstrip_->SetBounds(bounds.x(), bounds.y(), 256 tabstrip_->SetBounds(bounds.x(), bounds.y(),
250 std::max(0, status_area_->bounds().x() - bounds.x()), 257 std::max(0, status_area_->bounds().x() - bounds.x()),
251 bounds.height()); 258 bounds.height());
252 return bounds.bottom(); 259 return bounds.bottom();
253 } 260 }
254 261
255 // Updates |status_area_bounds_for_property_| based on the current bounds and 262 // Updates |status_area_bounds_for_property_| based on the current bounds and
256 // calls WmIpc::SetStatusBoundsProperty() if it changed. 263 // calls WmIpc::SetStatusBoundsProperty() if it changed.
257 void UpdateStatusAreaBoundsProperty() { 264 void UpdateStatusAreaBoundsProperty() {
265 if (!status_area_)
266 return;
258 gfx::Rect current_bounds; 267 gfx::Rect current_bounds;
259 if (status_area_->IsVisible()) { 268 if (status_area_->IsVisible()) {
260 gfx::Rect translated_bounds = 269 gfx::Rect translated_bounds =
261 status_area_->parent()->ConvertRectToWidget(status_area_->bounds()); 270 status_area_->parent()->ConvertRectToWidget(status_area_->bounds());
262 // To avoid a dead zone across the top of the screen, 271 // To avoid a dead zone across the top of the screen,
263 // StatusAreaButton::HitTest() accepts clicks in the area between the top 272 // StatusAreaButton::HitTest() accepts clicks in the area between the top
264 // of its own bounds and the top of its parent view. Make the bounds that 273 // of its own bounds and the top of its parent view. Make the bounds that
265 // we report match. 274 // we report match.
266 current_bounds.SetRect( 275 current_bounds.SetRect(
267 translated_bounds.x(), 276 translated_bounds.x(),
(...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after
381 #if defined(TOOLKIT_USES_GTK) 390 #if defined(TOOLKIT_USES_GTK)
382 WmIpc::instance()->SetWindowType( 391 WmIpc::instance()->SetWindowType(
383 GTK_WIDGET(frame()->GetNativeWindow()), 392 GTK_WIDGET(frame()->GetNativeWindow()),
384 WM_IPC_WINDOW_CHROME_TOPLEVEL, 393 WM_IPC_WINDOW_CHROME_TOPLEVEL,
385 &params); 394 &params);
386 #endif 395 #endif
387 } 396 }
388 } 397 }
389 398
390 void BrowserView::FocusChromeOSStatus() { 399 void BrowserView::FocusChromeOSStatus() {
391 status_area_->SetPaneFocus(NULL); 400 if (status_area_)
401 status_area_->SetPaneFocus(NULL);
392 } 402 }
393 403
394 views::LayoutManager* BrowserView::CreateLayoutManager() const { 404 views::LayoutManager* BrowserView::CreateLayoutManager() const {
395 return new BrowserViewLayout(); 405 return new BrowserViewLayout();
396 } 406 }
397 407
398 void BrowserView::ChildPreferredSizeChanged(View* child) { 408 void BrowserView::ChildPreferredSizeChanged(View* child) {
399 Layout(); 409 Layout();
400 } 410 }
401 411
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after
498 // StatusAreaButton::Delegate overrides. 508 // StatusAreaButton::Delegate overrides.
499 509
500 bool BrowserView::ShouldExecuteStatusAreaCommand( 510 bool BrowserView::ShouldExecuteStatusAreaCommand(
501 const views::View* button_view, int command_id) const { 511 const views::View* button_view, int command_id) const {
502 return true; 512 return true;
503 } 513 }
504 514
505 void BrowserView::ExecuteStatusAreaCommand( 515 void BrowserView::ExecuteStatusAreaCommand(
506 const views::View* button_view, int command_id) { 516 const views::View* button_view, int command_id) {
507 switch (command_id) { 517 switch (command_id) {
508 case StatusAreaViewChromeos::SHOW_NETWORK_OPTIONS: 518 case StatusAreaButton::Delegate::SHOW_NETWORK_OPTIONS:
509 browser()->OpenInternetOptionsDialog(); 519 browser()->OpenInternetOptionsDialog();
510 break; 520 break;
511 case StatusAreaViewChromeos::SHOW_LANGUAGE_OPTIONS: 521 case StatusAreaButton::Delegate::SHOW_LANGUAGE_OPTIONS:
512 browser()->OpenLanguageOptionsDialog(); 522 browser()->OpenLanguageOptionsDialog();
513 break; 523 break;
514 case StatusAreaViewChromeos::SHOW_SYSTEM_OPTIONS: 524 case StatusAreaButton::Delegate::SHOW_SYSTEM_OPTIONS:
515 browser()->OpenLanguageOptionsDialog(); 525 browser()->OpenSystemOptionsDialog();
516 break; 526 break;
517 default: 527 default:
518 NOTREACHED(); 528 NOTREACHED();
519 } 529 }
520 } 530 }
521 531
522 gfx::Font BrowserView::GetStatusAreaFont(const gfx::Font& font) const { 532 gfx::Font BrowserView::GetStatusAreaFont(const gfx::Font& font) const {
523 return font.DeriveFont(0, gfx::Font::BOLD); 533 return font.DeriveFont(0, gfx::Font::BOLD);
524 } 534 }
525 535
526 StatusAreaButton::TextStyle BrowserView::GetStatusAreaTextStyle() const { 536 StatusAreaButton::TextStyle BrowserView::GetStatusAreaTextStyle() const {
527 ThemeService* theme_service = 537 ThemeService* theme_service =
528 ThemeServiceFactory::GetForProfile(browser()->profile()); 538 ThemeServiceFactory::GetForProfile(browser()->profile());
529 539
530 if (!theme_service->UsingDefaultTheme()) 540 if (!theme_service->UsingDefaultTheme())
531 return StatusAreaButton::WHITE_HALOED; 541 return StatusAreaButton::WHITE_HALOED;
532 542
533 return IsOffTheRecord() ? 543 return IsOffTheRecord() ?
534 StatusAreaButton::WHITE_PLAIN : StatusAreaButton::GRAY_EMBOSSED; 544 StatusAreaButton::WHITE_PLAIN : StatusAreaButton::GRAY_EMBOSSED;
535 } 545 }
536 546
537 void BrowserView::ButtonVisibilityChanged(views::View* button_view) { 547 void BrowserView::ButtonVisibilityChanged(views::View* button_view) {
538 status_area_->UpdateButtonVisibility(); 548 if (status_area_)
549 status_area_->UpdateButtonVisibility();
539 } 550 }
540 551
541 // BrowserView, MessageLoopForUI::Observer implementation. 552 // BrowserView, MessageLoopForUI::Observer implementation.
542 553
543 #if defined(TOUCH_UI) || defined(USE_AURA) 554 #if defined(TOUCH_UI) || defined(USE_AURA)
544 base::EventStatus BrowserView::WillProcessEvent( 555 base::EventStatus BrowserView::WillProcessEvent(
545 const base::NativeEvent& event) OVERRIDE { 556 const base::NativeEvent& event) OVERRIDE {
546 return base::EVENT_CONTINUE; 557 return base::EVENT_CONTINUE;
547 } 558 }
548 559
(...skipping 19 matching lines...) Expand all
568 } 579 }
569 } 580 }
570 } 581 }
571 #endif 582 #endif
572 583
573 // BrowserView protected: 584 // BrowserView protected:
574 585
575 void BrowserView::GetAccessiblePanes( 586 void BrowserView::GetAccessiblePanes(
576 std::vector<views::AccessiblePaneView*>* panes) { 587 std::vector<views::AccessiblePaneView*>* panes) {
577 ::BrowserView::GetAccessiblePanes(panes); 588 ::BrowserView::GetAccessiblePanes(panes);
578 panes->push_back(status_area_); 589 if (status_area_)
590 panes->push_back(status_area_);
579 } 591 }
580 592
581 // BrowserView private. 593 // BrowserView private.
582 594
583 void BrowserView::InitSystemMenu() { 595 void BrowserView::InitSystemMenu() {
584 views::MenuItemView* menu = 596 views::MenuItemView* menu =
585 new views::MenuItemView(system_menu_delegate_.get()); 597 new views::MenuItemView(system_menu_delegate_.get());
586 // MenuRunner takes ownership of menu. 598 // MenuRunner takes ownership of menu.
587 system_menu_runner_.reset(new views::MenuRunner(menu)); 599 system_menu_runner_.reset(new views::MenuRunner(menu));
588 menu->AppendDelegateMenuItem(IDC_RESTORE_TAB); 600 menu->AppendDelegateMenuItem(IDC_RESTORE_TAB);
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
628 BrowserWindow* BrowserWindow::CreateBrowserWindow(Browser* browser) { 640 BrowserWindow* BrowserWindow::CreateBrowserWindow(Browser* browser) {
629 // Create a browser view for chromeos. 641 // Create a browser view for chromeos.
630 BrowserView* view; 642 BrowserView* view;
631 if (browser->is_type_popup() || browser->is_type_panel()) 643 if (browser->is_type_popup() || browser->is_type_panel())
632 view = new chromeos::PanelBrowserView(browser); 644 view = new chromeos::PanelBrowserView(browser);
633 else 645 else
634 view = new chromeos::BrowserView(browser); 646 view = new chromeos::BrowserView(browser);
635 (new BrowserFrame(view))->InitBrowserFrame(); 647 (new BrowserFrame(view))->InitBrowserFrame();
636 return view; 648 return view;
637 } 649 }
OLDNEW
« no previous file with comments | « chrome/browser/chrome_browser_parts_aura.cc ('k') | chrome/browser/chromeos/login/background_view.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698