Subversion Repositories Kolibri OS

Rev

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

Rev 1619 Rev 1858
Line 60... Line 60...
60
;à®¢¥àª  ­ ¦ â shift ?
60
;à®¢¥àª  ­ ¦ â shift ?
61
        call    edit_box_key.check_shift
61
        call    edit_box_key.check_shift
62
;----------------------------------------------------------
62
;----------------------------------------------------------
63
;--- ¯à®¢¥à塞, çâ® ­ ¦ â® --------------------------------
63
;--- ¯à®¢¥à塞, çâ® ­ ¦ â® --------------------------------
64
;----------------------------------------------------------
64
;----------------------------------------------------------
65
use_key_process  backspase,delete,left,right,home,end,insert
65
use_key_process  backspace,delete,left,right,home,end,insert
66
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
66
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
67
;‡ £«ã誠 ­  ®¡à ¡®âªã ª« ¢¨è ¢¢¥àå ¨ ¢­¨§ â.¥. ¯à¨ ®¡­ à㦥­¨¨ íâ¨å ª®¤®¢ ¯à®¨á室¨â ¢ë室 ¨§ ®¡à ¡®â稪 
67
;‡ £«ã誠 ­  ®¡à ¡®âªã ª« ¢¨è ¢¢¥àå ¨ ¢­¨§ â.¥. ¯à¨ ®¡­ à㦥­¨¨ íâ¨å ª®¤®¢ ¯à®¨á室¨â ¢ë室 ¨§ ®¡à ¡®â稪 
68
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
68
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
69
use_key_no_process   up,down,esc,enter,tab,numl,capsl,scrolll
69
use_key_no_process   up,down,esc,enter,tab,numl,capsl,scrolll
70
;--- ­ ¦ â  ¤àã£ ï ª« ¢¨è  ---
70
;--- ­ ¦ â  ¤àã£ ï ª« ¢¨è  ---
71
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
71
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
72
;à®¢¥àª  ãáâ ­®¢«¥­ «¨ ä« £ ¯à¨ ª®â®à®¬ ­ã¦­® ¢ë¢®¤¨âì ⮫쪮 æ¨äàë ¢ ­ã¦­®¬ ¡®ªá¥ ¥á«¨ â ª®©­¥®¡å®¤¨¬®á⨠­¥â ­ã¦­® § ª®¬¥­â¨à®¢ âì ¬ ªà®á
72
;à®¢¥àª  ãáâ ­®¢«¥­ «¨ ä« £ ¯à¨ ª®â®à®¬ ­ã¦­® ¢ë¢®¤¨âì ⮫쪮 æ¨äàë ¢ ­ã¦­®¬ ¡®ªá¥, ¥á«¨ â ª®© ­¥®¡å®¤¨¬®á⨠­¥â, ­ã¦­® § ª®¬¥­â¨à®¢ âì ¬ ªà®á
73
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
73
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
74
use_key_figures_only
74
use_key_figures_only
75
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
75
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
76
;¯à®¢¥àª  ­  shift ¡ë« «¨ ­ ¦ â
76
;¯à®¢¥àª  ­  shift, ¡ë« «¨ ­ ¦ â
77
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
77
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
78
are_key_shift_press
78
are_key_shift_press
79
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
79
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
80
; ¯à®¢¥à塞, ­ å®¤¨âáï «¨ ªãàá®à ¢ ª®­æ¥ + ¤ «ì­¥©è ï ®¡à ¡®âª 
80
; ¯à®¢¥à塞, ­ å®¤¨âáï «¨ ªãàá®à ¢ ª®­æ¥ + ¤ «ì­¥©è ï ®¡à ¡®âª 
81
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
81
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
82
are_key_cur_end
82
are_key_cur_end
83
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
83
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
84
;Ž¡à ¡®âª  ª« ¢¨è insert,delete.backspase,home,end,left,right
84
;Ž¡à ¡®âª  ª« ¢¨è insert,delete.backspace,home,end,left,right
85
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
85
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
86
use_work_key
86
use_work_key
87
}
87
}
Line 88... Line 88...
88
 
88
 
Line 147... Line 147...
147
;Bit mask from editbox
147
;Bit mask from editbox
148
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
148
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
149
}
149
}
Line 150... Line -...
150
 
-
 
151
 
-
 
152
 
-
 
153
 
-
 
154
 
-
 
155
 
-
 
156
 
-
 
157
 
-
 
158
 
-
 
159
 
-
 
160
 
-
 
161
 
-
 
162
 
-
 
163
 
-
 
164
 
-
 
165
 
-
 
166
 
-
 
167
 
-
 
168
 
-
 
169
 
-
 
170
 
-
 
171
 
150
 
172
 
151
 
173
;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
152
;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
174
;­¨¦¥ à á¯®«®¦¥­ë ä㭪樨 ª®â®à묨 ॠ«¨§ã¥âáï ¢¥áì  «£®à¨â¬
153
;­¨¦¥ à á¯®«®¦¥­ë ä㭪樨 ª®â®à묨 ॠ«¨§ã¥âáï ¢¥áì  «£®à¨â¬
175
;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
154
;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
176
;Œ ªà®á ¤«ï ¢ë¢®¤  ®á­®¢­ëå ä㭪権 ª®â®àë¥ ¨á¯«ì§ãîâáï ¡®ªá®¬
155
;Œ ªà®á ¤«ï ¢ë¢®¤  ®á­®¢­ëå ä㭪権 ª®â®àë¥ ¨á¯®«ì§ãîâáï ¡®ªá®¬
177
macro use_general_func
156
macro use_general_func
178
{
157
{
179
;debug_func
158
;debug_func
180
;----------------------------------------------------------
159
;----------------------------------------------------------
181
;--- ¯à®æ¥¤ãà  ¯à®à¨á®¢ª¨ ¢ë¤¥«¥­®© ç á⨠-----------------
160
;--- ¯à®æ¥¤ãà  ¯à®à¨á®¢ª¨ ¢ë¤¥«¥­­®© ç á⨠-----------------
182
;----------------------------------------------------------
161
;----------------------------------------------------------
183
edit_box.draw_shift:
162
edit_box.draw_shift:
184
        test    word ed_flags,ed_shift_bac ;ãáâ ­®¢ª  ä« £ , ¢ë¤¥«¥­­®© ®¡« áâ¨
163
        test    word ed_flags,ed_shift_bac ;ãáâ ­®¢ª  ä« £ , ¢ë¤¥«¥­­®© ®¡« áâ¨
Line 235... Line 214...
235
        add     ecx,ed_height
214
        add     ecx,ed_height
236
        dec     ecx
215
        dec     ecx
237
        mcall   
216
        mcall
238
ret
217
ret
239
;----------------------------------------------------------
218
;----------------------------------------------------------
240
;--- ¯à®æ¥¤ãà  ¯®«ã祭¨ï ª®«¨ç¥á⢠ ᨬ¢®«®¢ ¢ ⥪ã饩 é¨à¨­¥ ª®¬¯®­¥­â 
219
;--- ¯à®æ¥¤ãà  ¯®«ã祭¨ï ª®«¨ç¥á⢠ ᨬ¢®«®¢ ¢ ⥪ã饩 è¨à¨­¥ ª®¬¯®­¥­â 
241
;----------------------------------------------------------
220
;----------------------------------------------------------
242
edit_box.get_n:
221
edit_box.get_n:
243
        mov     eax,ed_width    ;¯®«ã祬 è¨à¨­ã ª®¬¯®­¥­â 
222
        mov     eax,ed_width    ;¯®«ã祬 è¨à¨­ã ª®¬¯®­¥­â 
244
        xor     edx,edx   ;१ã«ìâ â à á¯®«®£ ¥âáï ¢ ¯ à¥ edx:eax ¢ eax - ®áâ â®ª
223
        xor     edx,edx   ;१ã«ìâ â à á¯®« £ ¥âáï ¢ ¯ à¥ edx:eax ¢ eax - ®áâ â®ª
245
        sub     eax,4           ;¢ëç⨬ 4
224
        sub     eax,4           ;¢ëç⥬ 4
246
        mov     ebx,6           ;§ £à㧬¨ ¤¥«¨â¥«ì
225
        mov     ebx,6           ;§ £à㧨¬ ¤¥«¨â¥«ì
247
        div     ebx             ;à §¬¤¥«¨¬ ­  6
226
        div     ebx             ;à §¤¥«¨¬ ­  6
248
ret
227
ret
249
;----------------------------------------------------------
228
;----------------------------------------------------------
250
;--- ¯à®æ¥¤ãà  à¨á®¢ ­¨ï ªãàá®à  --------------------------
229
;--- ¯à®æ¥¤ãà  à¨á®¢ ­¨ï ªãàá®à  --------------------------
251
;----------------------------------------------------------
230
;----------------------------------------------------------
252
;¢å®¤­ë¥ ebp- 梥â
231
;¢å®¤­ë¥ ebp- 梥â
Line 323... Line 302...
323
        mcall
302
        mcall
324
ret
303
ret
325
;----------------------------------------------------------
304
;----------------------------------------------------------
326
;--- ¯à®¢¥àª , § è¥« «¨ ªãàá®à §  £à ­¨æë ¨, ¥á«¨ ­ ¤®, ---
305
;--- ¯à®¢¥àª , § è¥« «¨ ªãàá®à §  £à ­¨æë ¨, ¥á«¨ ­ ¤®, ---
327
;--- ¨§¬¥­ï¥¬ ᬥ饭¨¥ ------------------------------------
306
;--- ¨§¬¥­ï¥¬ ᬥ饭¨¥ ------------------------------------
328
;--- ¥á«¨ ᬥ饭¨¥ ¡ë«® ãáâ ­®¢ª  ä« £  ed_offset_cl ¨­ ç¥
307
;--- ¥á«¨ ᬥ饭¨¥ ¡ë«®, ãáâ ­®¢ª  ä« £  ed_offset_cl, ¨­ ç¥,
329
; ¥á«¨ ­¨ç¥£® ­¥ ¨§¬¥­¨«®áì â® ¢ëáâ ¢«¥­¨¥ ed_offset_fl
308
; ¥á«¨ ­¨ç¥£® ­¥ ¨§¬¥­¨«®áì, â® ¢ëáâ ¢«¥­¨¥ ed_offset_fl
330
; ¢ ®¡é¥© ¡¨â®¢®© ¬ âà¨æ¥ á®áâ®ï­¨ï ª®¬¯®­¥­â®¢ word ed_flags
309
; ¢ ®¡é¥© ¡¨â®¢®© ¬ âà¨æ¥ á®áâ®ï­¨ï ª®¬¯®­¥­â®¢ word ed_flags
331
;----------------------------------------------------------
310
;----------------------------------------------------------
332
edit_box.check_offset:
311
edit_box.check_offset:
333
pushad
312
pushad
334
        mov     ecx,ed_pos
313
        mov     ecx,ed_pos
335
        mov     ebx,ed_offset
314
        mov     ebx,ed_offset
336
        cmp     ebx,ecx
315
        cmp     ebx,ecx
337
        ja      edit_box.sub_8
316
        ja      edit_box.sub_8
Line 338... Line 317...
338
 
317
 
339
        push    ebx
318
        push    ebx
340
        call    edit_box.get_n  ;¯®«ã稬 ª®«-¢® ᨬ¢®«®¢ ª®â®àë¥ ã¬¥­é îâáï ¢ è¨à¨­¥ ª®¬¯®­¥­â , ¢ ¯ à¥ ॣ¨áâ஢ edx:eax 
319
        call    edit_box.get_n  ;¯®«ã稬 ª®«-¢® ᨬ¢®«®¢ ª®â®àë¥ ã¬¥é îâáï ¢ è¨à¨­¥ ª®¬¯®­¥­â , ¢ ¯ à¥ ॣ¨áâ஢ edx:eax
341
        pop     ebx
320
        pop     ebx
342
        mov     edx,ebx
321
        mov     edx,ebx
343
        add     edx,eax         ;ed_offset+width editbox
322
        add     edx,eax         ;ed_offset+width editbox
344
        inc     edx             ;­¥®¡å®¤¨¬® ¤«ï ­®à¬ «ì­®£® ¯®«®¦¥­¨ï ªãàá®à  ¢ ªà ©­¥© «¥¢®© ¯®§¨æ¨¨
323
        inc     edx             ;­¥®¡å®¤¨¬® ¤«ï ­®à¬ «ì­®£® ¯®«®¦¥­¨ï ªãàá®à  ¢ ªà ©­¥© «¥¢®© ¯®§¨æ¨¨
Line 387... Line 366...
387
	inc ecx ;ãç¨â뢠¥¬ ¡ã¤ã饥 ®¡à¥§ ­¨¥ áâப¨ ¤«ï ascii 0
366
	inc ecx ;ãç¨â뢠¥¬ ¡ã¤ã饥 ®¡à¥§ ­¨¥ áâப¨ ¤«ï ascii 0
388
	mov edi,dword[text]
367
	mov edi,dword[text]
389
	xor al,al
368
	xor al,al
390
	cld
369
	cld
391
	repne scasb ;¯®¨áª ¢ áâப¥ edi ᨬ¢®«  al
370
	repne scasb ;¯®¨áª ¢ áâப¥ edi ᨬ¢®«  al
392
	mov ecx,edi ;ecx = text + ¬¨­. §­ ç¥­¨¥ ¨§: 1) ed_max ¨«¨ 2) ¤«¨­­ë áâப¨ text
371
	mov ecx,edi ;ecx = text + ¬¨­. §­ ç¥­¨¥ ¨§: 1) ed_max ¨«¨ 2) ¤«¨­ë áâப¨ text
Line 393... Line 372...
393
 
372
 
394
	mov edi,dword[edit]
373
	mov edi,dword[edit]
395
	mov esi,dword[text]
374
	mov esi,dword[text]
396
	sub ecx,esi ;ecx = ¤«¨­­  áâப¨ text (­® ­¥ ¡®«ìè¥ ç¥¬ ed_max)
375
	sub ecx,esi ;ecx = ¤«¨­  áâப¨ text (­® ­¥ ¡®«ìè¥ ç¥¬ ed_max)
397
	dec ecx
376
	dec ecx
398
	mov ed_size,ecx ;áâ ¢¨¬ ­®¢ë© à §¬¥à áâப¨
377
	mov ed_size,ecx ;áâ ¢¨¬ ­®¢ë© à §¬¥à áâப¨
399
	mov ed_pos,ecx ;áâ ¢¨¬ ªãàá®à ¢ ª®­¥æ ­®¢®© áâப¨
378
	mov ed_pos,ecx ;áâ ¢¨¬ ªãàá®à ¢ ª®­¥æ ­®¢®© áâப¨
400
	mov edi,ed_text
379
	mov edi,ed_text
Line 447... Line 426...
447
        add     eax,ecx ;eax = w_off= ed_offset+width
426
        add     eax,ecx ;eax = w_off= ed_offset+width
448
        mov     edx,eax ;save
427
        mov     edx,eax ;save
449
        pop     ebx     ;¡®«ì襥
428
        pop     ebx     ;¡®«ì襥
450
        pop     eax     ;¬¥­ì襥
429
        pop     eax     ;¬¥­ì襥
Line 451... Line 430...
451
 
430
 
452
        cmp     eax,ecx         ;áà ¢­¥­¨¥ á ¬¥­ì襣® á offset.
431
        cmp     eax,ecx         ;áà ¢­¥­¨¥ ¬¥­ì襣® á offset.
453
        jae     edit_box_key.f_f            ;¥á«¨ ¡®«ìè¥
432
        jae     edit_box_key.f_f            ;¥á«¨ ¡®«ìè¥
454
        xor     eax,eax
433
        xor     eax,eax
455
        cmp     edx,ebx         ;cà ¢­¨¬ à §¬¥à w_off á ¡®«ì訬
434
        cmp     edx,ebx         ;cà ¢­¨¬ à §¬¥à w_off á ¡®«ì訬
456
        jb      @f
435
        jb      @f
Line 492... Line 471...
492
edit_box_key.drw_sim:
471
edit_box_key.drw_sim:
493
        mov     eax,dword       ed_pos
472
        mov     eax,dword       ed_pos
494
        call    edit_box_key.draw_rectangle   ;­ à¨á®¢ âì ¯àאַ㣮«ì­¨ª á § ¤ ­­ë¬ 梥⮬
473
        call    edit_box_key.draw_rectangle   ;­ à¨á®¢ âì ¯àאַ㣮«ì­¨ª á § ¤ ­­ë¬ 梥⮬
495
        jmp     @b
474
        jmp     @b
496
;;;;;;;;;;;;;;;;;;;;;
475
;;;;;;;;;;;;;;;;;;;;;
497
;”ãªæ¨ï ãáâ ­®¢ª¨ ¢ë¤¥«¥­¨ï ¯à¨ ¤¢¨¦¥­¨ï ¢«¥¢® ¨ ¢¯à ¢® ¨ ­ ¦ â¨¨ shift
476
;”ã­ªæ¨ï ãáâ ­®¢ª¨ ¢ë¤¥«¥­¨ï ¯à¨ ¤¢¨¦¥­¨¨ ¢«¥¢® ¨ ¢¯à ¢® ¨ ­ ¦ â¨¨ shift
498
;‹®£¨ª : 
477
;‹®£¨ª :
499
;;;;;;;;;;
478
;;;;;;;;;;
500
edit_box_key.draw_wigwag:
479
edit_box_key.draw_wigwag:
501
;äã­ªæ¨ï ãáâ ­®¢ª¨ ¯¥à¥¬¥­­ëå
480
;äã­ªæ¨ï ãáâ ­®¢ª¨ ¯¥à¥¬¥­­ëå
502
        mov     ebp,shift_color
481
        mov     ebp,shift_color
503
        call    edit_box.clear_cursor
482
        call    edit_box.clear_cursor
Line 504... Line 483...
504
 
483
 
505
        or      word ed_flags,ed_shift_bac ;ãáâ ­®¢ª  ä« £ , ¢ë¤¥«¥­­®© ®¡« áâ¨
484
        or      word ed_flags,ed_shift_bac ;ãáâ ­®¢ª  ä« £  ¢ë¤¥«¥­­®© ®¡« áâ¨
506
        mov     ebp,shift_color
485
        mov     ebp,shift_color
507
        mov     eax,dword       ed_pos
486
        mov     eax,dword       ed_pos
508
        test    word ed_flags,ed_left_fl
487
        test    word ed_flags,ed_left_fl
509
        jz      edit_box_key.low
488
        jz      edit_box_key.low
510
        jmp     @f
489
        jmp     @f
511
;;;;;;;;;;
490
;;;;;;;;;;
512
;”ãªæ¨ï 㤠«¥­¨ï ¢ë¤¥«¥­¨ï ¯à¨ ¤¢¨¦¥­¨ï ¢«¥¢® ¨ ¢¯à ¢® ¨ ­ ¦ â¨¨ shift
491
;”ã­ªæ¨ï 㤠«¥­¨ï ¢ë¤¥«¥­¨ï ¯à¨ ¤¢¨¦¥­¨¨ ¢«¥¢® ¨ ¢¯à ¢® ¨ ­ ¦ â¨¨ shift
513
;‹®£¨ª : 
492
;‹®£¨ª :
514
;;;;;;;;;;
493
;;;;;;;;;;
515
edit_box_key.draw_wigwag_cl:
494
edit_box_key.draw_wigwag_cl:
516
;äã­ªæ¨ï ãáâ ­®¢ª¨ ¯¥à¥¬¥­­ëå
495
;äã­ªæ¨ï ãáâ ­®¢ª¨ ¯¥à¥¬¥­­ëå
Line 534... Line 513...
534
        jne     @f
513
        jne     @f
535
        mov     dword ed_shift_pos,ebx
514
        mov     dword ed_shift_pos,ebx
536
        or      word ed_flags,ed_shift_on
515
        or      word ed_flags,ed_shift_on
537
@@:     ret
516
@@:     ret
538
;Ž¡à ¡®âª  ªà ©­¨å ¯®«®¦¥­¨© ¢ editbox ¯à¨ ­ ¦ â®¬ shift
517
;Ž¡à ¡®âª  ªà ©­¨å ¯®«®¦¥­¨© ¢ editbox ¯à¨ ­ ¦ â®¬ shift
539
;¯à®¨§¢®¤¨â á­ï⨥ ¢ë¤¥«¥­¨¥, ¥á«¨ ­¥â shift
518
;¯à®¨§¢®¤¨â á­ï⨥ ¢ë¤¥«¥­¨ï, ¥á«¨ ­¥â shift
540
;¨­ ç¥ ¢®®¡é¥ ¢ë室¨â
519
;¨­ ç¥ ¢®®¡é¥ ¢ë室¨â
541
edit_box_key.sh_st_of:
520
edit_box_key.sh_st_of:
542
        test    word ed_flags,ed_shift
521
        test    word ed_flags,ed_shift
543
        jne     @f
522
        jne     @f
544
        test    word ed_flags,ed_shift_bac
523
        test    word ed_flags,ed_shift_bac
545
        je      @f
524
        je      @f
546
        mov     ebp,ed_color
525
        mov     ebp,ed_color
547
        mov     ebx,dword       ed_shift_pos
526
        mov     ebx,dword       ed_shift_pos
548
        call    edit_box_key.sh_cl_  ;®ç¨á⪠ ¢ë¤¥«¥­®£® äà £¬¥­â 
527
        call    edit_box_key.sh_cl_  ;®ç¨á⪠ ¢ë¤¥«¥­®£® äà £¬¥­â 
549
        and     word ed_flags,ed_shift_cl ; ®ç¨á⪠ ®â ⮣® çâ® ã¡à «¨ ¢ë¤¥«¥­¨¥ 
528
        and     word ed_flags,ed_shift_cl ; ®ç¨á⪠ ®â ⮣®, çâ® ã¡à «¨ ¢ë¤¥«¥­¨¥
550
        jmp     edit_box.draw_cursor_text
529
        jmp     edit_box.draw_cursor_text
551
@@:
530
@@:
552
        and     word ed_flags,ed_shift_off
531
        and     word ed_flags,ed_shift_off
553
        popad
532
        popad
554
        ret     4
533
        ret     4
555
;¯à®¢¥àª  á®áâ®ï­¨ï shift ¡ë« «¨ ®­ ­ ¦ â à ­ìè¥?
534
;¯à®¢¥àª  á®áâ®ï­¨ï shift, ¡ë« «¨ ®­ ­ ¦ â à ­ìè¥?
556
edit_box_key.sh_enable:
535
edit_box_key.sh_enable:
557
        test    word ed_flags,ed_shift
536
        test    word ed_flags,ed_shift
558
        jne     edit_box_key.sh_ext_en ;­ à¨á®¢ âì § ªà è¥­ë© ¯àאַ㣮«ì­¨ª
537
        jne     edit_box_key.sh_ext_en ;­ à¨á®¢ âì § ªà è¥­­ë© ¯àאַ㣮«ì­¨ª
Line 559... Line 538...
559
 
538
 
560
        test    word ed_flags,ed_shift_bac
539
        test    word ed_flags,ed_shift_bac
561
        je      @f
540
        je      @f
Line 562... Line 541...
562
        call    edit_box.check_offset
541
        call    edit_box.check_offset
563
 
542
 
564
        mov     ebp,ed_color
543
        mov     ebp,ed_color
565
        mov     ebx,dword       ed_shift_pos
544
        mov     ebx,dword       ed_shift_pos
566
        call    edit_box_key.sh_cl_  ;®ç¨á⪠ ¢ë¤¥«¥­®£® äà £¬¥­â 
545
        call    edit_box_key.sh_cl_  ;®ç¨á⪠ ¢ë¤¥«¥­­®£® äà £¬¥­â 
567
        call    edit_box_key.draw_wigwag_cl 
546
        call    edit_box_key.draw_wigwag_cl
Line 568... Line 547...
568
        and     word ed_flags,ed_shift_cl ; 1¢ à ­¥ ­ã¦­® 
547
        and     word ed_flags,ed_shift_cl ; 1¢ à ­¥ ­ã¦­®
Line 574... Line 553...
574
        ret
553
        ret
575
edit_box_key.sh_ext_en:     
554
edit_box_key.sh_ext_en:
576
        call    edit_box.check_offset
555
        call    edit_box.check_offset
577
        test    word ed_flags,ed_offset_fl
556
        test    word ed_flags,ed_offset_fl
578
        je      @f
557
        je      @f
579
;¨á®¢ ­¨¥ § ªà è¥­ëå ¯àאַ㣮«ì­¨ª®¢ ¨ ®ç¨á⪠ ¨å
558
;¨á®¢ ­¨¥ § ªà è¥­­ëå ¯àאַ㣮«ì­¨ª®¢ ¨ ¨å ®ç¨á⪠
580
        mov     eax,dword       ed_shift_pos
559
        mov     eax,dword       ed_shift_pos
581
        mov     ebx,dword       ed_pos
560
        mov     ebx,dword       ed_pos
582
        mov     ecx,dword       ed_shift_pos_old
561
        mov     ecx,dword       ed_shift_pos_old
583
;¯à®¢¥àª  ¨ à¨á®¢ ­¨¥ § ªà è¥­ëå ®¡« á⥩
562
;¯à®¢¥àª  ¨ à¨á®¢ ­¨¥ § ªà è¥­­ëå ®¡« á⥩
584
        cmp     eax,ecx
563
        cmp     eax,ecx
585
        je      edit_box_key.1_shem
564
        je      edit_box_key.1_shem
586
        jb      edit_box_key.smaller
565
        jb      edit_box_key.smaller
587
        cmp     ecx,ebx
566
        cmp     ecx,ebx
588
        ja      edit_box_key.1_shem
567
        ja      edit_box_key.1_shem
Line 662... Line 641...
662
        sub     edx,eax
641
        sub     edx,eax
663
        add     esi,eax
642
        add     esi,eax
664
        mov     dword ed_shift_pos,ebp
643
        mov     dword ed_shift_pos,ebp
665
        jmp     edit_box_key.del_ch_sh
644
        jmp     edit_box_key.del_ch_sh
Line 666... Line 645...
666
 
645
 
667
@@:     add     esi,ecx ;㪠§ â¥«ì + ᬥ饭¨¥ ª ॠ«ì­®¬ã ¡ãää¥àã
646
@@:     add     esi,ecx ;㪠§ â¥«ì + ᬥ饭¨¥ ª ॠ«ì­®¬ã ¡ãä¥àã
668
        mov     ebx,esi
647
        mov     ebx,esi
669
        inc     esi
648
        inc     esi
Line 670... Line 649...
670
        cld
649
        cld
Line 699... Line 678...
699
        sub     eax,ecx
678
        sub     eax,ecx
700
        jmp     edit_box_key.nxt
679
        jmp     edit_box_key.nxt
701
@@:     mov     ebx,ed_pos
680
@@:     mov     ebx,ed_pos
702
        push    ebx
681
        push    ebx
703
        sub     eax,ebx
682
        sub     eax,ebx
704
        mov     ebx,eax ;It is don't optimal
683
        mov     ebx,eax ;It is not optimal
Line 705... Line 684...
705
        
684
 
706
        pop     eax     ;ed_pos
685
        pop     eax     ;ed_pos
707
        mov     ecx,ed_offset
686
        mov     ecx,ed_offset
708
        sub     eax,ecx
687
        sub     eax,ecx
Line 755... Line 734...
755
        je      @f
734
        je      @f
756
        or      word ed_flags,ed_shift   ;ãáâ ­®¢¨¬ ä« £
735
        or      word ed_flags,ed_shift   ;ãáâ ­®¢¨¬ ä« £
757
@@:edit_ex
736
@@:edit_ex
758
}
737
}
759
;¬ ªà®á ª« ¢¨è ­  ª®â®àë¥ ¯à®¨á室¨â ॠªæ¨ï 
738
;¬ ªà®á ª« ¢¨è ­  ª®â®àë¥ ¯à®¨á室¨â ॠªæ¨ï
760
macro use_key_process backspase,delete,left,right,home,end,insert
739
macro use_key_process backspace,delete,left,right,home,end,insert
761
{
740
{
762
if backspase eq 
741
if backspace eq
763
else
742
else
764
        cmp     ah,8
743
        cmp     ah,8
765
        jz      edit_box_key.backspace
744
        jz      edit_box_key.backspace
766
end if
745
end if
767
if delete eq 
746
if delete eq
Line 904... Line 883...
904
        mov     edi,esi
883
        mov     edi,esi
Line 905... Line 884...
905
 
884
 
906
        cmp     ecx,ebx         ;…᫨ ã ­ á ¯®§¨æ¨ï ªãàá®à  = ⥪ã饬ã à §¬¥àã ­ ¯¥ç â ­­ëå ᨬ¢®«®¢ â.¥. ªãàá®à á⮨⠢ ª®­æ¥
885
        cmp     ecx,ebx         ;…᫨ ã ­ á ¯®§¨æ¨ï ªãàá®à  = ⥪ã饬ã à §¬¥àã ­ ¯¥ç â ­­ëå ᨬ¢®«®¢ â.¥. ªãàá®à á⮨⠢ ª®­æ¥
Line 907... Line 886...
907
        je      edit_box_key.In_k
886
        je      edit_box_key.In_k
908
 
887
 
909
        test    dword bp_flags,ed_insert ;IF insert is enable  â.ª. edi ¨§¬¥­¥­  ¤à¥á㥬 ç¥à¥§ ebp
888
        test    dword bp_flags,ed_insert ;IF insert is enabled  â.ª. edi ¨§¬¥­¥­,  ¤à¥á㥬 ç¥à¥§ ebp
910
        jne     edit_box_key.ins_v
889
        jne     edit_box_key.ins_v
911
;clear
890
;clear
912
pusha
891
pusha
Line 974... Line 953...
974
        call    edit_box_key.del_char
953
        call    edit_box_key.del_char
975
        jmp     edit_box_key.draw_all
954
        jmp     edit_box_key.draw_all
976
;;;;;;;;;;;;;;;;;;;;;;;;;;;;        
955
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
977
;--- ­ ¦ â  ª« ¢¨è  backspace ---
956
;--- ­ ¦ â  ª« ¢¨è  backspace ---
978
edit_box_key.backspace:
957
edit_box_key.backspace:
-
 
958
        test    word ed_flags,ed_shift_on
-
 
959
        jne     edit_box_key.delete
979
        ; ¯à®¢¥à塞, ªãàá®à ã «¥¢®£® ªà ï ?
960
        ; ¯à®¢¥à塞, ªãàá®à ã «¥¢®£® ªà ï?
980
        mov     ecx,ed_pos
961
        mov     ecx,ed_pos
981
        test    ecx,ecx
962
        test    ecx,ecx
982
        jnz     edit_box_key.del_bac
963
        jnz     edit_box_key.del_bac
983
        test    word ed_flags,ed_shift_on
-
 
984
        jne     edit_box_key.bac_del
-
 
985
        popad
964
        popad
986
        ret     4
965
        ret     4
Line 987... Line 966...
987
 
966
 
988
edit_box_key.del_bac:
967
edit_box_key.del_bac:
Line 1086... Line 1065...
1086
        ja      edit_box_mouse.mright 
1065
        ja      edit_box_mouse.mright
Line 1087... Line 1066...
1087
 
1066
 
Line 1088... Line 1067...
1088
        sub     ebx,ed_width
1067
        sub     ebx,ed_width
1089
 
1068
 
1090
        xor     edx,edx
1069
        xor     edx,edx
1091
        sub     eax,ebx ; ¢ëç⨬ ¨§ ª®®à¤¨­ â ¬ë誨 ¯® ®á¨ å ª®®à¤¨­ âë ¤® editbox ¯® ®á¨ å
1070
        sub     eax,ebx ; ¢ëç⥬ ¨§ ª®®à¤¨­ â ¬ë誨 ¯® ®á¨ å ª®®à¤¨­ âë ¤® editbox ¯® ®á¨ å
1092
        mov     ebx,6
1071
        mov     ebx,6
1093
        div     ebx
1072
        div     ebx
1094
;;;;;;;;;;;;;;;;;;
1073
;;;;;;;;;;;;;;;;;;
1095
;;¯à®æ¥¤ãà  ®¡à ¡®âª¨ ¯®«®¦¥­¨ï ¢ë¤¥«¥­­®£® ⥪áâ , ¢ ¯à¥¤¥« å ®¡« á⨠editbox
1074
;;¯à®æ¥¤ãà  ®¡à ¡®âª¨ ¯®«®¦¥­¨ï ¢ë¤¥«¥­­®£® ⥪áâ , ¢ ¯à¥¤¥« å ®¡« á⨠editbox
1096
;;;;;;;;;;;;;;;;;;
1075
;;;;;;;;;;;;;;;;;;
1097
;®«ã稫¨ ª®®à¤¨­ âë ¢ eax ¬ë誨, â.¥. ªã¤  ®­  ¯¥à¥¬¥á⨫ áì
1076
;®«ã稫¨ ª®®à¤¨­ âë ¢ eax ¬ë誨, â.¥. ªã¤  ®­  ¯¥à¥¬¥á⨫ áì
1098
;¨á®¢ ­¨¥ § ªà è¥­ëå ¯àאַ㣮«ì­¨ª®¢ ¨ ®ç¨á⪠ ¨å
1077
;¨á®¢ ­¨¥ § ªà è¥­­ëå ¯àאַ㣮«ì­¨ª®¢ ¨ ¨å ®ç¨á⪠
1099
        add     eax,ed_offset   ;¤®¡ ¢¨¬ ᬥ饭¨¥
1078
        add     eax,ed_offset   ;¤®¡ ¢¨¬ ᬥ饭¨¥
1100
        cmp     eax,dword ed_size       ;¥á«¨ ¢ë諨 §  ¯à¥¤¥«ë, â® ­¨ç¥£® ­¥ ¤¥« âì
1079
        cmp     eax,dword ed_size       ;¥á«¨ ¢ë諨 §  ¯à¥¤¥«ë, â® ­¨ç¥£® ­¥ ¤¥« âì
1101
        ja      edit_box_mouse.mwigvag
1080
        ja      edit_box_mouse.mwigvag
1102
edit_box_mouse.mdraw: 
1081
edit_box_mouse.mdraw:
1103
        mov     dword   ed_pos,eax ;á®åà ­¨¬ ­®¢®¥ §­ ç¥­¨¥
1082
        mov     dword   ed_pos,eax ;á®åà ­¨¬ ­®¢®¥ §­ ç¥­¨¥
1104
;¨á®¢ ­¨¥ § ªà è¥­ëå ¯àאַ㣮«ì­¨ª®¢ ¨ ®ç¨á⪠ ¨å
1083
;¨á®¢ ­¨¥ § ªà è¥­­ëå ¯àאַ㣮«ì­¨ª®¢ ¨ ¨å ®ç¨á⪠
1105
        mov     ecx,dword       ed_shift_pos
1084
        mov     ecx,dword       ed_shift_pos
1106
        mov     ebx,dword       ed_shift_pos_old
1085
        mov     ebx,dword       ed_shift_pos_old
1107
        mov     dword   ed_shift_pos_old,eax    ;¢­¥á¥¬ ­®¢®¥ §­ ç¥­¨¥ áâ à®© ¯®§¨æ¨¨ ªãàá®à 
1086
        mov     dword   ed_shift_pos_old,eax    ;¢­¥á¥¬ ­®¢®¥ §­ ç¥­¨¥ áâ à®© ¯®§¨æ¨¨ ªãàá®à 
1108
;¯à®¢¥àª  ¨ à¨á®¢ ­¨¥ § ªà è¥­ëå ®¡« á⥩
1087
;¯à®¢¥àª  ¨ à¨á®¢ ­¨¥ § ªà è¥­­ëå ®¡« á⥩
1109
        cmp     ecx,ebx         ;¢ëïá­ï¥¬ ªã¤  ¡ë«® ¤¢¨¦¥­¨¥ ­  ®¤¨­ è £ ­ § ¤
1088
        cmp     ecx,ebx         ;¢ëïá­ï¥¬ ªã¤  ¡ë«® ¤¢¨¦¥­¨¥ ­  ®¤¨­ è £ ­ § ¤
1110
        je      edit_box_mouse.m1_shem        ;¤¢¨¦¥­¨ï ­¥ ¡ë«® à ­¥¥ 
1089
        je      edit_box_mouse.m1_shem        ;¤¢¨¦¥­¨ï ­¥ ¡ë«® à ­¥¥
1111
        jb      edit_box_mouse.msmaller       ;¤¢¨¦¥­¨¥ ¡ë«® ->
1090
        jb      edit_box_mouse.msmaller       ;¤¢¨¦¥­¨¥ ¡ë«® ->
Line 1243... Line 1222...
1243
        je      edit_box.editbox_exit
1222
        je      edit_box.editbox_exit
1244
        mov     ed_pos,eax
1223
        mov     ed_pos,eax
1245
        mov     ebp,dword shift_color
1224
        mov     ebp,dword shift_color
1246
        mov     ebx,dword ed_shift_pos
1225
        mov     ebx,dword ed_shift_pos
1247
        call    edit_box_key.sh_cl_
1226
        call    edit_box_key.sh_cl_
1248
        or      word ed_flags,ed_mous_adn_b     ;ãáâ ­®¢¨¬ ¡¨â çâ® ¬ë ¢ë¤¥«¨«¨ +shift_on +
1227
        or      word ed_flags,ed_mous_adn_b     ;ãáâ ­®¢¨¬ ¡¨â, çâ® ¬ë ¢ë¤¥«¨«¨ +shift_on +
1249
edit_box_mouse.m_sh:  
1228
edit_box_mouse.m_sh:
1250
	call    edit_box.draw_text
1229
	call    edit_box.draw_text
1251
        call    edit_box.draw_cursor
1230
        call    edit_box.draw_cursor
1252
;----------------------------------------------------------
1231
;----------------------------------------------------------
1253
;--- ¯à®æ¥¤ãà  ãáâ ­®¢ª¨ 䮪ãá  ---------------------------
1232
;--- ¯à®æ¥¤ãà  ãáâ ­®¢ª¨ 䮪ãá  ---------------------------
Line 1298... Line 1277...
1298
        ;----------- ®â« ¤ª 
1277
        ;----------- ®â« ¤ª 
1299
}
1278
}
1300
macro   debug_func
1279
macro   debug_func
1301
{
1280
{
1302
.str:
1281
.str:
1303
        mov ecx,0x0a ;§ ¤ ¥âáï á¨á⥬  áç¨á«¥­¨ï ¨§¬¥­ïîâáï ॣ¨áâàë ebx,eax,ecx,edx ¢å®¤­ë¥ ¯ à ¬¥âàë eax - ç¨á«®
1282
        mov ecx,0x0a ;§ ¤ ¥âáï á¨á⥬  áç¨á«¥­¨ï, ¨§¬¥­ïîâáï ॣ¨áâàë ebx,eax,ecx,edx, ¢å®¤­ë¥ ¯ à ¬¥âàë eax - ç¨á«®
1304
         ;¯à¥à¥¢®¤ ç¨á«  ¢ ASCII áâப㠢§®¤­ë¥ ¤ ­­ë¥ ecx=á¨á⥬  áç¨á«¥­ï edi  ¤à¥á ªã¤  § ¯¨á뢠âì, ¡ã¤¥¬ áâபã, ¯à¨ç¥¬ ª®­¥æ ¯¥à¥¬¥­­®© 
1283
         ;¯¥à¥¢®¤ ç¨á«  ¢ ASCII áâபã, ¢å®¤­ë¥ ¤ ­­ë¥ ecx=á¨á⥬  áç¨á«¥­¨ï, edi  ¤à¥á ªã¤  ¡ã¤¥¬ § ¯¨á뢠âì áâபã, ¯à¨ç¥¬ ª®­¥æ ¯¥à¥¬¥­­®©
1305
        cmp eax,ecx  ;áà ¢­¨âì ¥á«¨ ¢ eax ¬¥­ìè¥ ç¥¬ ¢ ecx â® ¯¥à¥©â¨ ­  @@-1 â.¥. ­  pop eax
1284
        cmp eax,ecx  ;áà ¢­¨âì, ¥á«¨ ¢ eax ¬¥­ìè¥, 祬 ¢ ecx, â® ¯¥à¥©â¨ ­  @@-1 â.¥. ­  pop eax
1306
        jb @f
1285
        jb @f
1307
        xor edx,edx  ;®ç¨áâ¨âì edx
1286
        xor edx,edx  ;®ç¨áâ¨âì edx
1308
        div ecx      ;à §¤¥«¨âì - ®áâ â®ª ¢ edx
1287
        div ecx      ;à §¤¥«¨âì - ®áâ â®ª ¢ edx
1309
        push edx     ;¯®«®¦¨âì ¢ á⥪
1288
        push edx     ;¯®«®¦¨âì ¢ á⥪
1310
        ;dec edi             ;ᬥ饭¨¥ ­¥®¡å®¤¨¬®¥ ¤«ï § ¯¨á¨ á ª®­æ  áâப¨
1289
        ;dec edi             ;ᬥ饭¨¥ ­¥®¡å®¤¨¬®¥ ¤«ï § ¯¨á¨ á ª®­æ  áâப¨
1311
        call .str;¯¥à¥©â¨ ­  á ¬ã ᥡï â.¥. ¢ë§¢ âì á ¬ã á¥¡ï ¨ â ª ¤® ⮣® ¬®¬¥­â  ¯®ª  ¢ eax ­¥ áâ ­¥â ¬¥­ìè¥ ç¥¬ ¢ ecx
1290
        call .str ;¯¥à¥©â¨ ­  á ¬ã ᥡï â.¥. ¢ë§¢ âì á ¬ã á¥¡ï ¨ â ª ¤® ⮣® ¬®¬¥­â , ¯®ª  ¢ eax ­¥ áâ ­¥â ¬¥­ìè¥ ç¥¬ ¢ ecx
1312
        pop eax
1291
        pop eax
1313
        @@: ;cmp al,10 ;¯à®¢¥à¨âì ­¥ ¬¥­ìè¥ «¨ §­ ç¥­¨¥ ¢ al 祬 10 (¤«ï á¨á⥬ë áç¨á«¥­ï 10 ¤ ­­ ï ª®¬ ­¤  - «¨è­ ï))
1292
        @@: ;cmp al,10 ;¯à®¢¥à¨âì ­¥ ¬¥­ìè¥ «¨ §­ ç¥­¨¥ ¢ al, 祬 10 (¤«ï á¨á⥬ë áç¨á«¥­¨ï 10 ¤ ­­ ï ª®¬ ­¤  - «¨è­ ï))
1314
        ;sbb al,$69  ;- ç¥áâ­® ¤ ­­ ï ¨­áâàãªæ¨ï ¬¥­ï § áâ ¢«ï¥â § ¤ã¬ âìáï â.¥. ï ­¥ §­ î ª ª íâ® à ¡®â ¥â
1293
        ;sbb al,$69  ;- ç¥áâ­®, ¤ ­­ ï ¨­áâàãªæ¨ï ¬¥­ï § áâ ¢«ï¥â § ¤ã¬ âìáï â.¥. ï ­¥ §­ î ª ª íâ® à ¡®â ¥â
1315
        ;das        ;¯®á«¥ ¤ ­­®© ª®¬ ­¤ë ª ª ¡ë ¯à®¨á室¨â 㬥­ì襭¨¥ al ­  66h  (¢ ª­¨£¥ ­ ¯¨á ­® ¤à㣮¥)
1294
        ;das        ;¯®á«¥ ¤ ­­®© ª®¬ ­¤ë ª ª ¡ë ¯à®¨á室¨â 㬥­ì襭¨¥ al ­  66h  (¢ ª­¨£¥ ­ ¯¨á ­® ¤à㣮¥)
1316
        or al,0x30  ;¤ ­­ ï ª®¬ ­¤  ª®à®ç¥  祬 ¤¢¥ ¢ëè¥ 
1295
        or al,0x30  ;¤ ­­ ï ª®¬ ­¤  ª®à®ç¥, 祬 ¤¢¥ ¢ëè¥
1317
        stosb       ;§ ¯¨á âì í«¥¬¥­â ¨§ ॣ¨áâà  al ¢ ï祪㠯 ¬ï⨠es:edi
1296
        stosb       ;§ ¯¨á âì í«¥¬¥­â ¨§ ॣ¨áâà  al ¢ ï祩ªã ¯ ¬ï⨠es:edi
Line 1318... Line 1297...
1318
 
1297
 
1319
        ret         ;¢¥à­ãâìáï ç¥­ì ¨­â¥à¥á­ë© 室 â.ª. ¯®ª  ¢ á⥪¥ åà ­¨âìáï ª®«-¢® ¢ë§®¢®¢ â® á⮫쪮 à § ¬ë ¨ ¡ã¤¥¬ ¢ë§ë¢ âìáï
1298
        ret         ;¢¥à­ãâìáï ®ç¥­ì ¨­â¥à¥á­ë© 室, â.ª. ¯®ª  ¢ á⥪¥ åà ­¨âáï ª®«-¢® ¢ë§®¢®¢, â® á⮫쪮 à § ¬ë ¨ ¡ã¤¥¬ ¢ë§ë¢ âìáï
Line 1320... Line 1299...
1320
}
1299
}
1321
 
1300
 
1322
ed_struc_size=76
1301
ed_struc_size=76