Subversion Repositories Kolibri OS

Rev

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