Subversion Repositories Kolibri OS

Rev

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;