kolibrios/programs/other/t_edit/wnd_k_words.inc
IgorA aa41bd5e39 fix copy key words to buffer
git-svn-id: svn://kolibrios.org@5831 a494cfbc-eb01-0410-851d-a64ba20cac60
2015-09-16 11:22:17 +00:00

218 lines
4.5 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 db 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 40,0xC0000027 ;¬ áª  ®¦¨¤ ¥¬ëå ᮡë⨩
inc byte[wnd_k_words_run]
;­ áâனª  ᯨ᪠ ®¡ê¥ªâ®¢
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 ;ãáâ ­®¢ª  á¨á⥬­ëå 梥⮢
;stdcall [edit_box_set_text], edit3, txt_q
popad
align 4
prop_red_win:
pushad
mcall 12,1
xor eax,eax
mov edi,txt_caption
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
mov edx,0xffffd0
or edx,0x33000000
int 0x40
mov eax,8
mov ebx,(5 shl 16)+19
mov ecx,(5 shl 16)+19
mov edx,3
mov esi,[sc.work_button]
int 0x40
add ebx,(25 shl 16)
mov edx,4
int 0x40
mov eax,7
mov ebx,[bmp_icon]
add ebx,7*IMAGE_TOOLBAR_ICON_SIZE
mov ecx,(20 shl 16)+20
mov edx,(5 shl 16)+5 ;­ ©â¨
int 0x40
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],dword w_scr_t3
stdcall [tl_draw], tree3
stdcall [edit_box_draw], edit3
mcall 12,2
popad
;­¥ ®âà뢠âì íâã äã­ªæ¨î ®â ¯à¥¤ë¤ã饩
align 4
prop_still:
mcall 10
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 byte[wnd_k_words_run],0 ;®¡­ã«ï¥¬ áç¥â稪 ®ª®­
mcall -1 ;§ ªàë⨥ ®ª­  ¯®¨áª 
align 4
prop_key:
push eax
mcall 2
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 17 ;¯®«ãç¨âì ª®¤ ­ ¦ â®© ª­®¯ª¨
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], ebx, (0 shl 16), tree3
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
@@:
cmp ah,4
jne @f
;ª®¯¨à®¢ âì ¢ ¡ãä¥à
stdcall [tl_node_get_data],tree3
pop esi
or esi,esi
jz .no_select_0
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 54,2,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+tl_list_box_mode,\
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, 0
editboxes_end:
string1 rb MAX_COLOR_WORD_LEN
align 4
w_scr_t3:
.size_x dw 16 ;+0
rb 2+2+2
.btn_high dd 15 ;+8
.type dd 1 ;+12
.max_area dd 100 ;+16
rb 4+4
.bckg_col dd 0xeeeeee ;+28
.frnt_col dd 0xbbddff ;+32
.line_col dd 0 ;+36
rb 4+2+2
.run_x:
rb 2+2+2+2+4+4+4+4+4+4
.all_redraw dd 0 ;+80
.ar_offset dd 1 ;+84