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

Side by Side Diff: chrome/browser/ui/views/extensions/shell_window_views.cc

Issue 10825240: Refactor ShellWindow to separate platform-specific code. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: nit 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/extensions/shell_window_views.h" 5 #include "chrome/browser/ui/views/extensions/shell_window_views.h"
6 6
7 #include "base/utf_string_conversions.h" 7 #include "base/utf_string_conversions.h"
8 #include "chrome/browser/extensions/extension_host.h" 8 #include "chrome/browser/extensions/extension_host.h"
9 #include "chrome/common/extensions/draggable_region.h" 9 #include "chrome/common/extensions/draggable_region.h"
10 #include "chrome/common/extensions/extension.h" 10 #include "chrome/common/extensions/extension.h"
(...skipping 284 matching lines...) Expand 10 before | Expand all | Expand 10 after
295 return max_size; 295 return max_size;
296 } 296 }
297 297
298 void ShellWindowFrameView::ButtonPressed(views::Button* sender, 298 void ShellWindowFrameView::ButtonPressed(views::Button* sender,
299 const ui::Event& event) { 299 const ui::Event& event) {
300 DCHECK(!window_->frameless()); 300 DCHECK(!window_->frameless());
301 if (sender == close_button_) 301 if (sender == close_button_)
302 frame_->Close(); 302 frame_->Close();
303 } 303 }
304 304
305 ShellWindowViews::ShellWindowViews(Profile* profile, 305 ShellWindowViews::ShellWindowViews(ShellWindow* shell_window,
306 const extensions::Extension* extension,
307 const GURL& url,
308 const ShellWindow::CreateParams& win_params) 306 const ShellWindow::CreateParams& win_params)
309 : ShellWindow(profile, extension, url), 307 : shell_window_(shell_window),
310 web_view_(NULL), 308 web_view_(NULL),
311 is_fullscreen_(false), 309 is_fullscreen_(false),
312 frameless_(win_params.frame == ShellWindow::CreateParams::FRAME_NONE) { 310 frameless_(win_params.frame == ShellWindow::CreateParams::FRAME_NONE) {
313 window_ = new views::Widget; 311 window_ = new views::Widget;
314 views::Widget::InitParams params(views::Widget::InitParams::TYPE_WINDOW); 312 views::Widget::InitParams params(views::Widget::InitParams::TYPE_WINDOW);
315 params.delegate = this; 313 params.delegate = this;
316 params.remove_standard_frame = true; 314 params.remove_standard_frame = true;
317 minimum_size_ = win_params.minimum_size; 315 minimum_size_ = win_params.minimum_size;
318 maximum_size_ = win_params.maximum_size; 316 maximum_size_ = win_params.maximum_size;
319 window_->Init(params); 317 window_->Init(params);
320 gfx::Rect window_bounds = 318 gfx::Rect window_bounds =
321 window_->non_client_view()->GetWindowBoundsForClientBounds( 319 window_->non_client_view()->GetWindowBoundsForClientBounds(
322 win_params.bounds); 320 win_params.bounds);
323 window_->SetBounds(window_bounds); 321 window_->SetBounds(window_bounds);
324 #if defined(OS_WIN) && !defined(USE_AURA) 322 #if defined(OS_WIN) && !defined(USE_AURA)
325 std::string app_name = web_app::GenerateApplicationNameFromExtensionId( 323 std::string app_name = web_app::GenerateApplicationNameFromExtensionId(
326 extension->id()); 324 extension()->id());
327 ui::win::SetAppIdForWindow( 325 ui::win::SetAppIdForWindow(
328 ShellIntegration::GetAppModelIdForProfile(UTF8ToWide(app_name), 326 ShellIntegration::GetAppModelIdForProfile(
329 profile->GetPath()), 327 UTF8ToWide(app_name), shell_window_->profile()->GetPath()),
330 GetWidget()->GetTopLevelWidget()->GetNativeWindow()); 328 GetWidget()->GetTopLevelWidget()->GetNativeWindow());
331 #endif 329 #endif
332 OnViewWasResized(); 330 OnViewWasResized();
333 331
334 window_->Show(); 332 window_->Show();
335 } 333 }
336 334
337 views::View* ShellWindowViews::GetInitiallyFocusedView() { 335 views::View* ShellWindowViews::GetInitiallyFocusedView() {
338 return web_view_; 336 return web_view_;
339 } 337 }
(...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after
448 446
449 void ShellWindowViews::FlashFrame(bool flash) { 447 void ShellWindowViews::FlashFrame(bool flash) {
450 window_->FlashFrame(flash); 448 window_->FlashFrame(flash);
451 } 449 }
452 450
453 bool ShellWindowViews::IsAlwaysOnTop() const { 451 bool ShellWindowViews::IsAlwaysOnTop() const {
454 return false; 452 return false;
455 } 453 }
456 454
457 void ShellWindowViews::DeleteDelegate() { 455 void ShellWindowViews::DeleteDelegate() {
458 OnNativeClose(); 456 shell_window_->OnNativeClose();
459 } 457 }
460 458
461 bool ShellWindowViews::CanResize() const { 459 bool ShellWindowViews::CanResize() const {
462 return true; 460 return true;
463 } 461 }
464 462
465 bool ShellWindowViews::CanMaximize() const { 463 bool ShellWindowViews::CanMaximize() const {
466 return true; 464 return true;
467 } 465 }
468 466
469 views::View* ShellWindowViews::GetContentsView() { 467 views::View* ShellWindowViews::GetContentsView() {
470 return this; 468 return this;
471 } 469 }
472 470
473 views::NonClientFrameView* ShellWindowViews::CreateNonClientFrameView( 471 views::NonClientFrameView* ShellWindowViews::CreateNonClientFrameView(
474 views::Widget* widget) { 472 views::Widget* widget) {
475 ShellWindowFrameView* frame_view = new ShellWindowFrameView(this); 473 ShellWindowFrameView* frame_view = new ShellWindowFrameView(this);
476 frame_view->Init(window_); 474 frame_view->Init(window_);
477 return frame_view; 475 return frame_view;
478 } 476 }
479 477
480 string16 ShellWindowViews::GetWindowTitle() const { 478 string16 ShellWindowViews::GetWindowTitle() const {
481 return GetTitle(); 479 return shell_window_->GetTitle();
482 } 480 }
483 481
484 views::Widget* ShellWindowViews::GetWidget() { 482 views::Widget* ShellWindowViews::GetWidget() {
485 return window_; 483 return window_;
486 } 484 }
487 485
488 const views::Widget* ShellWindowViews::GetWidget() const { 486 const views::Widget* ShellWindowViews::GetWidget() const {
489 return window_; 487 return window_;
490 } 488 }
491 489
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
529 if (!window_->IsMaximized()) { 527 if (!window_->IsMaximized()) {
530 if (frameless_) 528 if (frameless_)
531 rgn->op(0, 0, width, kResizeInsideBoundsSize, SkRegion::kUnion_Op); 529 rgn->op(0, 0, width, kResizeInsideBoundsSize, SkRegion::kUnion_Op);
532 rgn->op(0, 0, kResizeInsideBoundsSize, height, SkRegion::kUnion_Op); 530 rgn->op(0, 0, kResizeInsideBoundsSize, height, SkRegion::kUnion_Op);
533 rgn->op(width - kResizeInsideBoundsSize, 0, width, height, 531 rgn->op(width - kResizeInsideBoundsSize, 0, width, height,
534 SkRegion::kUnion_Op); 532 SkRegion::kUnion_Op);
535 rgn->op(0, height - kResizeInsideBoundsSize, width, height, 533 rgn->op(0, height - kResizeInsideBoundsSize, width, height,
536 SkRegion::kUnion_Op); 534 SkRegion::kUnion_Op);
537 } 535 }
538 } 536 }
539 web_contents()->GetRenderViewHost()->GetView()->SetClickthroughRegion(rgn); 537 if (web_contents()->GetRenderViewHost()->GetView())
538 web_contents()->GetRenderViewHost()->GetView()->SetClickthroughRegion(rgn);
540 #endif 539 #endif
541 } 540 }
542 541
543 void ShellWindowViews::Layout() { 542 void ShellWindowViews::Layout() {
544 DCHECK(web_view_); 543 DCHECK(web_view_);
545 web_view_->SetBounds(0, 0, width(), height()); 544 web_view_->SetBounds(0, 0, width(), height());
546 OnViewWasResized(); 545 OnViewWasResized();
547 } 546 }
548 547
549 void ShellWindowViews::UpdateWindowTitle() { 548 void ShellWindowViews::UpdateWindowTitle() {
(...skipping 23 matching lines...) Expand all
573 region.bounds.right(), 572 region.bounds.right(),
574 region.bounds.bottom(), 573 region.bounds.bottom(),
575 SkRegion::kDifference_Op); 574 SkRegion::kDifference_Op);
576 } 575 }
577 576
578 draggable_region_.reset(draggable_region); 577 draggable_region_.reset(draggable_region);
579 OnViewWasResized(); 578 OnViewWasResized();
580 } 579 }
581 580
582 // static 581 // static
583 ShellWindow* ShellWindow::CreateImpl(Profile* profile, 582 NativeShellWindow* NativeShellWindow::Create(
584 const extensions::Extension* extension, 583 ShellWindow* shell_window, const ShellWindow::CreateParams& params) {
585 const GURL& url, 584 return new ShellWindowViews(shell_window, params);
586 const ShellWindow::CreateParams& params) {
587 return new ShellWindowViews(profile, extension, url, params);
588 } 585 }
OLDNEW
« no previous file with comments | « chrome/browser/ui/views/extensions/shell_window_views.h ('k') | chrome/browser/ui/views/select_file_dialog_extension.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698