Subversion Repositories Kolibri OS

Rev

Rev 491 | Go to most recent revision | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 491 Rev 507
1
; SEE YOU File FAQ.txt and HISTORY. Good Like! 
1
; SEE YOU File FAQ.txt and HISTORY. Good Like! 
2
;;;;;;;;;;;;;;;;;;
2
;;;;;;;;;;;;;;;;;;
3
include 'editbox.mac'    ;¬ ªà®á ª®â®àë© ¤®«¦¥­ ®¡«¥£ç¨âì ¦¨§­ì :) ᯥ樠«ì­® ¤«ï editbox
3
include 'editbox.mac'    ;¬ ªà®á ª®â®àë© ¤®«¦¥­ ®¡«¥£ç¨âì ¦¨§­ì :) ᯥ樠«ì­® ¤«ï editbox
4
;;;;;;;;;;;;;;;;;;
4
;;;;;;;;;;;;;;;;;;
5
macro use_edit_box procinfo,scr_h,scr_w
5
macro use_edit_box procinfo,scr_h,scr_w
6
{
6
{
7
edit_box:
7
edit_box:
8
ed_width        equ [edi]               ;è¨à¨­  ª®¬¯®­¥­â 
8
ed_width        equ [edi]               ;è¨à¨­  ª®¬¯®­¥­â 
9
ed_left         equ [edi+4]             ;¯®«®¦¥­¨¥ ¯® ®á¨ å
9
ed_left         equ [edi+4]             ;¯®«®¦¥­¨¥ ¯® ®á¨ å
10
ed_top          equ [edi+8]             ;¯®«®¦¥­¨¥ ¯® ®á¨ ã
10
ed_top          equ [edi+8]             ;¯®«®¦¥­¨¥ ¯® ®á¨ ã
11
ed_color        equ [edi+12]            ;梥â ä®­  ª®¬¯®­¥­â 
11
ed_color        equ [edi+12]            ;梥â ä®­  ª®¬¯®­¥­â 
12
shift_color     equ [edi+16]            ;=0x6a9480
12
shift_color     equ [edi+16]            ;=0x6a9480
13
ed_focus_border_color   equ [edi+20]    ;梥â à ¬ª¨ ª®¬¯®­¥­â 
13
ed_focus_border_color   equ [edi+20]    ;梥â à ¬ª¨ ª®¬¯®­¥­â 
14
ed_blur_border_color    equ [edi+24]    ;梥⠭¥  ªâ¨¢­®£® ª®¬¯®­¥­â 
14
ed_blur_border_color    equ [edi+24]    ;梥⠭¥  ªâ¨¢­®£® ª®¬¯®­¥­â 
15
ed_text_color   equ [edi+28]            ;梥â ⥪áâ 
15
ed_text_color   equ [edi+28]            ;梥â ⥪áâ 
16
ed_max          equ [edi+32]                    ;ª®«-¢® ᨬ¢®«®¢ ª®â®àë¥ ¬®¦­® ¬ ªá¨¬ «ì­® ¢¢¥áâ¨
16
ed_max          equ [edi+32]                    ;ª®«-¢® ᨬ¢®«®¢ ª®â®àë¥ ¬®¦­® ¬ ªá¨¬ «ì­® ¢¢¥áâ¨
17
ed_text         equ [edi+36]                    ;㪠§ â¥«ì ­  ¡ãä¥à
17
ed_text         equ [edi+36]                    ;㪠§ â¥«ì ­  ¡ãä¥à
18
ed_flags        equ [edi+40]            ;ä« £¨
18
ed_flags        equ [edi+40]            ;ä« £¨
19
ed_size equ [edi+42]                    ;ª®«-¢® ᨬ¢®«®¢
19
ed_size equ [edi+42]                    ;ª®«-¢® ᨬ¢®«®¢
20
ed_pos  equ [edi+46]                    ;¯®§¨æ¨ï ªãàá®à 
20
ed_pos  equ [edi+46]                    ;¯®§¨æ¨ï ªãàá®à 
21
ed_offset       equ [edi+50]            ;ᬥ饭¨¥
21
ed_offset       equ [edi+50]            ;ᬥ饭¨¥
22
cl_curs_x       equ [edi+54]            ;¯à¥¤ë¤ã饥 ª®®à¤¨­ â  ªãàá®à  ¯® å
22
cl_curs_x       equ [edi+54]            ;¯à¥¤ë¤ã饥 ª®®à¤¨­ â  ªãàá®à  ¯® å
23
cl_curs_y       equ [edi+58]            ;¯à¥¤ë¤ã饥 ª®®à¤¨­ â  ªãàá®à  ¯® ã
23
cl_curs_y       equ [edi+58]            ;¯à¥¤ë¤ã饥 ª®®à¤¨­ â  ªãàá®à  ¯® ã
24
ed_shift_pos    equ [edi+62]            ;¯®«®¦¥­¨¥ ªãàá®à 
24
ed_shift_pos    equ [edi+62]            ;¯®«®¦¥­¨¥ ªãàá®à 
25
ed_shift_pos_old equ [edi+66]           ;áâ à®¥ ¯®«®¦¥­¨¥ ªãàá®à 
25
ed_shift_pos_old equ [edi+66]           ;áâ à®¥ ¯®«®¦¥­¨¥ ªãàá®à 
26
;==========================================================
26
;==========================================================
27
;=== ¯à®æ¥¤ãà  ¯à®à¨á®¢ª¨ =================================
27
;=== ¯à®æ¥¤ãà  ¯à®à¨á®¢ª¨ =================================
28
;==========================================================
28
;==========================================================
29
.draw:
29
.draw:
30
pusha
30
pusha
31
;--- à¨á㥬 à ¬ªã ---
31
;--- à¨á㥬 à ¬ªã ---
32
        call    .draw_border            ; ”ã­ªæ¨ï áâ ¡¨«ì­ 
32
        call    .draw_border            ; ”ã­ªæ¨ï áâ ¡¨«ì­ 
33
.draw_bg_cursor_text:
33
.draw_bg_cursor_text:
34
;--- ¨§¬¥­ï¥¬ ᬥ饭¨¥, ¥á«¨ ­ ¤® ---
34
;--- ¨§¬¥­ï¥¬ ᬥ饭¨¥, ¥á«¨ ­ ¤® ---
35
        call    .check_offset           ;¢ëç¨á«¥­¨¥ ¯®§¨æ¨¨ ªãàá®à  áâ ¡¨«ì­ 
35
        call    .check_offset           ;¢ëç¨á«¥­¨¥ ¯®§¨æ¨¨ ªãàá®à  áâ ¡¨«ì­ 
36
;--- à¨á㥬 ¢­ãâ७­îî ®¡« áâì ---
36
;--- à¨á㥬 ¢­ãâ७­îî ®¡« áâì ---
37
        call    .draw_bg                ;­ à¨á®¢ âì ¯àאַ㣮«ì­¨ª à ¡®ç¥© ®¡« áâ¨
37
        call    .draw_bg                ;­ à¨á®¢ âì ¯àאַ㣮«ì­¨ª à ¡®ç¥© ®¡« áâ¨
38
;---- à¨á㥬 ¢ë¤¥«¥­¨¥, ¯® shift ¥á«¨ ¥áâì
38
;---- à¨á㥬 ¢ë¤¥«¥­¨¥, ¯® shift ¥á«¨ ¥áâì
39
        call    .draw_shift
39
        call    .draw_shift
40
.draw_cursor_text:
40
.draw_cursor_text:
41
;--- à¨á㥬 ªãàá®à ---
41
;--- à¨á㥬 ªãàá®à ---
42
        ;--- ¬®¦¥â ¥£® ­¥ ­ ¤® à¨á®¢ âì ----
42
        ;--- ¬®¦¥â ¥£® ­¥ ­ ¤® à¨á®¢ âì ----
43
        test    word ed_flags,ed_focus
43
        test    word ed_flags,ed_focus
44
        je     @f
44
        je     @f
45
        call    .draw_cursor
45
        call    .draw_cursor
46
@@:
46
@@:
47
        call    .draw_text
47
        call    .draw_text
-
 
48
;;;;;;;;;;;;;;;;;;;;;;;;;;
-
 
49
;Ž¡é¨© ¢ë室 ¨§ editbox ¤«ï ¢á¥å ä㭪権 ¨ ¯®áâ ®¡à ¡®â稪®¢
-
 
50
;;;;;;;;;;;;;;;;;;;;;;;;;;
-
 
51
.editbox_exit:
48
edit_ex
52
edit_ex
49
;==========================================================
53
;==========================================================
50
;=== ®¡à ¡®âª  ª« ¢¨ âãàë =================================
54
;=== ®¡à ¡®âª  ª« ¢¨ âãàë =================================
51
;==========================================================
55
;==========================================================
52
.key:
56
.key:
53
pusha
57
pusha
54
        test    word ed_flags,ed_focus ; ¥á«¨ ­¥ ¢ 䮪ãá¥, ¢ë室¨¬
58
        test    word ed_flags,ed_focus ; ¥á«¨ ­¥ ¢ 䮪ãá¥, ¢ë室¨¬
55
        je      .no_figure
59
        je      .editbox_exit
56
;à®¢¥àª  ­ ¦ â shift ?
60
;à®¢¥àª  ­ ¦ â shift ?
57
        call    .check_shift
61
        call    .check_shift
58
;----------------------------------------------------------
62
;----------------------------------------------------------
59
;--- ¯à®¢¥à塞, çâ® ­ ¦ â® --------------------------------
63
;--- ¯à®¢¥à塞, çâ® ­ ¦ â® --------------------------------
60
;----------------------------------------------------------
64
;----------------------------------------------------------
61
use_key_process  backspase,delete,left,right,home,end,insert
65
use_key_process  backspase,delete,left,right,home,end,insert
62
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
66
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
63
;‡ £«ã誠 ­  ®¡à ¡®âªã ª« ¢¨è ¢¢¥àå ¨ ¢­¨§ â.¥. ¯à¨ ®¡­ à㦥­¨¨ íâ¨å ª®¤®¢ ¯à®¨á室¨â ¢ë室 ¨§ ®¡à ¡®â稪 
67
;‡ £«ã誠 ­  ®¡à ¡®âªã ª« ¢¨è ¢¢¥àå ¨ ¢­¨§ â.¥. ¯à¨ ®¡­ à㦥­¨¨ íâ¨å ª®¤®¢ ¯à®¨á室¨â ¢ë室 ¨§ ®¡à ¡®â稪 
64
;;;;;;;;;;;;;;;;;;;;;;;;;;;;    
68
;;;;;;;;;;;;;;;;;;;;;;;;;;;;    
65
use_key_no_process   up,down,esc
69
use_key_no_process   up,down,esc
66
;--- ­ ¦ â  ¤àã£ ï ª« ¢¨è  ---
70
;--- ­ ¦ â  ¤àã£ ï ª« ¢¨è  ---
67
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
71
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
68
;à®¢¥àª  ãáâ ­®¢«¥­ «¨ ä« £ ¯à¨ ª®â®à®¬ ­ã¦­® ¢ë¢®¤¨âì ⮫쪮 æ¨äàë ¢ ­ã¦­®¬ ¡®ªá¥ ¥á«¨ â ª®©­¥®¡å®¤¨¬®á⨠­¥â ­ã¦­® § ª®¬¥­â¨à®¢ âì ¬ ªà®á
72
;à®¢¥àª  ãáâ ­®¢«¥­ «¨ ä« £ ¯à¨ ª®â®à®¬ ­ã¦­® ¢ë¢®¤¨âì ⮫쪮 æ¨äàë ¢ ­ã¦­®¬ ¡®ªá¥ ¥á«¨ â ª®©­¥®¡å®¤¨¬®á⨠­¥â ­ã¦­® § ª®¬¥­â¨à®¢ âì ¬ ªà®á
69
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
73
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
70
use_key_figures_only
74
use_key_figures_only
71
;¯à®¢¥àª  ­  shift
75
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
72
@@:     test    word ed_flags,ed_shift_on
-
 
73
        je      @f
-
 
74
        ;‚室­ë¥ ¤ ­­ë¥ edx=ed_size;ecx=ed_pos
76
;¯à®¢¥àª  ­  shift ¡ë« «¨ ­ ¦ â 
75
        push    eax
-
 
76
        mov     edx,ed_size
-
 
77
        mov     ecx,ed_pos
-
 
78
        pusha
-
 
79
;clear
-
 
80
;        mov     ebp,edx ;ed_size
-
 
81
;        call    .clear_bg
77
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
82
        mov     ebp,ed_color
-
 
83
        mov     ebx,dword       ed_shift_pos
-
 
84
        call    .sh_cl_
-
 
85
 
-
 
86
.sh_nxt:popa 
-
 
87
        call    .del_char
-
 
88
;;;;
-
 
89
        mov     eax,dword ed_shift_pos
-
 
90
        mov     ebx,ed_size
-
 
91
        sub     ebx,eax
78
are_key_shift_press
92
        mov     ed_size,ebx
79
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
93
        pop     eax
-
 
94
        ; ¯à®¢¥à塞, ­ å®¤¨âáï «¨ ªãàá®à ¢ ª®­æ¥
80
; ¯à®¢¥à塞, ­ å®¤¨âáï «¨ ªãàá®à ¢ ª®­æ¥ + ¤ «ì­¥©è ï ®¡à ¡®âª 
95
@@:     mov     ecx,ed_size
-
 
96
        mov     edx, ed_max
-
 
97
        test    word ed_flags,ed_insert
-
 
98
        jne     @f
-
 
99
        cmp     ecx,edx
-
 
100
        jae     .no_figure
-
 
101
@@:     mov     ebx, ed_pos
-
 
102
        cmp     ebx,edx
-
 
103
        jl      @f ; ¥á«¨ ¬¥­ìè¥ ¨«¨ à ¢­®
-
 
104
.no_figure:
-
 
105
edit_ex
-
 
106
.insert: test   word ed_flags,ed_insert ;not    word ed_insert
-
 
107
         je     .insert_1
-
 
108
         and    word ed_flags,ed_insert_cl
-
 
109
        jmp     .no_figure
-
 
110
.insert_1:
-
 
111
        or      word ed_flags,ed_insert
-
 
112
        jmp     .no_figure
-
 
113
.ins_v:
-
 
114
        dec     dword [ebp+42];ed_size    ;processing is insert
-
 
115
        sub     esi,ecx
-
 
116
        add     esi,ebx
-
 
117
        mov     edi,esi
-
 
118
;clear
-
 
119
pusha
-
 
120
        mov     edi,ebp
-
 
121
        mov     ebp,ed_pos
-
 
122
        call    .clear_bg
-
 
123
popa
-
 
124
        jmp     .In_k
-
 
125
@@:     ; ᤢ¨£ ¥¬ ᨬ¢®«ë ¯®á«¥ ªãàá®à  ¢¯à ¢®
-
 
126
        mov     ecx,ed_size
-
 
127
        push    edi eax
-
 
128
        mov     ebp,edi
-
 
129
        mov     esi,ed_text     ; “ª § â¥«ì ­  ¡ãä¥à
-
 
130
                                ;ã¤¥¬ à ¡®â âì á® áâப®©
-
 
131
        add     esi,ecx         ;add ed_size ¤®¡ ¢¨¬ max size
-
 
132
        mov     edi,esi
-
 
133
 
-
 
134
        cmp     ecx,ebx         ;…᫨ ã ­ á ¯®§¨æ¨ï ªãàá®à  = ⥪ã饬ã à §¬¥àã ­ ¯¥ç â ­­ëå ᨬ¢®«®¢ â.¥. ªãàá®à á⮨⠢ ª®­æ¥
-
 
135
        je      .In_k
-
 
136
 
-
 
137
        test    word [ebp+40],ed_insert ;IF insert is enable  â.ª. edi ¨§¬¥­¥­  ¤à¥á㥬 ç¥à¥§ ebp
-
 
138
        jne     .ins_v
-
 
139
;clear
-
 
140
pusha
-
 
141
        mov     edi,ebp
-
 
142
        mov     ebp,ed_size
81
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
143
        call    .clear_bg
-
 
144
popa
-
 
145
        sub     ecx,ebx         ; ©¤¥¬ ª®«-¢® ᨬ¢®«®¢ ¤«ï ¯¥à¥¤¢¨¦¥­¨ï.
-
 
146
        inc     edi             ;‘¬¥á⨬ ­ è¨ ᨬ¢®«ë ¢ ¯à ¢®
-
 
147
        std
-
 
148
        inc     ecx
-
 
149
   @@:  
-
 
150
        ;--------
-
 
151
        lodsb
-
 
152
        stosb
-
 
153
        ;--------
-
 
154
        loop    @b
-
 
155
.In_k:  cld
82
are_key_cur_end
156
        pop eax
-
 
157
        mov al,ah
-
 
158
        stosb
-
 
159
        pop edi
-
 
160
; ¢áâ ¢«ï¥¬ ª®¤ ª« ¢¨è¨ â㤠, £¤¥ ªãàá®à
-
 
161
        ; 㢥«¨ç¨¢ ¥¬ §­ ç¥­¨¥ à §¬¥à  ¨ ¯®§¨æ¨¨
-
 
162
        inc      dword ed_size
-
 
163
        inc      dword ed_pos
-
 
164
        call    .draw_all2
-
 
165
        jmp     .shift;.draw_cursor_text
-
 
166
.delete:        
-
 
167
        mov     edx,ed_size
83
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
168
        mov     ecx,ed_pos
-
 
169
        cmp     edx,ecx
-
 
170
        jg      .bac_del
-
 
171
        test    word ed_flags,ed_shift_on
-
 
172
        jne     .del_bac
-
 
173
edit_ex
-
 
174
.bac_del:       
-
 
175
        call    .del_char
-
 
176
        jmp     .draw_all
-
 
177
        
-
 
178
;--- ­ ¦ â  ª« ¢¨è  backspace ---
84
;Ž¡à ¡®âª  ª« ¢¨è insert,delete.backspase,home,end,left,right
179
.backspace:
-
 
180
        ; ¯à®¢¥à塞, ªãàá®à ã «¥¢®£® ªà ï ?
-
 
181
        mov     ecx,ed_pos
85
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
182
        test    ecx,ecx
-
 
183
        jnz     .del_bac
-
 
184
        test    word ed_flags,ed_shift_on
-
 
185
        jne     .bac_del
-
 
186
 
-
 
187
edit_ex
86
use_work_key
188
.del_bac:
-
 
189
        mov     edx,ed_size
-
 
190
        cmp     edx,ecx ;if ed_pos=ed_size
-
 
191
        je      @f
-
 
192
        dec     ecx
-
 
193
        call    .del_char
-
 
194
@@:     test    word ed_flags,ed_shift_on
-
 
195
        jne     .bac_del
-
 
196
        dec      dword ed_pos
-
 
197
.draw_all:
-
 
198
        push    .shift;.draw_cursor_text;eax
-
 
199
 
-
 
200
        test    word ed_flags,ed_shift_on
-
 
201
        je      @f
-
 
202
        mov     eax,dword ed_shift_pos
-
 
203
        mov     ebx,ed_size
-
 
204
        sub     ebx,eax
-
 
205
        mov     ed_size,ebx
-
 
206
 
-
 
207
        mov     ebp,ed_color
-
 
208
        call    .clear_cursor
-
 
209
        call    .check_offset
-
 
210
        call    .draw_bg
-
 
211
        ret
-
 
212
@@:     dec      dword ed_size
-
 
213
 
-
 
214
.draw_all2:
-
 
215
        and    word ed_flags,ed_shift_cl
-
 
216
        mov     ebp,ed_color
-
 
217
        call    .clear_cursor
-
 
218
        call    .check_offset
-
 
219
        mov     ebp,ed_size
-
 
220
        call    .clear_bg
-
 
221
        ret
-
 
222
;--- ­ ¦ â  ª« ¢¨è  left ---
-
 
223
.left:  mov     ebx,ed_pos
-
 
224
        test    ebx,ebx
-
 
225
        jz      .sh_st_of
-
 
226
        or      word ed_flags,ed_left_fl
-
 
227
        call    .sh_first_sh
-
 
228
        dec      dword ed_pos
-
 
229
        call    .sh_enable
-
 
230
        jmp     .draw_cursor_text
-
 
231
;--- ­ ¦ â  ª« ¢¨è  right ---
-
 
232
.right: mov     ebx,ed_pos
-
 
233
        cmp     ebx,ed_size
-
 
234
        je      .sh_st_of
-
 
235
        and     word ed_flags,ed_right_fl
-
 
236
        call    .sh_first_sh
-
 
237
        inc     dword  ed_pos
-
 
238
        call    .sh_enable
-
 
239
        jmp     .draw_cursor_text
-
 
240
.home:  
-
 
241
        mov     ebx,ed_pos
-
 
242
        test    ebx,ebx
-
 
243
        jz      .sh_st_of
-
 
244
        call    .sh_first_sh
-
 
245
        xor     eax,eax
-
 
246
        mov     ed_pos,eax
-
 
247
        call    .sh_home_end
-
 
248
        jmp     .draw_cursor_text
-
 
249
.end:   
-
 
250
        mov     ebx,ed_pos
-
 
251
        cmp     ebx,dword ed_size
-
 
252
        je      .sh_st_of
-
 
253
        call    .sh_first_sh
-
 
254
        mov     eax,ed_size
-
 
255
        mov     ed_pos,eax
-
 
256
        call    .sh_home_end
-
 
257
        jmp     .draw_cursor_text
-
 
258
;==========================================================
87
;==========================================================
259
;=== ®¡à ¡®âª  ¬ëè¨ =======================================
88
;=== ®¡à ¡®âª  ¬ëè¨ =======================================
260
;==========================================================
89
;==========================================================
261
.mouse:
90
.mouse:
262
pusha
91
pusha
263
;debug
92
;debug
264
;----------------------------------------------------------
93
;----------------------------------------------------------
265
;--- ¯®«ãç ¥¬ á®áâ®ï­¨¥ ª­®¯®ª ¬ëè¨ -----------------------
94
;--- ¯®«ãç ¥¬ á®áâ®ï­¨¥ ª­®¯®ª ¬ëè¨ -----------------------
266
;----------------------------------------------------------     
95
;----------------------------------------------------------     
267
        mcall   37,2
96
        mcall   37,2
268
;----------------------------------------------------------
97
;----------------------------------------------------------
269
;--- ¯à®¢¥à塞 á®áâ®ï­¨¥ ----------------------------------
98
;--- ¯à®¢¥à塞 á®áâ®ï­¨¥ ----------------------------------
270
;----------------------------------------------------------
99
;----------------------------------------------------------
271
        test    eax,1              
100
        test    eax,1              
272
        jnz     .mouse_left_button
101
        jnz     .mouse_left_button
273
        and     word ed_flags,ed_mouse_on_off
102
        and     word ed_flags,ed_mouse_on_off
274
        xor     ebx,ebx
103
        xor     ebx,ebx
275
        mov     dword [mouse_flag],ebx
104
        mov     dword [mouse_flag],ebx
276
edit_ex
105
        jmp     .editbox_exit
277
.mouse_left_button:
106
.mouse_left_button:
278
;----------------------------------------------------------
107
;----------------------------------------------------------
279
;--- ¡«®ª¨à®¢ª  ®â 䮪ãá¨à®¢ª¨ ¢ ¤àã£¨å ¡®ªá å ¯à¨ ¯®¯ ¤ ­¨¨ ­  ­¨å ªãàá®à 
108
;--- ¡«®ª¨à®¢ª  ®â 䮪ãá¨à®¢ª¨ ¢ ¤àã£¨å ¡®ªá å ¯à¨ ¯®¯ ¤ ­¨¨ ­  ­¨å ªãàá®à 
280
;----------------------------------------------------------
109
;----------------------------------------------------------
281
        mov     eax,dword [mouse_flag]
110
        mov     eax,dword [mouse_flag]
282
        test    eax,eax
111
        test    eax,eax
283
        jz      @f
112
        jz      @f
284
        cmp     eax,edi
113
        cmp     eax,edi
285
        je      @f
114
        je      @f
286
        jmp     ._blur
115
        jmp     ._blur
287
;----------------------------------------------------------
116
;----------------------------------------------------------
288
;--- ¯®«ãç ¥¬ ª®®à¤¨­ âë ¬ëè¨ ®â­®á¨â¥«ì­® 0 â.¥ ¢á¥© ®¡« á⨠íªà ­ 
117
;--- ¯®«ãç ¥¬ ª®®à¤¨­ âë ¬ëè¨ ®â­®á¨â¥«ì­® 0 â.¥ ¢á¥© ®¡« á⨠íªà ­ 
289
;----------------------------------------------------------
118
;----------------------------------------------------------
290
@@:     mcall   37,0
119
@@:     mcall   37,0
291
;----------------------------------------------------------
-
 
292
;--- € ­¥ 㤥ন¢ ¥¬ «¨ ¬ë ª« ¢¨èã ¬ë誨, ¯¥à¥¬¥é ï ªãàá®à, ¢® ¢á¥ à §­ë¥ áâ®à®­ë?
-
 
293
;----------------------------------------------------------
-
 
294
        test    word ed_flags,ed_mouse_on
-
 
295
        jne     .mouse_wigwag
120
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
296
;----------------------------------------------------------
-
 
297
;--- ¯à®¢¥à塞, ¯®¯ ¤ ¥â «¨ ªãàá®à ¢ edit box -------------
121
;”ã­ªæ¨ï ®¡à ¡®âª¨  ¬ë誨 ¯®«ã祭¨¥ ª®®à¤¨­ â ¨ ¯à®¢¥àª  ¨å + ¢ë¤¥«¥­¨ï
298
;----------------------------------------------------------
-
 
299
        mov     ebx,[procinfo.box.top]
-
 
300
        add     ebx,ed_top
-
 
301
if scr_h eq 
-
 
302
else
-
 
303
        add     ebx,scr_h
-
 
304
end if
-
 
305
        cmp     ax,bx
-
 
306
        jl      ._blur;.mouse_end_no_focus
-
 
307
 
-
 
308
        add     ebx,ed_height
-
 
309
        cmp     ax,bx
-
 
310
        jg      ._blur;.mouse_end_no_focus
-
 
311
 
-
 
312
        shr     eax,16
-
 
313
 
-
 
314
        mov     ebx,[procinfo.box.left]
-
 
315
        add     ebx,ed_left
-
 
316
if scr_w eq 
-
 
317
else
-
 
318
        add     ebx,scr_w
-
 
319
end if
-
 
320
        cmp     ax,bx
-
 
321
        jl      ._blur;.mouse_end_no_focus
-
 
322
 
-
 
323
        add     ebx,ed_width
-
 
324
        cmp     ax,bx
-
 
325
        jg      ._blur;.mouse_end_no_focus
-
 
326
;--- ¨§¬¥­ï¥¬ ¯®§¨æ¨î ªãàá®à  ---
-
 
327
        push    eax
-
 
328
        mov     ebp,ed_color
-
 
329
        call    .clear_cursor
122
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
330
        pop     eax
-
 
331
._mvpos:
-
 
332
        mov     ebx,dword [procinfo.box.left]
-
 
333
        xor     edx,edx
-
 
334
        sub     eax,ed_left
-
 
335
        sub     eax,ebx
-
 
336
if scr_w eq 
-
 
337
else
-
 
338
        add     ebx,scr_w
123
use_work_mause scr_h,scr_w
339
        sub     eax,2
-
 
340
end if
-
 
341
        mov     ebx,6
-
 
342
        div     bx
-
 
343
        add     eax,ed_offset
-
 
344
        cmp     eax,ed_size
-
 
345
        jna     ._mshift
-
 
346
        mov     eax,ed_size
-
 
347
._mshift:
-
 
348
;;;;;;;
-
 
349
;;‘¥ªæ¨ï ®¡à ¡®âª¨ shift ¨ ¢ë¤¥«¥­¨ï ¯® shift
-
 
350
;;;;;;;
-
 
351
        test    word ed_flags,ed_shift_bac
-
 
352
        je      @f
-
 
353
        mov     ebp,dword       ed_color
-
 
354
        mov     ebx,dword ed_shift_pos
-
 
355
        push    eax
-
 
356
        call    .sh_cl_
-
 
357
        and     word ed_flags,ed_shift_bac_cl
-
 
358
        pop     eax
-
 
359
@@:     
-
 
360
        test    word ed_flags,ed_mouse_on
-
 
361
        jne     @f
-
 
362
        
-
 
363
        mov     dword ed_shift_pos,eax
-
 
364
        or      word  ed_flags,ed_mouse_on
-
 
365
        mov     dword ed_pos,eax
-
 
366
        mov     dword [mouse_flag],edi          ;ãáâ ­®¢¨¬ ¨¤¥­â¨ä¨ª â®à
-
 
367
        bts     word ed_flags,1                 ;ãáâ ­®¢ª  䮪ãá 
-
 
368
        jmp     .m_sh
-
 
369
@@:             
-
 
370
        cmp     eax,dword ed_shift_pos  ;¥á«¨ ¯®§¨æ¨¨ ­¥ ¨§¬¥­¨«¨áì
-
 
371
        je      .mouse_ex
-
 
372
        mov     ed_pos,eax
-
 
373
        mov     ebp,dword shift_color
-
 
374
        mov     ebx,dword ed_shift_pos
-
 
375
        call    .sh_cl_
-
 
376
        or      word ed_flags,ed_mous_adn_b     ;ãáâ ­®¢¨¬ ¡¨â çâ® ¬ë ¢ë¤¥«¨«¨ +shift_on +
-
 
377
.m_sh:  call    .draw_text
-
 
378
        call    .draw_cursor
-
 
379
;----------------------------------------------------------
-
 
380
;--- ¯à®æ¥¤ãà  ãáâ ­®¢ª¨ 䮪ãá  ---------------------------
-
 
381
;----------------------------------------------------------
-
 
382
        jmp     .drc
-
 
383
._blur:
-
 
384
        test    word ed_flags,ed_always_focus
-
 
385
        jne     .mouse_ex
-
 
386
        btr     word ed_flags,1 ; ¥á«¨ ­¥ ¢ 䮪ãá¥, ¢ë室¨¬
-
 
387
        jnc     .mouse_ex
-
 
388
 
-
 
389
        mov     ebp,ed_color
-
 
390
        call    .clear_cursor
-
 
391
.drc:   call    .draw_border
-
 
392
.mouse_ex:
-
 
393
 
-
 
394
edit_ex
-
 
395
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
124
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
396
;Ž¡é¨¥ ä㭪樨 ®¡à ¡®âª¨ 
125
;Ž¡é¨¥ ä㭪樨 ®¡à ¡®âª¨ 
397
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
126
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
398
use_general_func
127
use_general_func
399
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
128
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
400
;”㭪樨 ¤«ï à ¡®âë á key
129
;”㭪樨 ¤«ï à ¡®âë á key
401
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
130
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
402
use_key_func
131
use_key_func
403
;----------------------------------------------------------
-
 
404
;--- ¯à®æ¥¤ãà  à §¬ë¢ ­¨ï 䮪ãá  --------------------------
-
 
405
;----------------------------------------------------------
-
 
406
;.blur:
-
 
407
;pusha
-
 
408
;._blur:
-
 
409
        ;btr     ed_flags,1
-
 
410
        ;jnc     @f
-
 
411
        ;call    .draw_border
-
 
412
        ;call    .clear_cursor
-
 
413
;@@:
-
 
414
;edit_ex
-
 
415
 
-
 
416
;----------------------------------------------------------
-
 
417
;--- Ž¡à ¡®âª  .mouse_wigwag
-
 
418
;----------------------------------------------------------
-
 
419
.mouse_wigwag:
-
 
420
        shr     eax,16
-
 
421
        or      word ed_flags,ed_shift_bac+ed_shift_on+ed_shift
-
 
422
;;;;;;;;;;;;;;;;;;
-
 
423
;;¯à®æ¥¤ãà  ®¡à ¡®âª¨ ¯®«®¦¥­¨ï ¢ë¤¥«¥­­®£® ⥪áâ , ª®£¤  ¯à®¨á室¨â ¢ë室 §  ¯à¥¤¥«ë editbox
-
 
424
;;;;;;;;;;;;;;;;;;
132
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
425
        mov     ebx,[procinfo.box.left]
133
;”㭪樨 ¤«ï à ¡®âë á mouse
426
        add     ebx,ed_left
-
 
427
if scr_w eq 
-
 
428
else
-
 
429
        add     ebx,scr_w
-
 
430
end if
-
 
431
        cmp     eax,ebx
-
 
432
        jb      .mleft
-
 
433
 
-
 
434
        add     ebx,ed_width
-
 
435
        cmp     eax,ebx
-
 
436
        ja      .mright 
-
 
437
 
-
 
438
        sub     ebx,ed_width
-
 
439
 
-
 
440
        xor     edx,edx
-
 
441
        sub     eax,ebx ; ¢ëç⨬ ¨§ ª®®à¤¨­ â ¬ë誨 ¯® ®á¨ å ª®®à¤¨­ âë ¤® editbox ¯® ®á¨ å
-
 
442
        mov     ebx,6
-
 
443
        div     ebx
-
 
444
;;;;;;;;;;;;;;;;;;
-
 
445
;;¯à®æ¥¤ãà  ®¡à ¡®âª¨ ¯®«®¦¥­¨ï ¢ë¤¥«¥­­®£® ⥪áâ , ¢ ¯à¥¤¥« å ®¡« á⨠editbox
-
 
446
;;;;;;;;;;;;;;;;;;
134
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
447
;®«ã稫¨ ª®®à¤¨­ âë ¢ eax ¬ë誨, â.¥. ªã¤  ®­  ¯¥à¥¬¥á⨫ áì
-
 
448
;¨á®¢ ­¨¥ § ªà è¥­ëå ¯àאַ㣮«ì­¨ª®¢ ¨ ®ç¨á⪠ ¨å
-
 
449
        add     eax,ed_offset   ;¤®¡ ¢¨¬ ᬥ饭¨¥
-
 
450
        cmp     eax,dword ed_size       ;¥á«¨ ¢ë諨 §  ¯à¥¤¥«ë, â® ­¨ç¥£® ­¥ ¤¥« âì
-
 
451
        ja      .mwigvag
-
 
452
.mdraw: 
-
 
453
        mov     dword   ed_pos,eax ;á®åà ­¨¬ ­®¢®¥ §­ ç¥­¨¥
-
 
454
;¨á®¢ ­¨¥ § ªà è¥­ëå ¯àאַ㣮«ì­¨ª®¢ ¨ ®ç¨á⪠ ¨å
-
 
455
        mov     ecx,dword       ed_shift_pos
-
 
456
        mov     ebx,dword       ed_shift_pos_old
-
 
457
        mov     dword   ed_shift_pos_old,eax    ;¢­¥á¥¬ ­®¢®¥ §­ ç¥­¨¥ áâ à®© ¯®§¨æ¨¨ ªãàá®à 
-
 
458
;¯à®¢¥àª  ¨ à¨á®¢ ­¨¥ § ªà è¥­ëå ®¡« á⥩
-
 
459
        cmp     ecx,ebx         ;¢ëïá­ï¥¬ ªã¤  ¡ë«® ¤¢¨¦¥­¨¥ ­  ®¤¨­ è £ ­ § ¤
-
 
460
        je      .m1_shem        ;¤¢¨¦¥­¨ï ­¥ ¡ë«® à ­¥¥ 
-
 
461
        jb      .msmaller       ;¤¢¨¦¥­¨¥ ¡ë«® ->
-
 
462
        cmp     ebx,eax         ;¤¢¨¦¥­¨¥ ¡ë«® ¤® í⮣® <- ¨ âãâ ¬ë ¯à®¢¥à塞 ᥩç á ªã¤  ¤¢¨¦¥­¨¥ ¯à®¨á室¨â
-
 
463
        ja      .m1_shem        ;¥á«¨ ¡ë«® ¤¢¨¦¥­¨¥ <- â® ­ã¦­® § ªà á¨âì ®¡« áâì
-
 
464
        je      .mwigvag        ;¥á«¨ ¨§¬¥­¥­¨ï ­¥ ¡ë«®, â® ­¨ç¥£® ­¥ ¤¥« âì
-
 
465
        mov     ebp,ed_color    ;âã⠭㦭® ®ç¨áâ¨âì ®¡« áâì c ed_pos ed_shift_pos_old
-
 
466
;¢å®¤­ë¥ ¯ à ¬¥âàë ebp=color ebx=ed_shift_pos
-
 
467
        call    .sh_cl_
-
 
468
        jmp     .mwigvag
-
 
469
.msmaller:
-
 
470
        cmp     ebx,eax
-
 
471
        jb      .m1_shem
-
 
472
        mov     ebp,ed_color
-
 
473
;¢å®¤­ë¥ ¯ à ¬¥âàë ebp=color ebx=ed_shift_pos
-
 
474
        call    .sh_cl_
-
 
475
        jmp     .mwigvag
-
 
476
;alike  =
-
 
477
.m1_shem: 
-
 
478
        mov     ebp,shift_color
-
 
479
;¢å®¤­ë¥ ¯ à ¬¥âàë ebp=color ebx=ed_shift_pos
-
 
480
        mov     ebx,ecx
-
 
481
        call    .sh_cl_
-
 
482
        jmp     .mwigvag
-
 
483
.mwigvag:
-
 
484
        and     word ed_flags,ed_shift_mcl
-
 
485
        jmp     .draw_cursor_text
-
 
486
;       popa
-
 
487
;       ret
-
 
488
.mleft:
-
 
489
        mov     eax,ed_pos
-
 
490
        cmp     eax,0                                        
-
 
491
        jbe      .mwigvag
-
 
492
        dec     eax
-
 
493
        call    .check_offset
-
 
494
        push    eax
-
 
495
        mov     ebx,ed_shift_pos
-
 
496
        mov     ebp,shift_color
-
 
497
        call    .sh_cl_
-
 
498
        pop     eax
-
 
499
        jmp     .mdraw
-
 
500
.mright:
-
 
501
        mov     eax,ed_pos
-
 
502
        mov     ebx,ed_size
-
 
503
        cmp     eax,ebx
-
 
504
        jae     .mwigvag
-
 
505
        inc     eax
-
 
506
        call    .check_offset
-
 
507
        mov     ebx,ed_shift_pos
-
 
508
        mov     ebp,shift_color
-
 
509
        push    eax
-
 
510
        call    .sh_cl_
-
 
511
        pop     eax
-
 
512
        jmp     .mdraw  
135
use_mouse_func scr_w
513
 
-
 
514
}
136
}
-
 
137
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-
 
138
;Bit mask from editbox 
-
 
139
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
515
ed_figure_only= 1000000000000000b   ;®¤­¨ ᨬ¢®«ë 
140
ed_figure_only= 1000000000000000b   ;®¤­¨ ᨬ¢®«ë 
516
ed_always_focus= 100000000000000b
141
ed_always_focus= 100000000000000b
517
ed_focus=                     10b   ;䮪ãá ¯à¨«®¦¥­¨ï
142
ed_focus=                     10b   ;䮪ãá ¯à¨«®¦¥­¨ï
518
ed_shift_on=                1000b   ;¥á«¨ ­¥ ãáâ ­®¢«¥­ -§­ ç¨â ¢¯¥à¢ë¥ ­ ¦ â shift,¥á«¨ ¡ë« ãáâ ­®¢«¥­, §­ ç¨â ¬ë 㦥 çâ® - â® ¤¥« «¨ 㤥ন¢ ï shift
143
ed_shift_on=                1000b   ;¥á«¨ ­¥ ãáâ ­®¢«¥­ -§­ ç¨â ¢¯¥à¢ë¥ ­ ¦ â shift,¥á«¨ ¡ë« ãáâ ­®¢«¥­, §­ ç¨â ¬ë 㦥 çâ® - â® ¤¥« «¨ 㤥ন¢ ï shift
519
ed_shift_on_off=1111111111110111b
144
ed_shift_on_off=1111111111110111b
520
ed_shift=                    100b   ;¢ª«îç ¥âáï ¯à¨ ­ ¦ â¨¨ ­  shift â.¥. ¥á«¨ ­ ¦¨¬ î
145
ed_shift=                    100b   ;¢ª«îç ¥âáï ¯à¨ ­ ¦ â¨¨ ­  shift â.¥. ¥á«¨ ­ ¦¨¬ î
521
ed_shift_off=   1111111111111011b
146
ed_shift_off=   1111111111111011b
522
ed_shift_bac=              10000b   ;¡¨â ¤«ï ®ç¨á⪨ ¢ë¤¥«¥­®£® shift â.¥. ¯à¨ ãáâ ­®¢ª¥ £®¢®à¨â çâ® ¥áâì ¢ë¤¥«¥­¨¥
147
ed_shift_bac=              10000b   ;¡¨â ¤«ï ®ç¨á⪨ ¢ë¤¥«¥­®£® shift â.¥. ¯à¨ ãáâ ­®¢ª¥ £®¢®à¨â çâ® ¥áâì ¢ë¤¥«¥­¨¥
523
ed_shift_bac_cl=1111111111101111b   ;®ç¨á⪠ ¯à¨ 㤠«¥­¨¨ ¢ë¤¥«¥­¨ï
148
ed_shift_bac_cl=1111111111101111b   ;®ç¨á⪠ ¯à¨ 㤠«¥­¨¨ ¢ë¤¥«¥­¨ï
524
ed_shift_cl=    1111111111100011b
149
ed_shift_cl=    1111111111100011b
525
ed_shift_mcl=   1111111111111011b
150
ed_shift_mcl=   1111111111111011b
526
ed_left_fl=               100000b
151
ed_left_fl=               100000b
527
ed_right_fl=    1111111111011111b
152
ed_right_fl=    1111111111011111b
528
ed_offset_fl=            1000000b
153
ed_offset_fl=            1000000b
529
ed_offset_cl=   1111111110111111b
154
ed_offset_cl=   1111111110111111b
530
ed_insert=              10000000b
155
ed_insert=              10000000b
531
ed_insert_cl=   1111111101111111b
156
ed_insert_cl=   1111111101111111b
532
ed_mouse_on =          100000000b
157
ed_mouse_on =          100000000b
533
ed_mous_adn_b=         100011000b
158
ed_mous_adn_b=         100011000b
534
ed_mouse_on_off=1111111011111111b
159
ed_mouse_on_off=1111111011111111b
535
ed_height=14 ; ¢ëá®â 
160
ed_height=14 ; ¢ëá®â 
536
macro draw_edit_boxes start,_end,use_f9,procinfo
161
macro draw_edit_boxes start,_end,use_f9,procinfo
537
{
162
{
538
if use_f9 eq 
163
if use_f9 eq 
539
else
164
else
540
        mcall   9,procinfo,-1
165
        mcall   9,procinfo,-1
541
end if
166
end if
542
        mov     edi,start
167
        mov     edi,start
543
        mov     ecx,((_end-start)/ed_struc_size)
168
        mov     ecx,((_end-start)/ed_struc_size)
544
@@:
169
@@:
545
        call    edit_box.draw
170
        call    edit_box.draw
546
        add     edi,ed_struc_size
171
        add     edi,ed_struc_size
547
        loop    @b
172
        loop    @b
548
}
173
}
549
 
174
 
550
macro mouse_edit_boxes start,_end
175
macro mouse_edit_boxes start,_end
551
{
176
{
552
        mov     edi,start
177
        mov     edi,start
553
        mov     ecx,((_end-start)/ed_struc_size)
178
        mov     ecx,((_end-start)/ed_struc_size)
554
@@:
179
@@:
555
        call    edit_box.mouse
180
        call    edit_box.mouse
556
        add     edi,ed_struc_size
181
        add     edi,ed_struc_size
557
        loop    @b
182
        loop    @b
558
}
183
}
559
 
184
 
560
macro key_edit_boxes start,end
185
macro key_edit_boxes start,end
561
{
186
{
562
        mov     edi,start
187
        mov     edi,start
563
        mov     ecx,((end-start)/ed_struc_size)
188
        mov     ecx,((end-start)/ed_struc_size)
564
@@:
189
@@:
565
        call    edit_box.key
190
        call    edit_box.key
566
        add     edi,ed_struc_size
191
        add     edi,ed_struc_size
567
        loop    @b
192
        loop    @b
568
}
193
}
569
ed_struc_size=70
194
ed_struc_size=70
570
struc  edit_box width,left,top,color,shift_color,focus_border_color,\
195
struc  edit_box width,left,top,color,shift_color,focus_border_color,\
571
       blur_border_color,text_color,max,text,flags,size,pos
196
       blur_border_color,text_color,max,text,flags,size,pos
572
{
197
{
573
.width dd width
198
.width dd width
574
.left dd left
199
.left dd left
575
.top dd top
200
.top dd top
576
.color dd color
201
.color dd color
577
.shift_color dd shift_color
202
.shift_color dd shift_color
578
.focus_border_color dd focus_border_color
203
.focus_border_color dd focus_border_color
579
.blur_border_color dd blur_border_color
204
.blur_border_color dd blur_border_color
580
.text_color dd text_color
205
.text_color dd text_color
581
.max dd max
206
.max dd max
582
.text dd text
207
.text dd text
583
.flags dw flags+0
208
.flags dw flags+0
584
.size dd size+0
209
.size dd size+0
585
.pos dd pos+0
210
.pos dd pos+0
586
.offset dd 0
211
.offset dd 0
587
.cl_curs_x dd 0
212
.cl_curs_x dd 0
588
.cl_curs_y dd 0
213
.cl_curs_y dd 0
589
.shift   dd 0
214
.shift   dd 0
590
.shift_old   dd 0
215
.shift_old   dd 0
591
}
216
}
592
 
217
 
593
 
218
 
594
macro edit_boxes_set_sys_color start,end,color_table
219
macro edit_boxes_set_sys_color start,end,color_table
595
{
220
{
596
        mov     edi,start
221
        mov     edi,start
597
        mov     ecx,((end-start)/ed_struc_size)
222
        mov     ecx,((end-start)/ed_struc_size)
598
        mov     esi,color_table
223
        mov     esi,color_table
599
@@:
224
@@:
600
        mov     eax,[esi+36]
225
        mov     eax,[esi+36]
601
        mov     ebx,[esi+20]
226
        mov     ebx,[esi+20]
602
        mov     ed_focus_border_color,eax
227
        mov     ed_focus_border_color,eax
603
        shr     bh,1
228
        shr     bh,1
604
        shr     bl,1
229
        shr     bl,1
605
        shr     ah,1
230
        shr     ah,1
606
        shr     al,1
231
        shr     al,1
607
        add     ah,bh
232
        add     ah,bh
608
        add     al,bl
233
        add     al,bl
609
        ror     eax,16
234
        ror     eax,16
610
        ror     ebx,16
235
        ror     ebx,16
611
        shr     bl,1
236
        shr     bl,1
612
        shr     al,1
237
        shr     al,1
613
        add     al,bl
238
        add     al,bl
614
        ror     eax,16
239
        ror     eax,16
615
        mov     ed_blur_border_color,eax
240
        mov     ed_blur_border_color,eax
616
        add     edi,ed_struc_size
241
        add     edi,ed_struc_size
617
        loop    @b
242
        loop    @b
618
}
243
}
619
 
244
 
620
macro draw_edit_box ed_ptr,use_f9,procinfo
245
macro draw_edit_box ed_ptr,use_f9,procinfo
621
{
246
{
622
if use_f9 eq 
247
if use_f9 eq 
623
else
248
else
624
        mcall   9,procinfo,-1
249
        mcall   9,procinfo,-1
625
end if
250
end if
626
        mov     edi,ed_ptr
251
        mov     edi,ed_ptr
627
        call    edit_box.draw
252
        call    edit_box.draw
628
}
253
}
629
 
254
 
630
macro mouse_edit_box ed_ptr
255
macro mouse_edit_box ed_ptr
631
{
256
{
632
        mov     edi,ed_ptr
257
        mov     edi,ed_ptr
633
        call    edit_box.mouse
258
        call    edit_box.mouse
634
}
259
}
635
 
260
 
636
macro key_edit_box ed_ptr
261
macro key_edit_box ed_ptr
637
{
262
{
638
        mov     edi,ed_ptr
263
        mov     edi,ed_ptr
639
        call    edit_box.key
264
        call    edit_box.key
640
}
265
}
641
macro default_box ed_ptr
266
macro default_box ed_ptr
642
{
267
{
643
pusha
268
pusha
644
;       xor     eax,eax
269
;       xor     eax,eax
645
;       mov     ed_shift_pos,eax
270
;       mov     ed_shift_pos,eax
646
;       mov     ed_shift_pos_old,eax
271
;       mov     ed_shift_pos_old,eax
647
        and     word ed_flags,ed_shift_cl
272
        and     word ed_flags,ed_shift_cl
648
;       mov     ed_offset,eax
273
;       mov     ed_offset,eax
649
popa
274
popa
650
}
275
}