Subversion Repositories Kolibri OS

Rev

Rev 491 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 491 Rev 507
Line 43... Line 43...
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
;----------------------------------------------------------
Line 66... Line 70...
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
Line 271... Line 100...
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]
Line 286... Line 115...
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