Subversion Repositories Kolibri OS

Rev

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

  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]
  27.  
  28. ed_struc_size = 84
  29.  
  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
  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. {
  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
  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. @@:
  92.         mov     eax,dword [esi+36] ;цвет графики в окне (разделительные линии и т.п.)
  93.         mov     ebx,dword [esi+20] ;цвет рабочей области окна
  94.         push    dword eax
  95.         pop     dword ed_focus_border_color
  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
  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
  112.         add     edi,ed_struc_size
  113.         loop    @b
  114. }
  115.  
  116.  
  117. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  118. ;Basic macros for use CheckBox                            ;
  119. ;Last change 17.01.2013                                   ;
  120. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  121. ch_text_margin equ [edi+8] ;=4 расстояние от прямоугольника чек бокса до надписи
  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]  ;цвет текста
  125. ch_text_ptr     equ [edi+24] ;указатель на начало текстовой строки
  126. ch_flags equ [edi+28]      ;флаги
  127.  
  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-го бита
  133.  
  134. 2ch_left_s      equ [ebp]       ;кордината начала рисования по х
  135. 2ch_top_s       equ [ebp+4]     ;координата начала рисования по у
  136. 2ch_text_margin equ [ebp+8]     ;=4 расстояние от прямоугольника чек бокса до надписи
  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]  ;цвет текста
  140. 2ch_text_ptr    equ [ebp+24]    ;указатель на начало текстовой строки
  141. 2ch_flags       equ [ebp+28]    ;флаги
  142. 2ch_sz_str      equ [ebp+32]    ;длинна строки, вычисляется при инициализации компонента
  143.  
  144. struc check_box2 left_s,top_s,ch_text_margin,color,border_color,text_color,text,flags
  145. {                               ;структура параметров для чек бокса
  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          ;длинна строки, вычисляется при инициализации компонента
  155. }
  156.  
  157. ;Макрос проверки щелчка мышки над группой checkboxes.
  158. macro init_checkboxes2 start,end_cb
  159. {
  160. if start+ch_struc_size eq end_cb
  161.         ;когда один элемент
  162.         push    start                   ;указатель на checkbox
  163.         call    [init_checkbox] ;настройка checkbox'а
  164. else
  165.         ;когда несколько элементов
  166.         mov     ebp,start
  167.         mov     ecx,((end_cb-start)/ch_struc_size)
  168. @@:
  169.         push    ebp                     ;указатель на первый checkbox
  170.         call    [init_checkbox] ;настройка checkbox'ов
  171.         add     ebp,ch_struc_size
  172.         loop    @b
  173. end if
  174. }
  175.  
  176. ;Макрос проверки мышки группы checkboxes.
  177. macro checkboxes_mouse2 start,end_cb
  178. {
  179. if start+ch_struc_size eq end_cb
  180.         ;когда один элемент
  181.         push    start                   ;указатель на checkbox
  182.         call    [check_box_mouse]       ;макрос проверки мышки над checkbox'ом
  183. else
  184.         ;когда несколько элементов
  185.         mov     ebp,start
  186.         mov     ecx,((end_cb-start)/ch_struc_size)
  187. @@:
  188.         push    ebp                     ;указатель на первый checkbox
  189.         call    [check_box_mouse]       ;макрос проверки мышки над checkbox'ами
  190.         add     ebp,ch_struc_size
  191.         loop    @b
  192. end if
  193. }
  194.  
  195. ;Макрос отрисовки группы checkboxes.
  196. macro checkboxes_draw2 start,end_cb
  197. {
  198. if start+ch_struc_size eq end_cb
  199.         ;когда один элемент
  200.         push    start                   ;указатель на checkbox
  201.         call    [check_box_draw]        ;нарисовать checkbox
  202. else
  203.         ;когда несколько элементов
  204.         mov     ebp,start
  205.         mov     ecx,((end_cb-start)/ch_struc_size)
  206. @@:
  207.         push    ebp                     ;указатель на первый checkbox
  208.         call    [check_box_draw]        ;нарисовать checkbox'ы
  209.         add     ebp,ch_struc_size
  210.         loop    @b
  211. end if
  212. }
  213.  
  214. macro check_boxes_set_sys_color2 start,end,color_table
  215. {
  216.         mov     ebp,start
  217.         mov     ecx,((end-start)/ch_struc_size)
  218.         mov     esi,color_table
  219. @@:
  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
  227. }
  228.  
  229.  
  230.  
  231.  
  232.  
  233. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  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
  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              ; флаги
  251. }
  252.  
  253. ;op_struc_size equ
  254. option_group equ [edi]
  255. op_left equ [edi+4]    ;координата начала рисования по х
  256. op_top equ [edi+6]     ;координата начала рисования по у
  257. op_text_margin equ [edi+8]      ;=4 расстояние от прямоугольника чек бокса до надписи
  258. op_size equ [edi+12]             ;12 размер квадрата чек бокса
  259. op_color equ [edi+16]
  260. op_border_color equ [edi+20] ; or [edi+4] ;цвет рамки optionbox ее можно задать самостоятельно
  261. op_text_color equ   [edi+24];[edi+4]  ;цвет текста
  262. op_text_ptr equ [edi+28]    ;указатель на начало текстовой строки
  263. op_text_length equ [edi+32]
  264. op_flags equ [edi+36]       ;флаги
  265.  
  266. macro option_boxes_set_sys_color color_table,group
  267. {
  268.         mov     ecx,group
  269.         mov     esi,color_table
  270.         mov     edi,[ecx]
  271.         mov     eax,[esi+24] ;цвет кнопки в рабочей области окна
  272.         mov     ebx,[esi+28] ;цвет текста на кнопке
  273. @@:
  274.         mov     op_border_color,eax
  275.         mov     op_color,ebx
  276.         push    dword [esi+32] ;цвет текста в рабочей области окна
  277.         pop     dword op_text_color
  278.         add     ecx,4
  279.         mov     edi,[ecx]
  280.         cmp     edi,0
  281.         jne     @b
  282. }
  283. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  284. ;Basic macros for use TreeList                            ;
  285. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  286.  
  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,\
  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
  315. }
  316.  
  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
  342.  
  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 ;размер заголовка для записи/чтения элементов
  354. tl_offs_box equ 0 ;начало BOX структуры для tree_list
  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] ;указатель на функцию вызываемую если поиск закончился неудачно
  425. ;ted_fun_init_synt_err equ dword[edi+222] ;указатель на функцию вызываемую при ошибочном открытии файла синтаксиса
  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] ;указатель на функцию вызываемую если сохранение файла закончилось неудачно
  430. ted_increase_size     equ dword[edi+242] ;число символов на которые будет увечиваться память при нехватке
  431. ted_ptr_free_symb     equ dword[edi+246] ;указатель на свободную память, в которую можно добавлять символ (используется внутри элемента для ускорения вставки текста)
  432. ted_font_size         equ dword[edi+250] ;множитель для размера шрифта (при изменении нужно также изменять параметры ted_rec_w, ted_rec_h)
  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
  453. sb_offs_bckg_col equ 28
  454. sb_offs_frnt_col equ 32
  455. sb_offs_line_col equ 36
  456. sb_offs_redraw   equ 40
  457. sb_offs_delta2   equ 46
  458. sb_offs_all_redraw equ 80
  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
  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
  504. PB_FRAME_COLOR    equ +40
  505.  
  506. ; *** Frame constants *** ;
  507. FR_STYLE         equ +0  ; Dword
  508. FR_WIDTH         equ +4  ; Word
  509. FR_LEFT          equ +6  ; Word
  510. FR_HEIGHT        equ +8  ; Word
  511. FR_TOP           equ +10 ; Word
  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