Subversion Repositories Kolibri OS

Rev

Rev 1214 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
1228 Lrz 1
ed_width        equ [edi]               ;ширина компонента
2
ed_left         equ [edi+4]             ;положение по оси х
3
ed_top          equ [edi+8]             ;положение по оси у
4
ed_color        equ [edi+12]            ;цвет фона компонента
5
shift_color     equ [edi+16]            ;=0x6a9480 для примера возьем желеный цвет бокса
6
ed_focus_border_color   equ [edi+20]    ;цвет рамки компонента
7
ed_blur_border_color    equ [edi+24]    ;цвет не активного компонента
8
ed_text_color   equ [edi+28]            ;цвет текста
9
ed_max          equ [edi+32]                    ;кол-во символов которые можно максимально ввести
10
ed_text         equ [edi+36]                    ;указатель на буфер
11
ed_mouse_variable 	equ [edi+40]	; указатель на переменную для бокса/группы
12
ed_flags        equ [edi+44]            ;флаги
13
bp_flags	equ [ebp+44]		;в некоторых процедурах edi используется, взамен указатель храниться в ebp
14
ed_size equ [edi+48]                    ;кол-во символов
15
bp_size equ [ebp+48]			;кол-во симвполов, для адресации испльзуется ebpб edi занят
16
ed_pos  equ [edi+52]                    ;позиция курсора
17
ed_offset       equ [edi+56]            ;смещение
18
cl_curs_x       equ [edi+60]            ;предыдущее координата курсора по х
19
cl_curs_y       equ [edi+64]            ;предыдущее координата курсора по у
20
ed_shift_pos    equ [edi+68]            ;положение курсора
21
ed_shift_pos_old equ [edi+72]           ;старое положение курсора
22
 
1214 Lrz 23
ed_struc_size=76
1101 Lrz 24
struc  edit_box width,left,top,color,shift_color,focus_border_color,\
1214 Lrz 25
       blur_border_color,text_color,max,text,mouse_variable,flags,size,pos
1101 Lrz 26
{
27
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
28
;Bit mask from editbox
29
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
30
ed_figure_only= 1000000000000000b   ;одни символы
31
ed_always_focus= 100000000000000b
32
ed_focus=                     10b   ;фокус приложения
33
ed_shift_on=                1000b   ;если не установлен -значит впервые нажат shift,если был установлен, значит мы уже что - то делали удерживая shift
34
ed_shift_on_off=1111111111110111b
35
ed_shift=                    100b   ;включается при нажатии на shift т.е. если нажимаю
36
ed_shift_off=   1111111111111011b
37
ed_shift_bac=              10000b   ;бит для очистки выделеного shift т.е. при установке говорит что есть выделение
38
ed_shift_bac_cl=1111111111101111b   ;очистка при удалении выделения
39
ed_shift_cl=    1111111111100011b
40
ed_shift_mcl=   1111111111111011b
41
ed_left_fl=               100000b
42
ed_right_fl=    1111111111011111b
43
ed_offset_fl=            1000000b
44
ed_offset_cl=   1111111110111111b
45
ed_insert=              10000000b
46
ed_insert_cl=   1111111101111111b
47
ed_mouse_on =          100000000b
48
ed_mous_adn_b=         100011000b
49
ed_mouse_on_off=1111111011111111b
50
ed_height=14 ; высота
51
 
52
.width dd width
53
.left dd left
54
.top dd top
55
.color dd color
56
.shift_color dd shift_color
57
.focus_border_color dd focus_border_color
58
.blur_border_color dd blur_border_color
59
.text_color dd text_color
60
.max dd max
61
.text dd text
1214 Lrz 62
.mouse_variable dd mouse_variable
1101 Lrz 63
.flags dd flags+0
64
.size dd size+0
65
.pos dd pos+0
66
.offset dd 0
67
.cl_curs_x dd 0
68
.cl_curs_y dd 0
69
.shift   dd 0
70
.shift_old   dd 0
71
}
1228 Lrz 72
macro edit_boxes_set_sys_color start,end,color_table
73
{
74
        mov     edi,start
75
        mov     ecx,((end-start)/ed_struc_size)
76
        mov     esi,color_table
77
@@:
78
        mov     eax,dword [esi+36]
79
        mov     ebx,dword [esi+20]
80
        push	dword eax
81
	pop     dword ed_focus_border_color
82
        shr     bh,1
83
        shr     bl,1
84
        shr     ah,1
85
        shr     al,1
86
        add     ah,bh
87
        add     al,bl
88
        ror     eax,16
89
        ror     ebx,16
90
        shr     bl,1
91
        shr     al,1
92
        add     al,bl
93
        ror     eax,16
94
	mov	dword ed_blur_border_color,eax
95
	mov	dword shift_color,eax
96
        add     edi,ed_struc_size
97
        loop    @b
98
}
99
macro get_sys_colors col_buf
100
{
101
        ;mov     eax,48
102
        push    48
103
        pop     eax
104
        ;mov     ebx,3
105
        push    3
106
        pop     ebx
107
        ;mov     ecx,col_buf
108
        push    col_buf
109
        pop     ecx
110
        ;mov     edx,40
111
        push    40
112
        pop     edx
113
        mcall
114
}
1101 Lrz 115
struc check_box left,top,ch_text_margin,ch_size,color,border_color,text_color,text,ch_text_length,flags
116
{        ;структура параметров для чек бокса
117
ch_flag_en=10b
118
.left: dw left      ;+0        ;положение по х
119
.top: dw top        ;положение по у
120
.ch_text_margin:  dd ch_text_margin ;расстояние от прямоугольника чек бокса до надписи
121
.ch_size: dd ch_size ;размер квадрата чек бокса, для примера 12
122
.color: dd color    ;цвет внутри чекбокса
123
.border_color: dd border_color ;цвет рамки
124
.text_color: dd text_color     ;цвет надписи
125
.text: dd text                 ;адрес в коде программы где расположен текст
126
.ch_text_length: dd ch_text_length ;длинна строки с символами
127
.flags: dd flags+0   ; флаги
128
}
129
struc option_box point_gr,left,top,op_text_margin,op_size,color,border_color,text_color,text,op_text_length,flags
130
{        ;структура параметров для чек бокса
131
op_flag_en=10b
132
.option_group: dd point_gr
133
.left: dw left      ;+0        ;положение по х
134
.top: dw top        ;положение по у
135
.ch_text_margin:  dd op_text_margin ;расстояние от прямоугольника чек бокса до надписи
136
.ch_size: dd op_size ;размер квадрата чек бокса, для примера 12
137
.color: dd color    ;цвет внутри чекбокса
138
.border_color: dd border_color ;цвет рамки
139
.text_color: dd text_color     ;цвет надписи
140
.text: dd text                 ;адрес в коде программы где расположен текст
141
.ch_text_length: dd op_text_length ;длинна строки с символами
142
.flags: dd flags+0   ; флаги
143
}
144