@@ -20,29 +20,31 @@ croquis.setToolStabilizeWeight(0.5);
20
20
var croquisDOMElement = croquis . getDOMElement ( ) ;
21
21
var canvasArea = document . getElementById ( 'canvas-area' ) ;
22
22
canvasArea . appendChild ( croquisDOMElement ) ;
23
- function canvasMouseDown ( e ) {
24
- var mousePosition = getRelativePosition ( e . clientX , e . clientY ) ;
25
- canvasArea . style . setProperty ( 'cursor' , 'none' ) ;
26
- croquis . down ( mousePosition . x , mousePosition . y ) ;
27
- document . addEventListener ( 'mousemove' , canvasMouseMove ) ;
28
- document . addEventListener ( 'mouseup' , canvasMouseUp ) ;
23
+ function canvasPointerDown ( e ) {
24
+ var pointerPosition = getRelativePosition ( e . clientX , e . clientY ) ;
25
+ if ( IEVersion > 10 )
26
+ canvasArea . style . setProperty ( 'cursor' , 'none' ) ;
27
+ croquis . down ( pointerPosition . x , pointerPosition . y , e . pointerType == "pen" ? e . pressure : null ) ;
28
+ document . addEventListener ( 'pointermove' , canvasPointerMove ) ;
29
+ document . addEventListener ( 'pointerup' , canvasPointerUp ) ;
29
30
}
30
- function canvasMouseMove ( e ) {
31
- var mousePosition = getRelativePosition ( e . clientX , e . clientY ) ;
32
- croquis . move ( mousePosition . x , mousePosition . y ) ;
31
+ function canvasPointerMove ( e ) {
32
+ var pointerPosition = getRelativePosition ( e . clientX , e . clientY ) ;
33
+ croquis . move ( pointerPosition . x , pointerPosition . y , e . pointerType == "pen" ? e . pressure : null ) ;
33
34
}
34
- function canvasMouseUp ( e ) {
35
- var mousePosition = getRelativePosition ( e . clientX , e . clientY ) ;
36
- canvasArea . style . setProperty ( 'cursor' , 'crosshair' ) ;
37
- croquis . up ( mousePosition . x , mousePosition . y ) ;
38
- document . removeEventListener ( 'mousemove' , canvasMouseMove ) ;
39
- document . removeEventListener ( 'mouseup' , canvasMouseUp ) ;
35
+ function canvasPointerUp ( e ) {
36
+ var pointerPosition = getRelativePosition ( e . clientX , e . clientY ) ;
37
+ if ( IEVersion > 10 )
38
+ canvasArea . style . setProperty ( 'cursor' , 'crosshair' ) ;
39
+ croquis . up ( pointerPosition . x , pointerPosition . y , e . pointerType == "pen" ? e . pressure : null ) ;
40
+ document . removeEventListener ( 'pointermove' , canvasPointerMove ) ;
41
+ document . removeEventListener ( 'pointerup' , canvasPointerUp ) ;
40
42
}
41
43
function getRelativePosition ( absoluteX , absoluteY ) {
42
44
var rect = croquisDOMElement . getBoundingClientRect ( ) ;
43
45
return { x : absoluteX - rect . left , y : absoluteY - rect . top } ;
44
46
}
45
- croquisDOMElement . addEventListener ( 'mousedown ' , canvasMouseDown ) ;
47
+ croquisDOMElement . addEventListener ( 'pointerdown ' , canvasPointerDown ) ;
46
48
47
49
//clear & fill button ui
48
50
var clearButton = document . getElementById ( 'clear-button' ) ;
@@ -62,10 +64,10 @@ var brushImages = document.getElementsByClassName('brush-image');
62
64
var currentBrush = circleBrush ;
63
65
64
66
Array . prototype . map . call ( brushImages , function ( brush ) {
65
- brush . addEventListener ( 'mousedown ' , brushImageMouseDown ) ;
67
+ brush . addEventListener ( 'pointerdown ' , brushImagePointerDown ) ;
66
68
} ) ;
67
69
68
- function brushImageMouseDown ( e ) {
70
+ function brushImagePointerDown ( e ) {
69
71
var image = e . currentTarget ;
70
72
currentBrush . className = 'brush-image' ;
71
73
image . className = 'brush-image on' ;
@@ -89,50 +91,58 @@ var brushPointerContainer = document.createElement('div');
89
91
brushPointerContainer . className = 'brush-pointer' ;
90
92
91
93
if ( IEVersion > 10 ) {
92
- croquisDOMElement . addEventListener ( 'mouseover ' , function ( ) {
93
- croquisDOMElement . addEventListener ( 'mousemove ' , croquisMouseMove ) ;
94
+ croquisDOMElement . addEventListener ( 'pointerover ' , function ( ) {
95
+ croquisDOMElement . addEventListener ( 'pointermove ' , croquisPointerMove ) ;
94
96
document . body . appendChild ( brushPointerContainer ) ;
95
97
} ) ;
96
- croquisDOMElement . addEventListener ( 'mouseout ' , function ( ) {
97
- croquisDOMElement . removeEventListener ( 'mousemove ' , croquisMouseMove ) ;
98
+ croquisDOMElement . addEventListener ( 'pointerout ' , function ( ) {
99
+ croquisDOMElement . removeEventListener ( 'pointermove ' , croquisPointerMove ) ;
98
100
brushPointerContainer . parentElement . removeChild ( brushPointerContainer ) ;
99
101
} ) ;
100
102
}
101
103
102
- function croquisMouseMove ( e ) {
103
- var x = e . clientX + window . pageXOffset ;
104
- var y = e . clientY + window . pageYOffset ;
105
- brushPointerContainer . style . setProperty ( 'left' , x + 'px' ) ;
106
- brushPointerContainer . style . setProperty ( 'top' , y + 'px' ) ;
104
+ function croquisPointerMove ( e ) {
105
+ if ( IEVersion > 10 ) {
106
+ var x = e . clientX + window . pageXOffset ;
107
+ var y = e . clientY + window . pageYOffset ;
108
+ brushPointerContainer . style . setProperty ( 'left' , x + 'px' ) ;
109
+ brushPointerContainer . style . setProperty ( 'top' , y + 'px' ) ;
110
+ }
107
111
}
108
112
109
113
function updatePointer ( ) {
110
- var image = currentBrush ;
111
- var threshold ;
112
- if ( currentBrush == circleBrush ) {
113
- image = null ;
114
- threshold = 0xff ;
115
- }
116
- else {
117
- threshold = 0x30 ;
114
+ if ( IEVersion > 10 ) {
115
+ var image = currentBrush ;
116
+ var threshold ;
117
+ if ( currentBrush == circleBrush ) {
118
+ image = null ;
119
+ threshold = 0xff ;
120
+ }
121
+ else {
122
+ threshold = 0x30 ;
123
+ }
124
+ var brushPointer = Croquis . createBrushPointer (
125
+ image , brush . getSize ( ) , threshold , true ) ;
126
+ brushPointer . style . setProperty ( 'margin-left' ,
127
+ '-' + ( brushPointer . width * 0.5 ) + 'px' ) ;
128
+ brushPointer . style . setProperty ( 'margin-top' ,
129
+ '-' + ( brushPointer . height * 0.5 ) + 'px' ) ;
130
+ brushPointerContainer . innerHTML = '' ;
131
+ brushPointerContainer . appendChild ( brushPointer ) ;
118
132
}
119
- var brushPointer = Croquis . createBrushPointer (
120
- image , brush . getSize ( ) , threshold , true ) ;
121
- brushPointer . style . setProperty ( 'margin-left' ,
122
- '-' + ( brushPointer . width * 0.5 ) + 'px' ) ;
123
- brushPointer . style . setProperty ( 'margin-top' ,
124
- '-' + ( brushPointer . height * 0.5 ) + 'px' ) ;
125
- brushPointerContainer . innerHTML = '' ;
126
- brushPointerContainer . appendChild ( brushPointer ) ;
127
133
}
128
134
updatePointer ( ) ;
129
135
130
136
//color picker
131
137
var colorPickerHueSlider =
132
138
document . getElementById ( 'color-picker-hue-slider' ) ;
133
139
var colorPickerSb = document . getElementById ( 'color-picker-sb' ) ;
134
- var colorPickerSaturate = document . getElementById ( 'color-picker-saturate' ) ;
135
- var colorPickerThumb = document . getElementById ( 'color-picker-thumb' ) ;
140
+ var colorPickerHSBRect = new HSBRect ( 150 , 150 ) ;
141
+ colorPickerHSBRect . DOMElement . id = 'color-picker-hsbrect' ;
142
+ colorPickerSb . appendChild ( colorPickerHSBRect . DOMElement ) ;
143
+ var colorPickerThumb = document . createElement ( 'div' ) ;
144
+ colorPickerThumb . id = 'color-picker-thumb' ;
145
+ colorPickerSb . appendChild ( colorPickerThumb ) ;
136
146
colorPickerHueSlider . value = tinycolor ( brush . getColor ( ) ) . toHsv ( ) . h ;
137
147
138
148
function setColor ( ) {
@@ -153,21 +163,18 @@ function setColor() {
153
163
}
154
164
155
165
colorPickerHueSlider . onchange = function ( ) {
156
- var hue = colorPickerHueSlider . value ;
157
- colorPickerSaturate . style . setProperty ( 'background-image' ,
158
- 'linear-gradient(to right, hsla(' +
159
- hue + ', 100%, 50%, 0), hsl(' + hue + ', 100%, 50%))' ) ;
166
+ colorPickerHSBRect . hue = colorPickerHueSlider . value ;
160
167
setColor ( ) ;
161
168
}
162
169
163
- function colorPickerMouseDown ( e ) {
164
- document . addEventListener ( 'mousemove ' , colorPickerMouseMove ) ;
165
- colorPickerMouseMove ( e ) ;
170
+ function colorPickerPointerDown ( e ) {
171
+ document . addEventListener ( 'pointermove ' , colorPickerPointerMove ) ;
172
+ colorPickerPointerMove ( e ) ;
166
173
}
167
- function colorPickerMouseUp ( e ) {
168
- document . removeEventListener ( 'mousemove ' , colorPickerMouseMove ) ;
174
+ function colorPickerPointerUp ( e ) {
175
+ document . removeEventListener ( 'pointermove ' , colorPickerPointerMove ) ;
169
176
}
170
- function colorPickerMouseMove ( e ) {
177
+ function colorPickerPointerMove ( e ) {
171
178
var boundRect = colorPickerSb . getBoundingClientRect ( ) ;
172
179
var x = ( e . clientX - boundRect . left ) ;
173
180
var y = ( e . clientY - boundRect . top ) ;
@@ -187,8 +194,8 @@ function pickColor(x, y) {
187
194
( y < sbSize * 0.5 ) ? '#000' : '#fff' ) ;
188
195
setColor ( ) ;
189
196
}
190
- colorPickerSb . addEventListener ( 'mousedown ' , colorPickerMouseDown ) ;
191
- document . addEventListener ( 'mouseup ' , colorPickerMouseUp ) ;
197
+ colorPickerSb . addEventListener ( 'pointerdown ' , colorPickerPointerDown ) ;
198
+ document . addEventListener ( 'pointerup ' , colorPickerPointerUp ) ;
192
199
193
200
var backgroundCheckerImage ;
194
201
( function ( ) {
0 commit comments