Rev 9439 | Rev 9594 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
9428 | leency | 1 | #define MEMSIZE 1024*20 |
9426 | leency | 2 | #define ENTRY_POINT #main |
3 | |||
4 | #include "../lib/fs.h" |
||
5 | #include "../lib/mem.h" |
||
6 | #include "../lib/obj/libimg.h" |
||
7 | #include "../lib/patterns/rgb.h" |
||
8 | |||
9455 | leency | 9 | :unsigned char checkbox_flag[507] = { |
10 | 0xFC, 0xD4, 0x04, 0xFC, 0xD4, 0x04, 0xFC, 0xD4, 0x04, 0xFC, 0xD4, 0x04, 0xFC, 0xD4, 0x04, 0xFC, |
||
11 | 0xD4, 0x04, 0xFC, 0xD4, 0x04, 0xFC, 0xD4, 0x04, 0xFC, 0xD4, 0x04, 0xFC, 0xD4, 0x04, 0xFC, 0xD4, |
||
12 | 0x04, 0xFC, 0xD4, 0x04, 0xFC, 0xC8, 0x04, 0xFC, 0xDC, 0x04, 0xFC, 0xC8, 0x04, 0xFC, 0xC8, 0x04, |
||
13 | 0xFC, 0xC8, 0x04, 0xFC, 0xC8, 0x04, 0xFC, 0xC8, 0x04, 0xFC, 0xC8, 0x04, 0xFC, 0xC8, 0x04, 0xFC, |
||
14 | 0xC8, 0x04, 0xFC, 0xC8, 0x04, 0xFC, 0xC8, 0x04, 0xFC, 0xC8, 0x04, 0xFC, 0xB4, 0x04, 0xFC, 0xDC, |
||
15 | 0x04, 0xFC, 0xC8, 0x04, 0xFC, 0xC8, 0x04, 0xFC, 0xC8, 0x04, 0xFC, 0xC8, 0x04, 0xFC, 0xBC, 0x04, |
||
16 | 0xFC, 0xBC, 0x04, 0xFC, 0xBC, 0x04, 0xFC, 0xB4, 0x04, 0xFC, 0xA9, 0x04, 0xFC, 0xA9, 0x04, 0xFC, |
||
17 | 0xB4, 0x04, 0xFC, 0xB4, 0x04, 0xFC, 0xD4, 0x04, 0xFC, 0xC8, 0x04, 0xFC, 0xC8, 0x04, 0xFC, 0xC8, |
||
18 | 0x04, 0xFC, 0xBC, 0x04, 0xFC, 0xBC, 0x04, 0xFC, 0xB4, 0x04, 0xFC, 0xB4, 0x04, 0xF9, 0x98, 0x04, |
||
19 | 0xFC, 0xF2, 0xD2, 0xFC, 0xF2, 0xD2, 0xFA, 0xA5, 0x04, 0xFC, 0xB4, 0x04, 0xFC, 0xD4, 0x04, 0xFC, |
||
20 | 0xB4, 0x04, 0xFC, 0xA9, 0x04, 0xFC, 0xA9, 0x04, 0xFC, 0xB4, 0x04, 0xFC, 0xB4, 0x04, 0xFC, 0xB4, |
||
21 | 0x04, 0xF9, 0x98, 0x04, 0xFF, 0xFF, 0xFF, 0xFD, 0xFD, 0xF6, 0xFC, 0xF9, 0xAF, 0xF9, 0x98, 0x04, |
||
22 | 0xFC, 0xB4, 0x04, 0xFC, 0xD4, 0x04, 0xFC, 0xA9, 0x04, 0xFC, 0xF2, 0xD2, 0xFC, 0xF2, 0xD2, 0xF9, |
||
23 | 0x98, 0x04, 0xFC, 0xB4, 0x04, 0xF9, 0x98, 0x04, 0xFF, 0xFF, 0xFF, 0xFD, 0xFD, 0xF6, 0xF7, 0xE0, |
||
24 | 0x95, 0xBC, 0x64, 0x04, 0xF9, 0x98, 0x04, 0xFC, 0xA9, 0x04, 0xFC, 0xD4, 0x04, 0xF9, 0x98, 0x04, |
||
25 | 0xFD, 0xFD, 0xF6, 0xFF, 0xFF, 0xFF, 0xFC, 0xDC, 0x2C, 0xF9, 0x98, 0x04, 0xFF, 0xFF, 0xFF, 0xFD, |
||
26 | 0xFD, 0xF6, 0xF7, 0xE0, 0x95, 0xBC, 0x64, 0x04, 0xF9, 0x98, 0x04, 0xFA, 0x9F, 0x04, 0xFC, 0xA9, |
||
27 | 0x04, 0xFC, 0xD4, 0x04, 0xF9, 0x98, 0x04, 0xF7, 0xE0, 0x95, 0xFD, 0xFD, 0xF6, 0xFF, 0xFF, 0xFF, |
||
28 | 0xFF, 0xFF, 0xFF, 0xFD, 0xFD, 0xF6, 0xF7, 0xE0, 0x95, 0xBC, 0x64, 0x04, 0xF9, 0x98, 0x04, 0xFA, |
||
29 | 0x9F, 0x04, 0xFC, 0xA9, 0x04, 0xFC, 0xA9, 0x04, 0xFC, 0xD4, 0x04, 0xF9, 0x98, 0x04, 0xBC, 0x64, |
||
30 | 0x04, 0xF7, 0xE0, 0x95, 0xFD, 0xFD, 0xF6, 0xFD, 0xFD, 0xF6, 0xF7, 0xE0, 0x95, 0xBC, 0x64, 0x04, |
||
31 | 0xF9, 0x98, 0x04, 0xFA, 0x9F, 0x04, 0xFC, 0xA9, 0x04, 0xFC, 0xA9, 0x04, 0xFC, 0xA9, 0x04, 0xFC, |
||
32 | 0xC8, 0x04, 0xFA, 0xA5, 0x04, 0xF9, 0x98, 0x04, 0xBC, 0x64, 0x04, 0xF7, 0xE0, 0x95, 0xF7, 0xE0, |
||
33 | 0x95, 0xBC, 0x64, 0x04, 0xF9, 0x98, 0x04, 0xFA, 0x9F, 0x04, 0xFC, 0xA9, 0x04, 0xFC, 0xA9, 0x04, |
||
34 | 0xFC, 0xA9, 0x04, 0xFA, 0x9F, 0x04, 0xFC, 0xC8, 0x04, 0xFC, 0xA9, 0x04, 0xFA, 0x9F, 0x04, 0xF9, |
||
35 | 0x98, 0x04, 0xBC, 0x64, 0x04, 0xBC, 0x64, 0x04, 0xF9, 0x98, 0x04, 0xFA, 0x9F, 0x04, 0xFC, 0xA9, |
||
36 | 0x04, 0xFC, 0xA9, 0x04, 0xFC, 0xA9, 0x04, 0xFA, 0x9F, 0x04, 0xFA, 0x9F, 0x04, 0xFC, 0xC8, 0x04, |
||
37 | 0xFC, 0xA9, 0x04, 0xFC, 0xA9, 0x04, 0xFA, 0x9F, 0x04, 0xF9, 0x98, 0x04, 0xF9, 0x98, 0x04, 0xFA, |
||
38 | 0x9F, 0x04, 0xFC, 0xA9, 0x04, 0xFC, 0xA9, 0x04, 0xFC, 0xA9, 0x04, 0xFA, 0x9F, 0x04, 0xFA, 0x9F, |
||
39 | 0x04, 0xF9, 0x98, 0x04, 0xFC, 0xB4, 0x04, 0xF9, 0x98, 0x04, 0xF9, 0x98, 0x04, 0xF9, 0x98, 0x04, |
||
40 | 0xF9, 0x98, 0x04, 0xF9, 0x98, 0x04, 0xF9, 0x98, 0x04, 0xF9, 0x98, 0x04, 0xF9, 0x98, 0x04, 0xF9, |
||
41 | 0x98, 0x04, 0xF9, 0x98, 0x04, 0xF9, 0x98, 0x04, 0xF9, 0x98, 0x04 |
||
42 | }; |
||
43 | |||
9426 | leency | 44 | void main() |
45 | { |
||
46 | libimg_image icons32; |
||
47 | libimg_image icons16; |
||
48 | libimg_image icons16w; |
||
49 | unsigned int size32; |
||
50 | unsigned int size16; |
||
51 | char* shared_i32; |
||
52 | char* shared_i16; |
||
53 | char* shared_i16w; |
||
9455 | leency | 54 | char* shared_chbox; |
9426 | leency | 55 | |
56 | mem_init(); |
||
57 | load_dll(libimg, #libimg_init, 1); |
||
58 | @SetEventMask(EVM_DESKTOPBG); |
||
59 | |||
9455 | leency | 60 | shared_chbox = memopen("CHECKBOX", sizeof(checkbox_flag), SHM_CREATE+SHM_WRITE); |
61 | memmov(shared_chbox, #checkbox_flag, sizeof(checkbox_flag)); |
||
62 | |||
9426 | leency | 63 | icons32.load("/sys/icons32.png"); size32 = icons32.h * 32 * 4; |
64 | icons16.load("/sys/icons16.png"); size16 = icons16.h * 18 * 4; |
||
65 | |||
66 | shared_i32 = memopen("ICONS32", size32, SHM_CREATE+SHM_WRITE); |
||
67 | memmov(shared_i32, icons32.imgsrc, size32); |
||
9428 | leency | 68 | img_destroy stdcall(icons32.image); |
9426 | leency | 69 | |
70 | shared_i16 = memopen("ICONS18", size16, SHM_CREATE + SHM_WRITE); |
||
71 | memmov(shared_i16, icons16.imgsrc, size16); |
||
9428 | leency | 72 | img_destroy stdcall(icons16.image); |
9426 | leency | 73 | |
74 | shared_i16w = memopen("ICONS18W", size16, SHM_CREATE + SHM_WRITE); |
||
75 | |||
76 | UPDATE_ICONS18WORK: |
||
77 | $push sc.work |
||
78 | sc.get(); |
||
79 | $pop eax |
||
9439 | leency | 80 | if (sc.work != EAX) { |
9426 | leency | 81 | icons16w.load("/sys/icons16.png"); |
82 | icons16w.replace_2colors(0xffFFFfff, sc.work, 0xffCACBD6, MixColors(sc.work, 0, 200)); |
||
83 | memmov(shared_i16w, icons16w.imgsrc, size16); |
||
9428 | leency | 84 | img_destroy stdcall(icons16w.image); |
9439 | leency | 85 | icons16w.image = NULL; |
9426 | leency | 86 | } |
87 | |||
88 | loop() IF(WaitEvent()==evDesktop) GOTO UPDATE_ICONS18WORK; |
||
89 | } |
||
9455 | leency | 90 |