Subversion Repositories Kolibri OS

Rev

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

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