Subversion Repositories Kolibri OS

Rev

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

  1. fn_col_option dd def_col_file
  2. fn_syntax_dir db 'info/',0
  3. def_col_file db 'default.syn',0
  4.  
  5. system_dir_0 db '/sys/lib/'
  6. lib_name_0 db 'box_lib.obj',0
  7.  
  8. system_dir_1 db '/sys/lib/'
  9. lib_name_1 db 'libimg.obj',0
  10. ;---------------------------------------------------------------------
  11.  
  12. align 4
  13. import_box_lib:
  14. dd alib_init2 ;функция запускается макросом 1 раз при подключении бибилиотеки, потому в программе метка на нее не нужна
  15.  
  16. edit_box_draw  dd aEdit_box_draw
  17. edit_box_key   dd aEdit_box_key
  18. edit_box_mouse dd aEdit_box_mouse
  19.  
  20. scrollbar_ver_draw  dd aScrollbar_ver_draw
  21. scrollbar_ver_mouse dd aScrollbar_ver_mouse
  22. scrollbar_hor_draw  dd aScrollbar_hor_draw
  23. scrollbar_hor_mouse dd aScrollbar_hor_mouse
  24.  
  25. tl_data_init dd sz_tl_data_init
  26. tl_data_clear dd sz_tl_data_clear
  27. tl_info_clear dd sz_tl_info_clear
  28. tl_key dd sz_tl_key
  29. tl_mouse dd sz_tl_mouse
  30. tl_draw dd sz_tl_draw
  31. tl_info_undo dd sz_tl_info_undo
  32. tl_info_redo dd sz_tl_info_redo
  33. tl_node_add dd sz_tl_node_add
  34. tl_node_set_data dd sz_tl_node_set_data
  35. tl_node_get_data dd sz_tl_node_get_data
  36. tl_node_delete dd sz_tl_node_delete
  37. tl_cur_beg dd sz_tl_cur_beg
  38. tl_cur_next dd sz_tl_cur_next
  39. tl_cur_perv dd sz_tl_cur_perv
  40. tl_node_close_open dd sz_tl_node_close_open
  41. tl_node_lev_inc dd sz_tl_node_lev_inc
  42. tl_node_lev_dec dd sz_tl_node_lev_dec
  43. tl_node_move_down dd sz_tl_node_move_down
  44. tl_save_mem dd sz_tl_save_mem
  45. tl_load_mem dd sz_tl_load_mem
  46.  
  47. ted_but_sumb_upper dd sz_ted_but_sumb_upper
  48. ted_but_sumb_lover dd sz_ted_but_sumb_lover
  49. ted_can_save dd sz_ted_can_save
  50. ted_clear dd sz_ted_clear
  51. ted_delete dd sz_ted_delete
  52. ted_draw dd sz_ted_draw
  53. ted_init dd sz_ted_init
  54. ted_init_scroll_bars dd sz_ted_init_scroll_bars
  55. ted_init_syntax_file dd sz_ted_init_syntax_file
  56. ted_is_select dd sz_ted_is_select
  57. ted_key dd sz_ted_key
  58. ted_mouse dd sz_ted_mouse
  59. ted_open_file dd sz_ted_open_file
  60. ted_save_file dd sz_ted_save_file
  61. ted_text_add dd sz_ted_text_add
  62. ted_but_select_word dd sz_ted_but_select_word
  63. ted_but_cut dd sz_ted_but_cut
  64. ted_but_copy dd sz_ted_but_copy
  65. ted_but_paste dd sz_ted_but_paste
  66. ted_but_undo dd sz_ted_but_undo
  67. ted_but_redo dd sz_ted_but_redo
  68. ted_but_reverse dd sz_ted_but_reverse
  69. ted_but_find dd sz_ted_but_find
  70. ted_text_colored dd sz_ted_text_colored
  71.  
  72. PathShow_prepare dd sz_PathShow_prepare
  73. PathShow_draw    dd sz_PathShow_draw
  74.  
  75. dd 0,0
  76. alib_init2 db 'lib_init',0
  77.  
  78. aEdit_box_draw  db 'edit_box',0
  79. aEdit_box_key   db 'edit_box_key',0
  80. aEdit_box_mouse db 'edit_box_mouse',0
  81.  
  82. aScrollbar_ver_draw  db 'scrollbar_v_draw',0
  83. aScrollbar_ver_mouse db 'scrollbar_v_mouse',0
  84. aScrollbar_hor_draw  db 'scrollbar_h_draw',0
  85. aScrollbar_hor_mouse db 'scrollbar_h_mouse',0
  86.  
  87. sz_tl_data_init db 'tl_data_init',0
  88. sz_tl_data_clear db 'tl_data_clear',0
  89. sz_tl_info_clear db 'tl_info_clear',0
  90. sz_tl_key db 'tl_key',0
  91. sz_tl_mouse db 'tl_mouse',0
  92. sz_tl_draw db 'tl_draw',0
  93. sz_tl_info_undo db 'tl_info_undo',0
  94. sz_tl_info_redo db 'tl_info_redo',0
  95. sz_tl_node_add db 'tl_node_add',0
  96. sz_tl_node_set_data db 'tl_node_set_data',0
  97. sz_tl_node_get_data db 'tl_node_get_data',0
  98. sz_tl_node_delete db 'tl_node_delete',0
  99. sz_tl_cur_beg db 'tl_cur_beg',0
  100. sz_tl_cur_next db 'tl_cur_next',0
  101. sz_tl_cur_perv db 'tl_cur_perv',0
  102. sz_tl_node_close_open db 'tl_node_close_open',0
  103. sz_tl_node_lev_inc db 'tl_node_lev_inc',0
  104. sz_tl_node_lev_dec db 'tl_node_lev_dec',0
  105. sz_tl_node_move_down db 'tl_node_move_down',0
  106. sz_tl_save_mem db 'tl_save_mem',0
  107. sz_tl_load_mem db 'tl_load_mem',0
  108.  
  109. sz_ted_but_sumb_upper   db 'ted_but_sumb_upper',0
  110. sz_ted_but_sumb_lover   db 'ted_but_sumb_lover',0
  111. sz_ted_can_save                 db 'ted_can_save',0
  112. sz_ted_clear                    db 'ted_clear',0
  113. sz_ted_delete                   db 'ted_delete',0
  114. sz_ted_draw                             db 'ted_draw',0
  115. sz_ted_init                             db 'ted_init',0
  116. sz_ted_init_scroll_bars db 'ted_init_scroll_bars',0
  117. sz_ted_init_syntax_file db 'ted_init_syntax_file',0
  118. sz_ted_is_select                db 'ted_is_select',0
  119. sz_ted_key                              db 'ted_key',0
  120. sz_ted_mouse                    db 'ted_mouse',0
  121. sz_ted_open_file                db 'ted_open_file',0
  122. sz_ted_save_file                db 'ted_save_file',0
  123. sz_ted_text_add                 db 'ted_text_add',0
  124. sz_ted_but_select_word  db 'ted_but_select_word',0
  125. sz_ted_but_cut                  db 'ted_but_cut',0
  126. sz_ted_but_copy                 db 'ted_but_copy',0
  127. sz_ted_but_paste                db 'ted_but_paste',0
  128. sz_ted_but_undo                 db 'ted_but_undo',0
  129. sz_ted_but_redo                 db 'ted_but_redo',0
  130. sz_ted_but_reverse              db 'ted_but_reverse',0
  131. sz_ted_but_find db 'ted_but_find',0
  132. sz_ted_text_colored             db 'ted_text_colored',0
  133. sz_ted_go_to_position   db 'ted_go_to_position',0
  134.  
  135. sz_PathShow_prepare db 'PathShow_prepare',0
  136. sz_PathShow_draw db 'PathShow_draw',0
  137.  
  138. align 4
  139. import_libimg:
  140.         dd alib_init1
  141.         img_to_rgb2 dd aimg_to_rgb2
  142.         img_decode  dd aimg_decode
  143.         img_destroy dd aimg_destroy
  144. dd 0,0
  145.         alib_init1   db 'lib_init',0
  146.         aimg_to_rgb2 db 'img_to_rgb2',0
  147.         aimg_decode  db 'img_decode',0 ;автоматически определяет формат графических данных
  148.         aimg_destroy db 'img_destroy',0
  149. ;---------------------------------------------------------------------
  150. ;дочерний скроллинг для элемента ListBox
  151. align 4
  152. ws_dir_lbox scrollbar 16,0, 30,70, 15, 100,30,0, 0,0,0, 1
  153. ;---------------------------------------------------------------------
  154.  
  155. count_of_dir_list_files equ 15
  156.  
  157. el_focus dd 0
  158. mouse_dd dd 0
  159.  
  160. tree1 tree_list 264,count_of_dir_list_files+2, tl_key_no_edit+tl_draw_par_line+tl_list_box_mode,\
  161.     16,16, 0x8080ff,0x0000ff,0xffffff, 5,5,180-17,185, 12,0,0, el_focus,\
  162.     ws_dir_lbox,0
  163.  
  164. ;dir_list memory
  165. tree_file_struct:
  166.         dd 1
  167.         dd 0,0,count_of_dir_list_files
  168.         dd dir_mem
  169.         db 0
  170.         dd file_name
  171.  
  172. dir_mem rb 32+304*count_of_dir_list_files
  173.  
  174. edit1 edit_box 310+16-CAPT_PATH_WIDTH, 210+CAPT_PATH_WIDTH, 25, 0xffffff, 0xff, 0xff0000, 0, 0x80, MAX_COLOR_WORD_LEN, ed_buffer.127, mouse_dd, 0
  175.  
  176. ed_buffer: ;текст для edit
  177.   .127: rb MAX_COLOR_WORD_LEN+2
  178.  
  179. ;------------------------------------------------------------------------------
  180. align 4
  181. tedit0: ;структура текстового редактора
  182.         .wnd BOX 195,5+40,325,240 ;+ 0
  183.         .rec BOX 30,13,7,10   ;+16
  184.         .drag_m db 0 ;+32 выделение от мыши
  185.         .drag_k db 0 ;+33 выделение от клавиатуры
  186.         .sel rb 16 ;+34 структура выделения
  187.         .seln rb 16 ;+50 дополнительная структура выделения
  188.         .tex      dd 0 ;+66 text memory pointer
  189.         .tex_1    dd 0 ;+70 text first symbol pointer
  190.         .tex_end  dd 0 ;+74 text end memory pointer
  191.         .cur_x    dd 0 ;+78 координата x курсора
  192.         .cur_y    dd 0 ;+82 координата y курсора
  193.         .max_chars dd 25002 ;+86 максимальное число символов в одном документе
  194.         .count_colors_text dd 1 ;+90 колличество цветов текста
  195.         .count_key_words   dd 0 ;+94 колличество ключевых слов
  196.         .color_cursor      dd 0xff0000 ;+98 цвет курсора
  197.         .color_wnd_capt    dd 0x0080c0 ;+102 цвет полей вокруг окна
  198.         .color_wnd_work    dd      0x0 ;+106 цвет фона окна
  199.         .color_wnd_bord    dd 0xffffff ;+110 цвет текста на полях
  200.         .color_select      dd 0x0000ff ;+114 цвет выделения
  201.         .color_cur_text    dd 0xffff00 ;+118 цвет символа под курсором
  202.         .color_wnd_text    dd 0x80ffff ;+122 цвет текста в окне
  203.         .syntax_file       dd 0 ;+126 указатель на начало файла синтаксиса
  204.         .syntax_file_size  dd 500 ;+130 максимальный размер файла синтаксиса
  205.         .text_colors       dd 0 ;+134 указатель на массив цветов текста
  206.         .help_text_f1      dd 0 ;+138 указатель на текст справки (по нажатии F1)
  207.         .help_id           dd -1 ;+142 идентификатор для справки
  208.         .key_words_data    dd 0 ;+146 указатель на структуры ключевых слов TexColViv
  209.         .tim_ch      dd ? ;+150 количество изменений в файле
  210.         .tim_undo    dd ? ;+154 количество отмененных действий
  211.         .tim_ls      dd ? ;+158 время последнего сохранения
  212.         .tim_co      dd ? ;+162 время последней цветовой разметки
  213.         .el_focus    dd el_focus ;+166 указатель на переменную элемента в фокусе
  214.         .err_save    db 0 ;+170 ошибка сохранения файла
  215.         .panel_id    db 0 ;+171 номер открытой панели
  216.         .key_new     db 0 ;+172 символ, который будет добавлятся с клавиатуры
  217.         .symbol_new_line db 20 ;+173 символ завершения строки
  218.         .scr_w       dd scrol_w1 ;+174 вертикальный скроллинг
  219.         .scr_h       dd scrol_h1 ;+178 горизонтальный скроллинг
  220.         .arr_key_pos dd 0 ;+182 указатель на массив позиций ключевых слов
  221.         .buffer      dd buf ;+186 указатель на буфер копирования/вставки
  222.         .buffer_find dd 0 ;+190 указатель на буфер для поиска
  223.         .cur_ins     db 1 ;+194 режим работы курсора (обычный или замена)
  224.         .mode_color  db 1 ;+195 режим выделения слов цветом (0-выкл. 1-вкл.)
  225.         .mode_invis  db 0 ;+196 режим показа непечатаемых символов
  226.         .gp_opt      db 0 ;+197 опции возвращаемые функцией ted_get_pos_by_cursor
  227.         .fun_on_key_ctrl_all dd ted_but_ctrl_all ;+198 указатель на функцию вызываемую при нажатии Ctrl+N,O,S,F,G,H
  228.         dd 0,0,0
  229.         .buffer_size       dd BUF_SIZE ;+214 размер буфера копирования/вставки
  230.         .fun_find_err      dd 0 ;+218 указатель на функцию вызываемую если поиск закончился неудачно
  231.         .fun_init_synt_err dd 0 ;+222 указатель на функцию вызываемую при ошибочном открытии файла синтаксиса
  232.         .fun_draw_panel_buttons dd 0 ;+226 указатель на функцию рисования панели с кнопками
  233.         .fun_draw_panels        dd 0 ;+230 указатель на функцию рисования панели поиска|...|синтаксиса
  234.         dd 0
  235.         .fun_save_err           dd 0 ;+238 указатель на функцию вызываемую если сохранение файла закончилось неудачно
  236.         .increase_size dd 1000 ;+242 число символов на которые будет увечиваться память при нехватке
  237.         .ptr_free_symb dd ? ;+246 указатель на свободную память, в которую можно добавлять символ (используется внутри элемента для ускорения вставки текста)
  238.         .font_size dd 0   ;+250 множитель для размера шрифта
  239. ;------------------------------------------------------------------------------
  240. align 4
  241. scrol_w1 scrollbar 16,85, 100,15, 15, 100,0,0, 0xeeeeee,0xbbddff,0x808080, 1
  242.  
  243. align 4
  244. scrol_h1 scrollbar 85,30,  16,100, 15, 100,0,0, 0xeeeeee,0xbbddff,0x808080, 1
  245. ;---------------------------------------------------------------------
  246. PathShow_data_1:
  247. .type                   dd 0 ;+0
  248. .start_y                dw 10 ;+4
  249. .start_x                dw 210+CAPT_PATH_WIDTH ;+6
  250. .font_size_x            dw 6    ;+8     ; 6 - for font 0, 8 - for font 1
  251. .area_size_x            dw 310+16-CAPT_PATH_WIDTH       ;+10
  252. .font_number            dd 0 ;+12       ; 0 - monospace, 1 - variable
  253. .background_flag        dd 1 ;+16
  254. .font_color             dd 0x0 ;+20
  255. .background_color       dd 0xffffff ;+24
  256. .text_pointer           dd file_name ;+28
  257. .work_area_pointer      dd file_name_rez ;+32
  258. .temp_text_length       dd 0 ;+36
  259.  
  260. align 4
  261. str_file_70:
  262.   rb (5*4+1+4) ;место под структуру для работы с файлом (ф. 70)
  263.  
  264. text_buffer db 500 dup(0)
  265.  
  266. align 4
  267. ;conv_tabl rb 128 ;таблица для конвертирования scan-кода в ascii-код
  268. buf db BUF_SIZE dup(0) ;буфер для копирования | вставки
  269.  
  270. capt_header db 'macro wo txt,f1,p1,p2,p3{',13
  271.         db '@@: db txt',13,'rb @b+40-$',13,'dd f1+0',13,'db p1',13,'dw p2+0',13,'db p3',13,'}',13
  272.         db 'count_colors_text dd (text-color_wnd_text)/4',13
  273.         db 'count_key_words dd (f1-text)/48',13,0
  274. col_1 db 'color_cursor dd ',0   ;+ 98 цвет курсора
  275. col_2 db 'color_wnd_capt dd ',0 ;+102 цвет полей вокруг окна
  276. col_3 db 'color_wnd_work dd ',0 ;+106 цвет фона окна
  277. col_4 db 'color_wnd_bord dd ',0 ;+110 цвет текста на полях
  278. col_5 db 'color_select dd ',0   ;+114 цвет выделения
  279. col_6 db 'color_cur_text dd ',0 ;+118 цвет символа под курсором
  280. col_7 db 'color_wnd_text:',13,0 ;+122 цвет текста в окне
  281.  
  282. capt_lbl_wo db 'text:',13,0
  283. capt_beg_word db 'wo<',39,0
  284. capt_beg_db db ':db ',39,0
  285. capt_end_word db 39,'>,',0
  286. capt_type_dd db 9,'dd ',0
  287. capt_lbl_f1 db 'f1: db 0',13,0
  288. capt_end_word_f1 db 39,',0',13,0
  289. capt_calc_f1 db 'f1'
  290. capt_point db '.',0
  291. capt_lbl_f1_use db '-f1',0
  292. capt_null db '0',0
  293.  
  294. KM_SHIFT equ 0x00010000
  295. KM_CTRL equ 0x00020000
  296. KM_ALT equ 0x00040000
  297. KM_NUMLOCK equ 0x00080000
  298.  
  299. ; KEY CODES
  300. KEY_F1 equ 0x0000003B
  301. KEY_F2 equ 0x0000003C
  302. KEY_F3 equ 0x0000003D
  303.  
  304.