Rev 7204 | Rev 7207 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 7204 | Rev 7206 | ||
---|---|---|---|
Line 26... | Line 26... | ||
26 | // // |
26 | // // |
27 | // DATA // |
27 | // DATA // |
28 | // // |
28 | // // |
29 | //===================================================// |
29 | //===================================================// |
Line 30... | Line 30... | ||
30 | 30 | ||
Line 31... | Line 31... | ||
31 | #define T_TITLE "Icon Editor 0.37" |
31 | #define T_TITLE "Icon Editor 0.38" |
32 | 32 | ||
33 | #define TOOLBAR_H 24+8 |
33 | #define TOOLBAR_H 24+8 |
34 | #define PANEL_LEFT_W 16+5+5+3+3 |
34 | #define PANEL_LEFT_W 16+5+5+3+3 |
Line 260... | Line 260... | ||
260 | figTool_States[currentFigToolState].startY = -1; |
260 | figTool_States[currentFigToolState].startY = -1; |
261 | figTool_States[currentFigToolState].lastTempPosX = -1; |
261 | figTool_States[currentFigToolState].lastTempPosX = -1; |
262 | figTool_States[currentFigToolState].lastTempPosY = -1; |
262 | figTool_States[currentFigToolState].lastTempPosY = -1; |
263 | } |
263 | } |
Line -... | Line 264... | ||
- | 264 | ||
- | 265 | int mouseX_last; |
|
- | 266 | int mouseY_last; |
|
- | 267 | bool first_click_in_canvas = false; |
|
264 | 268 | ||
- | 269 | void SimpleFigureTool_onMouseEvent(int mouseX, int mouseY, int lkm, int pkm) { |
|
265 | void SimpleFigureTool_onMouseEvent(int mouseX, int mouseY, int lkm, int pkm) { |
270 | if (mouse.down) && (canvas.hovered()) first_click_in_canvas = true; |
266 | if (canvas.hovered()) |
271 | if (first_click_in_canvas) |
- | 272 | { |
|
- | 273 | if (mouseX>canvas.x+canvas.w-zoom.value) mouseX = canvas.x+canvas.w-zoom.value; |
|
- | 274 | if (mouseY>canvas.y+canvas.h-zoom.value) mouseY = canvas.y+canvas.h-zoom.value; |
|
- | 275 | if (mouseX |
|
- | 276 | if (mouseY |
|
267 | { |
277 | |
268 | if (lkm) { |
278 | if (mouse.lkm) { |
269 | if ((figTool_States[currentFigToolState].startX < 0) || (figTool_States[currentFigToolState].startY < 0)) { |
279 | if ((figTool_States[currentFigToolState].startX < 0) || (figTool_States[currentFigToolState].startY < 0)) { |
270 | figTool_States[currentFigToolState].startX = mouseX; |
280 | figTool_States[currentFigToolState].startX = mouseX; |
271 | figTool_States[currentFigToolState].startY = mouseY; |
281 | figTool_States[currentFigToolState].startY = mouseY; |
272 | } |
282 | } |
Line 275... | Line 285... | ||
275 | || (calc(mouseY - canvas.y/zoom.value) != figTool_States[currentFigToolState].lastTempPosY)) |
285 | || (calc(mouseY - canvas.y/zoom.value) != figTool_States[currentFigToolState].lastTempPosY)) |
276 | { |
286 | { |
277 | DrawCanvas(); |
287 | DrawCanvas(); |
278 | } |
288 | } |
279 | } |
289 | } |
- | 290 | mouseX_last = mouseX; |
|
- | 291 | mouseY_last = mouseY; |
|
280 | } |
292 | } |
281 | else { |
293 | if (mouse.up) { |
282 | if ((figTool_States[currentFigToolState].startX >= 0) && (figTool_States[currentFigToolState].startY >= 0)) { |
294 | if ((figTool_States[currentFigToolState].startX >= 0) && (figTool_States[currentFigToolState].startY >= 0)) { |
283 | // Draw line from start position to current position |
295 | // Draw line from start position to current position |
284 | if (currentTool == TOOL_LINE) { |
296 | if (currentTool == TOOL_LINE) { |
285 | DrawLine(figTool_States[currentFigToolState].startX - canvas.x/zoom.value, |
297 | DrawLine(figTool_States[currentFigToolState].startX - canvas.x/zoom.value, |
286 | figTool_States[currentFigToolState].startY - canvas.y/zoom.value, |
298 | figTool_States[currentFigToolState].startY - canvas.y/zoom.value, |
Line 301... | Line 313... | ||
301 | actionsHistory.saveCurrentState(); |
313 | actionsHistory.saveCurrentState(); |
Line 302... | Line 314... | ||
302 | 314 | ||
303 | // Reset start position |
315 | // Reset start position |
304 | figTool_States[currentFigToolState].startX = -1; |
316 | figTool_States[currentFigToolState].startX = -1; |
- | 317 | figTool_States[currentFigToolState].startY = -1; |
|
- | 318 | ||
305 | figTool_States[currentFigToolState].startY = -1; |
319 | first_click_in_canvas = false; |
306 | } |
320 | } |
307 | } |
321 | } |
308 | } |
322 | } |
Line 309... | Line 323... | ||
309 | } |
323 | } |
310 | 324 | ||
311 | void SimpleFigureTool_onCanvasDraw() { |
325 | void SimpleFigureTool_onCanvasDraw() { |
312 | if ((figTool_States[currentFigToolState].startX >= 0) && (figTool_States[currentFigToolState].startY >= 0) && (mouse.lkm)) { |
326 | if ((figTool_States[currentFigToolState].startX >= 0) && (figTool_States[currentFigToolState].startY >= 0) && (mouse.lkm)) { |
313 | if (currentTool == TOOL_LINE) { |
327 | if (currentTool == TOOL_LINE) { |
314 | DrawLine(figTool_States[currentFigToolState].startX - canvas.x/zoom.value, |
328 | DrawLine(figTool_States[currentFigToolState].startX - canvas.x/zoom.value, |
315 | figTool_States[currentFigToolState].startY - canvas.y/zoom.value, |
329 | figTool_States[currentFigToolState].startY - canvas.y/zoom.value, |
316 | mouse.x - canvas.x/zoom.value, |
330 | mouseX_last - canvas.x/zoom.value, |
317 | mouse.y - canvas.y/zoom.value, |
331 | mouseY_last - canvas.y/zoom.value, |
318 | active_color_1, |
332 | active_color_1, |
319 | 2); |
333 | 2); |
320 | } |
334 | } |
321 | else if (currentTool == TOOL_RECT) { |
335 | else if (currentTool == TOOL_RECT) { |
322 | DrawRectangleInCanvas(figTool_States[currentFigToolState].startX - canvas.x/zoom.value, |
336 | DrawRectangleInCanvas(figTool_States[currentFigToolState].startX - canvas.x/zoom.value, |
323 | figTool_States[currentFigToolState].startY - canvas.y/zoom.value, |
337 | figTool_States[currentFigToolState].startY - canvas.y/zoom.value, |
- | 338 | mouseX_last - canvas.x/zoom.value, |
|
- | 339 | mouseY_last - canvas.y/zoom.value, |
|
324 | mouse.x - canvas.x/zoom.value, |
340 | active_color_1, |
Line 325... | Line 341... | ||
325 | mouse.y - canvas.y/zoom.value, active_color_1, 2); |
341 | 2); |
326 | } |
342 | } |
327 | 343 | ||
328 | figTool_States[currentFigToolState].lastTempPosX = mouse.x - canvas.x/zoom.value; |
344 | figTool_States[currentFigToolState].lastTempPosX = mouseX_last - canvas.x/zoom.value; |
Line 329... | Line 345... | ||
329 | figTool_States[currentFigToolState].lastTempPosY = mouse.y - canvas.y/zoom.value; |
345 | figTool_States[currentFigToolState].lastTempPosY = mouseY_last - canvas.y/zoom.value; |
330 | } |
346 | } |
Line 787... | Line 803... | ||
787 | 803 | ||
788 | // target - image (1) or canvas (2) |
804 | // target - image (1) or canvas (2) |
789 | void DrawLine(int x1, int y1, int x2, int y2, dword color, int target) { |
805 | void DrawLine(int x1, int y1, int x2, int y2, dword color, int target) { |
Line 790... | Line -... | ||
790 | int dx, dy, signX, signY, error, error2; |
- | |
791 | - | ||
792 | // debugval("Draw line", x1); |
- | |
793 | // debugval("Draw line", y1); |
- | |
794 | - | ||
795 | // debugval("Draw line", x2); |
- | |
796 | // debugval("Draw line", y2); |
806 | int dx, dy, signX, signY, error, error2; |
Line 797... | Line 807... | ||
797 | // debugln("==="); |
807 | |
798 | dx = x2 - x1; |
808 | dx = x2 - x1; |