Rev 3358 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 3358 | Rev 4601 | ||
---|---|---|---|
Line 6... | Line 6... | ||
6 | macro use_editbox_draw |
6 | macro use_editbox_draw |
7 | { |
7 | { |
8 | edit_box: |
8 | edit_box: |
9 | .draw: |
9 | .draw: |
10 | pushad |
10 | pushad |
- | 11 | .draw_1: |
|
11 | ;--- à¨á㥬 à ¬ªã --- |
12 | ;--- à¨á㥬 à ¬ªã --- |
12 | mov edi,dword [esp+36] |
13 | mov edi,dword [esp+36] |
13 | call .draw_border ; ãªæ¨ï áâ ¡¨«ì |
14 | call .draw_border ; ãªæ¨ï áâ ¡¨«ì |
14 | .draw_bg_cursor_text: |
15 | .draw_bg_cursor_text: |
15 | ;--- ¨§¬¥ï¥¬ ᬥ饨¥, ¥á«¨ ¤® --- |
16 | ;--- ¨§¬¥ï¥¬ ᬥ饨¥, ¥á«¨ ¤® --- |
Line 66... | Line 67... | ||
66 | @@: |
67 | @@: |
67 | pop ebx |
68 | pop ebx |
68 | pop eax |
69 | pop eax |
69 | ;-------------------------------------- |
70 | ;-------------------------------------- |
70 | ;஢¥àª ¦ â shift ? |
71 | ;஢¥àª ¦ â shift ? |
71 | call edit_box_key.check_shift |
72 | call edit_box_key.check_shift_ctrl_alt |
72 | ;---------------------------------------------------------- |
73 | ;---------------------------------------------------------- |
73 | ;--- ¯à®¢¥à塞, çâ® ¦ â® -------------------------------- |
74 | ;--- ¯à®¢¥à塞, çâ® ¦ â® -------------------------------- |
74 | ;---------------------------------------------------------- |
75 | ;---------------------------------------------------------- |
75 | cmp ah,8 |
76 | cmp ah,8 |
76 | jz edit_box_key.backspace |
77 | jz edit_box_key.backspace |
Line 84... | Line 85... | ||
84 | jz edit_box_key.home |
85 | jz edit_box_key.home |
85 | cmp ah,181 |
86 | cmp ah,181 |
86 | jz edit_box_key.end |
87 | jz edit_box_key.end |
87 | cmp ah,185 ;insert |
88 | cmp ah,185 ;insert |
88 | jz edit_box_key.insert |
89 | jz edit_box_key.insert |
- | 90 | ; ª®¬¡¨ 樨 Ctrl + ª« ¢¨è |
|
- | 91 | test word ed_flags,ed_ctrl_on |
|
- | 92 | jz @f |
|
- | 93 | ; ¯à®¢¥àª ᪠ª®¤ |
|
- | 94 | ror eax,8 |
|
- | 95 | cmp ah,46 ; Ctrl + C |
|
- | 96 | je edit_box_key.ctrl_c |
|
- | 97 | cmp ah,47 ; Ctrl + V |
|
- | 98 | je edit_box_key.ctrl_v |
|
- | 99 | rol eax,8 |
|
- | 100 | @@: |
|
89 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
101 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
90 | ; £«ãèª ®¡à ¡®âªã ª« ¢¨è ¢¢¥àå ¨ ¢¨§ â.¥. ¯à¨ ®¡ à㦥¨¨ íâ¨å ª®¤®¢ ¯à®¨á室¨â ¢ë室 ¨§ ®¡à ¡®â稪 |
102 | ; £«ãèª ®¡à ¡®âªã ª« ¢¨è ¢¢¥àå ¨ ¢¨§ â.¥. ¯à¨ ®¡ à㦥¨¨ íâ¨å ª®¤®¢ ¯à®¨á室¨â ¢ë室 ¨§ ®¡à ¡®â稪 |
91 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
103 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
92 | use_key_no_process up,down,esc,enter,tab,numl,capsl,scrolll |
104 | use_key_no_process up,down,esc,enter,tab,numl,capsl,scrolll |
93 | ;--- ¦ â ¤àã£ ï ª« ¢¨è --- |
105 | ;--- ¦ â ¤àã£ ï ª« ¢¨è --- |
Line 777... | Line 789... | ||
777 | call edit_box.draw_bg_eax |
789 | call edit_box.draw_bg_eax |
778 | ret |
790 | ret |
779 | ;;;;;;;;;;;;;;;;;; |
791 | ;;;;;;;;;;;;;;;;;; |
780 | ;;஢¥àª ¦ â «¨ shift |
792 | ;;஢¥àª ¦ â «¨ shift |
781 | ;;;;;;;;;;;;;;;;;; |
793 | ;;;;;;;;;;;;;;;;;; |
782 | edit_box_key.check_shift: |
794 | edit_box_key.check_shift_ctrl_alt: |
783 | pusha ;á®åà ¨¬ ¢á¥ ॣ¨áâàë |
795 | pusha ;á®åà ¨¬ ¢á¥ ॣ¨áâàë |
784 | mcall 66,3 |
796 | mcall 66,3 |
785 | test al,0x03 |
797 | test al,11b |
- | 798 | je @f |
|
- | 799 | or word ed_flags,ed_shift ;ãáâ ®¢¨¬ ä« £ Shift |
|
- | 800 | @@: |
|
- | 801 | and word ed_flags,ed_ctrl_off ; ®ç¨á⨬ ä« £ Ctrl |
|
- | 802 | test al,1100b |
|
- | 803 | je @f |
|
- | 804 | or word ed_flags,ed_ctrl_on ;ãáâ ®¢¨¬ ä« £ Ctrl |
|
- | 805 | @@: |
|
- | 806 | and word ed_flags,ed_alt_off ; ®ç¨á⨬ ä« £ Alt |
|
- | 807 | test al,110000b |
|
786 | je @f |
808 | je @f |
787 | or word ed_flags,ed_shift ;ãáâ ®¢¨¬ ä« £ |
809 | or word ed_flags,ed_alt_on ;ãáâ ®¢¨¬ ä« £ Alt |
788 | @@:edit_ex |
810 | @@:edit_ex |
789 | } |
811 | } |
Line 790... | Line 812... | ||
790 | 812 | ||
791 | macro use_key_no_process up,down,esc,enter,tab,numl,capsl,scrolll |
813 | macro use_key_no_process up,down,esc,enter,tab,numl,capsl,scrolll |
Line 1050... | Line 1072... | ||
1050 | call edit_box_key.sh_first_sh |
1072 | call edit_box_key.sh_first_sh |
1051 | mov eax,ed_size |
1073 | mov eax,ed_size |
1052 | mov ed_pos,eax |
1074 | mov ed_pos,eax |
1053 | call edit_box_key.sh_home_end |
1075 | call edit_box_key.sh_home_end |
1054 | jmp edit_box.draw_cursor_text |
1076 | jmp edit_box.draw_cursor_text |
- | 1077 | ;----------------------------------------------------------------------------- |
|
- | 1078 | edit_box_key.ctrl_c: |
|
- | 1079 | ; add memory area |
|
- | 1080 | mov ecx,ed_size |
|
- | 1081 | add ecx,3*4 |
|
- | 1082 | mcall 68,12 |
|
- | 1083 | ; building the clipboard slot header |
|
- | 1084 | xor ecx,ecx |
|
- | 1085 | mov [eax+4],ecx ; type 'text' |
|
- | 1086 | inc ecx |
|
- | 1087 | mov [eax+8],ecx ; cp866 text encoding |
|
- | 1088 | mov ecx,ed_size |
|
- | 1089 | add ecx,3*4 |
|
- | 1090 | mov [eax],ecx |
|
- | 1091 | sub ecx,3*4 |
|
- | 1092 | ; copy data |
|
- | 1093 | mov esi,ed_text |
|
- | 1094 | push edi |
|
- | 1095 | mov edi,eax |
|
- | 1096 | add edi,3*4 |
|
- | 1097 | cld |
|
- | 1098 | rep movsb |
|
- | 1099 | pop edi |
|
- | 1100 | ; put slot to the kernel clipboard |
|
- | 1101 | mov edx,eax |
|
- | 1102 | mov ecx,[edx] |
|
- | 1103 | push eax |
|
- | 1104 | mcall 54,2 |
|
- | 1105 | pop ecx |
|
- | 1106 | ; remove unnecessary memory area |
|
- | 1107 | mcall 68,13 |
|
- | 1108 | ;-------------------------------------- |
|
- | 1109 | .exit: |
|
- | 1110 | jmp edit_box.editbox_exit |
|
- | 1111 | ;----------------------------------------------------------------------------- |
|
- | 1112 | edit_box_key.ctrl_v: |
|
- | 1113 | mcall 54,0 |
|
- | 1114 | ; no slots of clipboard ? |
|
- | 1115 | test eax,eax |
|
- | 1116 | jz .exit |
|
- | 1117 | ; main list area not found ? |
|
- | 1118 | inc eax |
|
- | 1119 | test eax,eax |
|
- | 1120 | jz .exit |
|
- | 1121 | ||
- | 1122 | sub eax,2 |
|
- | 1123 | mov ecx,eax |
|
- | 1124 | mcall 54,1 |
|
- | 1125 | ; main list area not found ? |
|
- | 1126 | inc eax |
|
- | 1127 | test eax,eax |
|
- | 1128 | jz .exit |
|
- | 1129 | ; error ? |
|
- | 1130 | sub eax,2 |
|
- | 1131 | test eax,eax |
|
- | 1132 | jz .exit |
|
- | 1133 | ||
- | 1134 | inc eax |
|
- | 1135 | ; check contents of container |
|
- | 1136 | mov ebx,[eax+4] |
|
- | 1137 | ; check for text |
|
- | 1138 | test ebx,ebx |
|
- | 1139 | jnz .no_valid_text |
|
- | 1140 | ||
- | 1141 | mov ebx,[eax+8] |
|
- | 1142 | ; check for cp866 |
|
- | 1143 | cmp bl,1 |
|
- | 1144 | jnz .no_valid_text |
|
- | 1145 | ||
- | 1146 | mov ecx,[eax] |
|
- | 1147 | sub ecx,3*4 |
|
- | 1148 | cmp ecx,ed_max |
|
- | 1149 | jb @f |
|
- | 1150 | ||
- | 1151 | mov ecx,ed_max |
|
- | 1152 | @@: |
|
- | 1153 | mov esi,eax |
|
- | 1154 | add esi,3*4 |
|
- | 1155 | mov ed_size,ecx |
|
- | 1156 | mov ed_pos,ecx |
|
- | 1157 | push eax edi |
|
- | 1158 | mov edi,ed_text |
|
- | 1159 | cld |
|
- | 1160 | @@: |
|
- | 1161 | lodsb |
|
- | 1162 | cmp al,0x0d ; EOS (end of string) |
|
- | 1163 | je .replace |
|
- | 1164 | ||
- | 1165 | cmp al,0x0a ; EOS (end of string) |
|
- | 1166 | jne .continue |
|
- | 1167 | .replace: |
|
- | 1168 | mov al,0x20 ; space |
|
- | 1169 | .continue: |
|
- | 1170 | stosb |
|
- | 1171 | dec ecx |
|
- | 1172 | jnz @b |
|
- | 1173 | ; rep movsb |
|
- | 1174 | pop edi eax |
|
- | 1175 | ;-------------------------------------- |
|
- | 1176 | .no_valid_text: |
|
- | 1177 | ; remove unnecessary memory area |
|
- | 1178 | mov ecx,eax |
|
- | 1179 | mcall 68,13 |
|
- | 1180 | ;-------------------------------------- |
|
- | 1181 | .exit: |
|
- | 1182 | jmp edit_box.draw_1 |
|
1055 | } |
1183 | } |
Line 1056... | Line 1184... | ||
1056 | 1184 | ||
1057 | macro use_mouse_func |
1185 | macro use_mouse_func |
1058 | { |
1186 | { |