kolibrios-fun/programs/other/t_edit/wnd_k_words.inc
IgorA 7cc546b610 fix crash if close parent window when open child window
git-svn-id: svn://kolibrios.org@7035 a494cfbc-eb01-0410-851d-a64ba20cac60
2017-09-29 17:55:03 +00:00

193 lines
4.4 KiB
PHP
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

;
; ¢ í⮬ ä ©«¥ ᮡ࠭ë ä㭪樨 ­ã¦­ë¥ ¤«ï ᮧ¤ ­¨ï ¨
; à ¡®âë ®ª­  á ¯®¨áª®¬ ¢ ª«î祢ëå á«®¢ å
;
prop_wnd_width equ 350 ;è¨à¨­  ®ª­  á ¯®¨áª®¬
SIZE_ONE_FLOAT equ 14
IMAGE_TOOLBAR_ICON_SIZE equ 20*20*3
wnd_k_words_run dd 0 ;¯¥à¥¬¥­­ ï á«¥¤ïé ï §  ⥬ çâ®-¡ë ­¥ § ¯ã᪠âì ¡®«ìè¥ 1-£® ®ª­  ®¤­®¢à¥¬¥­­®
if lang eq ru
txt_caption db '<27>®¨áª ¢ ª«î祢ëå á«®¢ å',0
else
txt_caption db 'Search in keywords',0
end if
;¤ ­®¥ ®ª­® (¯à®æ¥áá) ¢ë§ë¢ ¥âìáï ä㭪樥© but_wnd_coords
align 4
prop_start:
pushad
mcall SF_SET_EVENTS_MASK,0xC0000027 ;¬ áª  ®¦¨¤ ¥¬ëå ᮡë⨩
;­ áâனª  ᯨ᪠ ®¡ê¥ªâ®¢
mov dword[tree3.info_max_count],2
mov edi,tedit0
mov edx,ted_key_words_count
add dword[tree3.info_max_count],edx ;áâ ¢¨¬ ç¨á«® 㧫®¢, à ¢­®¥ ª®««¨ç¥áâ¢ã ª«î祢ëå á«®¢ ¢ ä ©«¥ ¯®¤á¢¥âª¨ (+2 ­  ­ ç «® ¨ ª®­¥æ ᯨ᪠)
stdcall dword[tl_data_init], tree3
mov eax,dword[icon_tl_sys]
mov dword[tree3.data_img],eax
mov eax,dword[tree1.data_img_sys]
mov dword[tree3.data_img_sys],eax
edit_boxes_set_sys_color edit3,editboxes_end,sc ;ãáâ ­®¢ª  á¨á⥬­ëå 梥⮢
popad
align 4
prop_red_win:
pushad
mcall SF_REDRAW,SSF_BEGIN_DRAW
mov bx,word[procinfo.box.left]
add bx,5 ;word[buf_0.l]
shl ebx,16
mov bx,prop_wnd_width
mov cx,word[procinfo.box.top]
add cx,42 ;word[buf_0.t]
shl ecx,16
mov cx,250
mcall SF_CREATE_WINDOW,,,0x33ffffd0,,txt_caption
mcall SF_DEFINE_BUTTON,(5 shl 16)+19,(5 shl 16)+19,3,[sc.work_button]
add ebx,(25 shl 16)
mcall ,,,4
mov ebx,[bmp_icon]
add ebx,7*IMAGE_TOOLBAR_ICON_SIZE
mcall SF_PUT_IMAGE,,(20 shl 16)+20,(5 shl 16)+5 ;­ ©â¨
sub ebx,2*IMAGE_TOOLBAR_ICON_SIZE
mov edx,(30 shl 16)+5 ;ª®¯¨à®¢ âì
int 0x40
mov dword[w_scr_t3.all_redraw],1
stdcall [scrollbar_ver_draw], w_scr_t3
stdcall [tl_draw], tree3
stdcall [edit_box_draw], edit3
mcall SF_REDRAW,SSF_END_DRAW
popad
;­¥ ®âà뢠âì íâã äã­ªæ¨î ®â ¯à¥¤ë¤ã饩
align 4
prop_still:
mcall SF_WAIT_EVENT
cmp al,1 ;¨§¬. ¯®«®¦¥­¨¥ ®ª­ 
jz prop_red_win
cmp al,2
jne @f
call prop_key
@@:
cmp al,3
jne @f
call prop_button
@@:
cmp al,6
jne @f
call prop_mouse
@@:
jmp prop_still
.exit:
mov dword[tree3.data_img],0 ;ç¨á⨬ 㪠§ â¥«¨ ­  ¨ª®­ª¨ çâ®-¡ë ¨å ­¥ 㤠«¨« ¤¥áâàãªâ®à
mov dword[tree3.data_img_sys],0 ;â. ª. ®­¨ ¥é¥ ¨á¯®«ì§ãîâìáï ¢ ¤à㣨å í«¥¬¥­â å
stdcall dword[tl_data_clear], tree3
mov dword[wnd_k_words_run],0 ;®¡­ã«ï¥¬ ID ®ª­ 
mcall SF_TERMINATE_PROCESS
align 4
prop_key:
push eax
mcall SF_GET_KEY
stdcall [edit_box_key], edit3
stdcall [tl_key], tree3
pop eax
ret
align 4
prop_mouse:
;push ecx edi
stdcall [tl_mouse], tree3
stdcall [edit_box_mouse], edit3
;pop edi ecx
ret
align 4
prop_button:
pushad
mcall SF_GET_BUTTON
cmp ah,1
je prop_still.exit
cmp ah,3
jne @f
;­ ©â¨ á«®¢ 
mov edi,tedit0
cmp ted_syntax_file,0
je @f
stdcall dword[tl_info_clear], tree3
mov ebx,ted_key_words_data
mov ecx,ted_key_words_count
cld
.cycle_0:
stdcall str_instr, ebx,[edit3.text]
test al,al
jnz .end_add
;ª«î祢®¥ á«®¢®
stdcall dword[tl_node_add], tree3, (1 shl 16), ebx
stdcall dword[tl_cur_next], tree3
mov edx,[ebx+MAX_COLOR_WORD_LEN]
or edx,edx
jz .end_add
;á¯à ¢ª  ¯® ª«î祢®¬ã á«®¢ã
add edx,ted_help_text_f1
stdcall dword[tl_node_add], tree3, 1, edx
stdcall dword[tl_cur_next], tree3
.end_add:
add ebx,MAX_COLOR_WORD_LEN+8 ;sizeof.TexColViv
loop .cycle_0
stdcall dword[tl_cur_beg], tree3
stdcall dword[tl_draw], tree3
jmp .no_select_0
@@:
cmp ah,4
jne @f
;ª®¯¨à®¢ âì ¢ ¡ãä¥à
stdcall [tl_node_get_data],tree3
or eax,eax
jz .no_select_0
mov esi,eax
mov edi,[tedit0.buffer]
mov dword[edi],MAX_COLOR_WORD_LEN
mov dword[edi+4],0 ;text data
mov dword[edi+8],1 ;code 866
add edi,12 ;system buffer header size
mov byte[edi+MAX_COLOR_WORD_LEN],0
mov ecx,MAX_COLOR_WORD_LEN
cld
rep movsb
mcall SF_CLIPBOARD,SSF_WRITE_CB,12+MAX_COLOR_WORD_LEN,[tedit0.buffer]
.no_select_0:
@@:
popad
ret
;¤¥à¥¢® á ®¡ê¥ªâ ¬¨ ¢ ¯®«ì§®¢ â¥«ì᪮¬ ä ©«¥
align 4
tree3 tree_list MAX_COLOR_WORD_LEN,3,tl_key_no_edit,\
16,16, 0x8080ff,0x0000ff,0xffffff, 5,30,300,160, 16, 0,0, el_focus, w_scr_t3,0
align 4
edit3 edit_box 80, 70, 8, 0xffffff, 0xff, 0x80ff, 0, 0x8000, MAX_COLOR_WORD_LEN+2, string1, mouse_dd, ed_focus
editboxes_end:
string1 rb MAX_COLOR_WORD_LEN
align 4
w_scr_t3 scrollbar 16,0, 3,0, 15, 100, 0,0, 0xeeeeee, 0xbbddff, 0, 1