Rev 1218 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
903 | leency | 1 | //BOX_LIB |
1415 | leency | 2 | //Lrz - 2008 |
3 | |||
903 | leency | 4 | dword edit_box_draw = #aEdit_box_draw; |
5 | dword edit_box_key = #aEdit_box_key; |
||
6 | dword edit_box_mouse = #aEdit_box_mouse; |
||
7 | |||
984 | leency | 8 | |
903 | leency | 9 | dword am__ = 0x0; |
10 | dword bm__ = 0x0; |
||
11 | |||
12 | char aEdit_box_draw[9] = "edit_box\0"; |
||
13 | char aEdit_box_key[13] = "edit_box_key\0"; |
||
14 | char aEdit_box_mouse[15] = "edit_box_mouse\0"; |
||
15 | |||
16 | |||
17 | |||
18 | struct edit_box{ |
||
19 | dword width, left, top, color, shift_color, focus_border_color, blur_border_color, |
||
1218 | Lrz | 20 | text_color, max, text, mouse_variable, flags, size, pos, offset, cl_curs_x, cl_curs_y, shift, shift_old; |
903 | leency | 21 | }; |
22 | |||
1415 | leency | 23 | //ed_width equ [edi] ;ширина компонента |
24 | //ed_left equ [edi+4] ;положение по оси х |
||
25 | //ed_top equ [edi+8] ;положение по оси у |
||
26 | //ed_color equ [edi+12] ;цвет фона компонента |
||
27 | //shift_color equ [edi+16] ;=0x6a9480 |
||
28 | //ed_focus_border_color equ [edi+20] ;цвет рамки компонента |
||
29 | //ed_blur_border_color equ [edi+24] ;цвет не активного компонента |
||
30 | //ed_text_color equ [edi+28] ;цвет текста |
||
31 | //ed_max equ [edi+32] ;кол-во символов которые можно максимально ввести |
||
32 | //ed_text equ [edi+36] ;указатель на буфер |
||
33 | //ed_flags equ [edi+40] ;флаги |
||
34 | //ed_size equ [edi+42] ;кол-во символов |
||
35 | //ed_pos equ [edi+46] ;позиция курсора |
||
36 | //ed_offset equ [edi+50] ;смещение |
||
37 | //cl_curs_x equ [edi+54] ;предыдущее координата курсора по х |
||
38 | //cl_curs_y equ [edi+58] ;предыдущее координата курсора по у |
||
39 | //ed_shift_pos equ [edi+62] ;положение курсора |
||
40 | //ed_shift_pos_old equ [edi+66] ;старое положение курсора |
||
903 | leency | 41 | |
1415 | leency | 42 | |
43 | |||
984 | leency | 44 | int fastcall load_editbox_lib(EAX) |
903 | leency | 45 | { |
46 | //set mask |
||
47 | $mov eax,40 |
||
48 | $mov ebx,0x27 |
||
49 | $int 0x40 |
||
50 | // load DLL |
||
51 | $mov eax, 68 |
||
52 | $mov ebx, 19 |
||
53 | ECX="/sys/lib/box_lib.obj"; |
||
54 | $int 0x40 |
||
55 | $test eax, eax |
||
56 | $jz exit |
||
57 | |||
58 | // initialize import |
||
59 | $mov edx,eax |
||
60 | ESI=#edit_box_draw; |
||
61 | import_loop: |
||
62 | $lodsd |
||
63 | $test eax,eax |
||
64 | $jz import_done |
||
65 | $push edx |
||
66 | import_find: |
||
67 | $mov ebx,DSDWORD[EDX] |
||
68 | $test ebx, ebx |
||
69 | $jz exit |
||
70 | $push eax |
||
71 | nex1: |
||
72 | $mov cl,DSBYTE[EAX]; |
||
73 | $cmp cl,DSBYTE[EBX]; |
||
74 | $jnz import_find_next |
||
75 | $test cl,cl |
||
76 | $jz import_found |
||
77 | $inc eax |
||
78 | $inc ebx |
||
79 | $jmp nex1 |
||
80 | import_find_next: |
||
81 | $pop eax |
||
82 | $add edx, 8 |
||
83 | $jmp import_find |
||
84 | import_found: |
||
85 | $pop eax |
||
86 | $mov eax,DSDWORD[edx+4] |
||
87 | $mov DSDWORD[esi-4],eax |
||
88 | $pop edx |
||
89 | $jmp import_loop |
||
90 | import_done: |
||
91 | return 0; |
||
92 | exit: |
||
93 | return -1; |
||
94 | } |