Subversion Repositories Kolibri OS

Rev

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

Rev Author Line No. Line
6675 pathoswith 1
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2
;; basic macros for EditBox ;;
3
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
4
ed_width        equ [edi]       ; field width
5
ed_left         equ [edi+4]     ; left border X
6
ed_top          equ [edi+8]     ; top border Y
7
ed_color        equ [edi+12]    ; field color
8
shift_color     equ [edi+16]    ; select color
9
ed_focus_border_color   equ [edi+20]    ; border color active
10
ed_blur_border_color    equ [edi+24]    ; border color inactive
11
ed_text_color   equ [edi+28]    ; color and font (as in sysfunc 4)
12
ed_max          equ [edi+32]    ; chars max
13
ed_text         equ [edi+36]    ; buffer pointer
14
ed_mouse_variable   equ [edi+40]    ; pointer
15
ed_flags        equ [edi+44]
16
bp_flags        equ [ebp+44]
17
ed_size         equ [edi+48]    ; chars currently
18
bp_size         equ [ebp+48]
19
ed_pos          equ [edi+52]    ; carret current position
20
ed_offset       equ [edi+56]
21
cl_curs_x       equ [edi+60]    ; previous cursor X
22
cl_curs_y       equ [edi+64]    ; previous cursor Y
23
ed_shift_pos    equ [edi+68]    ; selection current position
24
ed_shift_pos_old    equ [edi+72]    ; selection previous position
25
ed_height       equ [edi+76]
26
ed_char_width   equ [edi+80]
1432 mario79 27
 
6675 pathoswith 28
ed_struc_size = 84
1432 mario79 29
 
6675 pathoswith 30
;;;;;;;;;;;;;;;;;;;;;;;
31
;; flags for EditBox ;;
32
;;;;;;;;;;;;;;;;;;;;;;;
33
ed_pass         = 1     ; password mode
34
ed_focus        = 2     ; active
35
ed_shift        = 4     ; shift holded
36
ed_shift_on     = 8     ; selection active
37
ed_shift_bac    = 16    ; clear selection
38
ed_left_fl      = 32
39
ed_offset_fl    = 64
40
ed_insert       = 128
41
ed_mouse_on     = 256
42
ed_ctrl_on      = 512
43
ed_alt_on       = 400h
44
ed_disabled     = 800h
45
ed_always_focus = 4000h
46
ed_figure_only  = 8000h
47
ed_mous_adn_b   = ed_mouse_on or ed_shift_on or ed_shift_bac
48
ed_shift_off    = not ed_shift
49
ed_shift_mcl    = not ed_shift
50
ed_shift_on_off = not ed_shift_on
51
ed_shift_bac_cl = not ed_shift_bac
52
ed_shift_cl     = not (ed_shift or ed_shift_on or ed_shift_bac)
53
ed_right_fl     = not ed_left_fl
54
ed_offset_cl    = not ed_offset_fl
55
ed_insert_cl    = not ed_insert
56
ed_mouse_on_off = not ed_mouse_on
57
ed_ctrl_off     = not ed_ctrl_on
58
ed_alt_off      = not ed_alt_on
1432 mario79 59
 
60
struc  edit_box width,left,top,color,shift_color,focus_border_color,\
61
       blur_border_color,text_color,max,text,mouse_variable,flags,size,pos
62
{
6675 pathoswith 63
.width  dd  width
64
.left   dd  left
65
.top    dd  top
66
.color  dd  color
67
.shift_color        dd  shift_color
68
.focus_border_color dd  focus_border_color
69
.blur_border_color  dd  blur_border_color
70
.text_color         dd  text_color
71
.max    dd  max
72
.text   dd  text
73
.mouse_variable     dd  mouse_variable
74
.flags  dd  flags
75
.size   dd  size
76
.pos    dd  pos
77
.offset dd  0
78
.cl_curs_x  dd  0
79
.cl_curs_y  dd  0
80
.shift      dd  0
81
.shift_old  dd  0
82
.height     dd  0
83
.char_width dd  0
1432 mario79 84
}
85
 
86
macro edit_boxes_set_sys_color start,end,color_table
87
{
88
        mov     edi,start
89
        mov     ecx,((end-start)/ed_struc_size)
90
        mov     esi,color_table
91
@@:
2159 IgorA 92
        mov     eax,dword [esi+36] ;цвет графики в окне (разделительные линии и т.п.)
93
        mov     ebx,dword [esi+20] ;цвет рабочей области окна
3204 hidnplayr 94
        push    dword eax
95
        pop     dword ed_focus_border_color
1432 mario79 96
        shr     bh,1
97
        shr     bl,1
98
        shr     ah,1
99
        shr     al,1
100
        add     ah,bh
101
        add     al,bl
102
        ror     eax,16
103
        ror     ebx,16
104
        shr     bl,1
105
        shr     al,1
106
        add     al,bl
107
        ror     eax,16
3204 hidnplayr 108
        mov     dword ed_blur_border_color,eax
109
        mov     dword shift_color,eax
110
        push    dword [esi+32] ;цвет текста в рабочей области окна
111
        pop     dword ed_text_color
1432 mario79 112
        add     edi,ed_struc_size
113
        loop    @b
114
}
3178 IgorA 115
 
116
 
1432 mario79 117
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
118
;Basic macros for use CheckBox                            ;
3178 IgorA 119
;Last change 17.01.2013                                   ;
1432 mario79 120
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
6675 pathoswith 121
ch_text_margin equ [edi+8] ;=4 расстояние от прямоугольника чек бокса до надписи
1640 Lrz 122
ch_color equ [edi+12]      ;цвет внутри checkbox
123
ch_border_color equ [edi+16] ; or [edi+4] ;цвет рамки checkbox ее можно задать самостоятельно
124
ch_text_color   equ [edi+20] ;[edi+4]  ;цвет текста
6675 pathoswith 125
ch_text_ptr     equ [edi+24] ;указатель на начало текстовой строки
126
ch_flags equ [edi+28]      ;флаги
1432 mario79 127
 
3204 hidnplayr 128
ch_struc_size=36                ;размер структуры
129
ch_flag_en=10b                  ;флаг установленного чек бокса.
130
ch_flag_top=0x0                 ;флаг расположения текста вверху т.е. 3-й бит
131
ch_flag_middle=100b             ;флаг расположения текста в центре т.е. 4-й бит.
132
ch_flag_bottom=1000b            ;флаг расположения текста в низу т.е. по умолчанию принимается значение внизу т.е. отсуствие 3-го и 4-го бита
1682 lrz 133
 
3204 hidnplayr 134
2ch_left_s      equ [ebp]       ;кордината начала рисования по х
135
2ch_top_s       equ [ebp+4]     ;координата начала рисования по у
6675 pathoswith 136
2ch_text_margin equ [ebp+8]     ;=4 расстояние от прямоугольника чек бокса до надписи
3204 hidnplayr 137
2ch_color       equ [ebp+12]    ;цвет внутри checkbox
138
2ch_border_color        equ [ebp+16]    ; or [edi+4] ;цвет рамки checkbox ее можно задать самостоятельно
139
2ch_text_color  equ [ebp+20]    ;[edi+4]  ;цвет текста
6675 pathoswith 140
2ch_text_ptr    equ [ebp+24]    ;указатель на начало текстовой строки
3204 hidnplayr 141
2ch_flags       equ [ebp+28]    ;флаги
142
2ch_sz_str      equ [ebp+32]    ;длинна строки, вычисляется при инициализации компонента
1682 lrz 143
 
144
struc check_box2 left_s,top_s,ch_text_margin,color,border_color,text_color,text,flags
3204 hidnplayr 145
{                               ;структура параметров для чек бокса
4463 hidnplayr 146
.left_s         dd left_s       ;+0 положение по х dw + размер dw
147
.top_s          dd top_s        ;+4 положение по у dw + размер dw
148
.ch_text_margin dd ch_text_margin ;расстояние от прямоугольника чек бокса до надписи
149
.color          dd color        ;цвет внутри чекбокса
150
.border_color   dd border_color ;цвет рамки
151
.text_color     dd text_color   ;цвет надписи
152
.text           dd text         ;адрес в коде программы где расположен текст
153
.flags          dd flags+0      ;флаги
154
.size_of_str    dd 0x0          ;длинна строки, вычисляется при инициализации компонента
1682 lrz 155
}
156
 
157
;Макрос проверки щелчка мышки над группой checkboxes.
3178 IgorA 158
macro init_checkboxes2 start,end_cb
1682 lrz 159
{
3178 IgorA 160
if start+ch_struc_size eq end_cb
3204 hidnplayr 161
        ;когда один элемент
162
        push    start                   ;указатель на checkbox
163
        call    [init_checkbox] ;настройка checkbox'а
3178 IgorA 164
else
3204 hidnplayr 165
        ;когда несколько элементов
166
        mov     ebp,start
167
        mov     ecx,((end_cb-start)/ch_struc_size)
1682 lrz 168
@@:
3204 hidnplayr 169
        push    ebp                     ;указатель на первый checkbox
170
        call    [init_checkbox] ;настройка checkbox'ов
171
        add     ebp,ch_struc_size
172
        loop    @b
3178 IgorA 173
end if
1682 lrz 174
}
175
 
176
;Макрос проверки мышки группы checkboxes.
3178 IgorA 177
macro checkboxes_mouse2 start,end_cb
1682 lrz 178
{
3178 IgorA 179
if start+ch_struc_size eq end_cb
3204 hidnplayr 180
        ;когда один элемент
181
        push    start                   ;указатель на checkbox
182
        call    [check_box_mouse]       ;макрос проверки мышки над checkbox'ом
3178 IgorA 183
else
3204 hidnplayr 184
        ;когда несколько элементов
185
        mov     ebp,start
186
        mov     ecx,((end_cb-start)/ch_struc_size)
1682 lrz 187
@@:
3204 hidnplayr 188
        push    ebp                     ;указатель на первый checkbox
189
        call    [check_box_mouse]       ;макрос проверки мышки над checkbox'ами
190
        add     ebp,ch_struc_size
191
        loop    @b
3178 IgorA 192
end if
1682 lrz 193
}
194
 
195
;Макрос отрисовки группы checkboxes.
3178 IgorA 196
macro checkboxes_draw2 start,end_cb
1682 lrz 197
{
3178 IgorA 198
if start+ch_struc_size eq end_cb
3204 hidnplayr 199
        ;когда один элемент
200
        push    start                   ;указатель на checkbox
201
        call    [check_box_draw]        ;нарисовать checkbox
3178 IgorA 202
else
3204 hidnplayr 203
        ;когда несколько элементов
204
        mov     ebp,start
205
        mov     ecx,((end_cb-start)/ch_struc_size)
1682 lrz 206
@@:
3204 hidnplayr 207
        push    ebp                     ;указатель на первый checkbox
208
        call    [check_box_draw]        ;нарисовать checkbox'ы
209
        add     ebp,ch_struc_size
210
        loop    @b
3178 IgorA 211
end if
1682 lrz 212
}
213
 
214
macro check_boxes_set_sys_color2 start,end,color_table
215
{
3204 hidnplayr 216
        mov     ebp,start
217
        mov     ecx,((end-start)/ch_struc_size)
218
        mov     esi,color_table
1682 lrz 219
@@:
3204 hidnplayr 220
        push    dword [esi+32]          ;цвет текста в рабочей области окна
221
        or      dword [esp],0x80000000  ;необходимо для вывода ASCIIZ строк
222
        pop     dword 2ch_text_color
223
        push    dword [esi+36]          ;цвет графики в окне (разделительные линии и т.п.)
224
        pop     dword 2ch_border_color
225
        add     ebp,ch_struc_size
226
        loop    @b
1682 lrz 227
}
228
 
229
 
230
 
231
 
232
 
233
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1432 mario79 234
;Basic macros for use OptionBox                           ;
235
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
236
 
237
struc option_box point_gr,left,top,op_text_margin,op_size,color,border_color,text_color,text,op_text_length,flags
238
{        ;структура параметров для чек бокса
239
op_flag_en=10b
4463 hidnplayr 240
.option_group   dd point_gr
241
.left           dw left                 ;+0 ;положение по х
242
.top            dw top                  ;положение по у
243
.ch_text_margin dd op_text_margin       ;расстояние от прямоугольника чек бокса до надписи
244
.ch_size        dd op_size              ;размер квадрата чек бокса, для примера 12
245
.color          dd color                ;цвет внутри чекбокса
246
.border_color   dd border_color         ;цвет рамки
247
.text_color     dd text_color           ;цвет надписи
248
.text           dd text                 ;адрес в коде программы где расположен текст
249
.ch_text_length dd op_text_length       ;длинна строки с символами
250
.flags          dd flags+0              ; флаги
1432 mario79 251
}
252
 
2159 IgorA 253
;op_struc_size equ
1476 IgorA 254
option_group equ [edi]
255
op_left equ [edi+4]    ;координата начала рисования по х
256
op_top equ [edi+6]     ;координата начала рисования по у
6675 pathoswith 257
op_text_margin equ [edi+8]      ;=4 расстояние от прямоугольника чек бокса до надписи
258
op_size equ [edi+12]             ;12 размер квадрата чек бокса
1476 IgorA 259
op_color equ [edi+16]
2159 IgorA 260
op_border_color equ [edi+20] ; or [edi+4] ;цвет рамки optionbox ее можно задать самостоятельно
1476 IgorA 261
op_text_color equ   [edi+24];[edi+4]  ;цвет текста
6675 pathoswith 262
op_text_ptr equ [edi+28]    ;указатель на начало текстовой строки
1476 IgorA 263
op_text_length equ [edi+32]
264
op_flags equ [edi+36]       ;флаги
265
 
2159 IgorA 266
macro option_boxes_set_sys_color color_table,group
267
{
3204 hidnplayr 268
        mov     ecx,group
269
        mov     esi,color_table
270
        mov     edi,[ecx]
271
        mov     eax,[esi+24] ;цвет кнопки в рабочей области окна
272
        mov     ebx,[esi+28] ;цвет текста на кнопке
2159 IgorA 273
@@:
3204 hidnplayr 274
        mov     op_border_color,eax
275
        mov     op_color,ebx
276
        push    dword [esi+32] ;цвет текста в рабочей области окна
277
        pop     dword op_text_color
2159 IgorA 278
        add     ecx,4
279
        mov     edi,[ecx]
3204 hidnplayr 280
        cmp     edi,0
281
        jne     @b
2159 IgorA 282
}
1457 IgorA 283
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
284
;Basic macros for use TreeList                            ;
285
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
286
 
1432 mario79 287
struc tree_list info_size,info_max_count,style, img_cx,img_cy,\
288
    col_bkg,col_zag,col_txt, box_l,box_t,box_w,box_h, capt_cy,info_capt_offs,\
5911 IgorA 289
    info_capt_len,el_focus, p_scroll,on_press {
290
.box_left    dd box_l
291
.box_top     dd box_t
292
.box_width   dd box_w
293
.box_height  dd box_h
294
.data_info   dd 0
295
.info_size   dw info_size
296
.info_max_count dd info_max_count
297
.style       dd style
298
.data_nodes  dd 0
299
.data_img    dd 0
300
.img_cx      dw img_cx
301
.img_cy      dw img_cy
302
.data_img_sys dd 0
303
.ch_tim      dd 0
304
.tim_undo    dd 0
305
.cur_pos     dd 0
306
.col_bkg     dd col_bkg
307
.col_zag     dd col_zag
308
.col_txt     dd col_txt
309
.capt_cy     dw capt_cy
310
.info_capt_offs dw info_capt_offs
311
.info_capt_len dw info_capt_len
312
.el_focus    dd el_focus
313
.p_scroll    dd p_scroll
314
.on_press    dd on_press
1432 mario79 315
}
316
 
5911 IgorA 317
tl_box_left   equ dword[edi]
318
tl_box_top    equ dword[edi+ 4]
319
tl_box_width  equ dword[edi+ 8]
320
tl_box_height equ dword[edi+12]
321
tl_data_info  equ dword[edi+16] ;указатель на основные даные
322
tl_info_size  equ  word[edi+20] ;размер данных выделяемых для каждого узла (пользовательськие данные + текст для подписи)
323
tl_info_max_count equ dword[edi+22] ;максимальное количество узлов, которые можно добавить в элемент
324
tl_style      equ dword[edi+26] ;стили элемента
325
tl_data_nodes equ dword[edi+30] ;указатель на структуры узлов
326
tl_data_img   equ dword[edi+34] ;указатель на изображения с иконками узлов
327
tl_img_cx     equ  word[edi+38] ;ширина иконок
328
tl_img_cy     equ  word[edi+40] ;высота иконок
329
tl_data_img_sys equ dword[edi+42] ;указатель на системные изображения (стрелки, плюсики)
330
tl_ch_tim     equ dword[edi+46] ;количество изменений в файле
331
tl_tim_undo   equ dword[edi+50] ;количество отмененных действий
332
tl_cur_pos    equ dword[edi+54] ;позиция курсора
333
tl_col_bkg    equ dword[edi+58] ;цвет фона
334
tl_col_zag    equ dword[edi+62] ;цвет заголовка
335
tl_col_txt    equ dword[edi+66] ;цвет текста
336
tl_capt_cy    equ  word[edi+70] ;высота подписи
337
tl_info_capt_offs equ word[edi+72] ;сдвиг для начала текста (подписи узла)
338
tl_info_capt_len equ word[edi+74] ;длинна текста подписи узла (если = 0 то до конца структуры)
339
tl_el_focus   equ dword[edi+76] ;указатель на структуру элемента в фокусе
340
tl_p_scroll   equ dword[edi+80] ;указатель на структуру скроллинга
341
tl_on_press   equ dword[edi+84] ;указатель на функцию, которая вызывается при нажатии Enter
1449 IgorA 342
 
1432 mario79 343
;константы стиля
344
tl_key_no_edit   equ   1b ;элемент нельзя редактировать на клавиатуре (изменять уровни, удалять)
345
tl_draw_par_line equ  10b ;рисовать линии к родительскому узлу
346
tl_list_box_mode equ 100b ;стиль не отображает уровни (как в ListBox все одного уровня)
347
 
348
;константы для функций
349
tl_err_save_memory_size equ  10b ;не хватает памяти для сохранения элемента
350
tl_err_load_caption     equ   1b ;в памяти нет заголовка 'tree'
351
tl_err_load_info_size   equ 100b ;не совпадает размер информационной структуры при открытии
352
tl_load_mode_add        equ 0x20000 ;опция считывания в режиме добавления информации
353
tl_save_load_heder_size equ 26 ;размер заголовка для записи/чтения элементов
5911 IgorA 354
tl_offs_box equ 0 ;начало BOX структуры для tree_list
1457 IgorA 355
 
356
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
357
;Basic macros for use TextEditor                          ;
358
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
359
 
360
ted_wnd_l equ dword[edi+ 0] ;окно редактора: отступ слева
361
ted_wnd_t equ dword[edi+ 4] ;окно редактора: отступ сверху
362
ted_wnd_w equ dword[edi+ 8] ;окно редактора: ширина
363
ted_wnd_h equ dword[edi+12] ;окно редактора: высота
364
ted_rec_l equ dword[edi+16] ;ширина панели в окне
365
ted_rec_t equ dword[edi+20] ;высота панели в окне
366
ted_rec_w equ dword[edi+24] ;ширина символа (знакоместа) в окне
367
ted_rec_h equ dword[edi+28] ;высота символа (знакоместа) в окне
368
ted_drag_m equ byte[edi+32] ;выделение от мыши
369
ted_drag_k equ byte[edi+33] ;выделение от клавиатуры
370
ted_sel_x0 equ dword[edi+34] ;координата выделения x0
371
ted_sel_y0 equ dword[edi+38] ;координата выделения y0
372
ted_sel_x1 equ dword[edi+42] ;координата выделения x1
373
ted_sel_y1 equ dword[edi+46] ;координата выделения y1
374
;запасные координаты выделения
375
ted_seln_x0 equ dword[edi+50]
376
ted_seln_y0 equ dword[edi+54]
377
ted_seln_x1 equ dword[edi+58]
378
ted_seln_y1 equ dword[edi+62]
379
 
380
ted_tex     equ dword[edi+66] ;указатель на память для хранения текста
381
ted_tex_1   equ dword[edi+70] ;указатель на 1-ю стркутру символа
382
ted_tex_end equ dword[edi+74] ;указатель на последнюю структуру символа
383
ted_cur_x   equ dword[edi+78] ;координата x курсора
384
ted_cur_y   equ dword[edi+82] ;координата y курсора
385
ted_max_chars equ dword[edi+86] ;максимальное число символов в одном документе
386
ted_colors_text_count equ dword[edi+90] ;колличество цветов текста
387
ted_key_words_count   equ dword[edi+94] ;колличество ключевых слов
388
ted_color_cursor   equ dword[edi+98] ;цвет курсора
389
ted_color_wnd_capt equ dword[edi+102] ;цвет полей вокруг окна
390
ted_color_wnd_work equ dword[edi+106] ;цвет фона окна
391
ted_color_wnd_bord equ dword[edi+110] ;цвет текста на полях
392
ted_color_select   equ dword[edi+114] ;цвет выделения
393
ted_color_cur_text equ dword[edi+118] ;цвет символа под курсором
394
ted_color_wnd_text equ dword[edi+122] ;цвет текста в окне
395
ted_syntax_file    equ dword[edi+126] ;указатель на начало файла синтаксиса
396
ted_syntax_file_size equ dword[edi+130] ;максимальный размер файла синтаксиса
397
ted_text_colors     equ dword[edi+134] ;указатель на массив цветов текста
398
ted_help_text_f1    equ dword[edi+138] ;указатель на текст справки (по нажатии F1)
399
ted_help_id         equ dword[edi+142] ;идентификатор для справки
400
ted_key_words_data  equ dword[edi+146] ;указатель на структуры ключевых слов TexColViv
401
ted_tim_ch          equ dword[edi+150] ;колличество изменений в файле
402
ted_tim_undo        equ dword[edi+154] ;колличество отмененных действий
403
ted_tim_ls          equ dword[edi+158] ;время последнего сохранения
404
ted_tim_co          equ dword[edi+162] ;время последней цветовой разметки
405
ted_el_focus        equ dword[edi+166] ;указатель на переменную элемента в фокусе
406
ted_err_save        equ  byte[edi+170] ;ошибка сохранения файла
407
ted_panel_id        equ  byte[edi+171] ;номер открытой панели
408
ted_key_new         equ  byte[edi+172] ;символ, который будет добавлятся с клавиатуры
409
ted_symbol_new_line equ  byte[edi+173] ;символ завершения строки
410
ted_scr_w           equ dword[edi+174] ;вертикальный скроллинг
411
ted_scr_h           equ dword[edi+178] ;горизонтальный скроллинг
412
ted_arr_key_pos     equ dword[edi+182] ;указатель на массив позиций ключевых слов
413
ted_buffer          equ dword[edi+186] ;указатель на буфер копирования/вставки
414
ted_buffer_find     equ dword[edi+190] ;указатель на буфер для поиска
415
ted_cur_ins         equ  byte[edi+194] ;режим работы курсора (обычный или замена)
416
ted_mode_color      equ  byte[edi+195] ;режим выделения слов цветом (0-выкл. 1-вкл.)
417
ted_mode_invis      equ  byte[edi+196] ;режим показа непечатаемых символов
418
ted_gp_opt          equ  byte[edi+197] ;опции возвращаемые функцией ted_get_pos_by_cursor
419
ted_fun_on_key_ctrl_o equ dword[edi+198] ;указатель на функцию вызываемую при нажатии Ctrl+O (открытие файла)
420
ted_fun_on_key_ctrl_f equ dword[edi+202] ;... Ctrl+F (вызова/скрытия панели поиска)
421
ted_fun_on_key_ctrl_n equ dword[edi+206] ;... Ctrl+N (создание нового документа)
422
ted_fun_on_key_ctrl_s equ dword[edi+210] ;... Ctrl+S
423
ted_buffer_size       equ dword[edi+214] ;размер буфера копирования/вставки
424
ted_fun_find_err      equ dword[edi+218] ;указатель на функцию вызываемую если поиск закончился неудачно
2707 IgorA 425
;ted_fun_init_synt_err equ dword[edi+222] ;указатель на функцию вызываемую при ошибочном открытии файла синтаксиса
1457 IgorA 426
ted_fun_draw_panel_buttons equ dword[edi+226] ;указатель на функцию рисования панели с кнопками
427
ted_fun_draw_panel_find    equ dword[edi+230] ;указатель на функцию рисования панели поиска
428
ted_fun_draw_panel_syntax  equ dword[edi+234] ;указатель на функцию рисования панели синтаксиса
429
ted_fun_save_err      equ dword[edi+238] ;указатель на функцию вызываемую если сохранение файла закончилось неудачно
1464 IgorA 430
ted_increase_size     equ dword[edi+242] ;число символов на которые будет увечиваться память при нехватке
431
ted_ptr_free_symb     equ dword[edi+246] ;указатель на свободную память, в которую можно добавлять символ (используется внутри элемента для ускорения вставки текста)
6256 IgorA 432
ted_font_size         equ dword[edi+250] ;множитель для размера шрифта (при изменении нужно также изменять параметры ted_rec_w, ted_rec_h)
1457 IgorA 433
;------------------------------------------------------------------------------
434
ted_opt_ed_move_cursor equ 1 ;двигать курсор после добавления текста
435
ted_opt_ed_change_time equ 2 ;добавлять изменения при редактировании текста
436
ted_offs_sel  equ 34 ;смещение структуры sel
437
ted_offs_seln equ 50 ;смещение структуры seln
438
ted_offs_count_colors equ 90 ;смещение переменной колличества цветов
439
ted_offs_key_new equ 172
440
ted_offs_symbol_new_line equ 173 ;смещение символа новой строки
441
;------------------------------------------------------------------------------
442
 
443
 
444
 
445
; *** scroll bar constant ***
446
sb_offs_size_x   equ  0
447
sb_offs_start_x  equ  2
448
sb_offs_size_y   equ  4
449
sb_offs_start_y  equ  6
450
sb_offs_max_area equ 16
451
sb_offs_cur_area equ 20
452
sb_offs_position equ 24
1458 IgorA 453
sb_offs_bckg_col equ 28
454
sb_offs_frnt_col equ 32
455
sb_offs_line_col equ 36
1457 IgorA 456
sb_offs_redraw   equ 40
457
sb_offs_delta2   equ 46
458
sb_offs_all_redraw equ 80
3204 hidnplayr 459
;------------------------------------------------------------------------------
460
 
461
 
462
struc scrollbar xsize, xpos, ysize, ypos, btn_height, max, cur, pos, bgcol, frcol, linecol, ar_offset
463
{
464
.x_size         dw xsize
465
.x_pos          dw xpos
466
.y_size         dw ysize
467
.y_pos          dw ypos
468
.btn_height     dd btn_height
469
.type           dd ?
470
.max_area       dd max
471
.cur_area       dd cur
472
.position       dd pos
473
.bg_color       dd bgcol
474
.front_color    dd frcol
475
.line_color     dd linecol
476
.redraw         dd ?
477
.delta          dw ?
478
.delta2         dw ?
479
.r_size_x       dw ?
480
.r_start_x      dw ?
481
.r_size_y       dw ?
482
.r_start_y      dw ?
483
.m_pos          dd ?
484
.m_pos_2        dd ?
485
.m_keys         dd ?
486
.run_size       dd ?
487
.position2      dd ?
488
.work_size      dd ?
489
.all_redraw     dd ?
490
.ar_offset      dd ar_offset
3478 0CodErr 491
}
492
 
493
; *** ProgressBar  constants *** ;
494
PB_VALUE          equ +0
495
PB_LEFT           equ +4
496
PB_TOP            equ +8
497
PB_WIDTH          equ +12
498
PB_HEIGHT         equ +16
499
PB_STYLE          equ +20
500
PB_MIN            equ +24
501
PB_MAX            equ +28
502
PB_BACK_COLOR     equ +32
503
PB_PROGRESS_COLOR equ +36
6586 0CodErr 504
PB_FRAME_COLOR    equ +40
505
 
506
; *** Frame constants *** ;
507
FR_STYLE         equ +0  ; Dword
6675 pathoswith 508
FR_WIDTH         equ +4  ; Word
509
FR_LEFT          equ +6  ; Word
510
FR_HEIGHT        equ +8  ; Word
511
FR_TOP           equ +10 ; Word
6586 0CodErr 512
FR_OUTER_COLOR   equ +12 ; Dword
513
FR_INNER_COLOR   equ +16 ; Dword
514
FR_FLAGS         equ +20 ; Dword
515
FR_TEXT          equ +24 ; Dword
516
FR_TEXT_POSITION equ +28 ; Dword
517
FR_FONT          equ +32 ; Dword
518
FR_FONT_HEIGHT   equ +36 ; Dword
519
FR_FORE_COLOR    equ +40 ; Dword
520
FR_BACK_COLOR    equ +44 ; Dword
521
 
522
; FR_FLAGS = [x][yyy][z]
523
; z        -  Caption
524
; yyy      -  BorderStyle
525
; x        -  BackStyle
526
FR_CAPTION equ 00001b ; [z]
527
FR_DOUBLE  equ 00000b ; [yyy]
528
FR_RAISED  equ 00010b ; [yyy]
529
FR_SUNKEN  equ 00100b ; [yyy]
530
FR_ETCHED  equ 00110b ; [yyy]
531
FR_RIDGED  equ 01000b ; [yyy]
532
FR_FILLED  equ 10000b ; [x]
533
 
534
; FR_TEXT_POSITION
535
FR_TEXT_POS_BOTTOM equ 1
536
FR_TEXT_POS_TOP    equ 0