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

Unified Diff: chrome/browser/ui/cocoa/panels/mouse_drag_controller.mm

Issue 2263863002: Remove implementation of Panels on OSes other than ChromeOS. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: CR feedback Created 4 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/ui/cocoa/panels/mouse_drag_controller.mm
diff --git a/chrome/browser/ui/cocoa/panels/mouse_drag_controller.mm b/chrome/browser/ui/cocoa/panels/mouse_drag_controller.mm
deleted file mode 100644
index fdc00e21f70f5d98c94abe7b6613cab75db37f09..0000000000000000000000000000000000000000
--- a/chrome/browser/ui/cocoa/panels/mouse_drag_controller.mm
+++ /dev/null
@@ -1,145 +0,0 @@
-// Copyright (c) 2012 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "chrome/browser/ui/cocoa/panels/mouse_drag_controller.h"
-
-#include <Carbon/Carbon.h> // kVK_Escape
-#import <Cocoa/Cocoa.h>
-
-#include "base/logging.h"
-#include "base/mac/scoped_nsautorelease_pool.h"
-
-// The distance the user has to move the mouse while keeping the left button
-// down before panel resizing operation actually starts.
-const double kDragThreshold = 3.0;
-
-@implementation MouseDragController
-
-- (NSView<MouseDragControllerClient>*)client {
- return client_;
-}
-
-- (NSPoint)initialMouseLocation {
- return initialMouseLocation_;
-}
-
-- (BOOL)exceedsDragThreshold:(NSPoint)mouseLocation {
- float deltaX = fabs(initialMouseLocation_.x - mouseLocation.x);
- float deltaY = fabs(initialMouseLocation_.y - mouseLocation.y);
- return deltaX > kDragThreshold || deltaY > kDragThreshold;
-}
-
-- (BOOL)tryStartDrag:(NSEvent*)event {
- DCHECK(dragState_ == PANEL_DRAG_CAN_START);
- NSPoint mouseLocation = [event locationInWindow];
- if (![self exceedsDragThreshold:mouseLocation])
- return NO;
-
- // Mouse moved over threshold, start drag.
- dragState_ = PANEL_DRAG_IN_PROGRESS;
- [client_ dragStarted:initialMouseLocation_];
- return YES;
-}
-
-- (void)cleanupAfterDrag {
- if (dragState_ == PANEL_DRAG_SUPPRESSED)
- return;
- dragState_ = PANEL_DRAG_SUPPRESSED;
- initialMouseLocation_ = NSZeroPoint;
- [client_ cleanupAfterDrag];
-}
-
-- (MouseDragController*)initWithClient:
- (NSView<MouseDragControllerClient>*)client {
- client_ = client;
- dragState_ = PANEL_DRAG_SUPPRESSED;
- return self;
-}
-
-- (void)mouseDown:(NSEvent*)event {
- DCHECK(dragState_ == PANEL_DRAG_SUPPRESSED);
- dragState_ = PANEL_DRAG_CAN_START;
- initialMouseLocation_ = [event locationInWindow];
- [client_ prepareForDrag];
-}
-
-- (void)mouseDragged:(NSEvent*)event {
- if (dragState_ == PANEL_DRAG_SUPPRESSED)
- return;
-
- // In addition to events needed to control the drag operation, fetch the right
- // mouse click events and key down events and ignore them, to prevent their
- // accumulation in the queue and "playing out" when the mouse is released.
- const NSUInteger mask =
- NSLeftMouseUpMask | NSLeftMouseDraggedMask | NSKeyUpMask |
- NSRightMouseDownMask | NSKeyDownMask ;
-
- while (true) {
- base::mac::ScopedNSAutoreleasePool autorelease_pool;
- BOOL keepGoing = YES;
-
- switch ([event type]) {
- case NSLeftMouseDragged: {
- // If drag didn't start yet, see if mouse moved far enough to start it.
- if (dragState_ == PANEL_DRAG_CAN_START && ![self tryStartDrag:event])
- return;
-
- DCHECK(dragState_ == PANEL_DRAG_IN_PROGRESS);
- [client_ dragProgress:[event locationInWindow]];
- break;
- }
-
- case NSKeyUp:
- if ([event keyCode] == kVK_Escape) {
- // The drag might not be started yet because of threshold, so check.
- if (dragState_ == PANEL_DRAG_IN_PROGRESS)
- [client_ dragEnded:YES];
- keepGoing = NO;
- }
- break;
-
- case NSLeftMouseUp:
- // The drag might not be started yet because of threshold, so check.
- if (dragState_ == PANEL_DRAG_IN_PROGRESS)
- [client_ dragEnded:NO];
- keepGoing = NO;
- break;
-
- case NSRightMouseDownMask:
- break;
-
- default:
- // Dequeue and ignore other mouse and key events so the Chrome context
- // menu does not come after right click on a page during Panel
- // resize, or the keystrokes are not 'accumulated' and entered
- // at once when the drag ends.
- break;
- }
-
- if (!keepGoing)
- break;
-
- autorelease_pool.Recycle();
-
- event = [NSApp nextEventMatchingMask:mask
- untilDate:[NSDate distantFuture]
- inMode:NSDefaultRunLoopMode
- dequeue:YES];
-
- }
- [self cleanupAfterDrag];
-}
-
-
-- (void)mouseUp:(NSEvent*)event {
- if (dragState_ == PANEL_DRAG_SUPPRESSED)
- return;
- // The mouseUp while in drag should be processed by nested message loop
- // in mouseDragged: method.
- DCHECK(dragState_ != PANEL_DRAG_IN_PROGRESS);
- // Do cleanup in case the actual drag was not started (because of threshold).
- [self cleanupAfterDrag];
-}
-@end
-
« no previous file with comments | « chrome/browser/ui/cocoa/panels/mouse_drag_controller.h ('k') | chrome/browser/ui/cocoa/panels/panel_cocoa.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698