Subversion Repositories Kolibri OS

Rev

Rev 7579 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
1457 IgorA 1
struct symbol
2125 IgorA 2
	c db ?    ; +0 символ
3
	col db ?  ; +1 цвет
4
	perv dd ? ; +2
5
	next dd ? ; +6 указатели
6
	tc dd ?   ;+10 врем. создания
7
	td dd ?   ;+14 врем. удаления
1457 IgorA 8
ends
9
 
7573 IgorA 10
ID_BUT_0 equ 3 ;минимальный ID кнопки на панели
11
 
12
ID_BUT_NEW equ 3
13
ID_BUT_OPEN equ 4
14
ID_BUT_SAVE equ 5
15
ID_BUT_SAVE_AS equ 6
16
ID_BUT_SELECT equ 7
17
ID_BUT_CUT equ 8
18
ID_BUT_COPY equ 9
19
ID_BUT_PASTE equ 10
20
ID_BUT_FIND equ 11
21
ID_BUT_REPLACE equ 12
22
ID_BUT_KEY_WORDS equ 13
23
ID_BUT_UPPER equ 14
24
ID_BUT_LOWER equ 15
25
ID_BUT_REVERSE equ 16
26
ID_BUT_UNDO equ 17
27
ID_BUT_REDO equ 18
28
ID_BUT_INVISIBLE equ 19
29
ID_BUT_SYNTAX_LIST equ 20
30
ID_BUT_SYNTAX_MODE equ 21
31
ID_BUT_CONVERT_1251_866 equ 22
32
ID_BUT_CONVERT_866_1251 equ 23
33
 
34
macro ini_panel b_key,b_id
35
{
36
	stdcall [ini_get_int],file_name,ini_sec_window,b_key,1
37
	mov byte[panel_but+b_id-ID_BUT_0],al
38
}
39
 
1457 IgorA 40
bmp_icon dd 0
41
 
7573 IgorA 42
align 16
43
button:
44
	mcall SF_GET_BUTTON
45
	cmp ah,ID_BUT_NEW
46
	jne @f
47
		call ted_but_new_file
48
		jmp still
49
	@@:
50
	cmp ah,ID_BUT_OPEN
51
	jne @f
52
		call ted_but_open_file
53
		jmp still
54
	@@:
55
	cmp ah,ID_BUT_SAVE
56
	jne @f
57
		xor eax,eax
58
		call ted_but_save_file ;сохранение без диалога
59
		jmp still
60
	@@:
61
	cmp ah,ID_BUT_SAVE_AS
62
	jne @f
63
		xor eax,eax
64
		inc eax
65
		call ted_but_save_file ;сохранение с диалогом
66
		jmp still
67
	@@:
68
	cmp ah,ID_BUT_SELECT
69
	jne @f
70
		stdcall [ted_but_select_word], tedit0
71
		jmp still
72
	@@:
73
	cmp ah,ID_BUT_CUT
74
	jne @f
75
		stdcall [ted_but_cut], tedit0
76
		jmp still
77
	@@:
78
	cmp ah,ID_BUT_COPY
79
	jne @f
80
		stdcall [ted_but_copy], tedit0
81
		jmp still
82
	@@:
83
	cmp ah,ID_BUT_PASTE
84
	jne @f
85
		stdcall [ted_but_paste], tedit0
86
		jmp still
87
	@@:
88
	cmp ah,ID_BUT_FIND
89
	jne @f
7576 IgorA 90
		call but_panel_find
7573 IgorA 91
		jmp still
92
	@@:
93
	cmp ah,ID_BUT_REPLACE
94
	jne @f
7576 IgorA 95
		call but_panel_replace
7573 IgorA 96
		jmp still
97
	@@:
98
	cmp ah,ID_BUT_KEY_WORDS
99
	jne @f
100
		call but_find_key_w
101
		jmp still
102
	@@:
103
	cmp ah,ID_BUT_UPPER
104
	jne @f
105
		stdcall [ted_but_sumb_upper], tedit0
106
		jmp still
107
	@@:
108
	cmp ah,ID_BUT_LOWER
109
	jne @f
110
		stdcall [ted_but_sumb_lover], tedit0
111
		jmp still
112
	@@:
113
	cmp ah,ID_BUT_REVERSE
114
	jne @f
115
		stdcall [ted_but_reverse], tedit0
116
		jmp still
117
	@@:
118
	cmp ah,ID_BUT_UNDO
119
	jne @f
120
		stdcall [ted_but_undo], tedit0
121
		jmp still
122
	@@:
123
	cmp ah,ID_BUT_REDO
124
	jne @f
125
		stdcall [ted_but_redo], tedit0
126
		jmp still
127
	@@:
128
	cmp ah,ID_BUT_INVISIBLE
129
	jne @f
130
		stdcall but_sumb_invis, tedit0
131
		jmp still
132
	@@:
133
	cmp ah,ID_BUT_SYNTAX_LIST
134
	jne @f
135
		stdcall but_use_syntax, tedit0
136
		jmp still
137
	@@:
138
	cmp ah,ID_BUT_SYNTAX_MODE
139
	jne @f
7579 IgorA 140
		call but_panel_choose_syntax
7573 IgorA 141
		jmp still
142
	@@:
143
	cmp ah,ID_BUT_CONVERT_1251_866
144
	jne @f
145
		stdcall [ted_but_convert_by_table],tedit0,tbl_1251_866
146
		jmp still
147
	@@:
148
	cmp ah,ID_BUT_CONVERT_866_1251
149
	jne @f
150
		stdcall [ted_but_convert_by_table],tedit0,tbl_866_1251
151
		jmp still
152
	@@:
1457 IgorA 153
 
7573 IgorA 154
	cmp ah,200
155
	jne @f
156
		stdcall ted_but_open_syntax, tedit0
157
		jmp still
158
	@@:
7577 IgorA 159
	cmp ah,201 ;найти далее
7576 IgorA 160
	jne .no_find
161
		call get_find_options
162
		stdcall [ted_but_find], tedit0, eax
7573 IgorA 163
		jmp still
7576 IgorA 164
	.no_find:
7577 IgorA 165
	cmp ah,202 ;заменить
7576 IgorA 166
	jne .no_change
167
		call get_find_options
168
		stdcall [ted_but_replace], tedit0, buf_replace, eax, 1
169
		or eax,eax
170
		jz still
171
		stdcall [ted_draw], tedit0
172
		jmp still
173
	.no_change:
7577 IgorA 174
	cmp ah,203 ;заменить все
7579 IgorA 175
	jne @f
7576 IgorA 176
		call but_replace_all
177
		jmp still
7579 IgorA 178
	@@:
179
	cmp ah,204 ;перейти на строку
180
	jne @f
181
		call but_goto_line
182
		jmp still
183
	@@:
7573 IgorA 184
 
185
	cmp ah,1
7575 IgorA 186
	jne @f
187
		call ted_Exit
188
		jmp still
189
	@@:
7573 IgorA 190
 
191
	cmp ah,199
7575 IgorA 192
	jne still
193
		call ted_Exit
7573 IgorA 194
	jmp still
7575 IgorA 195
 
196
align 4
197
ted_Exit:
7573 IgorA 198
	cmp dword[wnd_k_words_run],0
199
	je @f
200
		push ebx ecx
201
		mcall SF_SYSTEM, SSF_TERMINATE_THREAD_ID,[wnd_k_words_run]
202
		pop ecx ebx
7575 IgorA 203
		mov dword[wnd_k_words_run],0
204
		;test eax,eax
7573 IgorA 205
	@@:
206
	cmp dword[exit_code],1
207
	je @f
208
	stdcall [ted_can_save], tedit0
209
	cmp al,1
210
	jne @f
211
		stdcall [mb_create],msgbox_2,thread ;message: save buf in file?
212
		stdcall [mb_setfunctions],msgbox_2E_funct
7575 IgorA 213
		ret
7573 IgorA 214
	@@:
215
	stdcall mem.Free,[bmp_icon]
216
	cmp dword[unpac_mem],0
217
	je @f
218
		stdcall mem.Free,[unpac_mem]
219
	@@:
220
	stdcall [ted_delete], tedit0
221
	stdcall [tl_data_clear], tree1
222
	mcall SF_TERMINATE_PROCESS ;выход из программы
7575 IgorA 223
	;ret
7573 IgorA 224
 
7576 IgorA 225
align 4
226
get_find_options:
227
	xor eax,eax
228
	cmp [opt_gr1],opt1
229
	je @f
230
		inc eax
231
	cmp [opt_gr1],opt2
232
	je @f
233
		inc eax
234
	@@:
7583 IgorA 235
	bt dword[ch1.flags],1
236
	jc @f
237
		bts eax,30
238
	@@:
7576 IgorA 239
	ret
240
 
241
align 4
242
proc but_replace_all uses ebx ecx edx
243
	call get_find_options
244
	mov ebx,eax
245
	stdcall [ted_but_replace], tedit0, buf_replace, ebx, 1
246
	xor edx,edx
247
	or eax,eax
248
	jz @f
249
	inc edx
250
	mov ecx,0x1000
251
	.cycle0:
252
		stdcall [ted_but_replace], tedit0, buf_replace, ebx, 0
253
		or eax,eax