Subversion Repositories Kolibri OS

Rev

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

Rev Author Line No. Line
4308 IgorA 1
;Огромная благодарность всем, кто помогал: кодом/советом/дизайном ...
1338 IgorA 2
 
3
use32
4
  org 0x0
1449 IgorA 5
  db 'MENUET01' ;идентиф. исполняемого файла всегда 8 байт
6256 IgorA 6
  dd 1, start, i_end, mem, stacktop, file_name, sys_path
1338 IgorA 7
 
8
MAX_COLOR_WORD_LEN equ 40
6256 IgorA 9
maxChars equ 100002 ;(колличество символов в новом документе + 2)
2817 IgorA 10
BUF_SIZE equ 4096 ;buffer for copy|paste
1457 IgorA 11
maxSyntaxFileSize equ 410000
4308 IgorA 12
TOOLBAR_ICONS_SIZE equ 1200*20
1338 IgorA 13
 
1449 IgorA 14
include '../../proc32.inc'
1338 IgorA 15
include '../../macros.inc'
6086 IgorA 16
include '../../KOSfuncs.inc'
6239 IgorA 17
include '../../load_img.inc'
1449 IgorA 18
include '../../develop/libraries/box_lib/trunk/box_lib.mac'
6169 leency 19
include '../../system/skincfg/trunk/kglobals.inc'
20
include '../../system/skincfg/trunk/unpacker.inc'
1343 IgorA 21
include 'lang.inc'
1467 IgorA 22
 
1338 IgorA 23
include 't_data.inc'
5671 leency 24
include 't_menu.inc'
1338 IgorA 25
include 'strlen.inc'
26
include 't_draw.inc' ;draw main window functions
1457 IgorA 27
include 't_button.inc' ;text work functions
3244 IgorA 28
include 'wnd_k_words.inc'
1338 IgorA 29
 
2632 IgorA 30
@use_library_mem mem.Alloc,mem.Free,mem.ReAlloc,dll.Load
1338 IgorA 31
 
6256 IgorA 32
align 4
2632 IgorA 33
icon_tl_sys dd 0 ;указатель на память для хранения системных иконок
6256 IgorA 34
run_file_70 FileInfoBlock
2632 IgorA 35
 
1456 IgorA 36
align 4
1338 IgorA 37
start:
6162 leency 38
	mcall SF_STYLE_SETTINGS,SSF_GET_COLORS,sc,sizeof.system_colors
1338 IgorA 39
 
6086 IgorA 40
	mcall SF_SYS_MISC,SSF_HEAP_INIT
4308 IgorA 41
	or eax,eax
42
	jz button.exit
1338 IgorA 43
 
6086 IgorA 44
	mcall SF_KEYBOARD,SSF_SET_INPUT_MODE,1 ;scan code
45
	mcall SF_SET_EVENTS_MASK,0xC0000027
1338 IgorA 46
 
4308 IgorA 47
	mov esi,file_name
48
	call strlen
49
	mov ecx,eax
50
	mov edi,openfile_path
51
	cld
52
	rep movsb ;копируем имя файла в буфер openfile_path
1338 IgorA 53
 
1456 IgorA 54
load_libraries l_libs_start,load_lib_end
1338 IgorA 55
 
2102 IgorA 56
;проверка на сколько удачно загузились библиотеки
4308 IgorA 57
mov	ebp,lib0
58
.test_lib_open:
1456 IgorA 59
	cmp	dword [ebp+ll_struc_size-4],0
60
	jz	@f
6086 IgorA 61
	mcall SF_TERMINATE_PROCESS ;exit not correct
1456 IgorA 62
@@:
4308 IgorA 63
	add ebp,ll_struc_size
64
	cmp ebp,load_lib_end
65
	jl .test_lib_open
1338 IgorA 66
 
1456 IgorA 67
;---------------------------------------------------------------------
1592 IgorA 68
	stdcall [ted_init], tedit0
69
	stdcall dword[tl_data_init], tree1
1338 IgorA 70
 
1467 IgorA 71
; OpenDialog initialisation
1592 IgorA 72
	stdcall [OpenDialog_Init],OpenDialog_data
1467 IgorA 73
 
5649 leency 74
; kmenu initialisation
75
	stdcall [kmenu_init], sc
76
 
77
	stdcall [ksubmenu_new]
78
	mov [main_menu], eax
79
 
80
	stdcall [ksubmenu_new]
81
	mov [main_menu_file], eax
82
	stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_File_New, 3
83
	stdcall [ksubmenu_add], [main_menu_file], eax
84
	stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_File_Open, 4
85
	stdcall [ksubmenu_add], [main_menu_file], eax
86
	stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_File_Save, 5
87
	stdcall [ksubmenu_add], [main_menu_file], eax
88
	stdcall [kmenuitem_new], KMENUITEM_SEPARATOR, 0, 0
89
	stdcall [ksubmenu_add], [main_menu_file], eax
90
	stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_File_Exit, 199
5671 leency 91
	stdcall [ksubmenu_add], [main_menu_file], eax
5649 leency 92
	stdcall [kmenuitem_new], KMENUITEM_SUBMENU, sz_main_menu_File, [main_menu_file]
93
	stdcall [ksubmenu_add], [main_menu], eax
94
 
5671 leency 95
	stdcall [ksubmenu_new]
96
	mov [main_menu_changes], eax
97
	stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_Changes_Undo, 16
98
	stdcall [ksubmenu_add], [main_menu_changes], eax
99
	stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_Changes_Redo, 17
100
	stdcall [ksubmenu_add], [main_menu_changes], eax
101
	stdcall [kmenuitem_new], KMENUITEM_SUBMENU, sz_main_menu_Changes, [main_menu_changes]
102
	stdcall [ksubmenu_add], [main_menu], eax
103
 
104
	stdcall [ksubmenu_new]
105
	mov [main_menu_buf], eax
106
	stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_Buf_Cut, 7
107
	stdcall [ksubmenu_add], [main_menu_buf], eax
108
	stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_Buf_Copy, 8
109
	stdcall [ksubmenu_add], [main_menu_buf], eax
110
	stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_Buf_Paste, 9
111
	stdcall [ksubmenu_add], [main_menu_buf], eax
112
	stdcall [kmenuitem_new], KMENUITEM_SUBMENU, sz_main_menu_Buf, [main_menu_buf]
113
	stdcall [ksubmenu_add], [main_menu], eax
114
 
5830 IgorA 115
	stdcall [ksubmenu_new]
116
	mov [main_menu_search], eax
117
	stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_Search_Text, 10
118
	stdcall [ksubmenu_add], [main_menu_search], eax
119
	stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_Search_Keywords, 12
120
	stdcall [ksubmenu_add], [main_menu_search], eax
121
	stdcall [kmenuitem_new], KMENUITEM_SUBMENU, sz_main_menu_Search, [main_menu_search]
122
	stdcall [ksubmenu_add], [main_menu], eax
5671 leency 123
 
124
	stdcall [ksubmenu_new]
125
	mov [main_menu_view], eax
126
	stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_Veiw_UseSyntax, 19
127
	stdcall [ksubmenu_add], [main_menu_view], eax
128
	stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_Veiw_ChooseSyntax, 20
129
	stdcall [ksubmenu_add], [main_menu_view], eax
130
	stdcall [kmenuitem_new], KMENUITEM_SEPARATOR, 0, 0
131
	stdcall [ksubmenu_add], [main_menu_view], eax
132
	stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_Veiw_LineBreak, 18
133
	stdcall [ksubmenu_add], [main_menu_view], eax
134
	stdcall [kmenuitem_new], KMENUITEM_SUBMENU, sz_main_menu_View, [main_menu_view]
135
	stdcall [ksubmenu_add], [main_menu], eax
136
 
137
	stdcall [ksubmenu_new]
138
	mov [main_menu_encoding], eax
139
	stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_Encoding_1251to866, 21
140
	stdcall [ksubmenu_add], [main_menu_encoding], eax
141
	stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_Encoding_866to1251, 22
142
	stdcall [ksubmenu_add], [main_menu_encoding], eax
143
	stdcall [kmenuitem_new], KMENUITEM_SUBMENU, sz_main_menu_Encoding, [main_menu_encoding]
144
	stdcall [ksubmenu_add], [main_menu], eax
145
 
2632 IgorA 146
; init toolbar file
6239 IgorA 147
	load_image_file 'te_icon.png', bmp_icon,,,6 ;6 для серых кнопок
4128 IgorA 148
	mov eax,[bmp_icon]
149
	add eax,TOOLBAR_ICONS_SIZE
150
	stdcall img_to_gray, [bmp_icon],eax,(TOOLBAR_ICONS_SIZE)/3
1338 IgorA 151
;---------------------------------------------------------------------
2632 IgorA 152
; читаем файл с курсорами и линиями
6239 IgorA 153
	load_image_file 'tl_sys_16.png', icon_tl_sys
2632 IgorA 154
	mov eax,dword[icon_tl_sys]
155
	mov dword[tree1.data_img_sys],eax
1338 IgorA 156
;---------------------------------------------------------------------
2632 IgorA 157
; читаем файл с иконками узлов
6239 IgorA 158
	load_image_file 'tl_nod_16.png', icon_tl_sys
2632 IgorA 159
	mov eax,dword[icon_tl_sys]
160
	mov dword[tree1.data_img],eax
1338 IgorA 161
;------------------------------------------------------------------------------
5911 IgorA 162
	copy_path fn_syntax_dir,sys_path,file_name,0 ;берем путь к папке с файлами синтаксиса
6086 IgorA 163
	mcall SF_FILE,tree_file_struct
1338 IgorA 164
 
5911 IgorA 165
	cmp ebx,-1
166
	je .end_dir_init
167
		mov eax,dir_mem
168
		add eax,32+4+1+3+4*6+8
169
		mov ecx,ebx
170
		@@:
171
			cmp byte[eax],'.' ;фильтруем файлы с именами '.' и '..'
172
			je .filter
173
			;0x10000 ;1*2^16 - где 1 номер иконки с книгой
174
			stdcall dword[tl_node_add], tree1,0x10000,eax
175
			stdcall dword[tl_cur_next], tree1
176
			.filter:
177
			add eax,304
178
			loop @b
179
		stdcall dword[tl_cur_beg],tree1 ;ставим курсор на начало списка
180
	.end_dir_init:
1338 IgorA 181
 
2817 IgorA 182
;--- load ini file ---
2855 IgorA 183
	copy_path ini_name,sys_path,file_name,0
2817 IgorA 184
	;window startup pozition
185
	stdcall dword[ini_get_int],file_name,ini_sec_window,key_window_l,ini_def_window_l
186
	mov word[wnd_s_pos+2],ax
187
	stdcall dword[ini_get_int],file_name,ini_sec_window,key_window_w,ini_def_window_w
188
	mov word[wnd_s_pos],ax
189
	stdcall dword[ini_get_int],file_name,ini_sec_window,key_window_t,ini_def_window_t
190
	mov word[wnd_s_pos+6],ax
191
	stdcall dword[ini_get_int],file_name,ini_sec_window,key_window_h,ini_def_window_h
192
	mov word[wnd_s_pos+4],ax
193
	;scrool type
194
	stdcall dword[ini_get_int],file_name,ini_sec_window,key_scroll_type,ini_def_scroll_type
195
	mov [wScr.type],eax
196
	mov [hScr.type],eax
197
	mov [ws_dir_lbox.type],eax
3244 IgorA 198
    mov [w_scr_t3.type],eax
2817 IgorA 199
	;symbol size
200
	stdcall dword[ini_get_int],file_name,ini_sec_window,key_symbol_w,ini_def_symbol_w
201
	mov dword[tedit0.rec.width],eax
202
	stdcall dword[ini_get_int],file_name,ini_sec_window,key_symbol_h,ini_def_symbol_h
203
	mov dword[tedit0.rec.height],eax
6256 IgorA 204
	;lea eax,[eax+eax*2]
205
	;mov dword[tedit0.rec.top],eax
206
	;font size
207
	stdcall dword[ini_get_int],file_name,ini_sec_window,key_font_s,ini_def_font_s
208
	shl eax,24
209
	mov dword[tedit0.font_size],eax
2855 IgorA 210
	;файловые расширения
211
	xor edx,edx
212
	mov ebx,synt_auto_open
213
	@@:
214
		;берем имя файла
215
		stdcall dword[ini_get_str],file_name,ini_sec_options,key_synt_file,ebx,32,ini_def_synt_f
216
		cmp byte[ebx],0
217
		je @f
218
		inc byte[key_synt_file.numb]
219
		add ebx,32
220
		;берем расширения
221
		stdcall dword[ini_get_str],file_name,ini_sec_options,key_synt_ext,ebx,32,ini_def_synt_f
222
		inc byte[key_synt_ext.numb]
223
		add ebx,32
224
		inc edx
225
		cmp edx,max_synt_auto_open
226
		jl @b
227
	@@:
2817 IgorA 228
 
1338 IgorA 229
;--- load color option file ---
6086 IgorA 230
	stdcall open_unpac_synt_file,[fn_col_option]
1338 IgorA 231
 
232
;--- get cmd line ---
2708 IgorA 233
	cmp byte[openfile_path+3],0 ;openfile_path
234
	je @f ;if file names exist
235
		mov esi,openfile_path
6086 IgorA 236
		stdcall auto_open_syntax,esi
2708 IgorA 237
		call strlen ;eax=strlen
238
		call but_no_msg_OpenFile
239
	@@:
1338 IgorA 240
 
2817 IgorA 241
 
242
 
6239 IgorA 243
align 16
1338 IgorA 244
red_win:
5911 IgorA 245
	call draw_window
1467 IgorA 246
 
6239 IgorA 247
align 16
1467 IgorA 248
still:
6086 IgorA 249
	mcall SF_WAIT_EVENT
4991 IgorA 250
	cmp dword[exit_code],1
251
	je button.exit
1467 IgorA 252
 
2125 IgorA 253
	cmp al,1 ;изменилось положение окна
254
	jz red_win
255
	cmp al,2
256
	jz key
257
	cmp al,3
258
	jz button
259
	cmp al,6 ;мышь
260
	jne @f
261
		jmp mouse
262
	@@:
263
	jmp still
1467 IgorA 264
 
6239 IgorA 265
align 16
1467 IgorA 266
draw_window:
6086 IgorA 267
	mcall SF_REDRAW,SSF_BEGIN_DRAW
1338 IgorA 268
 
2125 IgorA 269
	mov edx,[sc.work]
270
	or  edx,0x73000000
6086 IgorA 271
	mcall SF_CREATE_WINDOW,dword[wnd_s_pos],dword[wnd_s_pos+4],,,hed
1338 IgorA 272
 
6086 IgorA 273
	mcall SF_THREAD_INFO,procinfo,-1
2125 IgorA 274
	mov edi,tedit0 ;значение edi нужно для EvSize и ted_wnd_t
275
	call EvSize
1449 IgorA 276
 
5911 IgorA 277
	movzx ebx,word[procinfo.client_box.width]
2125 IgorA 278
	inc bx
6086 IgorA 279
	mcall SF_DRAW_RECT,,ted_wnd_t ;верхний прямоугольник, для очистки верхней панели
4308 IgorA 280
	call draw_but_toolbar
5649 leency 281
	stdcall [kmainmenu_draw], [main_menu]
4308 IgorA 282
	stdcall [ted_draw], tedit0
1338 IgorA 283
 
6086 IgorA 284
	mcall SF_REDRAW,SSF_END_DRAW
4308 IgorA 285
	ret
1338 IgorA 286
 
6239 IgorA 287
align 16
1338 IgorA 288
mouse:
5649 leency 289
	stdcall [kmainmenu_dispatch_cursorevent], [main_menu]
1338 IgorA 290
 
6239 IgorA 291
	mcall SF_MOUSE_GET,SSF_WINDOW_POSITION
292
	cmp word[tedit0.wnd.top],ax
293
	jg .no_edit
294
	shr eax,16
295
	cmp word[tedit0.wnd.left],ax
296
	jg .no_edit
297
	mcall SF_MOUSE_GET,SSF_BUTTON_EXT
298
	bt eax,24 ;двойной щелчёк левой кнопкой
299
	jnc @f
300
		stdcall [ted_but_select_word], tedit0
301
		jmp still
302
	@@:
303
		stdcall [ted_mouse], tedit0
304
	.no_edit:
305
 
2125 IgorA 306
	cmp byte[tedit0.panel_id],TED_PANEL_FIND ;if not panel
307
	jne @f
6239 IgorA 308
		stdcall [edit_box_mouse], edit2
2125 IgorA 309
	@@:
310
	cmp byte[tedit0.panel_id],TED_PANEL_SYNTAX ;if not panel
6239 IgorA 311
	jne @f
312
		stdcall [tl_mouse], tree1
313
	@@:
2125 IgorA 314
	jmp still
1338 IgorA 315
;---------------------------------------------------------------------
316
 
1456 IgorA 317
;output:
318
; ah = symbol
6239 IgorA 319
align 16
5911 IgorA 320
proc KeyConvertToASCII uses ebx, table:dword
321
	mov ebx,dword[table] ;convert scan to ascii
322
	ror ax,8
323
	xor ah,ah
324
	add bx,ax
325
	mov ah,byte[ebx]
326
	ret
1456 IgorA 327
endp
1338 IgorA 328
 
6239 IgorA 329
align 16
1338 IgorA 330
key:
6239 IgorA 331
	mcall SF_KEYBOARD,SSF_GET_CONTROL_KEYS ;66.3 получить состояние управляющих клавиш
332
	xor esi,esi
333
	mov ecx,1
334
	test al,0x03 ;[Shift]
335
	jz @f
336
		mov cl,2
337
		or esi,KM_SHIFT
338
	@@:
339
	test al,0x0c ;[Ctrl]
340
	jz @f
341
		or esi,KM_CTRL
342
	@@:
343
	test al,0x30 ;[Alt]
344
	jz @f
345
		mov cl,3
346
		or esi,KM_ALT
347
	@@:
348
	test al,0x80 ;[NumLock]
349
	jz @f
350
		or esi,KM_NUMLOCK
351
	@@:
1457 IgorA 352
 
6239 IgorA 353
	mcall SF_SYSTEM_GET,SSF_KEYBOARD_LAYOUT,,conv_tabl ;26.2 получить раскладку клавиатуры
354
	mcall SF_GET_KEY
355
	stdcall [tl_key], tree1
1338 IgorA 356
 
6239 IgorA 357
	test word [edit2.flags],10b;ed_focus ; если не в фокусе, выходим
358
	je @f
359
		cmp ah,0x80 ;if key up
360
		ja still
361
		cmp ah,42 ;[Shift] (left)
362
		je still
363
		cmp ah,54 ;[Shift] (right)
364
		je still
365
		cmp ah,56 ;[Alt]
366
		je still
367
		cmp ah,29 ;[Ctrl]
368
		je still
369
		cmp ah,69 ;[Pause Break]
370
		je still
1338 IgorA 371
 
6239 IgorA 372
		stdcall KeyConvertToASCII, dword conv_tabl
373
		stdcall [edit_box_key], dword edit2
374
		jmp still
375
	@@:
1338 IgorA 376
 
6239 IgorA 377
	stdcall [ted_key], tedit0, conv_tabl,esi
378
	jmp still
1338 IgorA 379
 
6239 IgorA 380
align 16
1338 IgorA 381
button:
6239 IgorA 382
	mcall SF_GET_BUTTON
383
	cmp ah,3
384
	jne @f
385
		call ted_but_new_file
386
		jmp still
387
	@@:
388
	cmp ah,4
389
	jne @f
390
		call ted_but_open_file
391
		jmp still
392
	@@:
393
	cmp ah,5
394
	jne @f
395
		call ted_but_save_file
396
		jmp still
397
	@@:
398
	cmp ah,6
399
	jne @f
400
		stdcall [ted_but_select_word], tedit0
401
		jmp still
402
	@@:
403
	cmp ah,7
404
	jne @f
405
		stdcall [ted_but_cut], tedit0
406
		jmp still
407
	@@:
408
	cmp ah,8
409
	jne @f
410
		stdcall [ted_but_copy], tedit0
411
		jmp still
412
	@@:
413
	cmp ah,9
414
	jne @f
415
		stdcall [ted_but_paste], tedit0
416
		jmp still
417
	@@:
418
	cmp ah,10
419
	jne @f
420
		call ted_but_find
421
		jmp still
422
	@@:
423
	cmp ah,11
424
	jne @f
425
		call but_replace
426
		jmp still
427
	@@:
428
	cmp ah,12
429
	jne @f
430
		call but_find_key_w
431
		jmp still
432
	@@:
433
	cmp ah,13
434
	jne @f
435
		stdcall [ted_but_sumb_upper], tedit0
436
		jmp still
437
	@@:
438
	cmp ah,14
439
	jne @f
440
		stdcall [ted_but_sumb_lover], tedit0
441
		jmp still
442
	@@:
443
	cmp ah,15
444
	jne @f
445
		stdcall [ted_but_reverse], tedit0
446
		jmp still
447
	@@:
448
	cmp ah,16
449
	jne @f
450
		stdcall [ted_but_undo], tedit0
451
		jmp still
452
	@@:
453
	cmp ah,17
454
	jne @f
455
		stdcall [ted_but_redo], tedit0
456
		jmp still
457
	@@:
458
	cmp ah,18
459
	jne @f
460
		stdcall but_sumb_invis, tedit0
461
		jmp still
462
	@@:
463
	cmp ah,19
464
	jne @f
465
		stdcall but_k_words_show, tedit0
466
		jmp still
467
	@@:
468
	cmp ah,20
469
	jne @f
470
		stdcall but_synt_show, tedit0
471
		jmp still
472
	@@:
473
	cmp ah,21
474
	jne @f
475
		stdcall [ted_but_convert_by_table],tedit0,tbl_1251_866
476
		jmp still
477
	@@:
478
	cmp ah,22
479
	jne @f
480
		stdcall [ted_but_convert_by_table],tedit0,tbl_866_1251
481
		jmp still
482
	@@:
1338 IgorA 483
 
6239 IgorA 484
	cmp ah,200
485
	jne @f
486
		stdcall ted_but_open_syntax, tedit0
487
		jmp still
488
	@@:
489
	cmp ah,201
490
	jne @f
491
		stdcall [ted_but_find_next], tedit0
492
		jmp still
493
	@@:
1338 IgorA 494
 
6239 IgorA 495
	cmp ah,1
496
	je .exit
1338 IgorA 497
 
6239 IgorA 498
	cmp ah,199
499
	je .exit
5649 leency 500
 
6239 IgorA 501
	jmp still
1338 IgorA 502
.exit:
4991 IgorA 503
	cmp dword[exit_code],1
504
	je @f
2708 IgorA 505
	stdcall [ted_can_save], tedit0
506
	cmp al,1
507
	jne @f
5671 leency 508
		stdcall [mb_create],msgbox_2,thread ;message: save buf in file?
4991 IgorA 509
		stdcall [mb_setfunctions],msgbox_2E_funct
2708 IgorA 510
		jmp still
511
	@@:
512
	stdcall mem.Free,[bmp_icon]
513
	cmp dword[unpac_mem],0
514
	je @f
515
		stdcall mem.Free,[unpac_mem]
516
	@@:
517
 
518
	stdcall [ted_delete], tedit0
5911 IgorA 519
	stdcall [tl_data_clear], tree1
6086 IgorA 520
	mcall SF_TERMINATE_PROCESS ;выход из программы
1456 IgorA 521
 
1457 IgorA 522
edit2 edit_box TED_PANEL_WIDTH-1, 0, 20, 0xffffff, 0xff80, 0xff0000, 0xff, 0x4080, 300, buf_find, mouse_dd, 0
1338 IgorA 523
 
2708 IgorA 524
unpac_mem dd 0
1338 IgorA 525
 
1343 IgorA 526
if lang eq ru
2632 IgorA 527
  head_f_i:
528
  head_f_l db 'Системная ошибка',0
1592 IgorA 529
  err_message_found_lib0 db 'Не найдена библиотека ',39,'box_lib.obj',39,0
530
  err_message_import0 db 'Ошибка при импорте библиотеки ',39,'box_lib.obj',39,0
531
  err_message_found_lib1 db 'Не найдена библиотека ',39,'msgbox.obj',39,0
532
  err_message_import1 db 'Ошибка при импорте библиотеки ',39,'msgbox.obj',39,0
533
  err_message_found_lib2 db 'Не найдена библиотека ',39,'proc_lib.obj',39,0
534
  err_message_import2 db 'Ошибка при импорте библиотеки ',39,'proc_lib.obj',39,0
2632 IgorA 535
  err_message_found_lib_3 db 'Не найдена библиотека ',39,'libimg.obj',39,0
536
  err_message_import_3 db 'Ошибка при импорте библиотеки ',39,'libimg.obj',39,0
2817 IgorA 537
  err_message_found_lib_4 db 'Не найдена библиотека ',39,'libini.obj',39,0
538
  err_message_import_4 db 'Ошибка при импорте библиотеки ',39,'libini.obj',39,0
5649 leency 539
  err_message_found_lib_5 db 'Не найдена библиотека ',39,'libkmenu.obj',39,0
540
  err_message_import_5 db 'Ошибка при импорте библиотеки ',39,'libkmenu.obj',39,0
1343 IgorA 541
else
2632 IgorA 542
  head_f_i:
543
  head_f_l db 'System error',0
1592 IgorA 544
  err_message_found_lib0 db 'Sorry I cannot found library ',39,'box_lib.obj',39,0
545
  err_message_import0 db 'Error on load import library ',39,'box_lib.obj',39,0
546
  err_message_found_lib1 db 'Sorry I cannot found library ',39,'msgbox.obj',39,0
547
  err_message_import1 db 'Error on load import library ',39,'msgbox.obj',39,0
548
  err_message_found_lib2 db 'Sorry I cannot found library ',39,'proc_lib.obj',39,0
549
  err_message_import2 db 'Error on load import library ',39,'proc_lib.obj',39,0
2632 IgorA 550
  err_message_found_lib_3 db 'Sorry I cannot found library ',39,'libimg.obj',39,0
551
  err_message_import_3 db 'Error on load import library ',39,'libimg.obj',39,0
2817 IgorA 552
  err_message_found_lib_4 db 'Sorry I cannot found library ',39,'libini.obj',39,0
553
  err_message_import_4 db 'Error on load import library ',39,'libini.obj',39,0
5649 leency 554
  err_message_found_lib_5 db 'Sorry I cannot found library ',39,'libkmenu.obj',39,0
555
  err_message_import_5 db 'Error on load import library ',39,'libkmenu.obj',39,0
1343 IgorA 556
end if
1338 IgorA 557
 
558
;library structures
559
l_libs_start:
2632 IgorA 560
	lib0 l_libs lib_name_0, sys_path, file_name, system_dir_0,\
561
		err_message_found_lib0, head_f_l, import_box_lib,err_message_import0, head_f_i
562
	lib1 l_libs lib_name_1, sys_path, file_name, system_dir_1,\
563
		err_message_found_lib1, head_f_l, import_msgbox_lib, err_message_import1, head_f_i
564
	lib2 l_libs lib_name_2, sys_path, file_name, system_dir_2,\
565
		err_message_found_lib2, head_f_l, import_proclib, err_message_import2, head_f_i
566
	lib3 l_libs lib_name_3, sys_path, file_name, system_dir_3,\
567
		err_message_found_lib_3, head_f_l, import_libimg, err_message_import_3, head_f_i
2817 IgorA 568
	lib4 l_libs lib_name_4, sys_path, file_name, system_dir_4,\
569
		err_message_found_lib_4, head_f_l, import_libini, err_message_import_4, head_f_i
5649 leency 570
	lib5 l_libs lib_name_5, sys_path, file_name, system_dir_5,\
571
		err_message_found_lib_5, head_f_l, import_libkmenu, err_message_import_5, head_f_i
1338 IgorA 572
load_lib_end:
573
 
2708 IgorA 574
IncludeIGlobals
5643 leency 575
hed db 'TextEdit '
1338 IgorA 576
i_end:
5643 leency 577
	openfile_path: ;полный путь к файлу с которым идет работа
578
		rb 4096
2855 IgorA 579
	dir_mem rb 32+304*count_of_dir_list_files
580
	wnd_s_pos: ;место для настроек стартовой позиции окна
581
		rq 1
582
	last_open_synt_file rb 32 ;имя последнего подключенного файла синтаксиса
583
	buf rb BUF_SIZE ;буфер для копирования и вставки
584
	buf_find rb 302 ;буфер для поиска текста
5939 IgorA 585
	sc system_colors
2708 IgorA 586
IncludeUGlobals
1467 IgorA 587
	align 16
588
	procinfo process_information
1705 IgorA 589
		rb 1024
1467 IgorA 590
	thread:
6256 IgorA 591
		rb 4096
592
align 16
3244 IgorA 593
    thread_coords:
5830 IgorA 594
	rb 4096
6256 IgorA 595
align 16
1338 IgorA 596
stacktop:
4308 IgorA 597
	sys_path: ;путь откуда запустился исполняемый файл
1705 IgorA 598
		rb 4096
4308 IgorA 599
	file_name: ;параметры запуска
1705 IgorA 600
		rb 4096
4308 IgorA 601
	syntax_path: ;имя подключаемого файла синтаксиса
1705 IgorA 602
		rb 4096
603
	plugin_path:
604
		rb 4096
4308 IgorA 605
	text_work_area: ;путь к файлу, который показывается в окне
606
		rb 4096
607
	filename_area: ;имя файла для диалога открытия/закрытия
1705 IgorA 608
		rb 256
609
	file_info:
610
		rb 40
1338 IgorA 611
mem: