|
1 | 1 | import { extend } from 'tui-code-snippet'; |
2 | 2 | import Imagetracer from '@/helper/imagetracer'; |
3 | 3 | import { isSupportFileApi, base64ToBlob, toInteger, isEmptyCropzone } from '@/util'; |
4 | | -import { eventNames, historyNames } from '@/consts'; |
| 4 | +import { eventNames, historyNames, drawingModes, drawingMenuNames, zoomModes } from '@/consts'; |
5 | 5 |
|
6 | 6 | export default { |
7 | 7 | /** |
@@ -53,6 +53,28 @@ export default { |
53 | 53 |
|
54 | 54 | return result; |
55 | 55 | }; |
| 56 | + const toggleZoomMode = () => { |
| 57 | + const zoomMode = this._graphics.getZoomMode(); |
| 58 | + |
| 59 | + this.stopDrawingMode(); |
| 60 | + if (zoomMode !== zoomModes.ZOOM) { |
| 61 | + this.startDrawingMode(drawingModes.ZOOM); |
| 62 | + this._graphics.startZoomInMode(); |
| 63 | + } else { |
| 64 | + this._graphics.endZoomInMode(); |
| 65 | + } |
| 66 | + }; |
| 67 | + const toggleHandMode = () => { |
| 68 | + const zoomMode = this._graphics.getZoomMode(); |
| 69 | + |
| 70 | + this.stopDrawingMode(); |
| 71 | + if (zoomMode !== zoomModes.HAND) { |
| 72 | + this.startDrawingMode(drawingModes.ZOOM); |
| 73 | + this._graphics.startHandMode(); |
| 74 | + } else { |
| 75 | + this._graphics.endHandMode(); |
| 76 | + } |
| 77 | + }; |
56 | 78 |
|
57 | 79 | return extend( |
58 | 80 | { |
@@ -136,6 +158,20 @@ export default { |
136 | 158 | history: (event) => { |
137 | 159 | this.ui.toggleHistoryMenu(event); |
138 | 160 | }, |
| 161 | + zoomIn: () => { |
| 162 | + this.ui.toggleZoomButtonStatus('zoomIn'); |
| 163 | + this.deactivateAll(); |
| 164 | + toggleZoomMode(); |
| 165 | + }, |
| 166 | + zoomOut: () => { |
| 167 | + this._graphics.zoomOut(); |
| 168 | + }, |
| 169 | + hand: () => { |
| 170 | + this.ui.offZoomInButtonStatus(); |
| 171 | + this.ui.toggleZoomButtonStatus('hand'); |
| 172 | + this.deactivateAll(); |
| 173 | + toggleHandMode(); |
| 174 | + }, |
139 | 175 | }, |
140 | 176 | this._commonAction() |
141 | 177 | ); |
@@ -523,19 +559,24 @@ export default { |
523 | 559 | * @private |
524 | 560 | */ |
525 | 561 | _commonAction() { |
| 562 | + const { TEXT, CROPPER, SHAPE, ZOOM } = drawingModes; |
| 563 | + |
526 | 564 | return { |
527 | 565 | modeChange: (menu) => { |
528 | 566 | switch (menu) { |
529 | | - case 'text': |
530 | | - this._changeActivateMode('TEXT'); |
| 567 | + case drawingMenuNames.TEXT: |
| 568 | + this._changeActivateMode(TEXT); |
531 | 569 | break; |
532 | | - case 'crop': |
533 | | - this.startDrawingMode('CROPPER'); |
| 570 | + case drawingMenuNames.CROP: |
| 571 | + this.startDrawingMode(CROPPER); |
534 | 572 | break; |
535 | | - case 'shape': |
536 | | - this._changeActivateMode('SHAPE'); |
| 573 | + case drawingMenuNames.SHAPE: |
| 574 | + this._changeActivateMode(SHAPE); |
537 | 575 | this.setDrawingShape(this.ui.shape.type, this.ui.shape.options); |
538 | 576 | break; |
| 577 | + case drawingMenuNames.ZOOM: |
| 578 | + this.startDrawingMode(ZOOM); |
| 579 | + break; |
539 | 580 | default: |
540 | 581 | break; |
541 | 582 | } |
|
0 commit comments