Subversion Repositories Kolibri OS

Rev

Rev 7576 | Rev 7579 | Go to most recent revision | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 7576 Rev 7577
1
;Ž£à®¬­ ï ¡« £®¤ à­®áâì ¢á¥¬, ªâ® ¯®¬®£ «: ª®¤®¬/ᮢ¥â®¬/¤¨§ ©­®¬ ...
1
;Ž£à®¬­ ï ¡« £®¤ à­®áâì ¢á¥¬, ªâ® ¯®¬®£ «: ª®¤®¬/ᮢ¥â®¬/¤¨§ ©­®¬ ...
2
 
2
 
3
use32
3
use32
4
  org 0
4
  org 0
5
  db 'MENUET01' ;¨¤¥­â¨ä. ¨á¯®«­ï¥¬®£® ä ©«  ¢á¥£¤  8 ¡ ©â
5
  db 'MENUET01' ;¨¤¥­â¨ä. ¨á¯®«­ï¥¬®£® ä ©«  ¢á¥£¤  8 ¡ ©â
6
  dd 1, start, i_end, mem, stacktop, file_name, sys_path
6
  dd 1, start, i_end, mem, stacktop, file_name, sys_path
7
 
7
 
8
MAX_COLOR_WORD_LEN equ 40
8
MAX_COLOR_WORD_LEN equ 40
9
maxChars equ 100002 ;(ª®««¨ç¥á⢮ ᨬ¢®«®¢ ¢ ­®¢®¬ ¤®ªã¬¥­â¥ + 2)
9
maxChars equ 100002 ;(ª®««¨ç¥á⢮ ᨬ¢®«®¢ ¢ ­®¢®¬ ¤®ªã¬¥­â¥ + 2)
10
BUF_SIZE equ 4096 ;buffer for copy|paste
10
BUF_SIZE equ 4096 ;buffer for copy|paste
11
maxSyntaxFileSize equ 410000
11
maxSyntaxFileSize equ 410000
12
TOOLBAR_ICONS_SIZE equ 1200*21
12
TOOLBAR_ICONS_SIZE equ 1200*21
13
 
13
 
14
include '../../proc32.inc'
14
include '../../proc32.inc'
15
include '../../macros.inc'
15
include '../../macros.inc'
16
include '../../KOSfuncs.inc'
16
include '../../KOSfuncs.inc'
17
include '../../load_img.inc'
17
include '../../load_img.inc'
18
include '../../develop/libraries/box_lib/trunk/box_lib.mac'
18
include '../../develop/libraries/box_lib/trunk/box_lib.mac'
19
include '../../system/skincfg/trunk/kglobals.inc'
19
include '../../system/skincfg/trunk/kglobals.inc'
20
include '../../system/skincfg/trunk/unpacker.inc'
20
include '../../system/skincfg/trunk/unpacker.inc'
21
include 'lang.inc'
21
include 'lang.inc'
22
 
22
 
23
include 't_data.inc'
23
include 't_data.inc'
24
include 't_button.inc'
24
include 't_button.inc'
25
include 't_menu.inc'
25
include 't_menu.inc'
26
include 'strlen.inc'
26
include 'strlen.inc'
27
include 't_draw.inc' ;draw main window functions
27
include 't_draw.inc' ;draw main window functions
28
include 'wnd_k_words.inc'
28
include 'wnd_k_words.inc'
29
 
29
 
30
@use_library_mem mem.Alloc,mem.Free,mem.ReAlloc,dll.Load
30
@use_library_mem mem.Alloc,mem.Free,mem.ReAlloc,dll.Load
31
 
31
 
32
align 4
32
align 4
33
icon_tl_sys dd 0 ;㪠§ â¥«ì ­  ¯ ¬ïâì ¤«ï åà ­¥­¨ï á¨á⥬­ëå ¨ª®­®ª
33
icon_tl_sys dd 0 ;㪠§ â¥«ì ­  ¯ ¬ïâì ¤«ï åà ­¥­¨ï á¨á⥬­ëå ¨ª®­®ª
34
run_file_70 FileInfoBlock
34
run_file_70 FileInfoBlock
35
 
35
 
36
align 4
36
align 4
37
start:
37
start:
38
	mcall SF_STYLE_SETTINGS,SSF_GET_COLORS,sc,sizeof.system_colors
38
	mcall SF_STYLE_SETTINGS,SSF_GET_COLORS,sc,sizeof.system_colors
39
 
39
 
40
	mcall SF_SYS_MISC,SSF_HEAP_INIT
40
	mcall SF_SYS_MISC,SSF_HEAP_INIT
41
	or eax,eax
41
	or eax,eax
42
	jnz @f
42
	jnz @f
43
		call ted_Exit
43
		call ted_Exit
44
	@@:
44
	@@:
45
 
45
 
46
	mcall SF_KEYBOARD,SSF_SET_INPUT_MODE,1 ;scan code
46
	mcall SF_KEYBOARD,SSF_SET_INPUT_MODE,1 ;scan code
47
	mcall SF_SET_EVENTS_MASK,0xC0000027
47
	mcall SF_SET_EVENTS_MASK,0xC0000027
48
 
48
 
49
	mov esi,file_name
49
	mov esi,file_name
50
	call strlen
50
	stdcall str_len,esi
51
	mov ecx,eax
51
	mov ecx,eax
52
	mov edi,openfile_path
52
	mov edi,openfile_path
53
	cld
53
	cld
54
	rep movsb ;ª®¯¨à㥬 ¨¬ï ä ©«  ¢ ¡ãä¥à openfile_path
54
	rep movsb ;ª®¯¨à㥬 ¨¬ï ä ©«  ¢ ¡ãä¥à openfile_path
55
 
55
 
56
load_libraries l_libs_start,load_lib_end
56
load_libraries l_libs_start,load_lib_end
57
 
57
 
58
;¯à®¢¥àª  ­  ᪮«ìª® 㤠筮 § £ã§¨«¨áì ¡¨¡«¨®â¥ª¨
58
;¯à®¢¥àª  ­  ᪮«ìª® 㤠筮 § £ã§¨«¨áì ¡¨¡«¨®â¥ª¨
59
mov	ebp,lib0
59
mov	ebp,lib0
60
.test_lib_open:
60
.test_lib_open:
61
	cmp	dword [ebp+ll_struc_size-4],0
61
	cmp	dword [ebp+ll_struc_size-4],0
62
	jz	@f
62
	jz	@f
63
	mcall SF_TERMINATE_PROCESS ;exit not correct
63
	mcall SF_TERMINATE_PROCESS ;exit not correct
64
@@:
64
@@:
65
	add ebp,ll_struc_size
65
	add ebp,ll_struc_size
66
	cmp ebp,load_lib_end
66
	cmp ebp,load_lib_end
67
	jl .test_lib_open
67
	jl .test_lib_open
68
 
68
 
69
;---------------------------------------------------------------------
69
;---------------------------------------------------------------------
70
	stdcall [ted_init], tedit0
70
	stdcall [ted_init], tedit0
71
	stdcall [tl_data_init], tree1
71
	stdcall [tl_data_init], tree1
72
	option_boxes_set_sys_color sc,opt_grlist1
72
	option_boxes_set_sys_color sc,opt_grlist1
73
 
73
 
74
; OpenDialog initialisation
74
; OpenDialog initialisation
75
	stdcall [OpenDialog_Init],OpenDialog_data
75
	stdcall [OpenDialog_Init],OpenDialog_data
76
 
76
 
77
; kmenu initialisation
77
; kmenu initialisation
78
	call tedit_menu_init
78
	call tedit_menu_init
79
 
79
 
80
; init toolbar file
80
; init toolbar file
81
	include_image_file 'te_icon.png', bmp_icon,,,6 ;6 ¤«ï á¥àëå ª­®¯®ª
81
	include_image_file 'te_icon.png', bmp_icon,,,6 ;6 ¤«ï á¥àëå ª­®¯®ª
82
	mov eax,[bmp_icon]
82
	mov eax,[bmp_icon]
83
	add eax,TOOLBAR_ICONS_SIZE
83
	add eax,TOOLBAR_ICONS_SIZE
84
	stdcall img_to_gray, [bmp_icon],eax,(TOOLBAR_ICONS_SIZE)/3
84
	stdcall img_to_gray, [bmp_icon],eax,(TOOLBAR_ICONS_SIZE)/3
85
;---------------------------------------------------------------------
85
;---------------------------------------------------------------------
86
; ¢­¥¤à塞 ä ©« á ªãàá®à ¬¨ ¨ «¨­¨ï¬¨
86
; ¢­¥¤à塞 ä ©« á ªãàá®à ¬¨ ¨ «¨­¨ï¬¨
87
	include_image_file '..\..\media\log_el\trunk\tl_sys_16.png', icon_tl_sys
87
	include_image_file '..\..\media\log_el\trunk\tl_sys_16.png', icon_tl_sys
88
	mov eax,dword[icon_tl_sys]
88
	mov eax,dword[icon_tl_sys]
89
	mov dword[tree1.data_img_sys],eax
89
	mov dword[tree1.data_img_sys],eax
90
; ¢­¥¤à塞 ä ©« á ¨ª®­ª ¬¨ 㧫®¢
90
; ¢­¥¤à塞 ä ©« á ¨ª®­ª ¬¨ 㧫®¢
91
	include_image_file 'tl_nod_16.png', icon_tl_sys
91
	include_image_file 'tl_nod_16.png', icon_tl_sys
92
	mov eax,dword[icon_tl_sys]
92
	mov eax,dword[icon_tl_sys]
93
	mov dword[tree1.data_img],eax
93
	mov dword[tree1.data_img],eax
94
;------------------------------------------------------------------------------
94
;------------------------------------------------------------------------------
95
	copy_path fn_syntax_dir,sys_path,file_name,0 ;¡¥à¥¬ ¯ãâì ª ¯ ¯ª¥ á ä ©« ¬¨ ᨭ⠪á¨á 
95
	copy_path fn_syntax_dir,sys_path,file_name,0 ;¡¥à¥¬ ¯ãâì ª ¯ ¯ª¥ á ä ©« ¬¨ ᨭ⠪á¨á 
96
	mcall SF_FILE,tree_file_struct
96
	mcall SF_FILE,tree_file_struct
97
 
97
 
98
	cmp ebx,-1
98
	cmp ebx,0
99
	je .end_dir_init
99
	jle .end_dir_init
100
		mov eax,dir_mem
-
 
101
		add eax,32+4+1+3+4*6+8
100
		mov eax,dir_mem+32+40
102
		mov ecx,ebx
101
		mov ecx,ebx
103
		@@:
102
		@@:
104
			cmp byte[eax],'.' ;䨫ìâà㥬 ä ©«ë á ¨¬¥­ ¬¨ '.' ¨ '..'
103
			cmp byte[eax],'.' ;䨫ìâà㥬 ä ©«ë á ¨¬¥­ ¬¨ '.' ¨ '..'
105
			je .filter
104
			je .filter
106
			;0x10000 ;1*2^16 - £¤¥ 1 ­®¬¥à ¨ª®­ª¨ á ª­¨£®©
105
			;0x10000 ;1*2^16 - £¤¥ 1 ­®¬¥à ¨ª®­ª¨ á ª­¨£®©
107
			stdcall [tl_node_add], tree1,0x10000,eax 
106
			stdcall [tl_node_add], tree1,0x10000,eax 
108
			stdcall [tl_cur_next], tree1
107
			stdcall [tl_cur_next], tree1
109
			.filter:
108
			.filter:
110
			add eax,304
109
			add eax,304
111
			loop @b
110
			loop @b
112
		stdcall [tl_cur_beg],tree1 ;áâ ¢¨¬ ªãàá®à ­  ­ ç «® ᯨ᪠
111
		stdcall [tl_cur_beg],tree1 ;áâ ¢¨¬ ªãàá®à ­  ­ ç «® ᯨ᪠
113
		or dword[tree1.style], tl_cursor_pos_limited ;®£à ­¨ç¨¢ ¥¬ ¤¢¨¦¥­¨¥ ªãàá®à  ¢ ¯à¥¤¥« å ᯨ᪠
112
		or dword[tree1.style], tl_cursor_pos_limited ;®£à ­¨ç¨¢ ¥¬ ¤¢¨¦¥­¨¥ ªãàá®à  ¢ ¯à¥¤¥« å ᯨ᪠
114
	.end_dir_init:
113
	.end_dir_init:
115
 
114
 
116
;--- load ini file ---
115
;--- load ini file ---
117
	copy_path ini_name,sys_path,file_name,0
116
	copy_path ini_name,sys_path,file_name,0
118
	;window startup pozition
117
	;window startup pozition
119
	stdcall [ini_get_int],file_name,ini_sec_window,key_window_l,ini_def_window_l
118
	stdcall [ini_get_int],file_name,ini_sec_window,key_window_l,ini_def_window_l
120
	mov word[wnd_s_pos+2],ax
119
	mov word[wnd_s_pos+2],ax
121
	stdcall [ini_get_int],file_name,ini_sec_window,key_window_w,ini_def_window_w
120
	stdcall [ini_get_int],file_name,ini_sec_window,key_window_w,ini_def_window_w
122
	mov word[wnd_s_pos],ax
121
	mov word[wnd_s_pos],ax
123
	stdcall [ini_get_int],file_name,ini_sec_window,key_window_t,ini_def_window_t
122
	stdcall [ini_get_int],file_name,ini_sec_window,key_window_t,ini_def_window_t
124
	mov word[wnd_s_pos+6],ax
123
	mov word[wnd_s_pos+6],ax
125
	stdcall [ini_get_int],file_name,ini_sec_window,key_window_h,ini_def_window_h
124
	stdcall [ini_get_int],file_name,ini_sec_window,key_window_h,ini_def_window_h
126
	mov word[wnd_s_pos+4],ax
125
	mov word[wnd_s_pos+4],ax
127
	;scrool type
126
	;scrool type
128
	stdcall [ini_get_int],file_name,ini_sec_window,key_scroll_type,ini_def_scroll_type
127
	stdcall [ini_get_int],file_name,ini_sec_window,key_scroll_type,ini_def_scroll_type
129
	mov [wScr.type],eax
128
	mov [wScr.type],eax
130
	mov [hScr.type],eax
129
	mov [hScr.type],eax
131
	mov [ws_dir_lbox.type],eax
130
	mov [ws_dir_lbox.type],eax
132
    mov [w_scr_t3.type],eax
131
    mov [w_scr_t3.type],eax
133
	;symbol size
132
	;symbol size
134
	stdcall [ini_get_int],file_name,ini_sec_window,key_symbol_w,ini_def_symbol_w
133
	stdcall [ini_get_int],file_name,ini_sec_window,key_symbol_w,ini_def_symbol_w
135
	mov dword[tedit0.rec.width],eax
134
	mov dword[tedit0.rec.width],eax
136
	stdcall [ini_get_int],file_name,ini_sec_window,key_symbol_h,ini_def_symbol_h
135
	stdcall [ini_get_int],file_name,ini_sec_window,key_symbol_h,ini_def_symbol_h
137
	mov dword[tedit0.rec.height],eax
136
	mov dword[tedit0.rec.height],eax
138
	;lea eax,[eax+eax*2]
137
	;lea eax,[eax+eax*2]
139
	;mov dword[tedit0.rec.top],eax
138
	;mov dword[tedit0.rec.top],eax
140
	;font size
139
	;font size
141
	stdcall [ini_get_int],file_name,ini_sec_window,key_font_s,ini_def_font_s
140
	stdcall [ini_get_int],file_name,ini_sec_window,key_font_s,ini_def_font_s
142
	shl eax,24
141
	shl eax,24
143
	mov dword[tedit0.font_size],eax
142
	mov dword[tedit0.font_size],eax
144
	;ª­®¯ª¨ ­  ¯ ­¥«¨
143
	;ª­®¯ª¨ ­  ¯ ­¥«¨
145
	ini_panel key_but_new,    ID_BUT_NEW
144
	ini_panel key_but_new,    ID_BUT_NEW
146
	ini_panel key_but_open,   ID_BUT_OPEN
145
	ini_panel key_but_open,   ID_BUT_OPEN
147
	ini_panel key_but_save,   ID_BUT_SAVE
146
	ini_panel key_but_save,   ID_BUT_SAVE
148
	ini_panel key_but_save_as,ID_BUT_SAVE_AS
147
	ini_panel key_but_save_as,ID_BUT_SAVE_AS
149
	ini_panel key_but_select, ID_BUT_SELECT
148
	ini_panel key_but_select, ID_BUT_SELECT
150
	ini_panel key_but_cut,    ID_BUT_CUT
149
	ini_panel key_but_cut,    ID_BUT_CUT
151
	ini_panel key_but_copy,   ID_BUT_COPY
150
	ini_panel key_but_copy,   ID_BUT_COPY
152
	ini_panel key_but_paste,  ID_BUT_PASTE
151
	ini_panel key_but_paste,  ID_BUT_PASTE
153
	ini_panel key_but_find,   ID_BUT_FIND
152
	ini_panel key_but_find,   ID_BUT_FIND
154
	ini_panel key_but_replace,ID_BUT_REPLACE
153
	ini_panel key_but_replace,ID_BUT_REPLACE
155
	ini_panel key_but_key_words,ID_BUT_KEY_WORDS
154
	ini_panel key_but_key_words,ID_BUT_KEY_WORDS
156
	ini_panel key_but_upper,  ID_BUT_UPPER
155
	ini_panel key_but_upper,  ID_BUT_UPPER
157
	ini_panel key_but_lower,  ID_BUT_LOWER
156
	ini_panel key_but_lower,  ID_BUT_LOWER
158
	ini_panel key_but_reverse,ID_BUT_REVERSE
157
	ini_panel key_but_reverse,ID_BUT_REVERSE
159
	ini_panel key_but_undo,   ID_BUT_UNDO
158
	ini_panel key_but_undo,   ID_BUT_UNDO
160
	ini_panel key_but_redo,   ID_BUT_REDO
159
	ini_panel key_but_redo,   ID_BUT_REDO
161
	ini_panel key_but_invisible,ID_BUT_INVISIBLE
160
	ini_panel key_but_invisible,ID_BUT_INVISIBLE
162
	ini_panel key_but_syntax_list,ID_BUT_SYNTAX_LIST
161
	ini_panel key_but_syntax_list,ID_BUT_SYNTAX_LIST
163
	ini_panel key_but_syntax_mode,ID_BUT_SYNTAX_MODE
162
	ini_panel key_but_syntax_mode,ID_BUT_SYNTAX_MODE
164
	ini_panel key_but_convert_1251_866,ID_BUT_CONVERT_1251_866
163
	ini_panel key_but_convert_1251_866,ID_BUT_CONVERT_1251_866
165
	ini_panel key_but_convert_866_1251,ID_BUT_CONVERT_866_1251
164
	ini_panel key_but_convert_866_1251,ID_BUT_CONVERT_866_1251
166
	;ä ©«®¢ë¥ à áè¨à¥­¨ï
165
	;ä ©«®¢ë¥ à áè¨à¥­¨ï
167
	xor edx,edx
166
	xor edx,edx
168
	mov ebx,synt_auto_open
167
	mov ebx,synt_auto_open
169
	@@:
168
	@@:
170
		;¡¥à¥¬ ¨¬ï ä ©« 
169
		;¡¥à¥¬ ¨¬ï ä ©« 
171
		stdcall [ini_get_str],file_name,ini_sec_options,key_synt_file,ebx,32,ini_def_synt_f
170
		stdcall [ini_get_str],file_name,ini_sec_options,key_synt_file,ebx,32,ini_def_synt_f
172
		cmp byte[ebx],0
171
		cmp byte[ebx],0
173
		je @f
172
		je @f
174
		inc byte[key_synt_file.numb]
173
		inc byte[key_synt_file.numb]
175
		add ebx,32
174
		add ebx,32
176
		;¡¥à¥¬ à áè¨à¥­¨ï
175
		;¡¥à¥¬ à áè¨à¥­¨ï
177
		stdcall [ini_get_str],file_name,ini_sec_options,key_synt_ext,ebx,32,ini_def_synt_f
176
		stdcall [ini_get_str],file_name,ini_sec_options,key_synt_ext,ebx,32,ini_def_synt_f
178
		inc byte[key_synt_ext.numb]
177
		inc byte[key_synt_ext.numb]
179
		add ebx,32
178
		add ebx,32
180
		inc edx
179
		inc edx
181
		cmp edx,max_synt_auto_open
180
		cmp edx,max_synt_auto_open
182
		jl @b
181
		jl @b
183
	@@:
182
	@@:
184
 
183
 
185
;--- load color option file ---
184
;--- load color option file ---
186
	stdcall open_unpac_synt_file,[fn_col_option]
185
	stdcall open_unpac_synt_file,[fn_col_option]
187
 
186
 
188
;--- get cmd line ---
187
;--- get cmd line ---
189
	cmp byte[openfile_path+3],0 ;openfile_path
188
	cmp byte[openfile_path+3],0 ;openfile_path
190
	je @f ;if file names exist
189
	je @f ;if file names exist
191
		mov esi,openfile_path
190
		mov esi,openfile_path
192
		stdcall auto_open_syntax,esi
191
		stdcall auto_open_syntax,esi
193
		call but_no_msg_OpenFile
192
		call but_no_msg_OpenFile
194
	@@:
193
	@@:
195
 
194
 
196
 
195
 
197
 
196
 
198
align 16
197
align 16
199
red_win:
198
red_win:
200
	call draw_window
199
	call draw_window
201
 
200
 
202
align 16
201
align 16
203
still:
202
still:
204
	mcall SF_WAIT_EVENT
203
	mcall SF_WAIT_EVENT
205
	cmp dword[exit_code],1
204
	cmp dword[exit_code],1
206
	jne @f
205
	jne @f
207
		call ted_Exit
206
		call ted_Exit
208
		jmp still
207
		jmp still
209
	@@:
208
	@@:
210
 
209
 
211
	cmp al,1 ;¨§¬¥­¨«®áì ¯®«®¦¥­¨¥ ®ª­ 
210
	cmp al,1 ;¨§¬¥­¨«®áì ¯®«®¦¥­¨¥ ®ª­ 
212
	jz red_win
211
	jz red_win
213
	cmp al,2
212
	cmp al,2
214
	jz key
213
	jz key
215
	cmp al,3
214
	cmp al,3
216
	jz button
215
	jz button
217
	cmp al,6 ;¬ëèì
216
	cmp al,6 ;¬ëèì
218
	jne @f
217
	jne @f
219
		call mouse
218
		call mouse
220
	@@:
219
	@@:
221
	jmp still
220
	jmp still
222
 
221
 
223
align 16
222
align 16
224
mouse:
223
mouse:
225
	stdcall [kmainmenu_dispatch_cursorevent], [main_menu]
224
	stdcall [kmainmenu_dispatch_cursorevent], [main_menu]
226
 
225
 
227
	mcall SF_MOUSE_GET,SSF_WINDOW_POSITION
226
	mcall SF_MOUSE_GET,SSF_WINDOW_POSITION
228
	cmp word[tedit0.wnd.top],ax
227
	cmp word[tedit0.wnd.top],ax
229
	jg .no_edit
228
	jg .no_edit
230
	shr eax,16
229
	shr eax,16
231
	cmp word[tedit0.wnd.left],ax
230
	cmp word[tedit0.wnd.left],ax
232
	jg .no_edit
231
	jg .no_edit
233
	mcall SF_MOUSE_GET,SSF_BUTTON_EXT
232
	mcall SF_MOUSE_GET,SSF_BUTTON_EXT
234
	bt eax,24 ;¤¢®©­®© 饫çñª «¥¢®© ª­®¯ª®©
233
	bt eax,24 ;¤¢®©­®© 饫çñª «¥¢®© ª­®¯ª®©
235
	jnc @f
234
	jnc @f
236
		stdcall [ted_but_select_word], tedit0
235
		stdcall [ted_but_select_word], tedit0
237
		ret
236
		ret
238
	@@:
237
	@@:
239
		stdcall [ted_mouse], tedit0
238
		stdcall [ted_mouse], tedit0
240
	.no_edit:
239
	.no_edit:
241
 
240
 
242
	;¯à®¢¥àª  ¡®ª®¢ëå ¯ ­¥«¥©
241
	;¯à®¢¥àª  ¡®ª®¢ëå ¯ ­¥«¥©
243
	cmp byte[tedit0.panel_id],TED_PANEL_FIND
242
	cmp byte[tedit0.panel_id],TED_PANEL_FIND
244
	jne @f
243
	jne @f
245
		stdcall [edit_box_mouse], edit2
244
		stdcall [edit_box_mouse], edit2
246
		stdcall [option_box_mouse], opt_grlist1
245
		stdcall [option_box_mouse], opt_grlist1
247
	@@:
246
	@@:
248
	cmp byte[tedit0.panel_id],TED_PANEL_REPLACE
247
	cmp byte[tedit0.panel_id],TED_PANEL_REPLACE
249
	jne @f
248
	jne @f
250
		stdcall [edit_box_mouse], edit2
249
		stdcall [edit_box_mouse], edit2
251
		stdcall [edit_box_mouse], edit1
250
		stdcall [edit_box_mouse], edit1
252
		stdcall [option_box_mouse], opt_grlist1
251
		stdcall [option_box_mouse], opt_grlist1
253
	@@:
252
	@@:
254
	cmp byte[tedit0.panel_id],TED_PANEL_SYNTAX
253
	cmp byte[tedit0.panel_id],TED_PANEL_SYNTAX
255
	jne @f
254
	jne @f
256
		stdcall [tl_mouse], tree1
255
		stdcall [tl_mouse], tree1
257
	@@:
256
	@@:
258
	ret
257
	ret
259
;---------------------------------------------------------------------
258
;---------------------------------------------------------------------
260
 
259
 
261
;output:
260
;output:
262
; ah = symbol
261
; ah = symbol
263
align 16
262
align 16
264
proc KeyConvertToASCII uses ebx, table:dword
263
proc KeyConvertToASCII uses ebx, table:dword
265
	mov ebx,dword[table] ;convert scan to ascii
264
	mov ebx,dword[table] ;convert scan to ascii
266
	ror ax,8
265
	ror ax,8
267
	xor ah,ah
266
	xor ah,ah
268
	add bx,ax
267
	add bx,ax
269
	mov ah,byte[ebx]
268
	mov ah,byte[ebx]
270
	ret
269
	ret
271
endp
270
endp
272
 
271
 
273
align 16
272
align 16
274
key:
273
key:
275
	mcall SF_KEYBOARD,SSF_GET_CONTROL_KEYS ;66.3 ¯®«ãç¨âì á®áâ®ï­¨¥ ã¯à ¢«ïîé¨å ª« ¢¨è
274
	mcall SF_KEYBOARD,SSF_GET_CONTROL_KEYS ;66.3 ¯®«ãç¨âì á®áâ®ï­¨¥ ã¯à ¢«ïîé¨å ª« ¢¨è
276
	xor esi,esi
275
	xor esi,esi
277
	mov ecx,1
276
	mov ecx,1
278
	test al,0x03 ;[Shift]
277
	test al,0x03 ;[Shift]
279
	jz @f
278
	jz @f
280
		mov cl,2
279
		mov cl,2
281
		or esi,KM_SHIFT
280
		or esi,KM_SHIFT
282
	@@:
281
	@@:
283
	test al,0x0c ;[Ctrl]
282
	test al,0x0c ;[Ctrl]
284
	jz @f
283
	jz @f
285
		or esi,KM_CTRL
284
		or esi,KM_CTRL
286
	@@:
285
	@@:
287
	test al,0x30 ;[Alt]
286
	test al,0x30 ;[Alt]
288
	jz @f
287
	jz @f
289
		mov cl,3
288
		mov cl,3
290
		or esi,KM_ALT
289
		or esi,KM_ALT
291
	@@:
290
	@@:
292
	test al,0x80 ;[NumLock]
291
	test al,0x80 ;[NumLock]
293
	jz @f
292
	jz @f
294
		or esi,KM_NUMLOCK
293
		or esi,KM_NUMLOCK
295
	@@:
294
	@@:
296
 
295
 
297
	mcall SF_SYSTEM_GET,SSF_KEYBOARD_LAYOUT,,conv_tabl ;26.2 ¯®«ãç¨âì à áª« ¤ªã ª« ¢¨ âãàë
296
	mcall SF_SYSTEM_GET,SSF_KEYBOARD_LAYOUT,,conv_tabl ;26.2 ¯®«ãç¨âì à áª« ¤ªã ª« ¢¨ âãàë
298
	mcall SF_GET_KEY
297
	mcall SF_GET_KEY
299
	stdcall [tl_key], tree1
298
	stdcall [tl_key], tree1
300
 
299
 
301
	test word [edit1.flags],10b ;ed_focus ;¥á«¨ ­¥ ¢ 䮪ãá¥, ¢ë室¨¬
300
	test word [edit1.flags],10b ;ed_focus ;¥á«¨ ­¥ ¢ 䮪ãá¥, ¢ë室¨¬
302
	je @f
301
	je @f
303
		cmp ah,0x80 ;if key up
302
		cmp ah,0x80 ;if key up
304
		ja still
303
		ja still
305
		cmp ah,42 ;[Shift] (left)
304
		cmp ah,42 ;[Shift] (left)
306
		je still
305
		je still
307
		cmp ah,54 ;[Shift] (right)
306
		cmp ah,54 ;[Shift] (right)
308
		je still
307
		je still
309
		cmp ah,56 ;[Alt]
308
		cmp ah,56 ;[Alt]
310
		je still
309
		je still
311
		cmp ah,29 ;[Ctrl]
310
		cmp ah,29 ;[Ctrl]
312
		je still
311
		je still
313
		cmp ah,69 ;[Pause Break]
312
		cmp ah,69 ;[Pause Break]
314
		je still
313
		je still
315
 
314
 
316
		stdcall KeyConvertToASCII, conv_tabl
315
		stdcall KeyConvertToASCII, conv_tabl
317
		stdcall [edit_box_key], edit1
316
		stdcall [edit_box_key], edit1
318
		jmp still
317
		jmp still
319
	@@:
318
	@@:
320
	test word [edit2.flags],10b ;ed_focus ;¥á«¨ ­¥ ¢ 䮪ãá¥, ¢ë室¨¬
319
	test word [edit2.flags],10b ;ed_focus ;¥á«¨ ­¥ ¢ 䮪ãá¥, ¢ë室¨¬
321
	je @f
320
	je @f
322
		cmp ah,0x80 ;if key up
321
		cmp ah,0x80 ;if key up
323
		ja still
322
		ja still
324
		cmp ah,42 ;[Shift] (left)
323
		cmp ah,42 ;[Shift] (left)
325
		je still
324
		je still
326
		cmp ah,54 ;[Shift] (right)
325
		cmp ah,54 ;[Shift] (right)
327
		je still
326
		je still
328
		cmp ah,56 ;[Alt]
327
		cmp ah,56 ;[Alt]
329
		je still
328
		je still
330
		cmp ah,29 ;[Ctrl]
329
		cmp ah,29 ;[Ctrl]
331
		je still
330
		je still
332
		cmp ah,69 ;[Pause Break]
331
		cmp ah,69 ;[Pause Break]
333
		je still
332
		je still
334
 
333
 
335
		stdcall KeyConvertToASCII, conv_tabl
334
		stdcall KeyConvertToASCII, conv_tabl
336
		stdcall [edit_box_key], edit2
335
		stdcall [edit_box_key], edit2
337
		jmp still
336
		jmp still
338
	@@:
337
	@@:
339
 
338
 
340
	stdcall [ted_key], tedit0, conv_tabl,esi
339
	stdcall [ted_key], tedit0, conv_tabl,esi
341
	jmp still
340
	jmp still
342
 
341
 
343
align 4
342
align 4
344
edit1 edit_box TED_PANEL_WIDTH-1, 0, 20, 0xffffff, 0xff80, 0xff0000, 0xff, 0x4080, 300, buf_replace, mouse_dd, 0
343
edit1 edit_box TED_PANEL_WIDTH-1, 0, 20, 0xffffff, 0xff80, 0xff0000, 0xff, 0x4080, 300, buf_replace, mouse_dd, 0
345
edit2 edit_box TED_PANEL_WIDTH-1, 0, 20, 0xffffff, 0xff80, 0xff0000, 0xff, 0x4080, 300, buf_find, mouse_dd, 0
344
edit2 edit_box TED_PANEL_WIDTH-1, 0, 20, 0xffffff, 0xff80, 0xff0000, 0xff, 0x4080, 300, buf_find, mouse_dd, 0
346
 
345
 
347
unpac_mem dd 0
346
unpac_mem dd 0
348
 
347
 
349
if lang eq ru
348
if lang eq ru
350
  head_f_i:
349
  head_f_i:
351
  head_f_l db '‘¨á⥬­ ï ®è¨¡ª ',0
350
  head_f_l db '"‘¨á⥬­ ï ®è¨¡ª ',0
352
  err_message_found_lib0 db '¥ ­ ©¤¥­  ¡¨¡«¨®â¥ª  ',39,'box_lib.obj',39,0
351
  err_message_found_lib0 db '¥ ­ ©¤¥­  ¡¨¡«¨®â¥ª  ',39,'box_lib.obj',39,'" -tE',0
353
  err_message_import0 db 'Žè¨¡ª  ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'box_lib.obj',39,0
352
  err_message_import0 db 'Žè¨¡ª  ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'box_lib.obj',39,'" -tW',0
354
  err_message_found_lib1 db '¥ ­ ©¤¥­  ¡¨¡«¨®â¥ª  ',39,'msgbox.obj',39,0
353
  err_message_found_lib1 db '¥ ­ ©¤¥­  ¡¨¡«¨®â¥ª  ',39,'msgbox.obj',39,'" -tE',0
355
  err_message_import1 db 'Žè¨¡ª  ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'msgbox.obj',39,0
354
  err_message_import1 db 'Žè¨¡ª  ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'msgbox.obj',39,'" -tW',0
356
  err_message_found_lib2 db '¥ ­ ©¤¥­  ¡¨¡«¨®â¥ª  ',39,'proc_lib.obj',39,0
355
  err_message_found_lib2 db '¥ ­ ©¤¥­  ¡¨¡«¨®â¥ª  ',39,'proc_lib.obj',39,'" -tE',0
357
  err_message_import2 db 'Žè¨¡ª  ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'proc_lib.obj',39,0
356
  err_message_import2 db 'Žè¨¡ª  ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'proc_lib.obj',39,'" -tW',0
358
  err_message_found_lib_3 db '¥ ­ ©¤¥­  ¡¨¡«¨®â¥ª  ',39,'libimg.obj',39,0
357
  err_message_found_lib_3 db '¥ ­ ©¤¥­  ¡¨¡«¨®â¥ª  ',39,'libimg.obj',39,'" -tE',0
359
  err_message_import_3 db 'Žè¨¡ª  ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'libimg.obj',39,0
358
  err_message_import_3 db 'Žè¨¡ª  ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'libimg.obj',39,'" -tW',0
360
  err_message_found_lib_4 db '¥ ­ ©¤¥­  ¡¨¡«¨®â¥ª  ',39,'libini.obj',39,0
359
  err_message_found_lib_4 db '¥ ­ ©¤¥­  ¡¨¡«¨®â¥ª  ',39,'libini.obj',39,'" -tE',0
361
  err_message_import_4 db 'Žè¨¡ª  ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'libini.obj',39,0
360
  err_message_import_4 db 'Žè¨¡ª  ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'libini.obj',39,'" -tW',0
362
  err_message_found_lib_5 db '¥ ­ ©¤¥­  ¡¨¡«¨®â¥ª  ',39,'libkmenu.obj',39,0
361
  err_message_found_lib_5 db '¥ ­ ©¤¥­  ¡¨¡«¨®â¥ª  ',39,'libkmenu.obj',39,'" -tE',0
363
  err_message_import_5 db 'Žè¨¡ª  ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'libkmenu.obj',39,0
362
  err_message_import_5 db 'Žè¨¡ª  ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'libkmenu.obj',39,'" -tW',0
364
else
363
else
365
  head_f_i:
364
  head_f_i:
366
  head_f_l db 'System error',0
365
  head_f_l db '"System error',0
367
  err_message_found_lib0 db 'Sorry I cannot found library ',39,'box_lib.obj',39,0
366
  err_message_found_lib0 db 'Sorry I cannot found library ',39,'box_lib.obj',39,'" -tE',0
368
  err_message_import0 db 'Error on load import library ',39,'box_lib.obj',39,0
367
  err_message_import0 db 'Error on load import library ',39,'box_lib.obj',39,'" -tW',0
369
  err_message_found_lib1 db 'Sorry I cannot found library ',39,'msgbox.obj',39,0
368
  err_message_found_lib1 db 'Sorry I cannot found library ',39,'msgbox.obj',39,'" -tE',0
370
  err_message_import1 db 'Error on load import library ',39,'msgbox.obj',39,0
369
  err_message_import1 db 'Error on load import library ',39,'msgbox.obj',39,'" -tW',0
371
  err_message_found_lib2 db 'Sorry I cannot found library ',39,'proc_lib.obj',39,0
370
  err_message_found_lib2 db 'Sorry I cannot found library ',39,'proc_lib.obj',39,'" -tE',0
372
  err_message_import2 db 'Error on load import library ',39,'proc_lib.obj',39,0
371
  err_message_import2 db 'Error on load import library ',39,'proc_lib.obj',39,'" -tW',0
373
  err_message_found_lib_3 db 'Sorry I cannot found library ',39,'libimg.obj',39,0
372
  err_message_found_lib_3 db 'Sorry I cannot found library ',39,'libimg.obj',39,'" -tE',0
374
  err_message_import_3 db 'Error on load import library ',39,'libimg.obj',39,0
373
  err_message_import_3 db 'Error on load import library ',39,'libimg.obj',39,'" -tW',0
375
  err_message_found_lib_4 db 'Sorry I cannot found library ',39,'libini.obj',39,0
374
  err_message_found_lib_4 db 'Sorry I cannot found library ',39,'libini.obj',39,'" -tE',0
376
  err_message_import_4 db 'Error on load import library ',39,'libini.obj',39,0
375
  err_message_import_4 db 'Error on load import library ',39,'libini.obj',39,'" -tW',0
377
  err_message_found_lib_5 db 'Sorry I cannot found library ',39,'libkmenu.obj',39,0
376
  err_message_found_lib_5 db 'Sorry I cannot found library ',39,'libkmenu.obj',39,'" -tE',0
378
  err_message_import_5 db 'Error on load import library ',39,'libkmenu.obj',39,0
377
  err_message_import_5 db 'Error on load import library ',39,'libkmenu.obj',39,'" -tW',0
379
end if
378
end if
380
 
379
 
381
;library structures
380
;library structures
382
l_libs_start:
381
l_libs_start:
383
	lib0 l_libs lib_name_0, sys_path, file_name, system_dir_0,\
382
	lib0 l_libs lib_name_0, sys_path, file_name, system_dir_0,\
384
		err_message_found_lib0, head_f_l, import_box_lib,err_message_import0, head_f_i
383
		err_message_found_lib0, head_f_l, import_box_lib,err_message_import0, head_f_i
385
	lib1 l_libs lib_name_1, sys_path, file_name, system_dir_1,\
384
	lib1 l_libs lib_name_1, sys_path, file_name, system_dir_1,\
386
		err_message_found_lib1, head_f_l, import_msgbox_lib, err_message_import1, head_f_i
385
		err_message_found_lib1, head_f_l, import_msgbox_lib, err_message_import1, head_f_i
387
	lib2 l_libs lib_name_2, sys_path, file_name, system_dir_2,\
386
	lib2 l_libs lib_name_2, sys_path, file_name, system_dir_2,\
388
		err_message_found_lib2, head_f_l, import_proclib, err_message_import2, head_f_i
387
		err_message_found_lib2, head_f_l, import_proclib, err_message_import2, head_f_i
389
	lib3 l_libs lib_name_3, sys_path, file_name, system_dir_3,\
388
	lib3 l_libs lib_name_3, sys_path, file_name, system_dir_3,\
390
		err_message_found_lib_3, head_f_l, import_libimg, err_message_import_3, head_f_i
389
		err_message_found_lib_3, head_f_l, import_libimg, err_message_import_3, head_f_i
391
	lib4 l_libs lib_name_4, sys_path, file_name, system_dir_4,\
390
	lib4 l_libs lib_name_4, sys_path, file_name, system_dir_4,\
392
		err_message_found_lib_4, head_f_l, import_libini, err_message_import_4, head_f_i
391
		err_message_found_lib_4, head_f_l, import_libini, err_message_import_4, head_f_i
393
	lib5 l_libs lib_name_5, sys_path, file_name, system_dir_5,\
392
	lib5 l_libs lib_name_5, sys_path, file_name, system_dir_5,\
394
		err_message_found_lib_5, head_f_l, import_libkmenu, err_message_import_5, head_f_i
393
		err_message_found_lib_5, head_f_l, import_libkmenu, err_message_import_5, head_f_i
395
load_lib_end:
394
load_lib_end:
396
 
395
 
397
IncludeIGlobals
396
IncludeIGlobals
398
hed db 'TextEdit '
397
hed db 'TextEdit '
399
i_end:
398
i_end:
400
	openfile_path: ;¯®«­ë© ¯ãâì ª ä ©«ã á ª®â®àë¬ ¨¤¥â à ¡®â 
399
	openfile_path: ;¯®«­ë© ¯ãâì ª ä ©«ã á ª®â®àë¬ ¨¤¥â à ¡®â 
401
		rb 4096
400
		rb 4096
402
	dir_mem rb 32+304*count_of_dir_list_files
401
	dir_mem rb 32+304*count_of_dir_list_files
403
	wnd_s_pos: ;¬¥áâ® ¤«ï ­ áâ஥ª áâ à⮢®© ¯®§¨æ¨¨ ®ª­ 
402
	wnd_s_pos: ;¬¥áâ® ¤«ï ­ áâ஥ª áâ à⮢®© ¯®§¨æ¨¨ ®ª­ 
404
		rq 1
403
		rq 1
405
	last_open_synt_file rb 32 ;¨¬ï ¯®á«¥¤­¥£® ¯®¤ª«î祭­®£® ä ©«  ᨭ⠪á¨á 
404
	last_open_synt_file rb 32 ;¨¬ï ¯®á«¥¤­¥£® ¯®¤ª«î祭­®£® ä ©«  ᨭ⠪á¨á 
406
	buf rb BUF_SIZE ;¡ãä¥à ¤«ï ª®¯¨à®¢ ­¨ï ¨ ¢áâ ¢ª¨
405
	buf rb BUF_SIZE ;¡ãä¥à ¤«ï ª®¯¨à®¢ ­¨ï ¨ ¢áâ ¢ª¨
407
	buf_find rb 302 ;¡ãä¥à ¤«ï ¯®¨áª  ⥪áâ 
406
	buf_find rb 302 ;¡ãä¥à ¤«ï ¯®¨áª  ⥪áâ 
408
	buf_replace rb 302 ;¡ãä¥à ¤«ï § ¬¥­ë ⥪áâ 
407
	buf_replace rb 302 ;¡ãä¥à ¤«ï § ¬¥­ë ⥪áâ 
409
	sc system_colors
408
	sc system_colors
410
IncludeUGlobals
409
IncludeUGlobals
411
	align 16
410
	align 16
412
	procinfo process_information
411
	procinfo process_information
413
		rb 1024
412
		rb 1024
414
	thread:
413
	thread:
415
		rb 4096
414
		rb 4096
416
align 16
415
align 16
417
    thread_coords:
416
    thread_coords:
418
	rb 4096
417
	rb 4096
419
align 16
418
align 16
420
stacktop:
419
stacktop:
421
	sys_path: ;¯ãâì ®âªã¤  § ¯ãá⨫áï ¨á¯®«­ï¥¬ë© ä ©«
420
	sys_path: ;¯ãâì ®âªã¤  § ¯ãá⨫áï ¨á¯®«­ï¥¬ë© ä ©«
422
		rb 4096
421
		rb 4096
423
	file_name: ;¯ à ¬¥âàë § ¯ã᪠
422
	file_name: ;¯ à ¬¥âàë § ¯ã᪠
424
		rb 4096
423
		rb 4096
425
	syntax_path: ;¨¬ï ¯®¤ª«îç ¥¬®£® ä ©«  ᨭ⠪á¨á 
424
	syntax_path: ;¨¬ï ¯®¤ª«îç ¥¬®£® ä ©«  ᨭ⠪á¨á 
426
		rb 4096
425
		rb 4096
427
	plugin_path:
426
	plugin_path:
428
		rb 4096
427
		rb 4096
429
	text_work_area: ;¯ãâì ª ä ©«ã, ª®â®àë© ¯®ª §ë¢ ¥âáï ¢ ®ª­¥
428
	text_work_area: ;¯ãâì ª ä ©«ã, ª®â®àë© ¯®ª §ë¢ ¥âáï ¢ ®ª­¥
430
		rb 4096
429
		rb 4096
431
	filename_area: ;¨¬ï ä ©«  ¤«ï ¤¨ «®£  ®âªàëâ¨ï/§ ªàëâ¨ï
430
	filename_area: ;¨¬ï ä ©«  ¤«ï ¤¨ «®£  ®âªàëâ¨ï/§ ªàëâ¨ï
432
		rb 256
431
		rb 256
433
	file_info:
432
	file_info:
434
		rb 40
433
		rb 40
435
mem:
434
mem: