Rev 6280 | Rev 6504 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 6280 | Rev 6285 | ||
---|---|---|---|
Line 46... | Line 46... | ||
46 | //Button options |
46 | //Button options |
47 | #define BT_DEL 0x80000000 |
47 | #define BT_DEL 0x80000000 |
48 | #define BT_HIDE 0x40000000 |
48 | #define BT_HIDE 0x40000000 |
49 | #define BT_NOFRAME 0x20000000 |
49 | #define BT_NOFRAME 0x20000000 |
Line 50... | Line -... | ||
50 | - | ||
51 | //ASCII KEYS |
- | |
52 | #define ASCII_KEY_BS 008 |
- | |
53 | #define ASCII_KEY_TAB 009 |
- | |
54 | #define ASCII_KEY_ENTER 013 |
- | |
55 | #define ASCII_KEY_ESC 027 |
- | |
56 | #define ASCII_KEY_DEL 182 |
- | |
57 | #define ASCII_KEY_INS 185 |
- | |
58 | #define ASCII_KEY_SPACE 032 |
- | |
59 | - | ||
60 | #define ASCII_KEY_LEFT 176 |
- | |
61 | #define ASCII_KEY_RIGHT 179 |
- | |
62 | #define ASCII_KEY_DOWN 177 |
- | |
63 | #define ASCII_KEY_UP 178 |
- | |
64 | #define ASCII_KEY_HOME 180 |
- | |
65 | #define ASCII_KEY_END 181 |
- | |
66 | #define ASCII_KEY_PGDN 183 |
- | |
67 | #define ASCII_KEY_PGUP 184 |
- | |
68 | - | ||
69 | //SCAN CODE KEYS |
- | |
70 | #define SCAN_CODE_BS 014 |
- | |
71 | #define SCAN_CODE_TAB 015 |
- | |
72 | #define SCAN_CODE_ENTER 028 |
- | |
73 | #define SCAN_CODE_ESC 001 |
- | |
74 | #define SCAN_CODE_DEL 083 |
- | |
75 | #define SCAN_CODE_INS 082 |
- | |
76 | #define SCAN_CODE_SPACE 057 |
- | |
77 | - | ||
78 | #define SCAN_CODE_LEFT 075 |
- | |
79 | #define SCAN_CODE_RIGHT 077 |
- | |
80 | #define SCAN_CODE_DOWN 080 |
- | |
81 | #define SCAN_CODE_UP 072 |
- | |
82 | #define SCAN_CODE_HOME 071 |
- | |
83 | #define SCAN_CODE_END 079 |
- | |
84 | #define SCAN_CODE_PGDN 081 |
- | |
85 | #define SCAN_CODE_PGUP 073 |
- | |
86 | - | ||
87 | #define KEY_LSHIFT 00000000001b |
- | |
88 | #define KEY_RSHIFT 00000000010b |
- | |
89 | #define KEY_LCTRL 00000000100b |
- | |
90 | #define KEY_RCTRL 00000001000b |
- | |
91 | #define KEY_LALT 00000010000b |
- | |
92 | #define KEY_RALT 00000100000b |
- | |
93 | #define KEY_CAPSLOCK 00001000000b |
- | |
94 | #define KEY_NUMLOCK 00010000000b |
- | |
95 | #define KEY_SCROLLLOCK 00100000000b |
- | |
96 | #define KEY_LWIN 01000000000b |
- | |
97 | #define KEY_RWIN 10000000000b |
- | |
98 | - | ||
99 | dword calc(EAX) { return EAX; } |
- | |
100 | - | ||
101 | inline fastcall word GetKey() //+Gluk fix |
- | |
102 | { |
- | |
103 | $push edx |
- | |
104 | GETKEY: |
- | |
105 | $mov eax,2 |
- | |
106 | $int 0x40 |
- | |
107 | $cmp eax,1 |
- | |
108 | $jne GETKEYI |
- | |
109 | $mov ah,dh |
- | |
110 | $jmp GETKEYII //jz? |
- | |
111 | GETKEYI: |
- | |
112 | $mov dh,ah |
- | |
113 | $jmp GETKEY |
- | |
114 | GETKEYII: |
- | |
115 | $pop edx |
- | |
116 | $shr eax,8 |
- | |
117 | } |
- | |
118 | - | ||
119 | - | ||
120 | unsigned char key_ascii; |
- | |
121 | dword key_scancode, key_modifier; |
- | |
122 | int GetKeys() |
- | |
123 | { |
- | |
124 | $push edx |
- | |
125 | GETKEY: |
- | |
126 | $mov eax,2 |
- | |
127 | $int 0x40 |
- | |
128 | $cmp eax,1 |
- | |
129 | $jne GETKEYI |
- | |
130 | $mov eax,edx |
- | |
131 | $jmp GETKEYII |
- | |
132 | GETKEYI: |
- | |
133 | $mov edx,eax |
- | |
134 | $jmp GETKEY |
- | |
135 | GETKEYII: |
- | |
136 | $pop edx |
- | |
137 | key_ascii = AH; |
- | |
138 | $shr eax,16 |
- | |
139 | key_scancode = AL; |
- | |
140 | //get alt/shift/ctrl key status |
- | |
141 | $mov eax,66 |
- | |
142 | $mov ebx,3 |
- | |
143 | $int 0x40 |
- | |
144 | key_modifier = EAX; |
- | |
145 | } |
- | |
146 | 50 | ||
147 | //allow event mask |
51 | //allow event mask |
148 | #define EVENT_MASK_REDRAW 000000001b |
52 | #define EVENT_MASK_REDRAW 000000001b |
149 | #define EVENT_MASK_KEYBOARD 000000010b |
53 | #define EVENT_MASK_KEYBOARD 000000010b |
150 | #define EVENT_MASK_BUTTONS 000000100b |
54 | #define EVENT_MASK_BUTTONS 000000100b |
Line 156... | Line 60... | ||
156 | 60 | ||
157 | //ARGS FUNCTION |
61 | //ARGS FUNCTION |
158 | #define END_ARGS 0xFF00FF |
62 | #define END_ARGS 0xFF00FF |
Line 159... | Line -... | ||
159 | //------------------------------------------------------------------------- |
- | |
160 | 63 | //------------------------------------------------------------------------- |
|
161 | #ifndef INCLUDE_SYSTEM_H |
- | |
162 | #include "../lib/system.h" |
- | |
163 | #endif |
- | |
164 | 64 | ||
165 | #ifndef INCLUDE_MOUSE_H |
65 | #include "../lib/system.h" |
Line 166... | Line 66... | ||
166 | #include "../lib/mouse.h" |
66 | #include "../lib/mouse.h" |
167 | #endif |
67 | #include "../lib/keyboard.h" |
168 | 68 | ||
Line 169... | Line -... | ||
169 | :struct raw_image { |
- | |
170 | dword w, h, data; |
- | |
171 | }; |
69 | :struct raw_image { |
172 | 70 | dword w, h, data; |
|
173 | 71 | }; |
|
174 | 72 | ||
175 | //------------------------------------------------------------------------------ |
73 | //------------------------------------------------------------------------------ |
Line 221... | Line 119... | ||
221 | $mov ebx, 16 |
119 | $mov ebx, 16 |
222 | $int 0x40 |
120 | $int 0x40 |
223 | //return eax = ðàçìåð ñâîáîäíîé ïàìÿòè â êèëîáàéòàõ |
121 | //return eax = ðàçìåð ñâîáîäíîé ïàìÿòè â êèëîáàéòàõ |
224 | } |
122 | } |
Line 225... | Line -... | ||
225 | - | ||
226 | inline void draw_line(dword x1,y1,x2,y2,color) |
- | |
227 | { |
- | |
228 | x2--;y2--;y1--; |
- | |
229 | $mov EAX,38 |
- | |
230 | EBX = x1<<16; |
- | |
231 | EBX |= x2; |
- | |
232 | ECX = y1<<16; |
- | |
233 | ECX |= y2; |
- | |
234 | $mov EDX,color |
- | |
235 | $int 0x40 |
- | |
236 | } |
- | |
237 | 123 | ||
238 | inline fastcall dword LoadDriver(ECX) //ECX - èìÿ äðàéâåðà |
124 | inline fastcall dword LoadDriver(ECX) //ECX - èìÿ äðàéâåðà |
239 | { |
125 | { |
240 | $mov eax, 68 |
126 | $mov eax, 68 |
241 | $mov ebx, 16 |
127 | $mov ebx, 16 |
Line 414... | Line 300... | ||
414 | $mov ebx, 5 |
300 | $mov ebx, 5 |
415 | $int 0x40 |
301 | $int 0x40 |
416 | $mov eax, ebx |
302 | $mov eax, ebx |
417 | } |
303 | } |
Line 418... | Line -... | ||
418 | - | ||
419 | 304 | ||
420 | inline fastcall dword LoadLibrary( ECX) |
305 | inline fastcall dword LoadLibrary( ECX) |
421 | { |
306 | { |
422 | $mov eax, 68 |
307 | $mov eax, 68 |
423 | $mov ebx, 19 |
308 | $mov ebx, 19 |
Line 428... | Line 313... | ||
428 | { |
313 | { |
429 | $shr eax,cl |
314 | $shr eax,cl |
430 | $and eax,1 |
315 | $and eax,1 |
431 | } |
316 | } |
Line 432... | Line -... | ||
432 | - | ||
433 | inline fastcall int PlaySpeaker( ESI) |
- | |
434 | { |
- | |
435 | $mov eax, 55 |
- | |
436 | $mov ebx, 55 |
- | |
437 | $int 0x40 |
- | |
438 | } |
- | |
439 | 317 | ||
Line 440... | Line 318... | ||
440 | //------------------------------------------------------------------------------ |
318 | //------------------------------------------------------------------------------ |
441 | 319 | ||
442 | void DefineAndDrawWindow(dword x, y, size_w, size_h, byte WindowType,dword WindowAreaColor, EDI, ESI) |
320 | void DefineAndDrawWindow(dword x, y, size_w, size_h, byte WindowType,dword WindowAreaColor, EDI, ESI) |
Line 577... | Line 455... | ||
577 | EBX = 3; |
455 | EBX = 3; |
578 | EDX = ID_ACTIVE; |
456 | EDX = ID_ACTIVE; |
579 | $int 0x40 |
457 | $int 0x40 |
580 | } |
458 | } |
Line 581... | Line -... | ||
581 | - | ||
582 | inline getIPC(ECX,EDX) |
- | |
583 | { |
- | |
584 | $mov EAX,60 |
- | |
585 | $mov EBX,2 |
- | |
586 | $int 0x40 |
- | |
587 | } |
- | |
588 | - | ||
589 | inline sendIPC(ECX,EDX,ESI) |
- | |
590 | { |
- | |
591 | $mov EAX,60 |
- | |
592 | $mov EBX,1 |
- | |
593 | $int 0x40 |
- | |
594 | } |
- | |
595 | 459 | ||
596 | void UnsafeDefineButton(dword x,y,w,h,EDX,ESI) |
460 | void UnsafeDefineButton(dword x,y,w,h,EDX,ESI) |
597 | { |
461 | { |
598 | EAX = 8; |
462 | EAX = 8; |
599 | EBX = x<<16+w; |
463 | EBX = x<<16+w; |
Line 633... | Line 497... | ||
633 | X_EventRedrawWindow = x; |
497 | X_EventRedrawWindow = x; |
634 | Y_EventRedrawWindow = y; |
498 | Y_EventRedrawWindow = y; |
635 | CreateThread(#_EventRedrawWindow,#REDRAW_BUFF_EVENT_+4092); |
499 | CreateThread(#_EventRedrawWindow,#REDRAW_BUFF_EVENT_+4092); |
636 | } |
500 | } |
Line 637... | Line -... | ||
637 | - | ||
638 | :dword ALERT_TEXT; |
- | |
639 | :void dialog_alert() |
- | |
640 | { |
501 | |
641 | byte id; |
- | |
642 | loop()switch(WaitEvent()) |
502 | :struct obj |
643 | { |
503 | { |
644 | case evReDraw: |
- | |
645 | DefineAndDrawWindow(215,100,250,200,0x34,0xFFFFFF,"Alert"); |
- | |
646 | WriteTextB(5,5,0x90,0x0,ALERT_TEXT); |
- | |
647 | break; |
504 | dword x,y,w,h; |
648 | case evKey: |
- | |
649 | case evButton: |
- | |
650 | id=GetButtonID(); |
- | |
651 | if (id==1) ExitProcess(); |
- | |
652 | break; |
505 | void size(); |
653 | } |
506 | }; |
654 | } |
507 | |
655 | :dword alert(dword text) |
508 | :void obj::size(dword _x, _y, _w, _h) |
656 | { |
509 | { |
657 | dword mem = malloc(4096); |
510 | x=_x; |
658 | ALERT_TEXT = text; |
511 | y=_y; |
659 | CreateThread(#dialog_alert,mem+4092); |
512 | w=_w; |
660 | return mem; |
513 | h=_h; |
Line 661... | Line 514... | ||
661 | } |
514 | } |
662 | 515 | ||
663 | :struct _screen |
516 | :struct _screen |
Line 667... | Line 520... | ||
667 | 520 | ||
Line 668... | Line 521... | ||
668 | :byte skin_height; |
521 | :byte skin_height; |
669 | 522 | ||
670 | :void DrawDate(dword x, y, color, in_date) |
- | |
671 | { |
523 | :void DrawDate(dword x, y, color, in_date) |
672 | //char text[15]; |
524 | { |
673 | EDI = in_date; |
525 | EDI = in_date; |
674 | EAX = 47; |
526 | EAX = 47; |
675 | EBX = 2<<16; |
527 | EBX = 2<<16; |
676 | EDX = x<<16+y; |
528 | EDX = x<<16+y; |
677 | ESI = 0x90<<24+color; |
529 | ESI = 0x90<<24+color; |
678 | ECX = EDI.date.day; |
530 | ECX = EDI.date.day; |
679 | $int 0x40; |
531 | $int 0x40; |
680 | EDX += 18<<16; |
532 | EDX += 20<<16; |
681 | ECX = EDI.date.month; |
533 | ECX = EDI.date.month; |
682 | $int 0x40; |
534 | $int 0x40; |
683 | EDX += 18<<16; |
535 | EDX += 20<<16; |
684 | EBX = 4<<16; |
536 | EBX = 4<<16; |
685 | ECX = EDI.date.year; |
537 | ECX = EDI.date.year; |
686 | $int 0x40; |
538 | $int 0x40; |
687 | PutPixel(x+14,y+6,color); |
- | |
688 | PutPixel(x+32,y+6,color); |
- | |
689 | //sprintf(#text,"%d",EDI.date.year); |
539 | DrawBar(x+17,y+10,2,2,color); |
Line 690... | Line 540... | ||
690 | //WriteText(x, y, 0x80, 0x000000, #text); |
540 | DrawBar(x+37,y+10,2,2,color); |
691 | } |
541 | } |
692 | 542 |