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

Side by Side Diff: ui/file_manager/gallery/js/image_editor/image_transform.js

Issue 398263002: Gallery: Random fixes for the Viewport class. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 5 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 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 'use strict'; 5 'use strict';
6 6
7 /** 7 /**
8 * Crop mode. 8 * Crop mode.
9 * 9 *
10 * @extends {ImageEditor.Mode} 10 * @extends {ImageEditor.Mode}
(...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after
121 */ 121 */
122 ImageEditor.Mode.Crop.prototype.reset = function() { 122 ImageEditor.Mode.Crop.prototype.reset = function() {
123 ImageEditor.Mode.prototype.reset.call(this); 123 ImageEditor.Mode.prototype.reset.call(this);
124 this.createDefaultCrop(); 124 this.createDefaultCrop();
125 }; 125 };
126 126
127 /** 127 /**
128 * Updates the position of DOM elements. 128 * Updates the position of DOM elements.
129 */ 129 */
130 ImageEditor.Mode.Crop.prototype.positionDOM = function() { 130 ImageEditor.Mode.Crop.prototype.positionDOM = function() {
131 var screenClipped = this.viewport_.getScreenClipped(); 131 var screenClipped = this.viewport_.getImageBoundsOnScreenClipped();
132 132
133 var screenCrop = this.viewport_.imageToScreenRect(this.cropRect_.getRect()); 133 var screenCrop = this.viewport_.imageToScreenRect(this.cropRect_.getRect());
134 var delta = ImageEditor.Mode.Crop.MOUSE_GRAB_RADIUS; 134 var delta = ImageEditor.Mode.Crop.MOUSE_GRAB_RADIUS;
135 this.editor_.hideOverlappingTools( 135 this.editor_.hideOverlappingTools(
136 screenCrop.inflate(delta, delta), 136 screenCrop.inflate(delta, delta),
137 screenCrop.inflate(-delta, -delta)); 137 screenCrop.inflate(-delta, -delta));
138 138
139 this.domOverlay_.style.left = screenClipped.left + 'px'; 139 this.domOverlay_.style.left = screenClipped.left + 'px';
140 this.domOverlay_.style.top = screenClipped.top + 'px'; 140 this.domOverlay_.style.top = screenClipped.top + 'px';
141 this.domOverlay_.style.width = screenClipped.width + 'px'; 141 this.domOverlay_.style.width = screenClipped.width + 'px';
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
183 */ 183 */
184 ImageEditor.Mode.Crop.prototype.getCommand = function() { 184 ImageEditor.Mode.Crop.prototype.getCommand = function() {
185 var cropImageRect = this.cropRect_.getRect(); 185 var cropImageRect = this.cropRect_.getRect();
186 return new Command.Crop(cropImageRect); 186 return new Command.Crop(cropImageRect);
187 }; 187 };
188 188
189 /** 189 /**
190 * Creates default (initial) crop. 190 * Creates default (initial) crop.
191 */ 191 */
192 ImageEditor.Mode.Crop.prototype.createDefaultCrop = function() { 192 ImageEditor.Mode.Crop.prototype.createDefaultCrop = function() {
193 var rect = new Rect(this.getViewport().getImageClipped()); 193 var rect = this.getViewport().screenToImageRect(
194 new Rect(this.getViewport().getImageBoundsOnScreenClipped()));
194 rect = rect.inflate( 195 rect = rect.inflate(
195 -Math.round(rect.width / 6), -Math.round(rect.height / 6)); 196 -Math.round(rect.width / 6), -Math.round(rect.height / 6));
196 this.cropRect_ = new DraggableRect(rect, this.getViewport()); 197 this.cropRect_ = new DraggableRect(rect, this.getViewport());
197 this.positionDOM(); 198 this.positionDOM();
198 }; 199 };
199 200
200 /** 201 /**
201 * Obtains the cursor style depending on the mouse state. 202 * Obtains the cursor style depending on the mouse state.
202 * 203 *
203 * @param {number} x X coordinate for cursor. 204 * @param {number} x X coordinate for cursor.
(...skipping 254 matching lines...) Expand 10 before | Expand all | Expand 10 after
458 * @return {function(number,number,boolean)} Drag handler that takes x 459 * @return {function(number,number,boolean)} Drag handler that takes x
459 * coordinate value, y coordinate value, and shift key flag. 460 * coordinate value, y coordinate value, and shift key flag.
460 */ 461 */
461 DraggableRect.prototype.getDragHandler = function( 462 DraggableRect.prototype.getDragHandler = function(
462 initialScreenX, initialScreenY, touch) { 463 initialScreenX, initialScreenY, touch) {
463 // Check if the initial coordinate in the clip rect. 464 // Check if the initial coordinate in the clip rect.
464 var initialX = this.viewport_.screenToImageX(initialScreenX); 465 var initialX = this.viewport_.screenToImageX(initialScreenX);
465 var initialY = this.viewport_.screenToImageY(initialScreenY); 466 var initialY = this.viewport_.screenToImageY(initialScreenY);
466 var initialWidth = this.bounds_.right - this.bounds_.left; 467 var initialWidth = this.bounds_.right - this.bounds_.left;
467 var initialHeight = this.bounds_.bottom - this.bounds_.top; 468 var initialHeight = this.bounds_.bottom - this.bounds_.top;
468 var clipRect = this.viewport_.getImageClipped(); 469 var clipRect = this.viewport_.screenToImageRect(
470 this.viewport_.getImageBoundsOnScreenClipped());
469 if (!clipRect.inside(initialX, initialY)) 471 if (!clipRect.inside(initialX, initialY))
470 return null; 472 return null;
471 473
472 // Obtain the drag mode. 474 // Obtain the drag mode.
473 this.dragMode_ = this.getDragMode(initialX, initialY, touch); 475 this.dragMode_ = this.getDragMode(initialX, initialY, touch);
474 476
475 if (this.dragMode_.whole) { 477 if (this.dragMode_.whole) {
476 // Calc constant values during the operation. 478 // Calc constant values during the operation.
477 var mouseBiasX = this.bounds_.left - initialX; 479 var mouseBiasX = this.bounds_.left - initialX;
478 var mouseBiasY = this.bounds_.top - initialY; 480 var mouseBiasY = this.bounds_.top - initialY;
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after
550 552
551 /** 553 /**
552 * Obtains double tap action depending on the coordinate. 554 * Obtains double tap action depending on the coordinate.
553 * 555 *
554 * @param {number} x X coordinate for cursor. 556 * @param {number} x X coordinate for cursor.
555 * @param {number} y Y coordinate for cursor. 557 * @param {number} y Y coordinate for cursor.
556 * @param {boolean} touch Whether the operation is done by touch or not. 558 * @param {boolean} touch Whether the operation is done by touch or not.
557 * @return {ImageBuffer.DoubleTapAction} Double tap action. 559 * @return {ImageBuffer.DoubleTapAction} Double tap action.
558 */ 560 */
559 DraggableRect.prototype.getDoubleTapAction = function(x, y, touch) { 561 DraggableRect.prototype.getDoubleTapAction = function(x, y, touch) {
560 x = this.viewport_.screenToImageX(x); 562 var clipRect = this.viewport_.getImageBoundsOnScreenClipped();
561 y = this.viewport_.screenToImageY(y);
562
563 var clipRect = this.viewport_.getImageClipped();
564 if (clipRect.inside(x, y)) 563 if (clipRect.inside(x, y))
565 return ImageBuffer.DoubleTapAction.COMMIT; 564 return ImageBuffer.DoubleTapAction.COMMIT;
566 else 565 else
567 return ImageBuffer.DoubleTapAction.NOTHING; 566 return ImageBuffer.DoubleTapAction.NOTHING;
568 }; 567 };
569 568
570 /** 569 /**
571 * Forces the aspect ratio. 570 * Forces the aspect ratio.
572 * 571 *
573 * @param {number} aspectRatio Aspect ratio. 572 * @param {number} aspectRatio Aspect ratio.
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
644 break; 643 break;
645 case 'bottom': 644 case 'bottom':
646 this.bounds_.bottom = this.bounds_.top + newHeight; 645 this.bounds_.bottom = this.bounds_.top + newHeight;
647 break; 646 break;
648 case 'none': 647 case 'none':
649 this.bounds_.top = middle - newHeight / 2; 648 this.bounds_.top = middle - newHeight / 2;
650 this.bounds_.bottom = middle + newHeight / 2; 649 this.bounds_.bottom = middle + newHeight / 2;
651 break; 650 break;
652 } 651 }
653 }; 652 };
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698