Subversion Repositories Kolibri OS

Rev

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
}