Subversion Repositories Kolibri OS

Rev

Rev 7577 | Rev 7861 | 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
 
4990 IgorA 5
system_dir_0 db '/sys/lib/'
6
lib_name_0 db 'box_lib.obj',0
1476 IgorA 7
 
4990 IgorA 8
system_dir_1 db '/sys/lib/'
9
lib_name_1 db 'libimg.obj',0
1476 IgorA 10
;---------------------------------------------------------------------
11
 
12
align 4
4990 IgorA 13
import_box_lib:
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
 
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
4990 IgorA 60
ted_save_file dd sz_ted_save_file
1476 IgorA 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
7577 IgorA 69
ted_but_find dd sz_ted_but_find
1476 IgorA 70
ted_text_colored dd sz_ted_text_colored
71
 
2125 IgorA 72
PathShow_prepare dd sz_PathShow_prepare
73
PathShow_draw    dd sz_PathShow_draw
74
 
1476 IgorA 75
dd 0,0
1489 IgorA 76
alib_init2 db 'lib_init',0
1476 IgorA 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
4990 IgorA 122
sz_ted_save_file		db 'ted_save_file',0
1476 IgorA 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
7577 IgorA 131
sz_ted_but_find	db 'ted_but_find',0
1476 IgorA 132
sz_ted_text_colored		db 'ted_text_colored',0
7579 IgorA 133
sz_ted_go_to_position	db 'ted_go_to_position',0
2125 IgorA 134
 
135
sz_PathShow_prepare db 'PathShow_prepare',0
136
sz_PathShow_draw db 'PathShow_draw',0
4990 IgorA 137
 
1476 IgorA 138
align 4
4990 IgorA 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
7577 IgorA 149
;---------------------------------------------------------------------
150
;дочерний скроллинг для элемента ListBox
4990 IgorA 151
align 4
7577 IgorA 152
ws_dir_lbox scrollbar 16,0, 30,70, 15, 100,30,0, 0,0,0, 1
1476 IgorA 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:
2086 IgorA 166
	dd 1
167
	dd 0,0,count_of_dir_list_files
168
	dd dir_mem
169
	db 0
170
	dd file_name
1476 IgorA 171
 
172
dir_mem rb 32+304*count_of_dir_list_files
173
 
2125 IgorA 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
2159 IgorA 178
 
1476 IgorA 179
;------------------------------------------------------------------------------
180
align 4
181
tedit0: ;структура текстового редактора
2086 IgorA 182
	.wnd BOX 195,5+40,325,240 ;+ 0
1476 IgorA 183
	.rec BOX 30,13,7,10   ;+16
184
	.drag_m db 0 ;+32 выделение от мыши
185
	.drag_k db 0 ;+33 выделение от клавиатуры
2159 IgorA 186
	.sel rb 16 ;+34 структура выделения
187
	.seln rb 16 ;+50 дополнительная структура выделения
1476 IgorA 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
7579 IgorA 227
	.fun_on_key_ctrl_all dd ted_but_ctrl_all ;+198 указатель на функцию вызываемую при нажатии Ctrl+N,O,S,F,G,H
228
	dd 0,0,0
1476 IgorA 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 указатель на функцию рисования панели с кнопками
7579 IgorA 233
	.fun_draw_panels	dd 0 ;+230 указатель на функцию рисования панели поиска|...|синтаксиса
234
	dd 0
1476 IgorA 235
	.fun_save_err		dd 0 ;+238 указатель на функцию вызываемую если сохранение файла закончилось неудачно
236
	.increase_size dd 1000 ;+242 число символов на которые будет увечиваться память при нехватке
237
	.ptr_free_symb dd ? ;+246 указатель на свободную память, в которую можно добавлять символ (используется внутри элемента для ускорения вставки текста)
7575 IgorA 238
	.font_size dd 0   ;+250 множитель для размера шрифта
1476 IgorA 239
;------------------------------------------------------------------------------
240
align 4
7575 IgorA 241
scrol_w1 scrollbar 16,85, 100,15, 15, 100,0,0, 0xeeeeee,0xbbddff,0x808080, 1
242
 
1476 IgorA 243
align 4
7575 IgorA 244
scrol_h1 scrollbar 85,30,  16,100, 15, 100,0,0, 0xeeeeee,0xbbddff,0x808080, 1
1476 IgorA 245
;---------------------------------------------------------------------
2125 IgorA 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
1476 IgorA 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
 
2159 IgorA 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
1476 IgorA 272
	db 'count_colors_text dd (text-color_wnd_text)/4',13
2102 IgorA 273
	db 'count_key_words dd (f1-text)/48',13,0
1476 IgorA 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