Subversion Repositories Kolibri OS

Rev

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

Rev Author Line No. Line
1476 IgorA 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_dir0 db '/sys/lib/'
6
boxlib_name db 'box_lib.obj',0
7
 
8
fn_icon_tl_sys db 'tl_sys_16.bmp',0
9
fn_icon_tl_nod db 'tl_nod_16.bmp',0
10
;---------------------------------------------------------------------
11
 
12
align 4
1489 IgorA 13
boxlib_import:
2125 IgorA 14
dd alib_init2 ;функция запускается макросом 1 раз при подключении бибилиотеки, потому в программе метка на нее не нужна
1489 IgorA 15
 
1476 IgorA 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
version_ed     dd aVersion_ed
20
 
21
;check_box_draw	dd aCheck_box_draw
22
;check_box_mouse dd aCheck_box_mouse
23
;version_ch	dd aVersion_ch
24
 
25
;option_box_draw  dd aOption_box_draw
26
;option_box_mouse dd aOption_box_mouse
27
;version_op	 dd aVersion_op
28
 
29
scrollbar_ver_draw  dd aScrollbar_ver_draw
30
scrollbar_ver_mouse dd aScrollbar_ver_mouse
31
scrollbar_hor_draw  dd aScrollbar_hor_draw
32
scrollbar_hor_mouse dd aScrollbar_hor_mouse
33
version_scrollbar   dd aVersion_scrollbar
34
 
35
;dinamic_button_draw  dd aDbutton_draw
36
;dinamic_button_mouse dd aDbutton_mouse
37
;version_dbutton      dd aVersion_dbutton
38
 
39
tl_data_init dd sz_tl_data_init
40
tl_data_clear dd sz_tl_data_clear
41
tl_info_clear dd sz_tl_info_clear
42
tl_key dd sz_tl_key
43
tl_mouse dd sz_tl_mouse
44
tl_draw dd sz_tl_draw
45
tl_info_undo dd sz_tl_info_undo
46
tl_info_redo dd sz_tl_info_redo
47
tl_node_add dd sz_tl_node_add
48
tl_node_set_data dd sz_tl_node_set_data
49
tl_node_get_data dd sz_tl_node_get_data
50
tl_node_delete dd sz_tl_node_delete
51
tl_cur_beg dd sz_tl_cur_beg
52
tl_cur_next dd sz_tl_cur_next
53
tl_cur_perv dd sz_tl_cur_perv
54
tl_node_close_open dd sz_tl_node_close_open
55
tl_node_lev_inc dd sz_tl_node_lev_inc
56
tl_node_lev_dec dd sz_tl_node_lev_dec
57
tl_node_move_down dd sz_tl_node_move_down
58
tl_save_mem dd sz_tl_save_mem
59
tl_load_mem dd sz_tl_load_mem
60
 
61
ted_but_save_file dd sz_ted_but_save_file
62
ted_but_sumb_upper dd sz_ted_but_sumb_upper
63
ted_but_sumb_lover dd sz_ted_but_sumb_lover
64
ted_can_save dd sz_ted_can_save
65
ted_clear dd sz_ted_clear
66
ted_delete dd sz_ted_delete
67
ted_draw dd sz_ted_draw
68
ted_init dd sz_ted_init
69
ted_init_scroll_bars dd sz_ted_init_scroll_bars
70
ted_init_syntax_file dd sz_ted_init_syntax_file
71
ted_is_select dd sz_ted_is_select
72
ted_key dd sz_ted_key
73
ted_mouse dd sz_ted_mouse
74
ted_open_file dd sz_ted_open_file
75
ted_text_add dd sz_ted_text_add
76
ted_but_select_word dd sz_ted_but_select_word
77
ted_but_cut dd sz_ted_but_cut
78
ted_but_copy dd sz_ted_but_copy
79
ted_but_paste dd sz_ted_but_paste
80
ted_but_undo dd sz_ted_but_undo
81
ted_but_redo dd sz_ted_but_redo
82
ted_but_reverse dd sz_ted_but_reverse
83
ted_but_find_next dd sz_ted_but_find_next
84
ted_text_colored dd sz_ted_text_colored
85
;version_text_edit dd sz_ted_version
86
 
2125 IgorA 87
PathShow_prepare dd sz_PathShow_prepare
88
PathShow_draw    dd sz_PathShow_draw
89
;Version_path_show dd szVersion_path_show
90
 
1476 IgorA 91
dd 0,0
1489 IgorA 92
alib_init2 db 'lib_init',0
1476 IgorA 93
 
94
aEdit_box_draw	db 'edit_box',0
95
aEdit_box_key	db 'edit_box_key',0
96
aEdit_box_mouse db 'edit_box_mouse',0
97
aVersion_ed	db 'version_ed',0
98
 
99
;aCheck_box_draw  db 'check_box_draw',0
100
;aCheck_box_mouse db 'check_box_mouse',0
101
;aVersion_ch	 db 'version_ch',0
102
 
103
;aOption_box_draw  db 'option_box_draw',0
104
;aOption_box_mouse db 'option_box_mouse',0
105
;aVersion_op	  db 'version_op',0
106
 
107
aScrollbar_ver_draw  db 'scrollbar_v_draw',0
108
aScrollbar_ver_mouse db 'scrollbar_v_mouse',0
109
aScrollbar_hor_draw  db 'scrollbar_h_draw',0
110
aScrollbar_hor_mouse db 'scrollbar_h_mouse',0
111
aVersion_scrollbar   db 'version_scrollbar',0
112
 
113
;aDbutton_draw    db 'dbutton_draw',0
114
;aDbutton_mouse   db 'dbutton_mouse',0
115
;aVersion_dbutton  db 'version_dbutton',0
116
 
117
sz_tl_data_init db 'tl_data_init',0
118
sz_tl_data_clear db 'tl_data_clear',0
119
sz_tl_info_clear db 'tl_info_clear',0
120
sz_tl_key db 'tl_key',0
121
sz_tl_mouse db 'tl_mouse',0
122
sz_tl_draw db 'tl_draw',0
123
sz_tl_info_undo db 'tl_info_undo',0
124
sz_tl_info_redo db 'tl_info_redo',0
125
sz_tl_node_add db 'tl_node_add',0
126
sz_tl_node_set_data db 'tl_node_set_data',0
127
sz_tl_node_get_data db 'tl_node_get_data',0
128
sz_tl_node_delete db 'tl_node_delete',0
129
sz_tl_cur_beg db 'tl_cur_beg',0
130
sz_tl_cur_next db 'tl_cur_next',0
131
sz_tl_cur_perv db 'tl_cur_perv',0
132
sz_tl_node_close_open db 'tl_node_close_open',0
133
sz_tl_node_lev_inc db 'tl_node_lev_inc',0
134
sz_tl_node_lev_dec db 'tl_node_lev_dec',0
135
sz_tl_node_move_down db 'tl_node_move_down',0
136
sz_tl_save_mem db 'tl_save_mem',0
137
sz_tl_load_mem db 'tl_load_mem',0
138
 
139
sz_ted_but_save_file	db 'ted_but_save_file',0
140
sz_ted_but_sumb_upper	db 'ted_but_sumb_upper',0
141
sz_ted_but_sumb_lover	db 'ted_but_sumb_lover',0
142
sz_ted_can_save 		db 'ted_can_save',0
143
sz_ted_clear			db 'ted_clear',0
144
sz_ted_delete			db 'ted_delete',0
145
sz_ted_draw				db 'ted_draw',0
146
sz_ted_init				db 'ted_init',0
147
sz_ted_init_scroll_bars db 'ted_init_scroll_bars',0
148
sz_ted_init_syntax_file db 'ted_init_syntax_file',0
149
sz_ted_is_select		db 'ted_is_select',0
150
sz_ted_key				db 'ted_key',0
151
sz_ted_mouse			db 'ted_mouse',0
152
sz_ted_open_file		db 'ted_open_file',0
153
sz_ted_text_add 		db 'ted_text_add',0
154
sz_ted_but_select_word	db 'ted_but_select_word',0
155
sz_ted_but_cut			db 'ted_but_cut',0
156
sz_ted_but_copy 		db 'ted_but_copy',0
157
sz_ted_but_paste		db 'ted_but_paste',0
158
sz_ted_but_undo 		db 'ted_but_undo',0
159
sz_ted_but_redo 		db 'ted_but_redo',0
160
sz_ted_but_reverse		db 'ted_but_reverse',0
161
sz_ted_but_find_next	db 'ted_but_find_next',0
162
sz_ted_text_colored		db 'ted_text_colored',0
163
;sz_ted_version db 'version_text_edit',0
2125 IgorA 164
 
165
sz_PathShow_prepare db 'PathShow_prepare',0
166
sz_PathShow_draw db 'PathShow_draw',0
167
;szVersion_path_show db 'version_PathShow',0
1476 IgorA 168
;---------------------------------------------------------------------
169
align 4
2125 IgorA 170
ws_dir_lbox: ;дочерний скроллинг для элемента ListBox
1476 IgorA 171
.x:
172
.size_x     dw 16 ;+0
173
.start_x    dw 0 ;+2
174
.y:
175
.size_y     dw 30 ;+4
176
.start_y    dw 70 ;+6
177
.btn_high   dd 15 ;+8
178
.type	    dd 1  ;+12
179
.max_area   dd 100  ;+16
2125 IgorA 180
rb 4+4
1476 IgorA 181
.bckg_col   dd 0xeeeeee ;+28
182
.frnt_col   dd 0xbbddff ;+32
183
.line_col   dd 0  ;+36
184
.redraw     dd 0  ;+40
185
.delta	    dw 0  ;+44
186
.delta2     dw 0  ;+46
187
.run_x:
2125 IgorA 188
rb 2*4+4*6
1476 IgorA 189
.all_redraw dd 0 ;+80
190
.ar_offset  dd 1 ;+84
191
;---------------------------------------------------------------------
192
 
193
count_of_dir_list_files equ 15
194
 
195
el_focus dd 0
196
mouse_dd dd 0
197
 
198
tree1 tree_list 264,count_of_dir_list_files+2, tl_key_no_edit+tl_draw_par_line+tl_list_box_mode,\
199
    16,16, 0x8080ff,0x0000ff,0xffffff, 5,5,180-17,185, 12,0,0, el_focus,\
200
    ws_dir_lbox,0
201
 
202
;dir_list memory
203
tree_file_struct:
2086 IgorA 204
	dd 1
205
	dd 0,0,count_of_dir_list_files
206
	dd dir_mem
207
	db 0
208
	dd file_name
1476 IgorA 209
 
210
dir_mem rb 32+304*count_of_dir_list_files
211
 
2125 IgorA 212
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
213
 
214
ed_buffer: ;текст для edit
215
  .127: rb MAX_COLOR_WORD_LEN+2
1476 IgorA 216
;------------------------------------------------------------------------------
217
struct TexSelect
218
  x0 dd ?
219
  y0 dd ?
220
  x1 dd ?
221
  y1 dd ?
222
ends
223
;------------------------------------------------------------------------------
224
align 4
225
tedit0: ;структура текстового редактора
2086 IgorA 226
	.wnd BOX 195,5+40,325,240 ;+ 0
1476 IgorA 227
	.rec BOX 30,13,7,10   ;+16
228
	.drag_m db 0 ;+32 выделение от мыши
229
	.drag_k db 0 ;+33 выделение от клавиатуры
230
	.sel  TexSelect 0,0,0,0 ;+34 структура выделения
231
	.seln TexSelect ;+50 дополнительная структура выделения
232
	.tex	  dd 0 ;+66 text memory pointer
233
	.tex_1	  dd 0 ;+70 text first symbol pointer
234
	.tex_end  dd 0 ;+74 text end memory pointer
235
	.cur_x	  dd 0 ;+78 координата x курсора
236
	.cur_y	  dd 0 ;+82 координата y курсора
237
	.max_chars dd 25002 ;+86 максимальное число символов в одном документе
238
	.count_colors_text dd 1 ;+90 колличество цветов текста
239
	.count_key_words   dd 0 ;+94 колличество ключевых слов
240
	.color_cursor	   dd 0xff0000 ;+98 цвет курсора
241
	.color_wnd_capt    dd 0x0080c0 ;+102 цвет полей вокруг окна
242
	.color_wnd_work    dd	   0x0 ;+106 цвет фона окна
243
	.color_wnd_bord    dd 0xffffff ;+110 цвет текста на полях
244
	.color_select	   dd 0x0000ff ;+114 цвет выделения
245
	.color_cur_text    dd 0xffff00 ;+118 цвет символа под курсором
246
	.color_wnd_text    dd 0x80ffff ;+122 цвет текста в окне
247
	.syntax_file	   dd 0 ;+126 указатель на начало файла синтаксиса
248
	.syntax_file_size  dd 500 ;+130 максимальный размер файла синтаксиса
249
	.text_colors	   dd 0 ;+134 указатель на массив цветов текста
250
	.help_text_f1	   dd 0 ;+138 указатель на текст справки (по нажатии F1)
251
	.help_id	   dd -1 ;+142 идентификатор для справки
252
	.key_words_data    dd 0 ;+146 указатель на структуры ключевых слов TexColViv
253
	.tim_ch      dd ? ;+150 количество изменений в файле
254
	.tim_undo    dd ? ;+154 количество отмененных действий
255
	.tim_ls      dd ? ;+158 время последнего сохранения
256
	.tim_co      dd ? ;+162 время последней цветовой разметки
257
	.el_focus    dd el_focus ;+166 указатель на переменную элемента в фокусе
258
	.err_save    db 0 ;+170 ошибка сохранения файла
259
	.panel_id    db 0 ;+171 номер открытой панели
260
	.key_new     db 0 ;+172 символ, который будет добавлятся с клавиатуры
261
	.symbol_new_line db 20 ;+173 символ завершения строки
262
	.scr_w	     dd scrol_w1 ;+174 вертикальный скроллинг
263
	.scr_h	     dd scrol_h1 ;+178 горизонтальный скроллинг
264
	.arr_key_pos dd 0 ;+182 указатель на массив позиций ключевых слов
265
	.buffer      dd buf ;+186 указатель на буфер копирования/вставки
266
	.buffer_find dd 0 ;+190 указатель на буфер для поиска
267
	.cur_ins     db 1 ;+194 режим работы курсора (обычный или замена)
268
	.mode_color  db 1 ;+195 режим выделения слов цветом (0-выкл. 1-вкл.)
269
	.mode_invis  db 0 ;+196 режим показа непечатаемых символов
270
	.gp_opt      db 0 ;+197 опции возвращаемые функцией ted_get_pos_by_cursor
271
	.fun_on_key_ctrl_o dd but_ctrl_o ;+198 указатель на функцию вызываемую при нажатии Ctrl+O (открытие файла)
272
	.fun_on_key_ctrl_f dd 0 ;+202 ... Ctrl+F (вызова/скрытия панели поиска)
273
	.fun_on_key_ctrl_n dd but_ctrl_n ;+206 ... Ctrl+N (создание нового документа)
274
	.fun_on_key_ctrl_s dd 0 ;+210 ... Ctrl+S
275
	.buffer_size	   dd BUF_SIZE ;+214 размер буфера копирования/вставки
276
	.fun_find_err	   dd 0 ;+218 указатель на функцию вызываемую если поиск закончился неудачно
277
	.fun_init_synt_err dd 0 ;+222 указатель на функцию вызываемую при ошибочном открытии файла синтаксиса
278
	.fun_draw_panel_buttons dd 0 ;+226 указатель на функцию рисования панели с кнопками
279
	.fun_draw_panel_find	dd 0 ;+230 указатель на функцию рисования панели поиска
280
	.fun_draw_panel_syntax	dd 0 ;+234 указатель на функцию рисования панели синтаксиса
281
	.fun_save_err		dd 0 ;+238 указатель на функцию вызываемую если сохранение файла закончилось неудачно
282
	.increase_size dd 1000 ;+242 число символов на которые будет увечиваться память при нехватке
283
	.ptr_free_symb dd ? ;+246 указатель на свободную память, в которую можно добавлять символ (используется внутри элемента для ускорения вставки текста)
284
;------------------------------------------------------------------------------
285
align 4
286
scrol_w1:
287
.x:
288
.size_x   dw 16 ;+0
289
.start_x  dw 85 ;+2
290
.y:
291
.size_y   dw 100 ; +4
292
.start_y  dw  15 ; +6
293
.btn_high dd  15 ; +8
294
.type	  dd   1 ;+12
295
.max_area dd 100 ;+16
2125 IgorA 296
rb 4+4
1476 IgorA 297
.bckg_col dd 0xeeeeee ;+28
298
.frnt_col dd 0xbbddff ;+32
299
.line_col dd 0x808080 ;+36
300
.redraw   dd   0 ;+40
301
.delta	  dw   0 ;+44
302
.delta2   dw   0 ;+46
303
.run_x:
2125 IgorA 304
rb 2*4+4*6
1476 IgorA 305
.all_redraw dd 0 ;+80
306
.ar_offset  dd 1 ;+84
307
;---------------------------------------------------------------------
308
align 4
309
scrol_h1:
310
.x:
311
.size_x     dw 85 ;+0
312
.start_x    dw 30 ;+2
313
.y:
314
.size_y     dw 16 ;+4
315
.start_y    dw 100 ;+6
316
.btn_high   dd 15 ;+8
317
.type	    dd 1  ;+12
318
.max_area   dd 100 ;+16
2125 IgorA 319
rb 4+4
1476 IgorA 320
.bckg_col   dd 0xeeeeee ;+28
321
.frnt_col   dd 0xbbddff ;+32
322
.line_col   dd 0x808080 ;+36
323
.redraw     dd 0  ;+40
324
.delta	    dw 0  ;+44
325
.delta2     dw 0  ;+46
326
.run_x:
2125 IgorA 327
rb 2*4+4*6
1476 IgorA 328
.all_redraw dd 0 ;+80
329
.ar_offset  dd 1 ;+84
330
;---------------------------------------------------------------------
2125 IgorA 331
PathShow_data_1:
332
.type			dd 0 ;+0
333
.start_y		dw 10 ;+4
334
.start_x		dw 210+CAPT_PATH_WIDTH ;+6
335
.font_size_x		dw 6	;+8	; 6 - for font 0, 8 - for font 1
336
.area_size_x		dw 310+16-CAPT_PATH_WIDTH	;+10
337
.font_number		dd 0 ;+12	; 0 - monospace, 1 - variable
338
.background_flag	dd 1 ;+16
339
.font_color		dd 0x0 ;+20
340
.background_color	dd 0xffffff ;+24
341
.text_pointer		dd file_name ;+28
342
.work_area_pointer	dd file_name_rez ;+32
343
.temp_text_length	dd 0 ;+36
1476 IgorA 344
 
345
align 4
346
str_file_70:
347
  rb (5*4+1+4) ;место под структуру для работы с файлом (ф. 70)
348
 
349
text_buffer db 500 dup(0)
350
 
351
align 4
352
;conv_tabl rb 128 ;таблица для конвертирования scan-кода в ascii-код
353
buf db BUF_SIZE dup(0) ;буфер для копирования | вставки
354
 
355
capt_header db 'macro wo txt,lf1,p1,p2,p3{',13
2102 IgorA 356
	db '@@: db txt',13,'rb @b+40-$',13,'dd lf1',13,'db p1',13,'dw p2+0',13,'db p3',13,'}',13
1476 IgorA 357
	db 'count_colors_text dd (text-color_wnd_text)/4',13
2102 IgorA 358
	db 'count_key_words dd (f1-text)/48',13,0
1476 IgorA 359
col_1 db 'color_cursor dd ',0	;+ 98 цвет курсора
360
col_2 db 'color_wnd_capt dd ',0 ;+102 цвет полей вокруг окна
361
col_3 db 'color_wnd_work dd ',0 ;+106 цвет фона окна
362
col_4 db 'color_wnd_bord dd ',0 ;+110 цвет текста на полях
363
col_5 db 'color_select dd ',0	;+114 цвет выделения
364
col_6 db 'color_cur_text dd ',0 ;+118 цвет символа под курсором
365
col_7 db 'color_wnd_text:',13,0 ;+122 цвет текста в окне
366
 
367
capt_lbl_wo db 'text:',13,0
368
capt_beg_word db 'wo<',39,0
369
capt_beg_db db ':db ',39,0
370
capt_end_word db 39,'>,',0
371
capt_type_dd db 9,'dd ',0
372
capt_lbl_f1 db 'f1: db 0',13,0
373
capt_end_word_f1 db 39,',0',13,0
374
capt_calc_f1 db 'f1'
375
capt_point db '.',0
376
capt_lbl_f1_use db '-f1',0
377
capt_null db '0',0
378
 
379
KM_SHIFT equ 0x00010000
380
KM_CTRL equ 0x00020000
381
KM_ALT equ 0x00040000
382
KM_NUMLOCK equ 0x00080000
383
 
384
; KEY CODES
385
KEY_F1 equ 0x0000003B
386
KEY_F2 equ 0x0000003C
387
KEY_F3 equ 0x0000003D
388