| 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/ui/panels/panel_window_controller_cocoa.h" | 5 #include "chrome/browser/ui/panels/panel_window_controller_cocoa.h" |
| 6 | 6 |
| 7 #import <Cocoa/Cocoa.h> | 7 #import <Cocoa/Cocoa.h> |
| 8 | 8 |
| 9 #include "base/logging.h" | 9 #include "base/logging.h" |
| 10 #include "base/mac/mac_util.h" | 10 #include "base/mac/mac_util.h" |
| (...skipping 387 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 398 | 398 |
| 399 - (void)endDrag:(BOOL)cancelled { | 399 - (void)endDrag:(BOOL)cancelled { |
| 400 animateOnBoundsChange_ = YES; | 400 animateOnBoundsChange_ = YES; |
| 401 windowShim_->panel()->manager()->EndDragging(cancelled); | 401 windowShim_->panel()->manager()->EndDragging(cancelled); |
| 402 } | 402 } |
| 403 | 403 |
| 404 - (void)dragWithDeltaX:(int)deltaX { | 404 - (void)dragWithDeltaX:(int)deltaX { |
| 405 windowShim_->panel()->manager()->Drag(deltaX); | 405 windowShim_->panel()->manager()->Drag(deltaX); |
| 406 } | 406 } |
| 407 | 407 |
| 408 - (void)setPanelFrame:(NSRect)frame { | 408 - (void)setPanelFrame:(NSRect)frame |
| 409 animate:(BOOL)animate { |
| 409 // Setup the whole window as the tracking area so that we can get notified | 410 // Setup the whole window as the tracking area so that we can get notified |
| 410 // when the mouse enters or leaves the window. This will make us be able to | 411 // when the mouse enters or leaves the window. This will make us be able to |
| 411 // show or hide settings button accordingly. | 412 // show or hide settings button accordingly. |
| 412 NSRect localBounds = frame; | 413 NSRect localBounds = frame; |
| 413 localBounds.origin = NSZeroPoint; | 414 localBounds.origin = NSZeroPoint; |
| 414 windowTrackingArea_.reset( | 415 windowTrackingArea_.reset( |
| 415 [[CrTrackingArea alloc] initWithRect:localBounds | 416 [[CrTrackingArea alloc] initWithRect:localBounds |
| 416 options:(NSTrackingMouseEnteredAndExited | | 417 options:(NSTrackingMouseEnteredAndExited | |
| 417 NSTrackingActiveAlways) | 418 NSTrackingActiveAlways) |
| 418 proxiedOwner:self | 419 proxiedOwner:self |
| 419 userInfo:nil]); | 420 userInfo:nil]); |
| 420 [windowTrackingArea_.get() clearOwnerWhenWindowWillClose:[self window]]; | 421 [windowTrackingArea_.get() clearOwnerWhenWindowWillClose:[self window]]; |
| 421 [[[[self window] contentView] superview] | 422 [[[[self window] contentView] superview] |
| 422 addTrackingArea:windowTrackingArea_.get()]; | 423 addTrackingArea:windowTrackingArea_.get()]; |
| 423 | 424 |
| 424 if (!animateOnBoundsChange_) { | 425 if (!animateOnBoundsChange_ || !animate) { |
| 425 [[self window] setFrame:frame display:YES animate:NO]; | 426 [[self window] setFrame:frame display:YES animate:NO]; |
| 426 return; | 427 return; |
| 427 } | 428 } |
| 428 // Will be enabled back in animationDidEnd callback. | 429 // Will be enabled back in animationDidEnd callback. |
| 429 [self disableTabContentsViewAutosizing]; | 430 [self disableTabContentsViewAutosizing]; |
| 430 | 431 |
| 431 NSDictionary *windowResize = [NSDictionary dictionaryWithObjectsAndKeys: | 432 NSDictionary *windowResize = [NSDictionary dictionaryWithObjectsAndKeys: |
| 432 [self window], NSViewAnimationTargetKey, | 433 [self window], NSViewAnimationTargetKey, |
| 433 [NSValue valueWithRect:frame], NSViewAnimationEndFrameKey, nil]; | 434 [NSValue valueWithRect:frame], NSViewAnimationEndFrameKey, nil]; |
| 434 | 435 |
| (...skipping 134 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 569 - (BOOL)canBecomeKeyWindow { | 570 - (BOOL)canBecomeKeyWindow { |
| 570 // Panel can only gain focus if it is expanded. Minimized panels do not | 571 // Panel can only gain focus if it is expanded. Minimized panels do not |
| 571 // participate in Cmd-~ rotation. | 572 // participate in Cmd-~ rotation. |
| 572 // TODO(dimich): If it will be ever desired to expand/focus the Panel on | 573 // TODO(dimich): If it will be ever desired to expand/focus the Panel on |
| 573 // keyboard navigation or via main menu, the care should be taken to avoid | 574 // keyboard navigation or via main menu, the care should be taken to avoid |
| 574 // cases when minimized Panel is getting keyboard input, invisibly. | 575 // cases when minimized Panel is getting keyboard input, invisibly. |
| 575 return windowShim_->panel()->expansion_state() == Panel::EXPANDED; | 576 return windowShim_->panel()->expansion_state() == Panel::EXPANDED; |
| 576 } | 577 } |
| 577 | 578 |
| 578 @end | 579 @end |
| OLD | NEW |