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); |