Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 7572 → Rev 7573

/programs/other/t_edit/t_button.inc
7,9 → 7,196
td dd ? ;+14 ¢à¥¬. 㤠«¥­¨ï
ends
 
ID_BUT_0 equ 3 ;¬¨­¨¬ «ì­ë© ID ª­®¯ª¨ ­  ¯ ­¥«¨
 
ID_BUT_NEW equ 3
ID_BUT_OPEN equ 4
ID_BUT_SAVE equ 5
ID_BUT_SAVE_AS equ 6
ID_BUT_SELECT equ 7
ID_BUT_CUT equ 8
ID_BUT_COPY equ 9
ID_BUT_PASTE equ 10
ID_BUT_FIND equ 11
ID_BUT_REPLACE equ 12
ID_BUT_KEY_WORDS equ 13
ID_BUT_UPPER equ 14
ID_BUT_LOWER equ 15
ID_BUT_REVERSE equ 16
ID_BUT_UNDO equ 17
ID_BUT_REDO equ 18
ID_BUT_INVISIBLE equ 19
ID_BUT_SYNTAX_LIST equ 20
ID_BUT_SYNTAX_MODE equ 21
ID_BUT_CONVERT_1251_866 equ 22
ID_BUT_CONVERT_866_1251 equ 23
 
macro ini_panel b_key,b_id
{
stdcall [ini_get_int],file_name,ini_sec_window,b_key,1
mov byte[panel_but+b_id-ID_BUT_0],al
}
 
bmp_icon dd 0
 
align 16
button:
mcall SF_GET_BUTTON
cmp ah,ID_BUT_NEW
jne @f
call ted_but_new_file
jmp still
@@:
cmp ah,ID_BUT_OPEN
jne @f
call ted_but_open_file
jmp still
@@:
cmp ah,ID_BUT_SAVE
jne @f
xor eax,eax
call ted_but_save_file ;á®åà ­¥­¨¥ ¡¥§ ¤¨ «®£ 
jmp still
@@:
cmp ah,ID_BUT_SAVE_AS
jne @f
xor eax,eax
inc eax
call ted_but_save_file ;á®åà ­¥­¨¥ á ¤¨ «®£®¬
jmp still
@@:
cmp ah,ID_BUT_SELECT
jne @f
stdcall [ted_but_select_word], tedit0
jmp still
@@:
cmp ah,ID_BUT_CUT
jne @f
stdcall [ted_but_cut], tedit0
jmp still
@@:
cmp ah,ID_BUT_COPY
jne @f
stdcall [ted_but_copy], tedit0
jmp still
@@:
cmp ah,ID_BUT_PASTE
jne @f
stdcall [ted_but_paste], tedit0
jmp still
@@:
cmp ah,ID_BUT_FIND
jne @f
call ted_but_find
jmp still
@@:
cmp ah,ID_BUT_REPLACE
jne @f
call but_replace
jmp still
@@:
cmp ah,ID_BUT_KEY_WORDS
jne @f
call but_find_key_w
jmp still
@@:
cmp ah,ID_BUT_UPPER
jne @f
stdcall [ted_but_sumb_upper], tedit0
jmp still
@@:
cmp ah,ID_BUT_LOWER
jne @f
stdcall [ted_but_sumb_lover], tedit0
jmp still
@@:
cmp ah,ID_BUT_REVERSE
jne @f
stdcall [ted_but_reverse], tedit0
jmp still
@@:
cmp ah,ID_BUT_UNDO
jne @f
stdcall [ted_but_undo], tedit0
jmp still
@@:
cmp ah,ID_BUT_REDO
jne @f
stdcall [ted_but_redo], tedit0
jmp still
@@:
cmp ah,ID_BUT_INVISIBLE
jne @f
stdcall but_sumb_invis, tedit0
jmp still
@@:
cmp ah,ID_BUT_SYNTAX_LIST
jne @f
stdcall but_use_syntax, tedit0
jmp still
@@:
cmp ah,ID_BUT_SYNTAX_MODE
jne @f
stdcall but_choose_syntax, tedit0
jmp still
@@:
cmp ah,ID_BUT_CONVERT_1251_866
jne @f
stdcall [ted_but_convert_by_table],tedit0,tbl_1251_866
jmp still
@@:
cmp ah,ID_BUT_CONVERT_866_1251
jne @f
stdcall [ted_but_convert_by_table],tedit0,tbl_866_1251
jmp still
@@:
 
cmp ah,200
jne @f
stdcall ted_but_open_syntax, tedit0
jmp still
@@:
cmp ah,201
jne @f
stdcall [ted_but_find_next], tedit0
jmp still
@@:
 
cmp ah,1
je .exit
 
cmp ah,199
je .exit
jmp still
.exit:
cmp dword[wnd_k_words_run],0
je @f
push ebx ecx
mcall SF_SYSTEM, SSF_TERMINATE_THREAD_ID,[wnd_k_words_run]
pop ecx ebx
test eax,eax
jnz still
@@:
cmp dword[exit_code],1
je @f
stdcall [ted_can_save], tedit0
cmp al,1
jne @f
stdcall [mb_create],msgbox_2,thread ;message: save buf in file?
stdcall [mb_setfunctions],msgbox_2E_funct
jmp still
@@:
stdcall mem.Free,[bmp_icon]
cmp dword[unpac_mem],0
je @f
stdcall mem.Free,[unpac_mem]
@@:
stdcall [ted_delete], tedit0
stdcall [tl_data_clear], tree1
mcall SF_TERMINATE_PROCESS ;¢ë室 ¨§ ¯à®£à ¬¬ë
 
;input:
; al = ª®¤ ®è¨¡ª¨
align 4
19,7 → 206,6
stdcall [mb_create],msgbox_3,thread ;message: Can-t open color options file!
ret
 
 
align 4
ted_but_new_file:
push eax ebx
250,8 → 436,6
push ecx edi
cmp eax,0
je @f
cmp eax,6
je @f
cmp ax,10
jl .zifra_0_9
mov al,'?'
445,7 → 629,7
;description:
; ¢ë¤¥«¥­¨¥/áªàë⨥ ª«î祢ëå á«®¢
align 4
proc but_k_words_show uses edi, edit:dword
proc but_use_syntax uses edi, edit:dword
mov edi,dword[edit]
 
xor ted_mode_color,1
461,7 → 645,7
;description:
; ¢ë§®¢/áªàë⨥ ¯ ­¥«¨ á ä ©« ¬¨ ᨭ⠪á¨á 
align 4
proc but_synt_show uses edi, edit:dword
proc but_choose_syntax uses edi, edit:dword
mov edi,[edit]
 
cmp ted_panel_id,TED_PANEL_NULL
/programs/other/t_edit/t_draw.inc
1,9 → 1,33
 
 
align 16
draw_window:
mcall SF_REDRAW,SSF_BEGIN_DRAW
 
mov edx,[sc.work]
or edx,0x73000000
mcall SF_CREATE_WINDOW,dword[wnd_s_pos],dword[wnd_s_pos+4],,,hed
 
mcall SF_THREAD_INFO,procinfo,-1
mov edi,tedit0 ;çíà÷åíèå edi íóæíî äëÿ EvSize è ted_wnd_t
call EvSize
 
movzx ebx,word[procinfo.client_box.width]
inc bx
mcall SF_DRAW_RECT,,ted_wnd_t ;âåðõíèé ïðÿìîóãîëüíèê, äëÿ î÷èñòêè âåðõíåé ïàíåëè
call draw_but_toolbar
stdcall [kmainmenu_draw], [main_menu]
stdcall [ted_draw], tedit0
 
mcall SF_REDRAW,SSF_END_DRAW
ret
 
align 4
draw_but_toolbar: ;ôóíêöèÿ äëÿ ðèñîâàíèÿ ïàíåëè èíñòðóìåíòîâ
pushad
mov edi,tedit0
 
mov ecx,0x40000000
mov ecx,0x40000000+ID_BUT_NEW
mov edx,(5 shl 16)+25
bt word[panel_but],0
jnc @f
10,7 → 34,7
call draw_but_icon ;New
@@:
 
inc cx
mov cx,ID_BUT_OPEN
bt word[panel_but+1],0
jnc @f
add edx,25 shl 16
22,7 → 46,7
je @f
and ecx,0xffff
@@:
inc cx
mov cx,ID_BUT_SAVE
bt word[panel_but+2],0
jnc @f
add edx,25 shl 16
30,7 → 54,7
@@:
or ecx,0x40000000
 
inc cx
mov cx,ID_BUT_SAVE_AS
bt word[panel_but+3],0
jnc @f
add edx,25 shl 16
37,7 → 61,7
call draw_but_icon ;Save as
@@:
 
inc cx
mov cx,ID_BUT_SELECT
bt word[panel_but+4],0
jnc @f
add edx,30 shl 16
49,7 → 73,7
jnz @f
and ecx,0xffff
@@:
inc cx
mov cx,ID_BUT_CUT
bt word[panel_but+5],0
jnc @f
add edx,25 shl 16
56,7 → 80,7
call draw_but_icon ;Cut
@@:
 
inc cx
mov cx,ID_BUT_COPY
bt word[panel_but+6],0
jnc @f
add edx,25 shl 16
68,7 → 92,7
jne @f
and ecx,0xffff
@@:
inc cx
mov cx,ID_BUT_PASTE
bt word[panel_but+7],0
jnc @f
add edx,25 shl 16
76,7 → 100,7
@@:
or ecx,0x40000000
 
inc cx
mov cx,ID_BUT_FIND
bt word[panel_but+8],0
jnc @f
add edx,25 shl 16
83,7 → 107,7
call draw_but_icon ;Found
@@:
 
inc cx
mov cx,ID_BUT_REPLACE
bt word[panel_but+9],0
jnc @f
add edx,25 shl 16
90,7 → 114,7
call draw_but_icon ;Replace
@@:
 
inc cx
mov cx,ID_BUT_KEY_WORDS
bt word[panel_but+10],0
jnc @f
add edx,25 shl 16
102,7 → 126,7
jnz @f
and ecx,0xffff
@@:
inc cx
mov cx,ID_BUT_UPPER
bt word[panel_but+11],0
jnc @f
add edx,30 shl 16
109,7 → 133,7
call draw_but_icon ;Upper
@@:
 
inc cx
mov cx,ID_BUT_LOWER
bt word[panel_but+12],0
jnc @f
add edx,25 shl 16
116,7 → 140,7
call draw_but_icon ;Lower
@@:
 
inc cx
mov cx,ID_BUT_REVERSE
bt word[panel_but+13],0
jnc @f
add edx,25 shl 16
129,7 → 153,7
jg @f
and ecx,0xffff
@@:
inc cx
mov cx,ID_BUT_UNDO
bt word[panel_but+14],0
jnc @f
add edx,30 shl 16
141,7 → 165,7
jge @f
and ecx,0xffff
@@:
inc cx
mov cx,ID_BUT_REDO
bt word[panel_but+15],0
jnc @f
add edx,25 shl 16
149,7 → 173,7
@@:
or ecx,0x40000000
 
inc cx
mov cx,ID_BUT_INVISIBLE
bt word[panel_but+16],0
jnc @f
add edx,30 shl 16
156,7 → 180,7
call draw_but_icon ;Invisible on|off
@@:
 
inc cx
mov cx,ID_BUT_SYNTAX_LIST
bt word[panel_but+17],0
jnc @f
add edx,25 shl 16
163,7 → 187,7
call draw_but_icon ;Âûáîð ôàéëà ïîäñâåòêè
@@:
 
inc cx
mov cx,ID_BUT_SYNTAX_MODE
bt word[panel_but+18],0
jnc @f
add edx,25 shl 16
170,7 → 194,7
call draw_but_icon ;Ïîäñâåòêà âêë|âûêë
@@:
 
inc cx
mov cx,ID_BUT_CONVERT_1251_866
bt word[panel_but+19],0
jnc @f
add edx,30 shl 16
177,7 → 201,7
call draw_but_icon ;cp 1251 -> 866
@@:
 
inc cx
mov cx,ID_BUT_CONVERT_866_1251
bt word[panel_but+20],0
jnc @f
add edx,25 shl 16
204,7 → 228,7
mov cx,20
mcall SF_DRAW_RECT,TED_PANEL_WIDTH,,[sc.work]
 
mov ebx,30*65536+25
mov ebx,(30 shl 16)+25
add ebx,ted_wnd_t
mov ecx,[sc.work_text]
or ecx,0x80000000
225,9 → 249,9
add cx,20+15+5
shl ecx,16
mov cx,20
mcall SF_DEFINE_BUTTON,5*65536+85,,201,[sc.work_button] ;201 - button id
mcall SF_DEFINE_BUTTON,(5 shl 16)+85,,201,[sc.work_button] ;201 - button id
 
mov ebx,15*65536+(20+15+10)
mov ebx,(15 shl 16)+(20+15+10)
add ebx,ted_wnd_t
mov ecx,[sc.work_text]
or ecx,0x80000000
345,7 → 369,7
 
;input:
; ecx = 0x4000____
; cx = icon index
; cx = ID button
; edx = x*2^16+y
align 4
draw_but_icon:
355,7 → 379,6
push ecx edx esi
mov ebx,edx
mov edx,ecx
add edx,3
mov cx,bx
shl ecx,16
mov cx,19 ;=20-1
379,6 → 402,7
add ebx,TOOLBAR_ICONS_SIZE ;ïåðåìåùàåìñÿ íà ñåðûå êíîïêè
.gray:
push ecx
sub ecx,ID_BUT_0
and ecx,0xffff
imul ecx,1200
add ebx,ecx
/programs/other/t_edit/t_edit.asm
9,7 → 9,7
maxChars equ 100002 ;(ª®««¨ç¥á⢮ ᨬ¢®«®¢ ¢ ­®¢®¬ ¤®ªã¬¥­â¥ + 2)
BUF_SIZE equ 4096 ;buffer for copy|paste
maxSyntaxFileSize equ 410000
TOOLBAR_ICONS_SIZE equ 1200*20
TOOLBAR_ICONS_SIZE equ 1200*21
 
include '../../proc32.inc'
include '../../macros.inc'
21,10 → 21,10
include 'lang.inc'
 
include 't_data.inc'
include 't_button.inc'
include 't_menu.inc'
include 'strlen.inc'
include 't_draw.inc' ;draw main window functions
include 't_button.inc' ;text work functions
include 'wnd_k_words.inc'
 
@use_library_mem mem.Alloc,mem.Free,mem.ReAlloc,dll.Load
72,79 → 72,8
stdcall [OpenDialog_Init],OpenDialog_data
 
; kmenu initialisation
stdcall [kmenu_init], sc
call tedit_menu_init
stdcall [ksubmenu_new]
mov [main_menu], eax
stdcall [ksubmenu_new]
mov [main_menu_file], eax
stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_File_New, 3
stdcall [ksubmenu_add], [main_menu_file], eax
stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_File_Open, 4
stdcall [ksubmenu_add], [main_menu_file], eax
stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_File_Save, 5
stdcall [ksubmenu_add], [main_menu_file], eax
stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_File_Save_As, 6
stdcall [ksubmenu_add], [main_menu_file], eax
stdcall [kmenuitem_new], KMENUITEM_SEPARATOR, 0, 0
stdcall [ksubmenu_add], [main_menu_file], eax
stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_File_Exit, 199
stdcall [ksubmenu_add], [main_menu_file], eax
stdcall [kmenuitem_new], KMENUITEM_SUBMENU, sz_main_menu_File, [main_menu_file]
stdcall [ksubmenu_add], [main_menu], eax
 
stdcall [ksubmenu_new]
mov [main_menu_changes], eax
stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_Changes_Undo, 16
stdcall [ksubmenu_add], [main_menu_changes], eax
stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_Changes_Redo, 17
stdcall [ksubmenu_add], [main_menu_changes], eax
stdcall [kmenuitem_new], KMENUITEM_SUBMENU, sz_main_menu_Changes, [main_menu_changes]
stdcall [ksubmenu_add], [main_menu], eax
stdcall [ksubmenu_new]
mov [main_menu_buf], eax
stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_Buf_Cut, 7
stdcall [ksubmenu_add], [main_menu_buf], eax
stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_Buf_Copy, 8
stdcall [ksubmenu_add], [main_menu_buf], eax
stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_Buf_Paste, 9
stdcall [ksubmenu_add], [main_menu_buf], eax
stdcall [kmenuitem_new], KMENUITEM_SUBMENU, sz_main_menu_Buf, [main_menu_buf]
stdcall [ksubmenu_add], [main_menu], eax
 
stdcall [ksubmenu_new]
mov [main_menu_search], eax
stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_Search_Text, 10
stdcall [ksubmenu_add], [main_menu_search], eax
stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_Search_Keywords, 12
stdcall [ksubmenu_add], [main_menu_search], eax
stdcall [kmenuitem_new], KMENUITEM_SUBMENU, sz_main_menu_Search, [main_menu_search]
stdcall [ksubmenu_add], [main_menu], eax
 
stdcall [ksubmenu_new]
mov [main_menu_view], eax
stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_Veiw_UseSyntax, 19
stdcall [ksubmenu_add], [main_menu_view], eax
stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_Veiw_ChooseSyntax, 20
stdcall [ksubmenu_add], [main_menu_view], eax
stdcall [kmenuitem_new], KMENUITEM_SEPARATOR, 0, 0
stdcall [ksubmenu_add], [main_menu_view], eax
stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_Veiw_LineBreak, 18
stdcall [ksubmenu_add], [main_menu_view], eax
stdcall [kmenuitem_new], KMENUITEM_SUBMENU, sz_main_menu_View, [main_menu_view]
stdcall [ksubmenu_add], [main_menu], eax
 
stdcall [ksubmenu_new]
mov [main_menu_encoding], eax
stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_Encoding_1251to866, 21
stdcall [ksubmenu_add], [main_menu_encoding], eax
stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_Encoding_866to1251, 22
stdcall [ksubmenu_add], [main_menu_encoding], eax
stdcall [kmenuitem_new], KMENUITEM_SUBMENU, sz_main_menu_Encoding, [main_menu_encoding]
stdcall [ksubmenu_add], [main_menu], eax
; init toolbar file
include_image_file 'te_icon.png', bmp_icon,,,6 ;6 ¤«ï á¥àëå ª­®¯®ª
mov eax,[bmp_icon]
155,7 → 84,6
include_image_file '..\..\media\log_el\trunk\tl_sys_16.png', icon_tl_sys
mov eax,dword[icon_tl_sys]
mov dword[tree1.data_img_sys],eax
;---------------------------------------------------------------------
; ¢­¥¤à塞 ä ©« á ¨ª®­ª ¬¨ 㧫®¢
include_image_file 'tl_nod_16.png', icon_tl_sys
mov eax,dword[icon_tl_sys]
211,48 → 139,27
shl eax,24
mov dword[tedit0.font_size],eax
;ª­®¯ª¨ ­  ¯ ­¥«¨
stdcall [ini_get_int],file_name,ini_sec_window,key_but_new,1
mov byte[panel_but],al
stdcall [ini_get_int],file_name,ini_sec_window,key_but_open,1
mov byte[panel_but+1],al
stdcall [ini_get_int],file_name,ini_sec_window,key_but_save,1
mov byte[panel_but+2],al
stdcall [ini_get_int],file_name,ini_sec_window,key_but_save_as,1
mov byte[panel_but+3],al
stdcall [ini_get_int],file_name,ini_sec_window,key_but_select,1
mov byte[panel_but+4],al
stdcall [ini_get_int],file_name,ini_sec_window,key_but_cut,1
mov byte[panel_but+5],al
stdcall [ini_get_int],file_name,ini_sec_window,key_but_copy,1
mov byte[panel_but+6],al
stdcall [ini_get_int],file_name,ini_sec_window,key_but_paste,1
mov byte[panel_but+7],al
stdcall [ini_get_int],file_name,ini_sec_window,key_but_find,1
mov byte[panel_but+8],al
stdcall [ini_get_int],file_name,ini_sec_window,key_but_replace,1
mov byte[panel_but+9],al
stdcall [ini_get_int],file_name,ini_sec_window,key_but_key_words,1
mov byte[panel_but+10],al
stdcall [ini_get_int],file_name,ini_sec_window,key_but_upper,1
mov byte[panel_but+11],al
stdcall [ini_get_int],file_name,ini_sec_window,key_but_lower,1
mov byte[panel_but+12],al
stdcall [ini_get_int],file_name,ini_sec_window,key_but_reverse,1
mov byte[panel_but+13],al
stdcall [ini_get_int],file_name,ini_sec_window,key_but_undo,1
mov byte[panel_but+14],al
stdcall [ini_get_int],file_name,ini_sec_window,key_but_redo,1
mov byte[panel_but+15],al
stdcall [ini_get_int],file_name,ini_sec_window,key_but_invisible,1
mov byte[panel_but+16],al
stdcall [ini_get_int],file_name,ini_sec_window,key_but_syntax_list,1
mov byte[panel_but+17],al
stdcall [ini_get_int],file_name,ini_sec_window,key_but_syntax_mode,1
mov byte[panel_but+18],al
stdcall [ini_get_int],file_name,ini_sec_window,key_but_convert_1251_866,1
mov byte[panel_but+19],al
stdcall [ini_get_int],file_name,ini_sec_window,key_but_convert_866_1251,1
mov byte[panel_but+20],al
ini_panel key_but_new, ID_BUT_NEW
ini_panel key_but_open, ID_BUT_OPEN
ini_panel key_but_save, ID_BUT_SAVE
ini_panel key_but_save_as,ID_BUT_SAVE_AS
ini_panel key_but_select, ID_BUT_SELECT
ini_panel key_but_cut, ID_BUT_CUT
ini_panel key_but_copy, ID_BUT_COPY
ini_panel key_but_paste, ID_BUT_PASTE
ini_panel key_but_find, ID_BUT_FIND
ini_panel key_but_replace,ID_BUT_REPLACE
ini_panel key_but_key_words,ID_BUT_KEY_WORDS
ini_panel key_but_upper, ID_BUT_UPPER
ini_panel key_but_lower, ID_BUT_LOWER
ini_panel key_but_reverse,ID_BUT_REVERSE
ini_panel key_but_undo, ID_BUT_UNDO
ini_panel key_but_redo, ID_BUT_REDO
ini_panel key_but_invisible,ID_BUT_INVISIBLE
ini_panel key_but_syntax_list,ID_BUT_SYNTAX_LIST
ini_panel key_but_syntax_mode,ID_BUT_SYNTAX_MODE
ini_panel key_but_convert_1251_866,ID_BUT_CONVERT_1251_866
ini_panel key_but_convert_866_1251,ID_BUT_CONVERT_866_1251
;ä ©«®¢ë¥ à áè¨à¥­¨ï
xor edx,edx
mov ebx,synt_auto_open
308,28 → 215,6
jmp still
 
align 16
draw_window:
mcall SF_REDRAW,SSF_BEGIN_DRAW
 
mov edx,[sc.work]
or edx,0x73000000
mcall SF_CREATE_WINDOW,dword[wnd_s_pos],dword[wnd_s_pos+4],,,hed
 
mcall SF_THREAD_INFO,procinfo,-1
mov edi,tedit0 ;§­ ç¥­¨¥ edi ­ã¦­® ¤«ï EvSize ¨ ted_wnd_t
call EvSize
 
movzx ebx,word[procinfo.client_box.width]
inc bx
mcall SF_DRAW_RECT,,ted_wnd_t ;¢¥àå­¨© ¯àאַ㣮«ì­¨ª, ¤«ï ®ç¨á⪨ ¢¥àå­¥© ¯ ­¥«¨
call draw_but_toolbar
stdcall [kmainmenu_draw], [main_menu]
stdcall [ted_draw], tedit0
 
mcall SF_REDRAW,SSF_END_DRAW
ret
 
align 16
mouse:
stdcall [kmainmenu_dispatch_cursorevent], [main_menu]
 
422,164 → 307,7
stdcall [ted_key], tedit0, conv_tabl,esi
jmp still
 
align 16
button:
mcall SF_GET_BUTTON
cmp ah,3
jne @f
call ted_but_new_file
jmp still
@@:
cmp ah,4
jne @f
call ted_but_open_file
jmp still
@@:
cmp ah,5
jne @f
xor eax,eax
call ted_but_save_file ;á®åà ­¥­¨¥ ¡¥§ ¤¨ «®£ 
jmp still
@@:
cmp ah,6
jne @f
xor eax,eax
inc eax
call ted_but_save_file ;á®åà ­¥­¨¥ á ¤¨ «®£®¬
jmp still
@@:
cmp ah,7
jne @f
stdcall [ted_but_select_word], tedit0
jmp still
@@:
cmp ah,8
jne @f
stdcall [ted_but_cut], tedit0
jmp still
@@:
cmp ah,9
jne @f
stdcall [ted_but_copy], tedit0
jmp still
@@:
cmp ah,10
jne @f
stdcall [ted_but_paste], tedit0
jmp still
@@:
cmp ah,11
jne @f
call ted_but_find
jmp still
@@:
cmp ah,12
jne @f
call but_replace
jmp still
@@:
cmp ah,13
jne @f
call but_find_key_w
jmp still
@@:
cmp ah,14
jne @f
stdcall [ted_but_sumb_upper], tedit0
jmp still
@@:
cmp ah,15
jne @f
stdcall [ted_but_sumb_lover], tedit0
jmp still
@@:
cmp ah,16
jne @f
stdcall [ted_but_reverse], tedit0
jmp still
@@:
cmp ah,17
jne @f
stdcall [ted_but_undo], tedit0
jmp still
@@:
cmp ah,18
jne @f
stdcall [ted_but_redo], tedit0
jmp still
@@:
cmp ah,19
jne @f
stdcall but_sumb_invis, tedit0
jmp still
@@:
cmp ah,20
jne @f
stdcall but_k_words_show, tedit0
jmp still
@@:
cmp ah,21
jne @f
stdcall but_synt_show, tedit0
jmp still
@@:
cmp ah,22
jne @f
stdcall [ted_but_convert_by_table],tedit0,tbl_1251_866
jmp still
@@:
cmp ah,23
jne @f
stdcall [ted_but_convert_by_table],tedit0,tbl_866_1251
jmp still
@@:
 
cmp ah,200
jne @f
stdcall ted_but_open_syntax, tedit0
jmp still
@@:
cmp ah,201
jne @f
stdcall [ted_but_find_next], tedit0
jmp still
@@:
 
cmp ah,1
je .exit
 
cmp ah,199
je .exit
jmp still
.exit:
cmp dword[wnd_k_words_run],0
je @f
push ebx ecx
mcall SF_SYSTEM, SSF_TERMINATE_THREAD_ID,[wnd_k_words_run]
pop ecx ebx
test eax,eax
jnz still
@@:
cmp dword[exit_code],1
je @f
stdcall [ted_can_save], tedit0
cmp al,1
jne @f
stdcall [mb_create],msgbox_2,thread ;message: save buf in file?
stdcall [mb_setfunctions],msgbox_2E_funct
jmp still
@@:
stdcall mem.Free,[bmp_icon]
cmp dword[unpac_mem],0
je @f
stdcall mem.Free,[unpac_mem]
@@:
stdcall [ted_delete], tedit0
stdcall [tl_data_clear], tree1
mcall SF_TERMINATE_PROCESS ;¢ë室 ¨§ ¯à®£à ¬¬ë
 
align 4
edit2 edit_box TED_PANEL_WIDTH-1, 0, 20, 0xffffff, 0xff80, 0xff0000, 0xff, 0x4080, 300, buf_find, mouse_dd, 0
 
unpac_mem dd 0
/programs/other/t_edit/t_menu.inc
63,6 → 63,7
 
end if
 
align 4
main_menu dd 0
main_menu_file dd 0
main_menu_changes dd 0
73,4 → 74,80
 
KMENUITEM_NORMAL equ 0
KMENUITEM_SUBMENU equ 1
KMENUITEM_SEPARATOR equ 2
KMENUITEM_SEPARATOR equ 2
 
align 16
tedit_menu_init:
stdcall [kmenu_init], sc
 
stdcall [ksubmenu_new]
mov [main_menu], eax
 
stdcall [ksubmenu_new]
mov [main_menu_file], eax
stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_File_New, ID_BUT_NEW
stdcall [ksubmenu_add], [main_menu_file], eax
stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_File_Open, ID_BUT_OPEN
stdcall [ksubmenu_add], [main_menu_file], eax
stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_File_Save, ID_BUT_SAVE
stdcall [ksubmenu_add], [main_menu_file], eax
stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_File_Save_As, ID_BUT_SAVE_AS
stdcall [ksubmenu_add], [main_menu_file], eax
stdcall [kmenuitem_new], KMENUITEM_SEPARATOR, 0, 0
stdcall [ksubmenu_add], [main_menu_file], eax
stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_File_Exit, 199
stdcall [ksubmenu_add], [main_menu_file], eax
stdcall [kmenuitem_new], KMENUITEM_SUBMENU, sz_main_menu_File, [main_menu_file]
stdcall [ksubmenu_add], [main_menu], eax
 
stdcall [ksubmenu_new]
mov [main_menu_changes], eax
stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_Changes_Undo, ID_BUT_UNDO
stdcall [ksubmenu_add], [main_menu_changes], eax
stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_Changes_Redo, ID_BUT_REDO
stdcall [ksubmenu_add], [main_menu_changes], eax
stdcall [kmenuitem_new], KMENUITEM_SUBMENU, sz_main_menu_Changes, [main_menu_changes]
stdcall [ksubmenu_add], [main_menu], eax
 
stdcall [ksubmenu_new]
mov [main_menu_buf], eax
stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_Buf_Cut, ID_BUT_CUT
stdcall [ksubmenu_add], [main_menu_buf], eax
stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_Buf_Copy, ID_BUT_COPY
stdcall [ksubmenu_add], [main_menu_buf], eax
stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_Buf_Paste, ID_BUT_PASTE
stdcall [ksubmenu_add], [main_menu_buf], eax
stdcall [kmenuitem_new], KMENUITEM_SUBMENU, sz_main_menu_Buf, [main_menu_buf]
stdcall [ksubmenu_add], [main_menu], eax
 
stdcall [ksubmenu_new]
mov [main_menu_search], eax
stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_Search_Text, ID_BUT_FIND
stdcall [ksubmenu_add], [main_menu_search], eax
stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_Search_Keywords, ID_BUT_KEY_WORDS
stdcall [ksubmenu_add], [main_menu_search], eax
stdcall [kmenuitem_new], KMENUITEM_SUBMENU, sz_main_menu_Search, [main_menu_search]
stdcall [ksubmenu_add], [main_menu], eax
 
stdcall [ksubmenu_new]
mov [main_menu_view], eax
stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_Veiw_UseSyntax, ID_BUT_SYNTAX_LIST
stdcall [ksubmenu_add], [main_menu_view], eax
stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_Veiw_ChooseSyntax, ID_BUT_SYNTAX_MODE
stdcall [ksubmenu_add], [main_menu_view], eax
stdcall [kmenuitem_new], KMENUITEM_SEPARATOR, 0, 0
stdcall [ksubmenu_add], [main_menu_view], eax
stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_Veiw_LineBreak, ID_BUT_INVISIBLE
stdcall [ksubmenu_add], [main_menu_view], eax
stdcall [kmenuitem_new], KMENUITEM_SUBMENU, sz_main_menu_View, [main_menu_view]
stdcall [ksubmenu_add], [main_menu], eax
 
stdcall [ksubmenu_new]
mov [main_menu_encoding], eax
stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_Encoding_1251to866, ID_BUT_CONVERT_1251_866
stdcall [ksubmenu_add], [main_menu_encoding], eax
stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_Encoding_866to1251, ID_BUT_CONVERT_866_1251
stdcall [ksubmenu_add], [main_menu_encoding], eax
stdcall [kmenuitem_new], KMENUITEM_SUBMENU, sz_main_menu_Encoding, [main_menu_encoding]
stdcall [ksubmenu_add], [main_menu], eax
ret