Rev 5914 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 5914 | Rev 5948 | ||
---|---|---|---|
Line 1... | Line 1... | ||
1 | ; ¬ ªà®á ¤«ï á¨á⥬®© ¡¨¡«¨®â¥ª¨ box_lib.obj |
1 | ; ¬ ªà®á ¤«ï á¨á⥬®© ¡¨¡«¨®â¥ª¨ box_lib.obj |
2 | ; í«¥¬¥â TreeList ¤«ï Kolibri OS |
2 | ; í«¥¬¥â TreeList ¤«ï Kolibri OS |
3 | ; ä ©« ¯®á«¥¤¨© à § ¨§¬¥ï«áï 14.11.2015 IgorA |
3 | ; ä ©« ¯®á«¥¤¨© à § ¨§¬¥ï«áï 03.12.2015 IgorA |
4 | ; ª®¤ ¯à¨¬¥¥ GPL2 «¨æ¥§¨ï |
4 | ; ª®¤ ¯à¨¬¥¥ GPL2 «¨æ¥§¨ï |
Line 5... | Line 5... | ||
5 | 5 | ||
6 | 6 | ||
Line 61... | Line 61... | ||
61 | ret |
61 | ret |
62 | endp |
62 | endp |
Line 63... | Line 63... | ||
63 | 63 | ||
64 | ;®ç¨á⪠¯ ¬ïâ¨ í«¥¬¥â (¤¥áâàãªâ®à) |
64 | ;®ç¨á⪠¯ ¬ïâ¨ í«¥¬¥â (¤¥áâàãªâ®à) |
65 | align 4 |
65 | align 4 |
66 | proc tl_data_clear uses edi, tlist:dword |
- | |
67 | ;uses eax ??? |
66 | proc tl_data_clear uses eax edi, tlist:dword |
68 | mov edi,dword[tlist] |
67 | mov edi,dword[tlist] |
69 | cmp tl_data_img,0 |
68 | cmp tl_data_img,0 |
70 | je @f |
69 | je @f |
71 | invoke mem.free,tl_data_img ;ç¨á⪠á¨á⥬ëå ¨ª®®ª |
70 | invoke mem.free,tl_data_img ;ç¨á⪠á¨á⥬ëå ¨ª®®ª |
Line 188... | Line 187... | ||
188 | 187 | ||
189 | mov ebx,tl_box_left |
188 | mov ebx,tl_box_left |
190 | shl ebx,16 |
189 | shl ebx,16 |
191 | cmp eax,ebx ;«¥¢ ï £à ¨æ ®ª |
190 | cmp eax,ebx ;«¥¢ ï £à ¨æ ®ª |
192 | jl .no_in_wnd ;.test_scroll ¥ ¯à¨¬¥ï¥¬ |
- | |
193 | 191 | jl .no_in_wnd ;.test_scroll ¥ ¯à¨¬¥ï¥¬ |
|
194 | shr ebx,16 |
192 | shr ebx,16 |
195 | add ebx,tl_box_width |
193 | add ebx,tl_box_width |
196 | shl ebx,16 |
194 | shl ebx,16 |
197 | cmp eax,ebx ;¯à ¢ ï £à ¨æ ®ª |
195 | cmp eax,ebx ;¯à ¢ ï £à ¨æ ®ª |
Line 229... | Line 227... | ||
229 | @@: |
227 | @@: |
230 | stdcall tl_cur_next, edi |
228 | stdcall tl_cur_next, edi |
231 | dec ecx |
229 | dec ecx |
232 | jnz @r |
230 | jnz @r |
233 | jmp .mouse_next |
231 | jmp .mouse_next |
234 | ;---------------------------------------- |
232 | ;------------------------------------------------ |
235 | .decr: ;¢¥à⨪ «ì ï ¯à®ªàã⪠®âà¨æ ⥫ì ï |
233 | .decr: ;¢¥à⨪ «ì ï ¯à®ªàã⪠®âà¨æ ⥫ì ï |
236 | mov bx,ax ;ax = mouse scroll data vertical |
234 | mov bx,ax ;ax = mouse scroll data vertical |
237 | jmp @f |
235 | jmp @f |
238 | .decr_1: ;£®à¨§®â «ì ï ¯à®ªàã⪠®âà¨æ ⥫ì ï |
236 | .decr_1: ;£®à¨§®â «ì ï ¯à®ªàã⪠®âà¨æ ⥫ì ï |
239 | mov bx,ax ;ax = mouse scroll data horizontal |
237 | mov bx,ax ;ax = mouse scroll data horizontal |
Line 243... | Line 241... | ||
243 | inc ecx |
241 | inc ecx |
244 | @@: |
242 | @@: |
245 | stdcall tl_cur_perv, edi |
243 | stdcall tl_cur_perv, edi |
246 | dec ecx |
244 | dec ecx |
247 | jnz @r |
245 | jnz @r |
248 | ;--------------------------------------------------- |
246 | ;------------------------------------------------ |
249 | .mouse_next: |
247 | .mouse_next: |
250 | pop ebx eax |
248 | pop ebx eax |
Line 251... | Line 249... | ||
251 | 249 | ||
252 | push eax ebx |
250 | push eax ebx |
Line 349... | Line 347... | ||
349 | ;------------------------------------------------------------------------------- |
347 | ;------------------------------------------------------------------------------- |
350 | .no_in_wnd: ;¥ ¯®¯ «¨ ¢ ®ª® - ¯®â¥àï 䮪ãá (¯à¨ ãá«®¢¨¨ ç⮠䮪ãá ¡ë« ¤ ®¬ í¥«¥¬¥â¥) |
348 | .no_in_wnd: ;¥ ¯®¯ «¨ ¢ ®ª® - ¯®â¥àï 䮪ãá (¯à¨ ãá«®¢¨¨ ç⮠䮪ãá ¡ë« ¤ ®¬ í¥«¥¬¥â¥) |
351 | mcall 37,2 ;¯à®¢¥à塞 ¦ â®áâì «î¡ëå ª®¯®ª |
349 | mcall 37,2 ;¯à®¢¥à塞 ¦ â®áâì «î¡ëå ª®¯®ª |
352 | cmp eax,0 ;¨ç¥£® ¥ ¦ «¨ eax=0 |
350 | cmp eax,0 ;¨ç¥£® ¥ ¦ «¨ eax=0 |
353 | je .no_draw |
351 | je .no_draw |
354 | - | ||
355 | mov ebx,tl_el_focus |
352 | mov ebx,tl_el_focus |
356 | cmp dword[ebx],edi |
353 | cmp dword[ebx],edi |
357 | jne .no_draw ;í«¥¬¥â ¥ ¢ 䮪ãᥠ|
354 | jne .no_draw ;í«¥¬¥â ¥ ¢ 䮪ãᥠ|
358 | mov dword[ebx],0 ;reset focus |
355 | mov dword[ebx],0 ;reset focus |
359 | mov esi,tl_box_top |
356 | mov esi,tl_box_top |
Line 405... | Line 402... | ||
405 | mov eax,tl_tim_undo |
402 | mov eax,tl_tim_undo |
406 | sub tl_ch_tim,eax ;ch_tim-=tim_undo; |
403 | sub tl_ch_tim,eax ;ch_tim-=tim_undo; |
407 | mov eax,tl_ch_tim |
404 | mov eax,tl_ch_tim |
408 | cmp edx,ecx |
405 | cmp edx,ecx |
409 | jle @f |
406 | jle @f |
410 | - | ||
411 | ;if(node[i].tc>ch_tim){ // ¥á«¨ ᮧ¤ ¨¥ ᨬ¢®« ¡ë«® ®â¬¥¥® |
407 | ;if(node[i].tc>ch_tim){ // ¥á«¨ ᮧ¤ ¨¥ ᨬ¢®« ¡ë«® ®â¬¥¥® |
412 | cmp dword[edx+12],eax |
408 | cmp dword[edx+12],eax |
413 | jle .no_u1 |
409 | jle .no_u1 |
414 | mov dword[edx+12],0 |
410 | mov dword[edx+12],0 |
415 | mov dword[edx+16],0 |
411 | mov dword[edx+16],0 |
Line 423... | Line 419... | ||
423 | mov ebx, dword[edx+8] |
419 | mov ebx, dword[edx+8] |
424 | imul ebx,sizeof.TreeList |
420 | imul ebx,sizeof.TreeList |
425 | add ebx, tl_data_nodes ;.perv |
421 | add ebx, tl_data_nodes ;.perv |
426 | push dword[edx+4] ;node[node[i].next].perv=node[i].perv; |
422 | push dword[edx+4] ;node[node[i].next].perv=node[i].perv; |
427 | pop dword[ebx+4] |
423 | pop dword[ebx+4] |
428 | - | ||
429 | .no_u1: |
424 | .no_u1: |
Line 430... | Line 425... | ||
430 | 425 | ||
431 | ;else if(node[i].td>ch_tim) node[i].td=0; // ¥á«¨ 㤠«¥¨¥ ᨬ¢®« ¡ë«® ®â¬¥¥® |
426 | ;else if(node[i].td>ch_tim) node[i].td=0; // ¥á«¨ 㤠«¥¨¥ ᨬ¢®« ¡ë«® ®â¬¥¥® |
432 | cmp dword[edx+16],eax |
427 | cmp dword[edx+16],eax |
433 | jle .no_u2 |
428 | jle .no_u2 |
434 | mov dword[edx+16],0 |
429 | mov dword[edx+16],0 |
435 | .no_u2: |
- | |
436 | 430 | .no_u2: |
|
437 | call tl_move_next |
431 | call tl_move_next |
438 | jmp @b |
432 | jmp @b |
439 | @@: |
433 | @@: |
440 | mov tl_tim_undo,0 |
- | |
441 | ; mov eax,[edi+?] ;co_tim |
- | |
442 | ; cmp tl_ch_tim,eax ;ch_tim |
- | |
443 | ; jge @f |
- | |
444 | ; mov [edi+?],0 ;co_tim |
- | |
445 | ; @@: |
434 | mov tl_tim_undo,0 |
446 | pop edx ecx ebx eax |
435 | pop edx ecx ebx eax |
447 | .no_work: |
- | |
448 | 436 | .no_work: |
|
Line 449... | Line 437... | ||
449 | ret |
437 | ret |
450 | 438 | ||
451 | ;¢ë¢®¤ ᯨ᪠íªà |
439 | ;¢ë¢®¤ ᯨ᪠íªà |
Line 520... | Line 508... | ||
520 | call tl_iterat_next |
508 | call tl_iterat_next |
521 | cmp edx,ecx |
509 | cmp edx,ecx |
522 | jle .end_draw |
510 | jle .end_draw |
523 | inc eax |
511 | inc eax |
524 | cmp eax,dword[esi+sb_offs_position] |
512 | cmp eax,dword[esi+sb_offs_position] |
525 | jge .end_c1 |
- | |
526 | jmp @b |
513 | jl @b |
527 | .end_c1: |
514 | .end_c1: |
Line 528... | Line 515... | ||
528 | 515 | ||
529 | xor eax,eax |
516 | xor eax,eax |
530 | mov esi,tl_box_top |
517 | mov esi,tl_box_top |
Line 542... | Line 529... | ||
542 | 529 | ||
543 | mov edi,tl_p_scroll ;à¨á㥬 ¤®ç¥à¨© áªà®««¨£ |
530 | mov edi,tl_p_scroll ;à¨á㥬 ¤®ç¥à¨© áªà®««¨£ |
544 | cmp edi,0 ;¤«ï ⮣® çâ®-¡ë ¥£® ¥ ¯à¨è«®áì à¨á®¢ âì ¢ ¯®«ì§®¢ ⥫ì᪮© ¯à®£à ¬¬¥ |
531 | cmp edi,0 ;¤«ï ⮣® çâ®-¡ë ¥£® ¥ ¯à¨è«®áì à¨á®¢ âì ¢ ¯®«ì§®¢ ⥫ì᪮© ¯à®£à ¬¬¥ |
545 | je .end_draw ;¥á«¨ ¥â áªà®««¨£ ¢ë室¨¬ |
532 | je .end_draw ;¥á«¨ ¥â áªà®««¨£ ¢ë室¨¬ |
546 | stdcall scroll_bar_vertical.draw, edi |
- | |
547 | 533 | stdcall scroll_bar_vertical.draw, edi |
|
548 | .end_draw: |
534 | .end_draw: |
549 | popad |
535 | popad |
550 | ret |
536 | ret |
Line 852... | Line 838... | ||
852 | align 4 |
838 | align 4 |
853 | proc tl_draw_null_cursor uses eax ebx ecx edx esi |
839 | proc tl_draw_null_cursor uses eax ebx ecx edx esi |
854 | call tl_get_display_cur_pos ;eax = cursor pos in screen |
840 | call tl_get_display_cur_pos ;eax = cursor pos in screen |
855 | cmp eax,0 |
841 | cmp eax,0 |
856 | jl .end_f ;ªãàá®à 室¨âáï ¢ëè¥ ®ª , ¢ ®¡« á⨠¯à®ªàã祮© áªà®««¨£®¬ |
842 | jl .end_f ;ªãàá®à 室¨âáï ¢ëè¥ ®ª , ¢ ®¡« á⨠¯à®ªàã祮© áªà®««¨£®¬ |
857 | - | ||
858 | mov ebx,tl_box_left |
843 | mov ebx,tl_box_left |
859 | shl ebx,16 |
844 | shl ebx,16 |
860 | mov bx,tl_img_cx |
845 | mov bx,tl_img_cx |
861 | xor ecx,ecx |
846 | xor ecx,ecx |
862 | mov cx,tl_img_cy |
847 | mov cx,tl_img_cy |
Line 873... | Line 858... | ||
873 | mov cx,tl_img_cy |
858 | mov cx,tl_img_cy |
874 | cmp si,tl_img_cy |
859 | cmp si,tl_img_cy |
875 | jge @f |
860 | jge @f |
876 | mov cx,si ;¥á«¨ ªãàá®à ¢¨¤¥ ç áâ¨ç® (¯®¯ « ¨¦îî £à ¨æã) |
861 | mov cx,si ;¥á«¨ ªãàá®à ¢¨¤¥ ç áâ¨ç® (¯®¯ « ¨¦îî £à ¨æã) |
877 | @@: |
862 | @@: |
878 | - | ||
879 | mov edx,tl_col_bkg |
- | |
880 | mcall 13 ;à¨á㥬 ¯à®á⮩ ¯àאַ㣮«ì¨ª á ä®®¢ë¬ 梥⮬ |
863 | mcall 13,,,tl_col_bkg ;à¨á㥬 ¯à®á⮩ ¯àאַ㣮«ì¨ª á ä®®¢ë¬ 梥⮬ |
881 | - | ||
882 | .end_f: |
864 | .end_f: |
883 | ret |
865 | ret |
884 | endp |
866 | endp |
Line 885... | Line 867... | ||
885 | 867 | ||
Line 901... | Line 883... | ||
901 | @@: |
883 | @@: |
902 | ret |
884 | ret |
Line 903... | Line 885... | ||
903 | 885 | ||
904 | ;à¨áã¥â 㧥« á: ª à⨪®©, ¯®¤¯¨áìî, ¨ª®ª®© ®âªàëâ¨ï/§ ªàëâ¨ï ¨ «¨¨ï¬¨ ª த¨â. 㧫ã |
886 | ;à¨áã¥â 㧥« á: ª à⨪®©, ¯®¤¯¨áìî, ¨ª®ª®© ®âªàëâ¨ï/§ ªàëâ¨ï ¨ «¨¨ï¬¨ ª த¨â. 㧫ã |
905 | ;input: |
887 | ;input: |
906 | ; eax = node position |
888 | ; eax = node position (0, ..., max_nodes-scroll_pos) ¥ ¤® tl_box_height/tl_img_cy |
907 | ; edx = pointer to some node struct |
889 | ; edx = pointer to some node struct |
908 | ; edi = pointer to 'TreeList' struct |
890 | ; edi = pointer to 'TreeList' struct |
909 | ; esi = coord of bottom border |
891 | ; esi = coord of bottom border |
910 | align 4 |
892 | align 4 |
Line 921... | Line 903... | ||
921 | shl ebx,16 |
903 | shl ebx,16 |
922 | mov bx,tl_img_cx |
904 | mov bx,tl_img_cx |
923 | xor ecx,ecx |
905 | xor ecx,ecx |
924 | mov cx,tl_img_cy |
906 | mov cx,tl_img_cy |
925 | imul ecx,eax |
907 | imul ecx,eax |
926 | add ecx,tl_box_top |
- | |
927 | add cx,tl_capt_cy |
908 | add cx,tl_capt_cy |
- | 909 | jc .end_draw ;ª®£¤ ¬®£® 㧫®¢, â® ¬®¦¥â ¡ëâì ¯¥à¥¯®«¥¨¥ ª®®à¤¨ âë cx |
|
- | 910 | add ecx,tl_box_top |
|
Line 928... | Line 911... | ||
928 | 911 | ||
929 | ;crop image if on the border |
912 | ;crop image if on the border |
930 | cmp esi,ecx ;¥á«¨ 㧥« ¢¨§ã ¨ ¥£® ¢®®¡é¥ ¥ ¢¨¤® |
913 | cmp esi,ecx ;¥á«¨ 㧥« ¢¨§ã ¨ ¥£® ¢®®¡é¥ ¥ ¢¨¤® |
Line 1005... | Line 988... | ||
1005 | ror ebx,16 |
988 | ror ebx,16 |
1006 | sub bx,tl_img_cx |
989 | sub bx,tl_img_cx |
1007 | ror ebx,16 |
990 | ror ebx,16 |
1008 | cmp tl_data_img_sys,0 |
991 | cmp tl_data_img_sys,0 |
1009 | jne .draw_img_s |
992 | jne .draw_img_s |
1010 | mov edx,tl_col_txt |
- | |
1011 | mcall 13 ;draw minus rect, if not system icons |
993 | mcall 13,,,tl_col_txt ;draw minus rect, if not system icons |
1012 | jmp @f |
994 | jmp @f |
1013 | .draw_img_s: |
995 | .draw_img_s: |
1014 | mov ecx,esi ;load ecx |
996 | mov ecx,esi ;load ecx |
1015 | mov edx,ebx |
997 | mov edx,ebx |
1016 | ror ecx,16 |
998 | ror ecx,16 |
Line 1040... | Line 1022... | ||
1040 | cmp byte[edx+3],1 |
1022 | cmp byte[edx+3],1 |
1041 | je .close |
1023 | je .close |
1042 | push eax ebx ecx edx esi |
1024 | push eax ebx ecx edx esi |
1043 | cmp al,0 |
1025 | cmp al,0 |
1044 | je @f |
1026 | je @f |
1045 | ; dec al |
- | |
1046 | ; call tl_iterat_perv ;get perv visible item |
- | |
1047 | - | ||
1048 | call tl_iterat_next_all ;get next visible item |
1027 | call tl_iterat_next_all ;get next visible item |
1049 | cmp edx,ecx |
1028 | cmp edx,ecx |
1050 | jle .line3 ;if end of list |
1029 | jle .line3 ;if end of list |
1051 | cmp al,byte[edx+2] |
1030 | cmp al,byte[edx+2] |
1052 | jne .line3 ;jg ??? |
1031 | jne .line3 ;jg ??? |
Line 1060... | Line 1039... | ||
1060 | ror ebx,16 |
1039 | ror ebx,16 |
1061 | sub bx,tl_img_cx |
1040 | sub bx,tl_img_cx |
1062 | ror ebx,16 |
1041 | ror ebx,16 |
1063 | cmp tl_data_img_sys,0 |
1042 | cmp tl_data_img_sys,0 |
1064 | jne .draw_img_s |
1043 | jne .draw_img_s |
1065 | mov edx,tl_col_txt |
- | |
1066 | mcall 13 ;draw minus rect, if not system icons |
1044 | mcall 13,,,tl_col_txt ;draw minus rect, if not system icons |
1067 | jmp @f |
1045 | jmp @f |
1068 | .draw_img_s: |
1046 | .draw_img_s: |
1069 | ; mov ecx,esi ;load ecx |
- | |
1070 | mov edx,ebx |
1047 | mov edx,ebx |
1071 | ror ecx,16 |
1048 | ror ecx,16 |
1072 | mov dx,cx |
1049 | mov dx,cx |
1073 | mov cx,bx |
1050 | mov cx,bx |
1074 | ror ecx,16 |
1051 | ror ecx,16 |
1075 | mov ebx,3 ;rgb = 3 bytes |
1052 | mov ebx,3 ;rgb = 3 bytes |
1076 | imul bx,tl_img_cx |
1053 | imul bx,tl_img_cx |
1077 | imul bx,tl_img_cy |
1054 | imul bx,tl_img_cy |
Line 1078... | Line -... | ||
1078 | - | ||
1079 | ; shr eax,8 |
- | |
1080 | ; and eax,0xff |
1055 | |
1081 | imul ebx,eax ;eax = icon index |
1056 | imul ebx,eax ;eax = icon index |
1082 | add ebx,tl_data_img_sys |
1057 | add ebx,tl_data_img_sys |
1083 | mcall 7 ;draw line icon |
1058 | mcall 7 ;draw line icon |
1084 | @@: |
1059 | @@: |
Line 1087... | Line 1062... | ||
1087 | ret |
1062 | ret |
Line 1088... | Line 1063... | ||
1088 | 1063 | ||
1089 | 1064 | ||
- | 1065 | ;input: |
|
1090 | ;input: |
1066 | ; al = ã஢¥ì í«¥¬¥â |
1091 | ; al = ã஢¥ì í«¥¬¥â |
1067 | ; ebx = (node.left shl 16) + tl_img_cx |
1092 | ; ecx = pointer to 1 node struct |
1068 | ; ecx = pointer to 1 node struct |
1093 | ; edx = pointer to some node struct |
1069 | ; edx = pointer to some node struct |
1094 | ; edi = pointer to 'TreeList' struct |
1070 | ; edi = pointer to 'TreeList' struct |
1095 | align 4 |
- | |
1096 | tl_draw_node_icon_par_lin_up: |
- | |
1097 | push eax ebx ecx edx |
1071 | align 4 |
1098 | push esi |
1072 | proc tl_draw_node_icon_par_lin_up uses eax ebx ecx edx esi |
1099 | cmp tl_data_img_sys,0 ;if not image |
1073 | cmp tl_data_img_sys,0 ;if not image |
1100 | je @f |
1074 | je @f |
1101 | cmp al,0 |
- | |
1102 | je @f |
1075 | cmp al,0 |
1103 | 1076 | je @f |
|
1104 | xor esi,esi ;¢ si ¡ã¤¥¬ áç¨âë¢ âì ª®«-¢® ¨ª®®ª, ã¦ëå ¤«ï ¯à®à¨á®¢ª¨ «¨¨¨ |
1077 | xor esi,esi ;¢ si ¡ã¤¥¬ áç¨âë¢ âì ª®«-¢® ¨ª®®ª, ã¦ëå ¤«ï ¯à®à¨á®¢ª¨ «¨¨¨ |
1105 | ;--- 横« ¤«ï ¢ëç¨á«¥¨ï ª®««¨ç¥á⢠¢¥à⨪ «ìëå «¨¨© --- |
1078 | ;--- 横« ¤«ï ¢ëç¨á«¥¨ï ª®««¨ç¥á⢠¢¥à⨪ «ìëå «¨¨© --- |
1106 | .cycle0: |
1079 | .cycle0: |
Line 1147... | Line 1120... | ||
1147 | jl @f |
1120 | jl @f |
1148 | int 0x40 ;draw line icon |
1121 | int 0x40 ;draw line icon |
1149 | sub esi,0x10000 ;㬥ìè ¥¬ áç¥â稪 ¨ª®®ª |
1122 | sub esi,0x10000 ;㬥ìè ¥¬ áç¥â稪 ¨ª®®ª |
1150 | jmp .cycle1 |
1123 | jmp .cycle1 |
1151 | @@: |
1124 | @@: |
1152 | pop esi |
- | |
1153 | pop edx ecx ebx eax |
- | |
1154 | ret |
1125 | ret |
- | 1126 | endp |
|
Line 1155... | Line 1127... | ||
1155 | 1127 | ||
1156 | ;input: |
1128 | ;input: |
1157 | ; edi = pointer to TreeInfo struct |
1129 | ; edi = pointer to TreeInfo struct |
1158 | ;output: |
1130 | ;output: |
Line 1174... | Line 1146... | ||
1174 | ; ebx = [ª®®à¤¨ â ¯® ®á¨ x]*65536 + [img_cx] |
1146 | ; ebx = [ª®®à¤¨ â ¯® ®á¨ x]*65536 + [img_cx] |
1175 | ; ecx = [ª®®à¤¨ â ¯® ®á¨ y]*65536 + [img_cy] |
1147 | ; ecx = [ª®®à¤¨ â ¯® ®á¨ y]*65536 + [img_cy] |
1176 | ; edx = pointer to some node struct |
1148 | ; edx = pointer to some node struct |
1177 | ; edi = pointer to TreeInfo struct |
1149 | ; edi = pointer to TreeInfo struct |
1178 | align 4 |
1150 | align 4 |
1179 | tl_draw_node_caption: |
- | |
1180 | push ebx ecx edx esi |
1151 | proc tl_draw_node_caption uses ebx ecx edx esi |
1181 | - | ||
1182 | xor esi,esi |
1152 | xor esi,esi |
1183 | mov si,tl_info_size |
1153 | mov si,tl_info_size |
1184 | cmp si,tl_info_capt_offs |
1154 | cmp si,tl_info_capt_offs |
1185 | jle @f ;if caption size <= 0 |
1155 | jle @f ;if caption size <= 0 |
1186 | - | ||
1187 | push eax |
1156 | push eax |
1188 | call tl_get_node_index ;eax = node index |
1157 | call tl_get_node_index ;eax = node index |
1189 | imul esi,eax |
1158 | imul esi,eax |
1190 | pop eax |
1159 | pop eax |
1191 | add si,tl_info_capt_offs |
1160 | add si,tl_info_capt_offs |
Line 1203... | Line 1172... | ||
1203 | mov ebx,ecx |
1172 | mov ebx,ecx |
1204 | add bx,tl_img_cy ;¢ëà ¢¨¢¨¨¥ ¯® ¨¦¥© £à ¨æ¥ ¨ª®ª¨ |
1173 | add bx,tl_img_cy ;¢ëà ¢¨¢¨¨¥ ¯® ¨¦¥© £à ¨æ¥ ¨ª®ª¨ |
1205 | sub bx,9 ;®â¨¬ ¥¬ ¢ëá®âã ⥪áâ |
1174 | sub bx,9 ;®â¨¬ ¥¬ ¢ëá®âã ⥪áâ |
1206 | mov ecx,tl_col_txt |
1175 | mov ecx,tl_col_txt |
1207 | and ecx,0xffffff |
1176 | and ecx,0xffffff |
1208 | ; or ecx,0x80000000 ;text is ASCIIZ |
- | |
1209 | mcall 4 |
1177 | mcall 4 |
1210 | @@: |
1178 | @@: |
1211 | pop esi edx ecx ebx |
- | |
1212 | ret |
1179 | ret |
- | 1180 | endp |
|
Line 1213... | Line 1181... | ||
1213 | 1181 | ||
1214 | ;input: |
1182 | ;input: |
1215 | ; eax = strlen |
1183 | ; eax = strlen |
1216 | ; ebx = text coord x |
1184 | ; ebx = text coord x |
1217 | ;output: |
1185 | ;output: |
1218 | ; esi = text len |
1186 | ; esi = text len |
1219 | align 4 |
1187 | align 4 |
1220 | tl_get_draw_text_len: |
- | |
1221 | push eax ecx edx |
1188 | proc tl_get_draw_text_len uses eax ecx edx |
1222 | mov esi,eax ;¡¥à¥¬ ¤«¨ã áâப¨ |
- | |
1223 | 1189 | mov esi,eax ;¡¥à¥¬ ¤«¨ã áâப¨ |
|
1224 | mov eax,tl_box_left |
1190 | mov eax,tl_box_left |
1225 | add eax,tl_box_width |
1191 | add eax,tl_box_width |
1226 | cmp eax,ebx |
1192 | cmp eax,ebx |
1227 | jle .text_null ;¥á«¨ ¯®¤¯¨áì ¯®«®áâìî ¢áï § íªà ®¬ |
1193 | jle .text_null ;¥á«¨ ¯®¤¯¨áì ¯®«®áâìî ¢áï § íªà ®¬ |
1228 | sub eax,ebx |
1194 | sub eax,ebx |
1229 | xor edx,edx |
1195 | xor edx,edx |
1230 | mov ecx,6 ;è¨à¨ á¨á⥬®£® èà¨äâ |
1196 | mov ecx,6 ;è¨à¨ á¨á⥬®£® èà¨äâ |
1231 | div ecx ;ᬮâਬ ᪮«ìª® ᨬ¢®«®¢ ¬®¦¥â ¯®¬¥áâ¨âìáï íªà ¥ |
- | |
1232 | 1197 | div ecx ;ᬮâਬ ᪮«ìª® ᨬ¢®«®¢ ¬®¦¥â ¯®¬¥áâ¨âìáï íªà ¥ |
|
1233 | cmp esi,eax |
1198 | cmp esi,eax |
1234 | jl @f |
1199 | jl @f |
1235 | mov esi,eax ;¥á«¨ ¤«¨ ⥪áâ ¬¥ìè¥, 祬 ¢á¥ ¬¥áâ® ¯®¤ áâபã |
1200 | mov esi,eax ;¥á«¨ ¤«¨ ⥪áâ ¬¥ìè¥, 祬 ¢á¥ ¬¥áâ® ¯®¤ áâபã |
1236 | jmp @f |
1201 | jmp @f |
1237 | .text_null: |
1202 | .text_null: |
1238 | xor esi,esi |
1203 | xor esi,esi |
1239 | @@: |
- | |
1240 | pop edx ecx eax |
1204 | @@: |
- | 1205 | ret |
|
Line 1241... | Line 1206... | ||
1241 | ret |
1206 | endp |
1242 | 1207 | ||
1243 | ;input: |
1208 | ;input: |
1244 | ; esi = pointer to string |
1209 | ; esi = pointer to string |
Line 1289... | Line 1254... | ||
1289 | 1254 | ||
1290 | inc tl_ch_tim |
1255 | inc tl_ch_tim |
1291 | mov ecx,dword[n_opt] |
1256 | mov ecx,dword[n_opt] |
1292 | ror ecx,16 ;cx = type |
1257 | ror ecx,16 ;cx = type |
1293 | mov word[edx],cx |
- | |
1294 | ;;;mov cl,byte[ebp+13] |
1258 | mov word[edx],cx |
1295 | rol ecx,8 ;cl = close|open |
1259 | rol ecx,8 ;cl = close|open |
1296 | mov byte[edx+3],cl ;node[i].clo |
1260 | mov byte[edx+3],cl ;node[i].clo |
1297 | mov byte[edx+2], 0 ;node[i].lev=0 |
1261 | mov byte[edx+2],0 ;node[i].lev=0 |
1298 | bt tl_style,2 ;tl_list_box_mode |
1262 | bt tl_style,2 ;tl_list_box_mode |
1299 | jc .l_box_m |
1263 | jc .l_box_m |
1300 | mov cl,byte[n_opt] |
1264 | mov cl,byte[n_opt] |
1301 | mov byte[edx+2],cl ;node[i].lev |
1265 | mov byte[edx+2],cl ;node[i].lev |
1302 | .l_box_m: |
1266 | .l_box_m: |
1303 | push tl_ch_tim ;node[i].tc=ch_tim; |
1267 | push tl_ch_tim ;node[i].tc=ch_tim; |
1304 | pop dword[edx+12] |
1268 | pop dword[edx+12] |
1305 | mov dword[edx+4], eax ;node[i].perv=po_t; |
1269 | mov [edx+4],eax ;node[i].perv=po_t; |
1306 | ;*** copy node data *** |
1270 | ;*** copy node data *** |
1307 | push esi |
1271 | push esi |
1308 | xor ecx,ecx |
1272 | xor ecx,ecx |
1309 | mov cx,tl_info_size |
1273 | mov cx,tl_info_size |
Line 1344... | Line 1308... | ||
1344 | pop dword [edx+8] |
1308 | pop dword[edx+8] |
Line 1345... | Line 1309... | ||
1345 | 1309 | ||
1346 | call tl_get_node_index ;*** eax = i *** |
1310 | call tl_get_node_index ;*** eax = i *** |
1347 | cmp eax,tl_info_max_count |
1311 | cmp eax,tl_info_max_count |
1348 | jge .u0 |
- | |
1349 | 1312 | jge .u0 |
|
1350 | mov [ecx],eax ;node[po_t].next=i; // áá뫪¨ ¯¥à¥ ¯à ¢«ï¥¬ |
1313 | mov [ecx],eax ;node[po_t].next=i; // áá뫪¨ ¯¥à¥ ¯à ¢«ï¥¬ |
1351 | mov ecx,[edx+8] ; *** ecx = node[i].next *** |
1314 | mov ecx,[edx+8] ; *** ecx = node[i].next *** |
1352 | imul ecx,sizeof.TreeList |
1315 | imul ecx,sizeof.TreeList |
1353 | add ecx,tl_data_nodes ; *** ecx = node[node[i].next] *** |
1316 | add ecx,tl_data_nodes ; *** ecx = node[node[i].next] *** |
Line 1374... | Line 1337... | ||
1374 | call tl_get_rows_count |
1337 | call tl_get_rows_count |
1375 | cmp ecx,eax |
1338 | cmp ecx,eax |
1376 | jg .ye_sb |
1339 | jg .ye_sb |
1377 | xor ecx,ecx |
1340 | xor ecx,ecx |
1378 | .ye_sb: |
1341 | .ye_sb: |
1379 | - | ||
1380 | mov edx,tl_p_scroll |
1342 | mov edx,tl_p_scroll |
1381 | mov dword[edx+sb_offs_cur_area],eax |
1343 | mov dword[edx+sb_offs_cur_area],eax |
1382 | mov dword[edx+sb_offs_max_area],ecx |
1344 | mov dword[edx+sb_offs_max_area],ecx |
1383 | stdcall scroll_bar_vertical.draw,edx |
1345 | stdcall scroll_bar_vertical.draw,edx |
1384 | @@: |
1346 | @@: |
Line 1419... | Line 1381... | ||
1419 | sub esi,eax |
1381 | sub esi,eax |
1420 | .no_limit: |
1382 | .no_limit: |
1421 | dec esi |
1383 | dec esi |
1422 | mov byte[esi],0 ;®¡ã«ï¥¬ ¯®á«¥¤¨© ᨬ¢®« ¯®¤¯¨á¨, çâ®-¡ë ¥ £«î稫® ¥á«¨ ¯®«ì§®¢ â¥«ì § ¤ « ¥¯à ¢¨«ìãî áâàãªâãàã |
1384 | mov byte[esi],0 ;®¡ã«ï¥¬ ¯®á«¥¤¨© ᨬ¢®« ¯®¤¯¨á¨, çâ®-¡ë ¥ £«î稫® ¥á«¨ ¯®«ì§®¢ â¥«ì § ¤ « ¥¯à ¢¨«ìãî áâàãªâãàã |
1423 | .no_text_data: |
1385 | .no_text_data: |
1424 | - | ||
1425 | @@: |
1386 | @@: |
1426 | ret |
1387 | ret |
1427 | endp |
1388 | endp |
Line 1428... | Line 1389... | ||
1428 | 1389 | ||
Line 1606... | Line 1567... | ||
1606 | ;¯¥à¥¥á⨠ªãàá®à 1 ¯®§¨æ¨î ¨¦¥ |
1567 | ;¯¥à¥¥á⨠ªãàá®à 1 ¯®§¨æ¨î ¨¦¥ |
1607 | align 4 |
1568 | align 4 |
1608 | proc tl_cur_next uses eax ebx edi esi, tlist:dword |
1569 | proc tl_cur_next uses eax ebx edi esi, tlist:dword |
1609 | mov edi,dword[tlist] |
1570 | mov edi,dword[tlist] |
1610 | call tl_get_node_count ;eax = node count |
1571 | call tl_get_node_count ;eax = node count |
1611 | ;inc eax |
- | |
1612 | cmp tl_cur_pos,eax |
1572 | cmp tl_cur_pos,eax |
1613 | jge .no_redraw |
1573 | jge .no_redraw |
1614 | mov esi,tl_box_top |
1574 | mov esi,tl_box_top |
1615 | add esi,tl_box_height ;esi = coord bottom border |
1575 | add esi,tl_box_height ;esi = coord bottom border |
1616 | call tl_draw_null_cursor ;áâ¨à ¥¬ ªãàá®à |
1576 | call tl_draw_null_cursor ;áâ¨à ¥¬ ªãàá®à |
Line 1623... | Line 1583... | ||
1623 | add eax,dword[ebx+sb_offs_position] |
1583 | add eax,dword[ebx+sb_offs_position] |
1624 | cmp tl_cur_pos,eax |
1584 | cmp tl_cur_pos,eax |
1625 | jl @f |
1585 | jl @f |
1626 | inc dword[ebx+sb_offs_position] |
1586 | inc dword[ebx+sb_offs_position] |
1627 | stdcall scroll_bar_vertical.draw,ebx |
1587 | stdcall scroll_bar_vertical.draw,ebx |
1628 | - | ||
1629 | stdcall tl_draw,dword[tlist] ;¯®« ï ¯¥à¥à¨á®¢ª ®ª |
1588 | stdcall tl_draw,dword[tlist] ;¯®« ï ¯¥à¥à¨á®¢ª ®ª |
1630 | jmp .no_redraw |
1589 | jmp .no_redraw |
1631 | @@: |
1590 | @@: |
1632 | mov edi,dword[tlist] ;restore edi |
1591 | mov edi,dword[tlist] ;restore edi |
1633 | call tl_draw_cursor ;¯¥à¥à¨á®¢ª ªãàá®à |
1592 | call tl_draw_cursor ;¯¥à¥à¨á®¢ª ªãàá®à |
Line 1718... | Line 1677... | ||
1718 | proc tl_cur_page_up uses eax edi esi, tlist:dword |
1677 | proc tl_cur_page_up uses eax edi esi, tlist:dword |
1719 | mov edi,dword[tlist] |
1678 | mov edi,dword[tlist] |
Line 1720... | Line 1679... | ||
1720 | 1679 | ||
1721 | cmp tl_p_scroll,0 ;¥á«¨ ¥áâì 㪠§ ⥫ì áªà®««¨£ |
1680 | cmp tl_p_scroll,0 ;¥á«¨ ¥áâì 㪠§ ⥫ì áªà®««¨£ |
1722 | je .no_redraw |
- | |
1723 | 1681 | je .no_redraw |
|
1724 | mov esi,tl_p_scroll |
1682 | mov esi,tl_p_scroll |
Line 1725... | Line 1683... | ||
1725 | call tl_get_rows_count ;eax = rows count |
1683 | call tl_get_rows_count ;eax = rows count |
1726 | 1684 | ||
Line 1756... | Line 1714... | ||
1756 | proc tl_cur_page_down uses eax ebx ecx edi esi, tlist:dword |
1714 | proc tl_cur_page_down uses eax ebx ecx edi esi, tlist:dword |
1757 | ;eax - ª®«-¢® áâப áâà ¨æ¥ |
1715 | ;eax - ª®«-¢® áâப áâà ¨æ¥ |
1758 | ;ebx - ¬ ªá. ¯®§¨æ¨ï ªãàá®à |
1716 | ;ebx - ¬ ªá. ¯®§¨æ¨ï ªãàá®à |
1759 | ;ecx - ¬ ªá. ¯®§¨æ¨ï áªà®««¨£ |
1717 | ;ecx - ¬ ªá. ¯®§¨æ¨ï áªà®««¨£ |
1760 | mov edi,dword[tlist] |
1718 | mov edi,dword[tlist] |
1761 | - | ||
1762 | cmp tl_p_scroll,0 ;¥á«¨ ¥áâì 㪠§ ⥫ì áªà®««¨£ |
1719 | cmp tl_p_scroll,0 ;¥á«¨ ¥áâì 㪠§ ⥫ì áªà®««¨£ |
1763 | je .no_redraw |
1720 | je .no_redraw |
1764 | - | ||
1765 | mov esi,tl_p_scroll |
1721 | mov esi,tl_p_scroll |
1766 | call tl_get_node_count ;eax = node count |
1722 | call tl_get_node_count ;eax = node count |
1767 | mov ebx,eax |
1723 | mov ebx,eax |
1768 | call tl_get_rows_count ;eax = rows count |
1724 | call tl_get_rows_count ;eax = rows count |
Line 1781... | Line 1737... | ||
1781 | jl @f |
1737 | jl @f |
1782 | cmp dword[esi+sb_offs_position],ecx ;áªà®««¨£ ¢¨§ã ? |
1738 | cmp dword[esi+sb_offs_position],ecx ;áªà®««¨£ ¢¨§ã ? |
1783 | jl @f |
1739 | jl @f |
1784 | jmp .no_redraw |
1740 | jmp .no_redraw |
1785 | @@: |
1741 | @@: |
1786 | - | ||
1787 | add tl_cur_pos,eax ;¯¥à¥¬¥é ¥¬ ªãàá®à |
1742 | add tl_cur_pos,eax ;¯¥à¥¬¥é ¥¬ ªãàá®à |
1788 | cmp tl_cur_pos,ebx |
1743 | cmp tl_cur_pos,ebx |
1789 | jl @f |
1744 | jl @f |
1790 | mov tl_cur_pos,ebx |
1745 | mov tl_cur_pos,ebx |
1791 | @@: |
1746 | @@: |
1792 | - | ||
1793 | add dword[esi+sb_offs_position],eax ;¯¥à¥¬¥é ¥¬ áªà®««¨£ |
1747 | add dword[esi+sb_offs_position],eax ;¯¥à¥¬¥é ¥¬ áªà®««¨£ |
1794 | cmp dword[esi+sb_offs_position],ecx |
1748 | cmp dword[esi+sb_offs_position],ecx |
1795 | jl @f |
1749 | jl @f |
1796 | mov dword[esi+sb_offs_position],ecx |
1750 | mov dword[esi+sb_offs_position],ecx |
1797 | @@: |
1751 | @@: |
Line 1977... | Line 1931... | ||
1977 | ;eax = ? |
1931 | ;eax = ? |
1978 | ;ebx = ? |
1932 | ;ebx = ? |
1979 | ;ecx = ? |
1933 | ;ecx = ? |
1980 | align 4 |
1934 | align 4 |
1981 | tl_node_move_po8: |
1935 | tl_node_move_po8: |
1982 | ; push ecx |
- | |
1983 | mov ecx,edx ;save node pointer |
1936 | mov ecx,edx ;save node pointer |
1984 | call tl_move_perv |
1937 | call tl_move_perv |
1985 | mov dword[edx+8],ebx |
1938 | mov dword[edx+8],ebx |
1986 | mov edx,ecx |
1939 | mov edx,ecx |
1987 | call tl_move_next |
1940 | call tl_move_next |
Line 1991... | Line 1944... | ||
1991 | mov dword[edx+8],eax |
1944 | mov dword[edx+8],eax |
1992 | mov edx,esi |
1945 | mov edx,esi |
1993 | call tl_move_next |
1946 | call tl_move_next |
1994 | mov dword[edx+4],eax |
1947 | mov dword[edx+4],eax |
1995 | mov edx,ecx ;restore node pointer |
1948 | mov edx,ecx ;restore node pointer |
1996 | ; pop ecx |
- | |
Line 1997... | Line 1949... | ||
1997 | 1949 | ||
1998 | ;+4 perv |
1950 | ;+4 perv |
1999 | mov eax,dword[edx+4] |
1951 | mov eax,dword[edx+4] |
2000 | mov ebx,dword[esi+4] |
1952 | mov ebx,dword[esi+4] |
Line 2289... | Line 2241... | ||
2289 | cmp eax,ecx ;áà ¢¨âì ¥á«¨ ¢ eax ¬¥ìè¥ ç¥¬ ¢ ecx â® ¯¥à¥©â¨ @@-1 â.¥. pop eax |
2241 | cmp eax,ecx ;áà ¢¨âì ¥á«¨ ¢ eax ¬¥ìè¥ ç¥¬ ¢ ecx â® ¯¥à¥©â¨ @@-1 â.¥. pop eax |
2290 | jb @f |
2242 | jb @f |
2291 | xor edx,edx ;®ç¨áâ¨âì edx |
2243 | xor edx,edx ;®ç¨áâ¨âì edx |
2292 | div ecx ;à §¤¥«¨âì - ®áâ ⮪ ¢ edx |
2244 | div ecx ;à §¤¥«¨âì - ®áâ ⮪ ¢ edx |
2293 | push edx ;¯®«®¦¨âì ¢ á⥪ |
2245 | push edx ;¯®«®¦¨âì ¢ á⥪ |
2294 | call .str;¯¥à¥©â¨ á ¬ã ᥡï â.¥. ¢ë§¢ âì á ¬ã á¥¡ï ¨ â ª ¤® ⮣® ¬®¬¥â ¯®ª ¢ eax ¥ á⠥⠬¥ìè¥ ç¥¬ ¢ ecx |
2246 | call .str ;¢ë§¢ âì á ¬ã á¥¡ï ¨ â ª ¤® ⮣® ¬®¬¥â ¯®ª ¢ eax ¥ á⠥⠬¥ìè¥ ç¥¬ ¢ ecx |
2295 | pop eax |
2247 | pop eax |
2296 | @@: ;cmp al,10 ;¯à®¢¥à¨âì ¥ ¬¥ìè¥ «¨ § 票¥ ¢ al 祬 10 (¤«ï á¨á⥬ë áç¨á«¥ï 10 ¤ ï ª®¬ ¤ - «¨è ï)) |
2248 | @@: ;cmp al,10 ;¯à®¢¥à¨âì ¥ ¬¥ìè¥ «¨ § 票¥ ¢ al 祬 10 (¤«ï á¨á⥬ë áç¨á«¥ï 10 ¤ ï ª®¬ ¤ - «¨è ï)) |
2297 | or al,0x30 ;¤ ï ª®¬ ¤ ª®à®ç¥ 祬 ¤¢¥ ¢ëè¥ |
2249 | or al,0x30 ;¤ ï ª®¬ ¤ ª®à®ç¥ 祬 ¤¢¥ ¢ëè¥ |
2298 | stosb ;§ ¯¨á âì í«¥¬¥â ¨§ ॣ¨áâà al ¢ ï祪㠯 ¬ï⨠es:edi |
2250 | stosb ;§ ¯¨á âì í«¥¬¥â ¨§ ॣ¨áâà al ¢ ï祪㠯 ¬ï⨠es:edi |
2299 | ret ;¢¥àãâìáï ®ç¥ì ¨â¥à¥áë© å®¤ â.ª. ¯®ª ¢ á⥪¥ åà ¨âìáï ª®«-¢® ¢ë§®¢®¢ â® á⮫쪮 à § ¬ë ¨ ¡ã¤¥¬ ¢ë§ë¢ âìáï |
2251 | ret ;¢¥àãâìáï ®ç¥ì ¨â¥à¥áë© å®¤ â.ª. ¯®ª ¢ á⥪¥ åà ¨âìáï ª®«-¢® ¢ë§®¢®¢ â® á⮫쪮 à § ¬ë ¨ ¡ã¤¥¬ ¢ë§ë¢ âìáï |