diff options
author | Nivesh Rajbhandari | 2012-02-14 13:38:56 -0800 |
---|---|---|
committer | Nivesh Rajbhandari | 2012-02-14 13:38:56 -0800 |
commit | d77deb60ade63d8526ce16d0b104285411218e14 (patch) | |
tree | 5c778fb18729be47c8c74c9f76af7123c9df2ab7 | |
parent | 9e43e17a07b60dd6004fb03b1f5c5facc8425b4f (diff) | |
download | ninja-d77deb60ade63d8526ce16d0b104285411218e14.tar.gz |
Get color under mouse point from image or canvas.
Signed-off-by: Nivesh Rajbhandari <mqg734@motorola.com>
-rw-r--r-- | js/data/tools-data.js | 2 | ||||
-rw-r--r-- | js/tools/EyedropperTool.js | 40 |
2 files changed, 34 insertions, 8 deletions
diff --git a/js/data/tools-data.js b/js/data/tools-data.js index de965dbc..f63d14ae 100644 --- a/js/data/tools-data.js +++ b/js/data/tools-data.js | |||
@@ -174,7 +174,7 @@ exports.ToolsData = Montage.create(Montage, { | |||
174 | "spriteSheet": true, | 174 | "spriteSheet": true, |
175 | "action": "EyedropperTool", | 175 | "action": "EyedropperTool", |
176 | "toolTip": "Eyedropper Tool", | 176 | "toolTip": "Eyedropper Tool", |
177 | "cursor": "url('images/tools/eyedropper_down.png'), default", | 177 | "cursor": "url('images/tools/eyedropper_down.png') 6 20, default", |
178 | "lastInGroup": false, | 178 | "lastInGroup": false, |
179 | "container": false, | 179 | "container": false, |
180 | "selected": false | 180 | "selected": false |
diff --git a/js/tools/EyedropperTool.js b/js/tools/EyedropperTool.js index 8301480d..43286122 100644 --- a/js/tools/EyedropperTool.js +++ b/js/tools/EyedropperTool.js | |||
@@ -50,6 +50,13 @@ exports.EyedropperTool = Montage.create(toolBase, { | |||
50 | { | 50 | { |
51 | this._isMouseDown = false; | 51 | this._isMouseDown = false; |
52 | this._escape = false; | 52 | this._escape = false; |
53 | this._elementUnderMouse = null; | ||
54 | if(this._imageDataCanvas) | ||
55 | { | ||
56 | this.application.ninja.stage.element.removeChild(this._imageDataCanvas); | ||
57 | this._imageDataCanvas = null; | ||
58 | this._imageDataContext = null; | ||
59 | } | ||
53 | } | 60 | } |
54 | if(this._isMouseDown) | 61 | if(this._isMouseDown) |
55 | { | 62 | { |
@@ -71,6 +78,14 @@ exports.EyedropperTool = Montage.create(toolBase, { | |||
71 | this._updateColor(this._color); | 78 | this._updateColor(this._color); |
72 | 79 | ||
73 | this._color = null; | 80 | this._color = null; |
81 | |||
82 | this._elementUnderMouse = null; | ||
83 | if(this._imageDataCanvas) | ||
84 | { | ||
85 | this.application.ninja.stage.element.removeChild(this._imageDataCanvas); | ||
86 | this._imageDataCanvas = null; | ||
87 | this._imageDataContext = null; | ||
88 | } | ||
74 | } | 89 | } |
75 | } | 90 | } |
76 | }, | 91 | }, |
@@ -116,8 +131,12 @@ exports.EyedropperTool = Montage.create(toolBase, { | |||
116 | } | 131 | } |
117 | else if (obj.elementModel.type === "CANVAS") | 132 | else if (obj.elementModel.type === "CANVAS") |
118 | { | 133 | { |
119 | this._imageDataCanvas = null; | 134 | if(this._imageDataCanvas) |
120 | this._imageDataContext = null; | 135 | { |
136 | this.application.ninja.stage.element.removeChild(this._imageDataCanvas); | ||
137 | this._imageDataCanvas = null; | ||
138 | this._imageDataContext = null; | ||
139 | } | ||
121 | 140 | ||
122 | var pt = webkitConvertPointFromPageToNode(obj, | 141 | var pt = webkitConvertPointFromPageToNode(obj, |
123 | new WebKitPoint(event.pageX, event.pageY)), | 142 | new WebKitPoint(event.pageX, event.pageY)), |
@@ -131,8 +150,12 @@ exports.EyedropperTool = Montage.create(toolBase, { | |||
131 | } | 150 | } |
132 | else | 151 | else |
133 | { | 152 | { |
134 | this._imageDataCanvas = null; | 153 | if(this._imageDataCanvas) |
135 | this._imageDataContext = null; | 154 | { |
155 | this.application.ninja.stage.element.removeChild(this._imageDataCanvas); | ||
156 | this._imageDataCanvas = null; | ||
157 | this._imageDataContext = null; | ||
158 | } | ||
136 | 159 | ||
137 | // TODO - figure out if user clicked on a border - for now, just get fill | 160 | // TODO - figure out if user clicked on a border - for now, just get fill |
138 | c = ElementsMediator.getColor(obj, this._isOverBackground(obj, event)); | 161 | c = ElementsMediator.getColor(obj, this._isOverBackground(obj, event)); |
@@ -157,8 +180,12 @@ exports.EyedropperTool = Montage.create(toolBase, { | |||
157 | else | 180 | else |
158 | { | 181 | { |
159 | this._elementUnderMouse = null; | 182 | this._elementUnderMouse = null; |
160 | this._imageDataCanvas = null; | 183 | if(this._imageDataCanvas) |
161 | this._imageDataContext = null; | 184 | { |
185 | this.application.ninja.stage.element.removeChild(this._imageDataCanvas); | ||
186 | this._imageDataCanvas = null; | ||
187 | this._imageDataContext = null; | ||
188 | } | ||
162 | } | 189 | } |
163 | 190 | ||
164 | } | 191 | } |
@@ -264,7 +291,6 @@ exports.EyedropperTool = Montage.create(toolBase, { | |||
264 | this.application.ninja.stage.element.appendChild(this._imageDataCanvas); | 291 | this.application.ninja.stage.element.appendChild(this._imageDataCanvas); |
265 | 292 | ||
266 | this._imageDataContext = this._imageDataCanvas.getContext("2d"); | 293 | this._imageDataContext = this._imageDataCanvas.getContext("2d"); |
267 | // this._imageDataContext.drawImage(elt, eltCoords[0], eltCoords[1]); | ||
268 | this._imageDataContext.drawImage(elt, 0, 0); | 294 | this._imageDataContext.drawImage(elt, 0, 0); |
269 | } | 295 | } |
270 | 296 | ||