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

Side by Side Diff: chrome/browser/ui/panels/panel_titlebar_view_cocoa.mm

Issue 9403035: Refactor intra-strip panel drags by introducing PanelDragController. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix per feedback Created 8 years, 10 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) 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 #import "chrome/browser/ui/panels/panel_titlebar_view_cocoa.h" 5 #import "chrome/browser/ui/panels/panel_titlebar_view_cocoa.h"
6 6
7 #include <Carbon/Carbon.h> // kVK_Escape 7 #include <Carbon/Carbon.h> // kVK_Escape
8 #import <Cocoa/Cocoa.h> 8 #import <Cocoa/Cocoa.h>
9 9
10 #include "base/logging.h" 10 #include "base/logging.h"
(...skipping 418 matching lines...) Expand 10 before | Expand all | Expand 10 after
429 inMode:NSDefaultRunLoopMode 429 inMode:NSDefaultRunLoopMode
430 dequeue:YES]; 430 dequeue:YES];
431 431
432 switch ([event type]) { 432 switch ([event type]) {
433 case NSLeftMouseDragged: 433 case NSLeftMouseDragged:
434 if (dragState_ == PANEL_DRAG_CAN_START) { 434 if (dragState_ == PANEL_DRAG_CAN_START) {
435 if (![self exceedsDragThreshold:[event locationInWindow]]) 435 if (![self exceedsDragThreshold:[event locationInWindow]])
436 return; // Don't start real drag yet. 436 return; // Don't start real drag yet.
437 [self startDrag]; 437 [self startDrag];
438 } 438 }
439 [self dragWithDeltaX:[event deltaX]]; 439 [self dragWithDeltaX:[event deltaX]
440 deltaY:[event deltaY]];
440 break; 441 break;
441 442
442 case NSKeyUp: 443 case NSKeyUp:
443 if ([event keyCode] == kVK_Escape) { 444 if ([event keyCode] == kVK_Escape) {
444 [self endDrag:YES]; 445 [self endDrag:YES];
445 keepGoing = NO; 446 keepGoing = NO;
446 } 447 }
447 break; 448 break;
448 449
449 case NSLeftMouseUp: 450 case NSLeftMouseUp:
(...skipping 22 matching lines...) Expand all
472 dragState_ = PANEL_DRAG_IN_PROGRESS; 473 dragState_ = PANEL_DRAG_IN_PROGRESS;
473 [controller_ startDrag]; 474 [controller_ startDrag];
474 } 475 }
475 476
476 - (void)endDrag:(BOOL)cancelled { 477 - (void)endDrag:(BOOL)cancelled {
477 if (dragState_ == PANEL_DRAG_IN_PROGRESS) 478 if (dragState_ == PANEL_DRAG_IN_PROGRESS)
478 [controller_ endDrag:cancelled]; 479 [controller_ endDrag:cancelled];
479 dragState_ = PANEL_DRAG_SUPPRESSED; 480 dragState_ = PANEL_DRAG_SUPPRESSED;
480 } 481 }
481 482
482 - (void)dragWithDeltaX:(int)deltaX { 483 - (void)dragWithDeltaX:(int)deltaX
484 deltaY:(int)deltaY {
483 if (dragState_ != PANEL_DRAG_IN_PROGRESS) 485 if (dragState_ != PANEL_DRAG_IN_PROGRESS)
484 return; 486 return;
485 [controller_ dragWithDeltaX:deltaX]; 487 [controller_ dragWithDeltaX:deltaX
488 deltaY:deltaY];
486 } 489 }
487 490
488 - (void)drawAttention { 491 - (void)drawAttention {
489 if (isDrawingAttention_) 492 if (isDrawingAttention_)
490 return; 493 return;
491 isDrawingAttention_ = YES; 494 isDrawingAttention_ = YES;
492 495
493 [self startGlintAnimation]; 496 [self startGlintAnimation];
494 } 497 }
495 498
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after
573 576
574 - (void)releaseLeftMouseButtonTitlebar { 577 - (void)releaseLeftMouseButtonTitlebar {
575 NSEvent* event = MakeMouseEvent(NSLeftMouseUp, NSZeroPoint, 1); 578 NSEvent* event = MakeMouseEvent(NSLeftMouseUp, NSZeroPoint, 1);
576 [self mouseUp:event]; 579 [self mouseUp:event];
577 } 580 }
578 581
579 - (void)dragTitlebarDeltaX:(double)delta_x 582 - (void)dragTitlebarDeltaX:(double)delta_x
580 deltaY:(double)delta_y { 583 deltaY:(double)delta_y {
581 if (dragState_ == PANEL_DRAG_CAN_START) 584 if (dragState_ == PANEL_DRAG_CAN_START)
582 [self startDrag]; 585 [self startDrag];
583 [self dragWithDeltaX:delta_x]; 586 [self dragWithDeltaX:delta_x
587 deltaY:delta_y];
584 } 588 }
585 589
586 - (void)cancelDragTitlebar { 590 - (void)cancelDragTitlebar {
587 [self endDrag:YES]; 591 [self endDrag:YES];
588 } 592 }
589 593
590 - (void)finishDragTitlebar { 594 - (void)finishDragTitlebar {
591 [self endDrag:NO]; 595 [self endDrag:NO];
592 } 596 }
593 597
594 - (void)updateSettingsButtonVisibility:(BOOL)mouseOverWindow { 598 - (void)updateSettingsButtonVisibility:(BOOL)mouseOverWindow {
595 // The settings button is visible if the panel is main window or the mouse is 599 // The settings button is visible if the panel is main window or the mouse is
596 // over it. 600 // over it.
597 BOOL shouldShowSettingsButton = 601 BOOL shouldShowSettingsButton =
598 mouseOverWindow || [[self window] isMainWindow]; 602 mouseOverWindow || [[self window] isMainWindow];
599 [[settingsButtonWrapper_ animator] 603 [[settingsButtonWrapper_ animator]
600 setAlphaValue:shouldShowSettingsButton ? 1.0 : 0.0]; 604 setAlphaValue:shouldShowSettingsButton ? 1.0 : 0.0];
601 } 605 }
602 606
603 - (void)checkMouseAndUpdateSettingsButtonVisibility { 607 - (void)checkMouseAndUpdateSettingsButtonVisibility {
604 BOOL mouseOverWindow = NSPointInRect([NSEvent mouseLocation], 608 BOOL mouseOverWindow = NSPointInRect([NSEvent mouseLocation],
605 [[self window] frame]); 609 [[self window] frame]);
606 [self updateSettingsButtonVisibility:mouseOverWindow]; 610 [self updateSettingsButtonVisibility:mouseOverWindow];
607 } 611 }
608 612
609 @end 613 @end
610 614
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698