Subversion Repositories Kolibri OS

Rev

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

Rev 7577 Rev 7579
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
	stdcall str_len,esi
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,0
98
	cmp ebx,0
99
	jle .end_dir_init
99
	jle .end_dir_init
100
		mov eax,dir_mem+32+40
100
		mov eax,dir_mem+32+40
101
		mov ecx,ebx
101
		mov ecx,ebx
102
		@@:
102
		@@:
103
			cmp byte[eax],'.' ;䨫ìâà㥬 ä ©«ë á ¨¬¥­ ¬¨ '.' ¨ '..'
103
			cmp byte[eax],'.' ;䨫ìâà㥬 ä ©«ë á ¨¬¥­ ¬¨ '.' ¨ '..'
104
			je .filter
104
			je .filter
105
			;0x10000 ;1*2^16 - £¤¥ 1 ­®¬¥à ¨ª®­ª¨ á ª­¨£®©
105
			;0x10000 ;1*2^16 - £¤¥ 1 ­®¬¥à ¨ª®­ª¨ á ª­¨£®©
106
			stdcall [tl_node_add], tree1,0x10000,eax 
106
			stdcall [tl_node_add], tree1,0x10000,eax 
107
			stdcall [tl_cur_next], tree1
107
			stdcall [tl_cur_next], tree1
108
			.filter:
108
			.filter:
109
			add eax,304
109
			add eax,304
110
			loop @b
110
			loop @b
111
		stdcall [tl_cur_beg],tree1 ;áâ ¢¨¬ ªãàá®à ­  ­ ç «® ᯨ᪠
111
		stdcall [tl_cur_beg],tree1 ;áâ ¢¨¬ ªãàá®à ­  ­ ç «® ᯨ᪠
112
		or dword[tree1.style], tl_cursor_pos_limited ;®£à ­¨ç¨¢ ¥¬ ¤¢¨¦¥­¨¥ ªãàá®à  ¢ ¯à¥¤¥« å ᯨ᪠
112
		or dword[tree1.style], tl_cursor_pos_limited ;®£à ­¨ç¨¢ ¥¬ ¤¢¨¦¥­¨¥ ªãàá®à  ¢ ¯à¥¤¥« å ᯨ᪠
113
	.end_dir_init:
113
	.end_dir_init:
114
 
114
 
115
;--- load ini file ---
115
;--- load ini file ---
116
	copy_path ini_name,sys_path,file_name,0
116
	copy_path ini_name,sys_path,file_name,0
117
	;window startup pozition
117
	;window startup pozition
118
	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
119
	mov word[wnd_s_pos+2],ax
119
	mov word[wnd_s_pos+2],ax
120
	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
121
	mov word[wnd_s_pos],ax
121
	mov word[wnd_s_pos],ax
122
	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
123
	mov word[wnd_s_pos+6],ax
123
	mov word[wnd_s_pos+6],ax
124
	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
125
	mov word[wnd_s_pos+4],ax
125
	mov word[wnd_s_pos+4],ax
126
	;scrool type
126
	;scrool type
127
	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
128
	mov [wScr.type],eax
128
	mov [wScr.type],eax
129
	mov [hScr.type],eax
129
	mov [hScr.type],eax
130
	mov [ws_dir_lbox.type],eax
130
	mov [ws_dir_lbox.type],eax
131
    mov [w_scr_t3.type],eax
131
    mov [w_scr_t3.type],eax
132
	;symbol size
132
	;symbol size
133
	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
134
	mov dword[tedit0.rec.width],eax
134
	mov dword[tedit0.rec.width],eax
135
	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
136
	mov dword[tedit0.rec.height],eax
136
	mov dword[tedit0.rec.height],eax
137
	;lea eax,[eax+eax*2]
137
	;lea eax,[eax+eax*2]
138
	;mov dword[tedit0.rec.top],eax
138
	;mov dword[tedit0.rec.top],eax
139
	;font size
139
	;font size
140
	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
141
	shl eax,24
141
	shl eax,24
142
	mov dword[tedit0.font_size],eax
142
	mov dword[tedit0.font_size],eax
143
	;ª­®¯ª¨ ­  ¯ ­¥«¨
143
	;ª­®¯ª¨ ­  ¯ ­¥«¨
144
	ini_panel key_but_new,    ID_BUT_NEW
144
	ini_panel key_but_new,    ID_BUT_NEW
145
	ini_panel key_but_open,   ID_BUT_OPEN
145
	ini_panel key_but_open,   ID_BUT_OPEN
146
	ini_panel key_but_save,   ID_BUT_SAVE
146
	ini_panel key_but_save,   ID_BUT_SAVE
147
	ini_panel key_but_save_as,ID_BUT_SAVE_AS
147
	ini_panel key_but_save_as,ID_BUT_SAVE_AS
148
	ini_panel key_but_select, ID_BUT_SELECT
148
	ini_panel key_but_select, ID_BUT_SELECT
149
	ini_panel key_but_cut,    ID_BUT_CUT
149
	ini_panel key_but_cut,    ID_BUT_CUT
150
	ini_panel key_but_copy,   ID_BUT_COPY
150
	ini_panel key_but_copy,   ID_BUT_COPY
151
	ini_panel key_but_paste,  ID_BUT_PASTE
151
	ini_panel key_but_paste,  ID_BUT_PASTE
152
	ini_panel key_but_find,   ID_BUT_FIND
152
	ini_panel key_but_find,   ID_BUT_FIND
153
	ini_panel key_but_replace,ID_BUT_REPLACE
153
	ini_panel key_but_replace,ID_BUT_REPLACE
154
	ini_panel key_but_key_words,ID_BUT_KEY_WORDS
154
	ini_panel key_but_key_words,ID_BUT_KEY_WORDS
155
	ini_panel key_but_upper,  ID_BUT_UPPER
155
	ini_panel key_but_upper,  ID_BUT_UPPER
156
	ini_panel key_but_lower,  ID_BUT_LOWER
156
	ini_panel key_but_lower,  ID_BUT_LOWER
157
	ini_panel key_but_reverse,ID_BUT_REVERSE
157
	ini_panel key_but_reverse,ID_BUT_REVERSE
158
	ini_panel key_but_undo,   ID_BUT_UNDO
158
	ini_panel key_but_undo,   ID_BUT_UNDO
159
	ini_panel key_but_redo,   ID_BUT_REDO
159
	ini_panel key_but_redo,   ID_BUT_REDO
160
	ini_panel key_but_invisible,ID_BUT_INVISIBLE
160
	ini_panel key_but_invisible,ID_BUT_INVISIBLE
161
	ini_panel key_but_syntax_list,ID_BUT_SYNTAX_LIST
161
	ini_panel key_but_syntax_list,ID_BUT_SYNTAX_LIST
162
	ini_panel key_but_syntax_mode,ID_BUT_SYNTAX_MODE
162
	ini_panel key_but_syntax_mode,ID_BUT_SYNTAX_MODE
163
	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
164
	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
165
	;ä ©«®¢ë¥ à áè¨à¥­¨ï
165
	;ä ©«®¢ë¥ à áè¨à¥­¨ï
166
	xor edx,edx
166
	xor edx,edx
167
	mov ebx,synt_auto_open
167
	mov ebx,synt_auto_open
168
	@@:
168
	@@:
169
		;¡¥à¥¬ ¨¬ï ä ©« 
169
		;¡¥à¥¬ ¨¬ï ä ©« 
170
		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
171
		cmp byte[ebx],0
171
		cmp byte[ebx],0
172
		je @f
172
		je @f
173
		inc byte[key_synt_file.numb]
173
		inc byte[key_synt_file.numb]
174
		add ebx,32
174
		add ebx,32
175
		;¡¥à¥¬ à áè¨à¥­¨ï
175
		;¡¥à¥¬ à áè¨à¥­¨ï
176
		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
177
		inc byte[key_synt_ext.numb]
177
		inc byte[key_synt_ext.numb]
178
		add ebx,32
178
		add ebx,32
179
		inc edx
179
		inc edx
180
		cmp edx,max_synt_auto_open
180
		cmp edx,max_synt_auto_open
181
		jl @b
181
		jl @b
182
	@@:
182
	@@:
183
 
183
 
184
;--- load color option file ---
184
;--- load color option file ---
185
	stdcall open_unpac_synt_file,[fn_col_option]
185
	stdcall open_unpac_synt_file,[fn_col_option]
186
 
186
 
187
;--- get cmd line ---
187
;--- get cmd line ---
188
	cmp byte[openfile_path+3],0 ;openfile_path
188
	cmp byte[openfile_path+3],0 ;openfile_path
189
	je @f ;if file names exist
189
	je @f ;if file names exist
190
		mov esi,openfile_path
190
		mov esi,openfile_path
191
		stdcall auto_open_syntax,esi
191
		stdcall auto_open_syntax,esi
192
		call but_no_msg_OpenFile
192
		call but_no_msg_OpenFile
193
	@@:
193
	@@:
194
 
194
 
195
 
195
 
196
 
196
 
197
align 16
197
align 16
198
red_win:
198
red_win:
199
	call draw_window
199
	call draw_window
200
 
200
 
201
align 16
201
align 16
202
still:
202
still:
203
	mcall SF_WAIT_EVENT
203
	mcall SF_WAIT_EVENT
204
	cmp dword[exit_code],1
204
	cmp dword[exit_code],1
205
	jne @f
205
	jne @f
206
		call ted_Exit
206
		call ted_Exit
207
		jmp still
207
		jmp still
208
	@@:
208
	@@:
209
 
209
 
210
	cmp al,1 ;¨§¬¥­¨«®áì ¯®«®¦¥­¨¥ ®ª­ 
210
	cmp al,1 ;¨§¬¥­¨«®áì ¯®«®¦¥­¨¥ ®ª­ 
211
	jz red_win
211
	jz red_win
212
	cmp al,2
212
	cmp al,2
213
	jz key
213
	jz key
214
	cmp al,3
214
	cmp al,3
215
	jz button
215
	jz button
216
	cmp al,6 ;¬ëèì
216
	cmp al,6 ;¬ëèì
217
	jne @f
217
	jne @f
218
		call mouse
218
		call mouse
219
	@@:
219
	@@:
220
	jmp still
220
	jmp still
221
 
221
 
222
align 16
222
align 16
223
mouse:
223
mouse:
224
	stdcall [kmainmenu_dispatch_cursorevent], [main_menu]
224
	stdcall [kmainmenu_dispatch_cursorevent], [main_menu]
225
 
225
 
226
	mcall SF_MOUSE_GET,SSF_WINDOW_POSITION
226
	mcall SF_MOUSE_GET,SSF_WINDOW_POSITION
227
	cmp word[tedit0.wnd.top],ax
227
	cmp word[tedit0.wnd.top],ax
228
	jg .no_edit
228
	jg .no_edit
229
	shr eax,16
229
	shr eax,16
230
	cmp word[tedit0.wnd.left],ax
230
	cmp word[tedit0.wnd.left],ax
231
	jg .no_edit
231
	jg .no_edit
232
	mcall SF_MOUSE_GET,SSF_BUTTON_EXT
232
	mcall SF_MOUSE_GET,SSF_BUTTON_EXT
233
	bt eax,24 ;¤¢®©­®© 饫çñª «¥¢®© ª­®¯ª®©
233
	bt eax,24 ;¤¢®©­®© 饫çñª «¥¢®© ª­®¯ª®©
234
	jnc @f
234
	jnc @f
235
		stdcall [ted_but_select_word], tedit0
235
		stdcall [ted_but_select_word], tedit0
236
		ret
236
		ret
237
	@@:
237
	@@:
238
		stdcall [ted_mouse], tedit0
238
		stdcall [ted_mouse], tedit0
239
	.no_edit:
239
	.no_edit:
240
 
240
 
241
	;¯à®¢¥àª  ¡®ª®¢ëå ¯ ­¥«¥©
241
	;¯à®¢¥àª  ¡®ª®¢ëå ¯ ­¥«¥©
242
	cmp byte[tedit0.panel_id],TED_PANEL_FIND
242
	cmp byte[tedit0.panel_id],TED_PANEL_FIND
243
	jne @f
243
	jne @f
244
		stdcall [edit_box_mouse], edit2
244
		stdcall [edit_box_mouse], edit_find
245
		stdcall [option_box_mouse], opt_grlist1
245
		stdcall [option_box_mouse], opt_grlist1
246
	@@:
246
	@@:
247
	cmp byte[tedit0.panel_id],TED_PANEL_REPLACE
247
	cmp byte[tedit0.panel_id],TED_PANEL_REPLACE
248
	jne @f
248
	jne @f
249
		stdcall [edit_box_mouse], edit2
249
		stdcall [edit_box_mouse], edit_find
250
		stdcall [edit_box_mouse], edit1
250
		stdcall [edit_box_mouse], edit_replace
251
		stdcall [option_box_mouse], opt_grlist1
251
		stdcall [option_box_mouse], opt_grlist1
252
	@@:
252
	@@:
253
	cmp byte[tedit0.panel_id],TED_PANEL_SYNTAX
253
	cmp byte[tedit0.panel_id],TED_PANEL_SYNTAX
254
	jne @f
254
	jne @f
255
		stdcall [tl_mouse], tree1
255
		stdcall [tl_mouse], tree1
256
	@@:
256
	@@:
-
 
257
	cmp byte[tedit0.panel_id],TED_PANEL_GOTO
-
 
258
	jne @f
-
 
259
		stdcall [edit_box_mouse], edit_goto
-
 
260
	@@:
257
	ret
261
	ret
258
;---------------------------------------------------------------------
262
;---------------------------------------------------------------------
259
 
263
 
260
;output:
264
;output:
261
; ah = symbol
265
; ah = symbol
262
align 16
266
align 16
263
proc KeyConvertToASCII uses ebx, table:dword
267
proc KeyConvertToASCII uses ebx, table:dword
264
	mov ebx,dword[table] ;convert scan to ascii
268
	mov ebx,dword[table] ;convert scan to ascii
265
	ror ax,8
269
	shr ax,8
266
	xor ah,ah
-
 
267
	add bx,ax
270
	add bx,ax
268
	mov ah,byte[ebx]
271
	mov ah,byte[ebx]
269
	ret
272
	ret
270
endp
273
endp
271
 
274
 
272
align 16
275
align 16
273
key:
276
key:
274
	mcall SF_KEYBOARD,SSF_GET_CONTROL_KEYS ;66.3 ¯®«ãç¨âì á®áâ®ï­¨¥ ã¯à ¢«ïîé¨å ª« ¢¨è
277
	mcall SF_KEYBOARD,SSF_GET_CONTROL_KEYS ;66.3 ¯®«ãç¨âì á®áâ®ï­¨¥ ã¯à ¢«ïîé¨å ª« ¢¨è
275
	xor esi,esi
278
	xor esi,esi
276
	mov ecx,1
279
	mov ecx,1
277
	test al,0x03 ;[Shift]
280
	test al,3 ;[Shift]
278
	jz @f
281
	jz @f
279
		mov cl,2
282
		mov cl,2
280
		or esi,KM_SHIFT
283
		or esi,KM_SHIFT
281
	@@:
284
	@@:
282
	test al,0x0c ;[Ctrl]
285
	test al,0x0c ;[Ctrl]
283
	jz @f
286
	jz @f
284
		or esi,KM_CTRL
287
		or esi,KM_CTRL
285
	@@:
288
	@@:
286
	test al,0x30 ;[Alt]
289
	test al,0x30 ;[Alt]
287
	jz @f
290
	jz @f
288
		mov cl,3
291
		mov cl,3
289
		or esi,KM_ALT
292
		or esi,KM_ALT
290
	@@:
293
	@@:
291
	test al,0x80 ;[NumLock]
294
	test al,0x80 ;[NumLock]
292
	jz @f
295
	jz @f
293
		or esi,KM_NUMLOCK
296
		or esi,KM_NUMLOCK
294
	@@:
297
	@@:
295
 
298
 
296
	mcall SF_SYSTEM_GET,SSF_KEYBOARD_LAYOUT,,conv_tabl ;26.2 ¯®«ãç¨âì à áª« ¤ªã ª« ¢¨ âãàë
299
	mcall SF_SYSTEM_GET,SSF_KEYBOARD_LAYOUT,,conv_tabl ;26.2 ¯®«ãç¨âì à áª« ¤ªã ª« ¢¨ âãàë
297
	mcall SF_GET_KEY
300
	mcall SF_GET_KEY
298
	stdcall [tl_key], tree1
301
	stdcall [tl_key], tree1
-
 
302
 
-
 
303
	test word[edit_replace.flags],ed_focus ;¥á«¨ ­¥ ¢ 䮪ãá¥, ¢ë室¨¬
-
 
304
	je @f
-
 
305
		cmp ah,0x80 ;if key up
-
 
306
		ja still
-
 
307
		cmp ah,42 ;[Shift] (left)
-
 
308
		je still
-
 
309
		cmp ah,54 ;[Shift] (right)
-
 
310
		je still
-
 
311
		cmp ah,56 ;[Alt]
-
 
312
		je still
-
 
313
		cmp ah,29 ;[Ctrl]
-
 
314
		je still
-
 
315
		cmp ah,69 ;[Pause Break]
-
 
316
		je still
-
 
317
 
-
 
318
		stdcall KeyConvertToASCII, conv_tabl
-
 
319
		stdcall [edit_box_key], edit_replace
-
 
320
		jmp still
299
 
321
	@@:
300
	test word [edit1.flags],10b ;ed_focus ;¥á«¨ ­¥ ¢ 䮪ãá¥, ¢ë室¨¬
322
	test word[edit_find.flags],ed_focus ;¥á«¨ ­¥ ¢ 䮪ãá¥, ¢ë室¨¬
301
	je @f
323
	je @f
302
		cmp ah,0x80 ;if key up
324
		cmp ah,0x80 ;if key up
303
		ja still
325
		ja still
304
		cmp ah,42 ;[Shift] (left)
326
		cmp ah,42 ;[Shift] (left)
305
		je still
327
		je still
306
		cmp ah,54 ;[Shift] (right)
328
		cmp ah,54 ;[Shift] (right)
307
		je still
329
		je still
308
		cmp ah,56 ;[Alt]
330
		cmp ah,56 ;[Alt]
309
		je still
331
		je still
310
		cmp ah,29 ;[Ctrl]
332
		cmp ah,29 ;[Ctrl]
311
		je still
333
		je still
312
		cmp ah,69 ;[Pause Break]
334
		cmp ah,69 ;[Pause Break]
313
		je still
335
		je still
314
 
336
 
315
		stdcall KeyConvertToASCII, conv_tabl
337
		stdcall KeyConvertToASCII, conv_tabl
316
		stdcall [edit_box_key], edit1
338
		stdcall [edit_box_key], edit_find
317
		jmp still
339
		jmp still
318
	@@:
340
	@@:
319
	test word [edit2.flags],10b ;ed_focus ;¥á«¨ ­¥ ¢ 䮪ãá¥, ¢ë室¨¬
341
	test word[edit_goto.flags],ed_focus ;¥á«¨ ­¥ ¢ 䮪ãá¥, ¢ë室¨¬
320
	je @f
342
	je @f
321
		cmp ah,0x80 ;if key up
343
		cmp ah,0x80 ;if key up
322
		ja still
344
		ja still
323
		cmp ah,42 ;[Shift] (left)
345
		cmp ah,42 ;[Shift] (left)
324
		je still
346
		je still
325
		cmp ah,54 ;[Shift] (right)
347
		cmp ah,54 ;[Shift] (right)
326
		je still
348
		je still
327
		cmp ah,56 ;[Alt]
349
		cmp ah,56 ;[Alt]
328
		je still
350
		je still
329
		cmp ah,29 ;[Ctrl]
351
		cmp ah,29 ;[Ctrl]
330
		je still
352
		je still
331
		cmp ah,69 ;[Pause Break]
353
		cmp ah,69 ;[Pause Break]
332
		je still
354
		je still
333
 
355
 
334
		stdcall KeyConvertToASCII, conv_tabl
356
		stdcall KeyConvertToASCII, conv_tabl
335
		stdcall [edit_box_key], edit2
357
		stdcall [edit_box_key], edit_goto
336
		jmp still
358
		jmp still
337
	@@:
359
	@@:
338
 
360
 
339
	stdcall [ted_key], tedit0, conv_tabl,esi
361
	stdcall [ted_key], tedit0, conv_tabl,esi
340
	jmp still
362
	jmp still
341
 
363
 
342
align 4
364
align 4
343
edit1 edit_box TED_PANEL_WIDTH-1, 0, 20, 0xffffff, 0xff80, 0xff0000, 0xff, 0x4080, 300, buf_replace, mouse_dd, 0
365
edit_replace edit_box TED_PANEL_WIDTH-1, 0, 20, 0xffffff, 0xff80, 0xff0000, 0xff, 0x4080, 300, buf_replace, mouse_dd, 0
344
edit2 edit_box TED_PANEL_WIDTH-1, 0, 20, 0xffffff, 0xff80, 0xff0000, 0xff, 0x4080, 300, buf_find, mouse_dd, 0
366
edit_find edit_box TED_PANEL_WIDTH-1, 0, 20, 0xffffff, 0xff80, 0xff0000, 0xff, 0x4080, 300, buf_find, mouse_dd, 0
-
 
367
edit_goto edit_box TED_PANEL_WIDTH-1, 0, 20, 0xffffff, 0xff80, 0xff0000, 0xff, 0x4080, 10, buf_goto, mouse_dd, 0
345
 
368
 
346
unpac_mem dd 0
369
unpac_mem dd 0
347
 
370
 
348
if lang eq ru
371
if lang eq ru
349
  head_f_i:
372
  head_f_i:
350
  head_f_l db '"‘¨á⥬­ ï ®è¨¡ª ',0
373
  head_f_l db '"‘¨á⥬­ ï ®è¨¡ª ',0
351
  err_message_found_lib0 db '¥ ­ ©¤¥­  ¡¨¡«¨®â¥ª  ',39,'box_lib.obj',39,'" -tE',0
374
  err_message_found_lib0 db '¥ ­ ©¤¥­  ¡¨¡«¨®â¥ª  ',39,'box_lib.obj',39,'" -tE',0
352
  err_message_import0 db 'Žè¨¡ª  ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'box_lib.obj',39,'" -tW',0
375
  err_message_import0 db 'Žè¨¡ª  ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'box_lib.obj',39,'" -tW',0
353
  err_message_found_lib1 db '¥ ­ ©¤¥­  ¡¨¡«¨®â¥ª  ',39,'msgbox.obj',39,'" -tE',0
376
  err_message_found_lib1 db '¥ ­ ©¤¥­  ¡¨¡«¨®â¥ª  ',39,'msgbox.obj',39,'" -tE',0
354
  err_message_import1 db 'Žè¨¡ª  ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'msgbox.obj',39,'" -tW',0
377
  err_message_import1 db 'Žè¨¡ª  ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'msgbox.obj',39,'" -tW',0
355
  err_message_found_lib2 db '¥ ­ ©¤¥­  ¡¨¡«¨®â¥ª  ',39,'proc_lib.obj',39,'" -tE',0
378
  err_message_found_lib2 db '¥ ­ ©¤¥­  ¡¨¡«¨®â¥ª  ',39,'proc_lib.obj',39,'" -tE',0
356
  err_message_import2 db 'Žè¨¡ª  ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'proc_lib.obj',39,'" -tW',0
379
  err_message_import2 db 'Žè¨¡ª  ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'proc_lib.obj',39,'" -tW',0
357
  err_message_found_lib_3 db '¥ ­ ©¤¥­  ¡¨¡«¨®â¥ª  ',39,'libimg.obj',39,'" -tE',0
380
  err_message_found_lib_3 db '¥ ­ ©¤¥­  ¡¨¡«¨®â¥ª  ',39,'libimg.obj',39,'" -tE',0
358
  err_message_import_3 db 'Žè¨¡ª  ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'libimg.obj',39,'" -tW',0
381
  err_message_import_3 db 'Žè¨¡ª  ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'libimg.obj',39,'" -tW',0
359
  err_message_found_lib_4 db '¥ ­ ©¤¥­  ¡¨¡«¨®â¥ª  ',39,'libini.obj',39,'" -tE',0
382
  err_message_found_lib_4 db '¥ ­ ©¤¥­  ¡¨¡«¨®â¥ª  ',39,'libini.obj',39,'" -tE',0
360
  err_message_import_4 db 'Žè¨¡ª  ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'libini.obj',39,'" -tW',0
383
  err_message_import_4 db 'Žè¨¡ª  ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'libini.obj',39,'" -tW',0
361
  err_message_found_lib_5 db '¥ ­ ©¤¥­  ¡¨¡«¨®â¥ª  ',39,'libkmenu.obj',39,'" -tE',0
384
  err_message_found_lib_5 db '¥ ­ ©¤¥­  ¡¨¡«¨®â¥ª  ',39,'libkmenu.obj',39,'" -tE',0
362
  err_message_import_5 db 'Žè¨¡ª  ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'libkmenu.obj',39,'" -tW',0
385
  err_message_import_5 db 'Žè¨¡ª  ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'libkmenu.obj',39,'" -tW',0
363
else
386
else
364
  head_f_i:
387
  head_f_i:
365
  head_f_l db '"System error',0
388
  head_f_l db '"System error',0
366
  err_message_found_lib0 db 'Sorry I cannot found library ',39,'box_lib.obj',39,'" -tE',0
389
  err_message_found_lib0 db 'Sorry I cannot found library ',39,'box_lib.obj',39,'" -tE',0
367
  err_message_import0 db 'Error on load import library ',39,'box_lib.obj',39,'" -tW',0
390
  err_message_import0 db 'Error on load import library ',39,'box_lib.obj',39,'" -tW',0
368
  err_message_found_lib1 db 'Sorry I cannot found library ',39,'msgbox.obj',39,'" -tE',0
391
  err_message_found_lib1 db 'Sorry I cannot found library ',39,'msgbox.obj',39,'" -tE',0
369
  err_message_import1 db 'Error on load import library ',39,'msgbox.obj',39,'" -tW',0
392
  err_message_import1 db 'Error on load import library ',39,'msgbox.obj',39,'" -tW',0
370
  err_message_found_lib2 db 'Sorry I cannot found library ',39,'proc_lib.obj',39,'" -tE',0
393
  err_message_found_lib2 db 'Sorry I cannot found library ',39,'proc_lib.obj',39,'" -tE',0
371
  err_message_import2 db 'Error on load import library ',39,'proc_lib.obj',39,'" -tW',0
394
  err_message_import2 db 'Error on load import library ',39,'proc_lib.obj',39,'" -tW',0
372
  err_message_found_lib_3 db 'Sorry I cannot found library ',39,'libimg.obj',39,'" -tE',0
395
  err_message_found_lib_3 db 'Sorry I cannot found library ',39,'libimg.obj',39,'" -tE',0
373
  err_message_import_3 db 'Error on load import library ',39,'libimg.obj',39,'" -tW',0
396
  err_message_import_3 db 'Error on load import library ',39,'libimg.obj',39,'" -tW',0
374
  err_message_found_lib_4 db 'Sorry I cannot found library ',39,'libini.obj',39,'" -tE',0
397
  err_message_found_lib_4 db 'Sorry I cannot found library ',39,'libini.obj',39,'" -tE',0
375
  err_message_import_4 db 'Error on load import library ',39,'libini.obj',39,'" -tW',0
398
  err_message_import_4 db 'Error on load import library ',39,'libini.obj',39,'" -tW',0
376
  err_message_found_lib_5 db 'Sorry I cannot found library ',39,'libkmenu.obj',39,'" -tE',0
399
  err_message_found_lib_5 db 'Sorry I cannot found library ',39,'libkmenu.obj',39,'" -tE',0
377
  err_message_import_5 db 'Error on load import library ',39,'libkmenu.obj',39,'" -tW',0
400
  err_message_import_5 db 'Error on load import library ',39,'libkmenu.obj',39,'" -tW',0
378
end if
401
end if
379
 
402
 
380
;library structures
403
;library structures
381
l_libs_start:
404
l_libs_start:
382
	lib0 l_libs lib_name_0, sys_path, file_name, system_dir_0,\
405
	lib0 l_libs lib_name_0, sys_path, file_name, system_dir_0,\
383
		err_message_found_lib0, head_f_l, import_box_lib,err_message_import0, head_f_i
406
		err_message_found_lib0, head_f_l, import_box_lib,err_message_import0, head_f_i
384
	lib1 l_libs lib_name_1, sys_path, file_name, system_dir_1,\
407
	lib1 l_libs lib_name_1, sys_path, file_name, system_dir_1,\
385
		err_message_found_lib1, head_f_l, import_msgbox_lib, err_message_import1, head_f_i
408
		err_message_found_lib1, head_f_l, import_msgbox_lib, err_message_import1, head_f_i
386
	lib2 l_libs lib_name_2, sys_path, file_name, system_dir_2,\
409
	lib2 l_libs lib_name_2, sys_path, file_name, system_dir_2,\
387
		err_message_found_lib2, head_f_l, import_proclib, err_message_import2, head_f_i
410
		err_message_found_lib2, head_f_l, import_proclib, err_message_import2, head_f_i
388
	lib3 l_libs lib_name_3, sys_path, file_name, system_dir_3,\
411
	lib3 l_libs lib_name_3, sys_path, file_name, system_dir_3,\
389
		err_message_found_lib_3, head_f_l, import_libimg, err_message_import_3, head_f_i
412
		err_message_found_lib_3, head_f_l, import_libimg, err_message_import_3, head_f_i
390
	lib4 l_libs lib_name_4, sys_path, file_name, system_dir_4,\
413
	lib4 l_libs lib_name_4, sys_path, file_name, system_dir_4,\
391
		err_message_found_lib_4, head_f_l, import_libini, err_message_import_4, head_f_i
414
		err_message_found_lib_4, head_f_l, import_libini, err_message_import_4, head_f_i
392
	lib5 l_libs lib_name_5, sys_path, file_name, system_dir_5,\
415
	lib5 l_libs lib_name_5, sys_path, file_name, system_dir_5,\
393
		err_message_found_lib_5, head_f_l, import_libkmenu, err_message_import_5, head_f_i
416
		err_message_found_lib_5, head_f_l, import_libkmenu, err_message_import_5, head_f_i
394
load_lib_end:
417
load_lib_end:
395
 
418
 
396
IncludeIGlobals
419
IncludeIGlobals
397
hed db 'TextEdit '
420
hed db 'TextEdit '
398
i_end:
421
i_end:
399
	openfile_path: ;¯®«­ë© ¯ãâì ª ä ©«ã á ª®â®àë¬ ¨¤¥â à ¡®â 
422
	openfile_path: ;¯®«­ë© ¯ãâì ª ä ©«ã á ª®â®àë¬ ¨¤¥â à ¡®â 
400
		rb 4096
423
		rb 4096
401
	dir_mem rb 32+304*count_of_dir_list_files
424
	dir_mem rb 32+304*count_of_dir_list_files
402
	wnd_s_pos: ;¬¥áâ® ¤«ï ­ áâ஥ª áâ à⮢®© ¯®§¨æ¨¨ ®ª­ 
425
	wnd_s_pos: ;¬¥áâ® ¤«ï ­ áâ஥ª áâ à⮢®© ¯®§¨æ¨¨ ®ª­ 
403
		rq 1
426
		rq 1
404
	last_open_synt_file rb 32 ;¨¬ï ¯®á«¥¤­¥£® ¯®¤ª«î祭­®£® ä ©«  ᨭ⠪á¨á 
427
	last_open_synt_file rb 32 ;¨¬ï ¯®á«¥¤­¥£® ¯®¤ª«î祭­®£® ä ©«  ᨭ⠪á¨á 
405
	buf rb BUF_SIZE ;¡ãä¥à ¤«ï ª®¯¨à®¢ ­¨ï ¨ ¢áâ ¢ª¨
428
	buf rb BUF_SIZE ;¡ãä¥à ¤«ï ª®¯¨à®¢ ­¨ï ¨ ¢áâ ¢ª¨
406
	buf_find rb 302 ;¡ãä¥à ¤«ï ¯®¨áª  ⥪áâ 
429
	buf_find rb 302 ;¡ãä¥à ¤«ï ¯®¨áª  ⥪áâ 
407
	buf_replace rb 302 ;¡ãä¥à ¤«ï § ¬¥­ë ⥪áâ 
430
	buf_replace rb 302 ;¡ãä¥à ¤«ï § ¬¥­ë ⥪áâ 
-
 
431
	buf_goto rb 12 ;¡ãä¥à ¤«ï ¯¥à室  ­  áâபã
408
	sc system_colors
432
	sc system_colors
409
IncludeUGlobals
433
IncludeUGlobals
410
	align 16
434
	align 16
411
	procinfo process_information
435
	procinfo process_information
412
		rb 1024
436
		rb 1024
413
	thread:
437
	thread:
414
		rb 4096
438
		rb 4096
415
align 16
439
align 16
416
    thread_coords:
440
    thread_coords:
417
	rb 4096
441
	rb 4096
418
align 16
442
align 16
419
stacktop:
443
stacktop:
420
	sys_path: ;¯ãâì ®âªã¤  § ¯ãá⨫áï ¨á¯®«­ï¥¬ë© ä ©«
444
	sys_path: ;¯ãâì ®âªã¤  § ¯ãá⨫áï ¨á¯®«­ï¥¬ë© ä ©«
421
		rb 4096
445
		rb 4096
422
	file_name: ;¯ à ¬¥âàë § ¯ã᪠
446
	file_name: ;¯ à ¬¥âàë § ¯ã᪠
423
		rb 4096
447
		rb 4096
424
	syntax_path: ;¨¬ï ¯®¤ª«îç ¥¬®£® ä ©«  ᨭ⠪á¨á 
448
	syntax_path: ;¨¬ï ¯®¤ª«îç ¥¬®£® ä ©«  ᨭ⠪á¨á 
425
		rb 4096
449
		rb 4096
426
	plugin_path:
450
	plugin_path:
427
		rb 4096
451
		rb 4096
428
	text_work_area: ;¯ãâì ª ä ©«ã, ª®â®àë© ¯®ª §ë¢ ¥âáï ¢ ®ª­¥
452
	text_work_area: ;¯ãâì ª ä ©«ã, ª®â®àë© ¯®ª §ë¢ ¥âáï ¢ ®ª­¥
429
		rb 4096
453
		rb 4096
430
	filename_area: ;¨¬ï ä ©«  ¤«ï ¤¨ «®£  ®âªàëâ¨ï/§ ªàëâ¨ï
454
	filename_area: ;¨¬ï ä ©«  ¤«ï ¤¨ «®£  ®âªàëâ¨ï/§ ªàëâ¨ï
431
		rb 256
455
		rb 256
432
	file_info:
456
	file_info:
433
		rb 40
457
		rb 40
434
mem:
458
mem: