Rev 8952 | Rev 9594 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
9481 | leency | 1 | inline fastcall replace_2cols(EDI, EDX, ESI, ECX, EBX, EAX) |
2 | { |
||
3 | EDX += EDI; //imgsrc + imgsize; |
||
4 | WHILE (EDI < EDX) { |
||
5 | IF (DSDWORD[EDI]==ESI) DSDWORD[EDI] = ECX; |
||
6 | ELSE IF (DSDWORD[EDI]==EBX) DSDWORD[EDI] = EAX; |
||
7 | EDI += 4; |
||
8 | } |
||
9 | } |
||
7759 | leency | 10 | |
8952 | leency | 11 | :unsigned int DrawTopPanelButton(dword _button_id, _x, _y, signed int _icon_n, bool pressed) |
7759 | leency | 12 | { |
13 | #define TSZE 25 |
||
9481 | leency | 14 | static dword lightest, i16_mem, old_work_light; |
15 | dword i16_size; |
||
16 | if (!lightest) || (old_work_light != sc.work_light) { |
||
17 | old_work_light = sc.work_light; |
||
18 | lightest = MixColors(sc.work_light, 0xFFFfff, skin_is_dark()*155 + 20); |
||
19 | if (ESI = memopen("ICONS18", NULL, SHM_READ)) { |
||
20 | i16_size = EDX; |
||
21 | i16_mem = malloc(i16_size); |
||
22 | memmov(i16_mem, ESI, i16_size); |
||
23 | replace_2cols(i16_mem, i16_size, 0xffFFFfff, sc.work_light, 0xffCACBD6, sc.work_dark); |
||
24 | } |
||
7759 | leency | 25 | } |
9481 | leency | 26 | DrawWideRectangle(_x+1, _y+1, TSZE, TSZE, 5, sc.work_light); |
7759 | leency | 27 | DefineHiddenButton(_x, _y, TSZE+1, TSZE+1, _button_id); |
28 | if (_icon_n==-1) { |
||
9481 | leency | 29 | DrawBar(_x+6, _y+5, 16, 16, sc.work_light); |
30 | DrawBar(_x+6, _y+7, 15, 3, sc.work_graph); |
||
31 | $add ecx,5*65536 |
||
32 | $int 64 |
||
33 | $add ecx,5*65536 |
||
34 | $int 64 |
||
7759 | leency | 35 | } else { |
9481 | leency | 36 | if (i16_mem) PutPaletteImage(18*18*4*_icon_n + i16_mem, |
37 | 18, 18, TSZE/2-9+2+_x, TSZE/2-9+1+_y+pressed, 32, 0); |
||
7759 | leency | 38 | } |
7910 | leency | 39 | |
40 | if (!pressed) { |
||
9481 | leency | 41 | DrawOvalBorder(_x, _y, TSZE, TSZE, lightest, sc.work_graph, sc.work_light, sc.work); |
7910 | leency | 42 | } else { |
9481 | leency | 43 | DrawOvalBorder(_x, _y, TSZE, TSZE, sc.work_graph, sc.work_light, sc.work_dark, sc.work); |
7910 | leency | 44 | PutShadow(_x+1, _y+1, TSZE, TSZE, true, 2); |
45 | } |
||
46 | |||
7866 | leency | 47 | return _x; |
7759 | leency | 48 | }> |