Subversion Repositories Kolibri OS

Rev

Rev 7254 | Rev 7257 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 7254 Rev 7255
Line 14... Line 14...
14
#define MEMSIZE 4096*100
14
#define MEMSIZE 4096*100
Line 15... Line 15...
15
 
15
 
16
#include "../lib/gui.h"
16
#include "../lib/gui.h"
17
#include "../lib/random.h"
17
#include "../lib/random.h"
-
 
18
#include "../lib/mem.h"
18
#include "../lib/mem.h"
19
 
-
 
20
#include "../lib/obj/libimg.h"
-
 
21
#include "../lib/obj/box_lib.h"
19
#include "../lib/obj/libimg.h"
22
 
20
#include "../lib/patterns/rgb.h"
23
#include "../lib/patterns/rgb.h"
Line 21... Line 24...
21
#include "../lib/patterns/libimg_load_skin.h"
24
#include "../lib/patterns/libimg_load_skin.h"
Line 26... Line 29...
26
//                                                   //
29
//                                                   //
27
//                       DATA                        //
30
//                       DATA                        //
28
//                                                   //
31
//                                                   //
29
//===================================================//
32
//===================================================//
Line 30... Line 33...
30
 
33
 
Line 31... Line 34...
31
#define T_TITLE "Icon Editor 0.46 Alpha"
34
#define T_TITLE "Icon Editor 0.47 Alpha"
32
 
35
 
33
#define TOOLBAR_H    24+8
36
#define TOOLBAR_H    24+8
34
#define PANEL_LEFT_W 16+5+5+3+3
37
#define PANEL_LEFT_W 16+5+5+3+3
Line 42... Line 45...
42
#define TO_CANVAS_X(xval) xval - canvas.x/zoom.value
45
#define TO_CANVAS_X(xval) xval - canvas.x/zoom.value
43
#define TO_CANVAS_Y(yval) yval - canvas.y/zoom.value
46
#define TO_CANVAS_Y(yval) yval - canvas.y/zoom.value
Line 44... Line 47...
44
 
47
 
45
block canvas = { NULL, NULL, NULL, NULL };
48
block canvas = { NULL, NULL, NULL, NULL };
46
block wrapper = { PANEL_LEFT_W, TOOLBAR_H, NULL, NULL };
49
block wrapper = { PANEL_LEFT_W, TOOLBAR_H, NULL, NULL };
Line 47... Line 50...
47
block right_bar = { NULL, TOOLBAR_H, RIGHT_BAR_W+10, NULL };
50
block right_bar = { NULL, 10+TOOLBAR_H, RIGHT_BAR_W+10, NULL };
48
 
51
 
49
block b_color_gradient = {NULL, 30+TOOLBAR_H, RIGHT_BAR_W, 30};
52
block b_color_gradient = {NULL, 40+TOOLBAR_H, RIGHT_BAR_W, 30};
Line 50... Line 53...
50
block b_last_colors = {NULL, 70+TOOLBAR_H, RIGHT_BAR_W, COLSIZE*2};
53
block b_last_colors = {NULL, 80+TOOLBAR_H, RIGHT_BAR_W, COLSIZE*2};
51
block b_default_palette = {NULL, COLSIZE*2+10+70+TOOLBAR_H, RIGHT_BAR_W, COLSIZE*9};
54
block b_default_palette = {NULL, COLSIZE*2+10+80+TOOLBAR_H, RIGHT_BAR_W, COLSIZE*9};
52
 
55
 
Line 53... Line 56...
53
dword color1 = 0x000000;
56
dword color1 = 0x000000;
54
dword color2 = 0xFFFfff;
57
dword color2 = 0xBFCAD2;
55
dword tool_color;
58
dword tool_color;
Line 77... Line 80...
77
	BTNS_PALETTE_COLOR_MAS = 100,
80
	BTNS_PALETTE_COLOR_MAS = 100,
78
	BTNS_LAST_USED_COLORS = 400
81
	BTNS_LAST_USED_COLORS = 400
79
};
82
};
Line 80... Line 83...
80
 
83
 
-
 
84
proc_info Form;
Line 81... Line 85...
81
proc_info Form;
85
dword semi_white;
Line 82... Line 86...
82
 
86
 
83
more_less_box zoom = { 11, 1, 40, "Zoom" };
87
more_less_box zoom = { 11, 1, 40, "Zoom" };
Line 155... Line 159...
155
{
159
{
156
	word btn;
160
	word btn;
Line 157... Line 161...
157
 
161
 
158
	load_dll(libio,  #libio_init,  1);
162
	load_dll(libio,  #libio_init,  1);
-
 
163
	load_dll(libimg, #libimg_init, 1);
-
 
164
	load_dll(boxlib, #box_lib_init,0);
159
	load_dll(libimg, #libimg_init, 1);
165
 
160
	Libimg_LoadImage(#skin, "/sys/icons16.png");
166
	Libimg_LoadImage(#skin, "/sys/icons16.png");
-
 
167
	system.color.get();
161
	//system.color.get();
168
	semi_white = MixColors(system.color.work, 0xFFFfff, 64);
-
 
169
	Libimg_ReplaceColor(skin.image, skin.w, skin.h, 
Line 162... Line 170...
162
	//Libimg_ReplaceColor(tools_img.image, tools_img.w, tools_img.h, 0xFFF8C0D0, system.color.work);
170
		0xffFFFfff, semi_white);
163
 
171
 
164
	if (!param[0]) {
172
	if (!param[0]) {
165
		image.create(32, 32);
173
		image.create(32, 32);
Line 215... Line 223...
215
			break;
223
			break;
Line 216... Line 224...
216
 
224
 
217
		case evButton:
225
		case evButton:
Line -... Line 226...
-
 
226
			btn = GetButtonID();
-
 
227
 
218
			btn = GetButtonID();
228
			if (zoom.click(btn)) DrawEditArea();
219
 
229
 
220
			switch(btn)
230
			switch(btn)
221
			{
231
			{
222
				case BTN_NEW:
232
				case BTN_NEW:
Line 271... Line 281...
271
					setCurrentTool(TOOL_RECT);
281
					setCurrentTool(TOOL_RECT);
272
					break;
282
					break;
273
				case BTN_SELECT:
283
				case BTN_SELECT:
274
					setCurrentTool(TOOL_SELECT);
284
					setCurrentTool(TOOL_SELECT);
275
					break;
285
					break;
276
				case BTN_ZOOM_IN:
-
 
277
					zoom.inc();
-
 
278
					DrawEditArea();
-
 
279
					break;
-
 
280
				case BTN_ZOOM_OUT:
-
 
281
					zoom.dec();
-
 
282
					DrawEditArea();
-
 
283
					break;
-
 
284
				case CLOSE_BTN:
286
				case CLOSE_BTN:
285
					ExitProcess();
287
					ExitProcess();
286
					break;
288
					break;
287
			}
289
			}
288
			break;
290
			break;
Line 314... Line 316...
314
	}
316
	}
315
}
317
}
Line 316... Line 318...
316
 
318
 
317
void DrawToolbarButton(dword _id, _x, _icon_n)
319
void DrawToolbarButton(dword _id, _x, _icon_n)
318
{
320
{
319
	DrawWideRectangle(_x, 4, 22, 22, 3, 0xFFFfff);
321
	DrawWideRectangle(_x, 4, 22, 22, 3, semi_white);
320
	DefineHiddenButton(_x, 4, 21, 21, _id);
322
	DefineHiddenButton(_x, 4, 21, 21, _id);
321
	img_draw stdcall(skin.image, _x+3, 7, 16, 16, 0, _icon_n*16);
323
	img_draw stdcall(skin.image, _x+3, 7, 16, 16, 0, _icon_n*16);
Line 322... Line 324...
322
}
324
}
323
 
325
 
324
void DrawLeftPanelButton(dword _id, _y, _icon_n)
326
void DrawLeftPanelButton(dword _id, _y, _icon_n)
325
{
327
{
326
	int x = 5;
328
	int x = 5;
327
	DrawWideRectangle(x, _y, 22, 22, 3, 0xFFFfff);
329
	DrawWideRectangle(x, _y, 22, 22, 3, semi_white);
328
	DefineHiddenButton(x, _y, 21, 21, _id);
330
	DefineHiddenButton(x, _y, 21, 21, _id);
Line 329... Line 331...
329
	img_draw stdcall(skin.image, x+3, _y+3, 16, 16, 0, _icon_n*16);
331
	img_draw stdcall(skin.image, x+3, _y+3, 16, 16, 0, _icon_n*16);
Line 347... Line 349...
347
	if (Form.width  < 560) { MoveSize(OLD,OLD,560,OLD); return; }
349
	if (Form.width  < 560) { MoveSize(OLD,OLD,560,OLD); return; }
348
	if (Form.height < 430) { MoveSize(OLD,OLD,OLD,430); return; }
350
	if (Form.height < 430) { MoveSize(OLD,OLD,OLD,430); return; }
Line 349... Line 351...
349
 
351
 
350
	right_bar.x = Form.cwidth - right_bar.w;
352
	right_bar.x = Form.cwidth - right_bar.w;
-
 
353
	b_color_gradient.x = b_last_colors.x = b_default_palette.x = right_bar.x;
Line 351... Line 354...
351
	b_color_gradient.x = b_last_colors.x = b_default_palette.x = right_bar.x;
354
	DrawBar(0, TOOLBAR_H-1, Form.cwidth, 1, system.color.work_graph);
352
 
355
 
353
	tx.n = 10-TB_ICON_PADDING;
356
	tx.n = 5-TB_ICON_PADDING;
354
	DrawToolbarButton(BTN_NEW,    tx.inc(TB_ICON_PADDING), 2); //not implemented
357
	DrawToolbarButton(BTN_NEW,    tx.inc(TB_ICON_PADDING), 2); //not implemented
355
	DrawToolbarButton(BTN_OPEN,   tx.inc(TB_ICON_PADDING), 0); //not implemented
358
	DrawToolbarButton(BTN_OPEN,   tx.inc(TB_ICON_PADDING), 0); //not implemented
356
	DrawToolbarButton(BTN_SAVE,   tx.inc(TB_ICON_PADDING), 5);
359
	DrawToolbarButton(BTN_SAVE,   tx.inc(TB_ICON_PADDING), 5);
Line 375... Line 378...
375
}
378
}
Line 376... Line 379...
376
 
379
 
377
void DrawLeftPanel()
380
void DrawLeftPanel()
378
{
381
{
379
	incn ty;
382
	incn ty;
380
	ty.n = TOOLBAR_H-TB_ICON_PADDING;
383
	ty.n = right_bar.y - TB_ICON_PADDING;
381
	DrawLeftPanelButton(BTN_PENCIL, ty.inc(TB_ICON_PADDING), 38);
384
	DrawLeftPanelButton(BTN_PENCIL, ty.inc(TB_ICON_PADDING), 38);
382
	DrawLeftPanelButton(BTN_PICK,   ty.inc(TB_ICON_PADDING), 39);
385
	DrawLeftPanelButton(BTN_PICK,   ty.inc(TB_ICON_PADDING), 39);
383
	DrawLeftPanelButton(BTN_FILL,   ty.inc(TB_ICON_PADDING), 40);
386
	DrawLeftPanelButton(BTN_FILL,   ty.inc(TB_ICON_PADDING), 40);
384
	DrawLeftPanelButton(BTN_LINE,   ty.inc(TB_ICON_PADDING), 41);
387
	DrawLeftPanelButton(BTN_LINE,   ty.inc(TB_ICON_PADDING), 41);
385
	DrawLeftPanelButton(BTN_RECT,   ty.inc(TB_ICON_PADDING), 42);
388
	DrawLeftPanelButton(BTN_RECT,   ty.inc(TB_ICON_PADDING), 42);
386
	DrawLeftPanelButton(BTN_SELECT,   ty.inc(TB_ICON_PADDING), 43);
389
	DrawLeftPanelButton(BTN_SELECT,   ty.inc(TB_ICON_PADDING), 43);
387
	DrawRectangle3D(5, currentTool*TB_ICON_PADDING+TOOLBAR_H, 16+3+2, 16+3+2, 0x333333, 0x777777);
390
	DrawRectangle3D(5, currentTool*TB_ICON_PADDING+right_bar.y, 16+3+2, 16+3+2, 0x333333, 0x777777);
Line 388... Line 391...
388
}
391
}
389
 
392
 
390
void DrawEditArea()
393
void DrawEditArea()
Line 431... Line 434...
431
	DrawRectangle(canvas.x-1, canvas.y-1, canvas.w+1, canvas.h+1, 0x808080);
434
	DrawRectangle(canvas.x-1, canvas.y-1, canvas.w+1, canvas.h+1, 0x808080);
432
}
435
}
Line 433... Line 436...
433
 
436
 
434
void DrawActiveColor(dword iny)
437
void DrawActiveColor(dword iny)
-
 
438
{
435
{
439
	#define CELL 20
436
	static dword outy;
440
	static dword outy;
-
 
441
	if (iny != NULL) outy = iny;
437
	if (iny != NULL) outy = iny;
442
	DrawFrame(right_bar.x, outy, CELL, CELL, NULL);
438
	DrawBar(right_bar.x, outy, 20, 20, color1);
443
	DrawBar(right_bar.x+2, outy+2, CELL-4, CELL-4, color1);
439
	sprintf(#param, "%A", color1);
444
	sprintf(#param, "%A", color1);
440
	EDI = system.color.work;
445
	EDI = system.color.work;
Line -... Line 446...
-
 
446
	WriteText(right_bar.x + 30, outy + 3, 0xD0, system.color.work_text, #param+4);
441
	WriteText(right_bar.x + 30, outy + 3, 0xD0, system.color.work_text, #param+4);
447
 
442
 
448
	DrawFrame(right_bar.x+110, outy, CELL, CELL, NULL);
443
	DrawBar(right_bar.x+110, outy, 20, 20, color2);
449
	DrawBar(right_bar.x+110+2, outy+2, CELL-4, CELL-4, color2);
444
	sprintf(#param, "%A", color2);
450
	sprintf(#param, "%A", color2);
445
	EDI = system.color.work;
451
	EDI = system.color.work;
446
	WriteText(right_bar.x+110 + 30, outy + 3, 0xD0, system.color.work_text, #param+4);	
452
	WriteText(right_bar.x+110 + 30, outy + 3, 0xD0, system.color.work_text, #param+4);