Subversion Repositories Kolibri OS

Rev

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

Rev 1113 Rev 1214
Line 1... Line 1...
1
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2
;Basic macros for use editbox                             ;
2
;Basic macros for use editbox                             ;
3
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
3
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-
 
4
macro init_editbox
-
 
5
{
-
 
6
pushad
-
 
7
	mcall
-
 
8
 
-
 
9
popad
-
 
10
}
-
 
11
 
-
 
12
 
4
macro use_editbox_draw
13
macro use_editbox_draw
5
{
14
{
6
edit_box:
15
edit_box:
7
ed_width        equ [edi]               ;è¨à¨­  ª®¬¯®­¥­â 
16
ed_width        equ [edi]               ;è¨à¨­  ª®¬¯®­¥­â 
8
ed_left         equ [edi+4]             ;¯®«®¦¥­¨¥ ¯® ®á¨ å
17
ed_left         equ [edi+4]             ;¯®«®¦¥­¨¥ ¯® ®á¨ å
Line 12... Line 21...
12
ed_focus_border_color   equ [edi+20]    ;梥â à ¬ª¨ ª®¬¯®­¥­â 
21
ed_focus_border_color   equ [edi+20]    ;梥â à ¬ª¨ ª®¬¯®­¥­â 
13
ed_blur_border_color    equ [edi+24]    ;梥⠭¥  ªâ¨¢­®£® ª®¬¯®­¥­â 
22
ed_blur_border_color    equ [edi+24]    ;梥⠭¥  ªâ¨¢­®£® ª®¬¯®­¥­â 
14
ed_text_color   equ [edi+28]            ;梥â ⥪áâ 
23
ed_text_color   equ [edi+28]            ;梥â ⥪áâ 
15
ed_max          equ [edi+32]                    ;ª®«-¢® ᨬ¢®«®¢ ª®â®àë¥ ¬®¦­® ¬ ªá¨¬ «ì­® ¢¢¥áâ¨
24
ed_max          equ [edi+32]                    ;ª®«-¢® ᨬ¢®«®¢ ª®â®àë¥ ¬®¦­® ¬ ªá¨¬ «ì­® ¢¢¥áâ¨
16
ed_text         equ [edi+36]                    ;㪠§ â¥«ì ­  ¡ãä¥à
25
ed_text         equ [edi+36]                    ;㪠§ â¥«ì ­  ¡ãä¥à
-
 
26
ed_mouse_variable 	equ [edi+40]	; 㪠§ â¥«ì ­  ¯¥à¥¬¥­­ãî ¤«ï ¡®ªá /£à㯯ë 
17
ed_flags        equ [edi+40]            ;ä« £¨
27
ed_flags        equ [edi+44]            ;ä« £¨
18
ed_size equ [edi+44]                    ;ª®«-¢® ᨬ¢®«®¢
28
ed_size equ [edi+48]                    ;ª®«-¢® ᨬ¢®«®¢
19
ed_pos  equ [edi+48]                    ;¯®§¨æ¨ï ªãàá®à 
29
ed_pos  equ [edi+52]                    ;¯®§¨æ¨ï ªãàá®à 
20
ed_offset       equ [edi+52]            ;ᬥ饭¨¥
30
ed_offset       equ [edi+56]            ;ᬥ饭¨¥
21
cl_curs_x       equ [edi+56]            ;¯à¥¤ë¤ã饥 ª®®à¤¨­ â  ªãàá®à  ¯® å
31
cl_curs_x       equ [edi+60]            ;¯à¥¤ë¤ã饥 ª®®à¤¨­ â  ªãàá®à  ¯® å
22
cl_curs_y       equ [edi+60]            ;¯à¥¤ë¤ã饥 ª®®à¤¨­ â  ªãàá®à  ¯® ã
32
cl_curs_y       equ [edi+64]            ;¯à¥¤ë¤ã饥 ª®®à¤¨­ â  ªãàá®à  ¯® ã
23
ed_shift_pos    equ [edi+64]            ;¯®«®¦¥­¨¥ ªãàá®à 
33
ed_shift_pos    equ [edi+68]            ;¯®«®¦¥­¨¥ ªãàá®à 
24
ed_shift_pos_old equ [edi+68]           ;áâ à®¥ ¯®«®¦¥­¨¥ ªãàá®à 
34
ed_shift_pos_old equ [edi+72]           ;áâ à®¥ ¯®«®¦¥­¨¥ ªãàá®à 
Line 25... Line 35...
25
 
35
 
26
ed_figure_only= 1000000000000000b   ;®¤­¨ ᨬ¢®«ë
36
ed_figure_only= 1000000000000000b   ;®¤­¨ ᨬ¢®«ë
27
ed_always_focus= 100000000000000b
37
ed_always_focus= 100000000000000b
28
ed_focus=                     10b   ;䮪ãá ¯à¨«®¦¥­¨ï
38
ed_focus=                     10b   ;䮪ãá ¯à¨«®¦¥­¨ï
Line 60... Line 70...
60
        call    .draw_shift
70
        call    .draw_shift
61
.draw_cursor_text:
71
.draw_cursor_text:
62
;--- à¨á㥬 ªãàá®à ---
72
;--- à¨á㥬 ªãàá®à ---
63
        ;--- ¬®¦¥â ¥£® ­¥ ­ ¤® à¨á®¢ âì ----
73
        ;--- ¬®¦¥â ¥£® ­¥ ­ ¤® à¨á®¢ âì ----
64
        test    word ed_flags,ed_focus
74
        test    word ed_flags,ed_focus
65
        je     @f
75
        jz     	@f
66
        call    .draw_cursor
76
        call    .draw_cursor
67
@@:
77
@@:
68
        call    .draw_text
78
        call    .draw_text
69
;        ret
79
;        ret
70
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
80
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Line 136... Line 146...
136
;--- ¯à®¢¥à塞 á®áâ®ï­¨¥ ----------------------------------
146
;--- ¯à®¢¥à塞 á®áâ®ï­¨¥ ----------------------------------
137
;----------------------------------------------------------
147
;----------------------------------------------------------
138
        test    eax,1
148
        test    eax,1
139
        jnz     edit_box_mouse.mouse_left_button
149
        jnz     edit_box_mouse.mouse_left_button
140
        and     word ed_flags,ed_mouse_on_off
150
        and     word ed_flags,ed_mouse_on_off
-
 
151
	mov	ebx,dword ed_mouse_variable
-
 
152
	push	0
141
        xor     ebx,ebx
153
	pop	dword [ebx]
142
        mov     dword [mouse_flag],ebx
154
;        mov     dword [ebx],ebx
143
        jmp     edit_box.editbox_exit
155
        jmp     edit_box.editbox_exit
144
.mouse_left_button:
156
.mouse_left_button:
145
;----------------------------------------------------------
157
;----------------------------------------------------------
146
;--- ¡«®ª¨à®¢ª  ®â 䮪ãá¨à®¢ª¨ ¢ ¤àã£¨å ¡®ªá å ¯à¨ ¯®¯ ¤ ­¨¨ ­  ­¨å ªãàá®à 
158
;--- ¡«®ª¨à®¢ª  ®â 䮪ãá¨à®¢ª¨ ¢ ¤àã£¨å ¡®ªá å ¯à¨ ¯®¯ ¤ ­¨¨ ­  ­¨å ªãàá®à 
147
;----------------------------------------------------------
159
;----------------------------------------------------------
148
        mov     eax,dword [mouse_flag]
160
        mov     eax,dword ed_mouse_variable
-
 
161
	push	dword [eax]
-
 
162
	pop	eax
149
        test    eax,eax
163
        test    eax,eax
150
        jz      @f
164
        jz      @f
151
        cmp     eax,edi
165
        cmp     eax,edi
152
        je      @f
166
        je      @f
153
        jmp     edit_box_mouse._blur
167
        jmp     edit_box_mouse._blur
Line 433... Line 447...
433
        jae     edit_box_key.sh_n
447
        jae     edit_box_key.sh_n
434
        push    eax  ;¬¥­ì襥 ¢ eax
448
        push    eax  ;¬¥­ì襥 ¢ eax
435
        push    ebx  ;¡®«ì襥
449
        push    ebx  ;¡®«ì襥
436
        jmp     edit_box_key.sh_n1
450
        jmp     edit_box_key.sh_n1
437
                     ;¥á«¨ ¨­ ç¥
451
                     ;¥á«¨ ¨­ ç¥
438
edit_box_key.sh_n:  push    ebx  
452
edit_box_key.sh_n:
-
 
453
	push    ebx  
439
        push    eax
454
        push    eax
440
edit_box_key.sh_n1: 
455
edit_box_key.sh_n1: 
441
        call    edit_box.check_offset
456
        call    edit_box.check_offset
442
        call    edit_box.get_n
457
        call    edit_box.get_n
443
        mov     edx,eax ;size of ed_box
458
        mov     edx,eax ;size of ed_box
Line 918... Line 933...
918
        ;--------
933
        ;--------
919
        lodsb
934
        lodsb
920
        stosb
935
        stosb
921
        ;--------
936
        ;--------
922
        loop    @b
937
        loop    @b
923
edit_box_key.In_k:  cld
938
edit_box_key.In_k:  
-
 
939
	cld
924
        pop eax
940
        pop eax
925
        mov al,ah
941
        mov al,ah
926
        stosb
942
        stosb
927
        pop edi
943
        pop edi
928
; ¢áâ ¢«ï¥¬ ª®¤ ª« ¢¨è¨ â㤠, £¤¥ ªãàá®à
944
; ¢áâ ¢«ï¥¬ ª®¤ ª« ¢¨è¨ â㤠, £¤¥ ªãàá®à
Line 1013... Line 1029...
1013
        mov     ebp,ed_size
1029
        mov     ebp,ed_size
1014
        call    edit_box_key.clear_bg
1030
        call    edit_box_key.clear_bg
1015
        ret
1031
        ret
1016
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1032
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1017
;--- ­ ¦ â  ª« ¢¨è  left ---
1033
;--- ­ ¦ â  ª« ¢¨è  left ---
-
 
1034
edit_box_key.left:  
1018
edit_box_key.left:  mov     ebx,ed_pos
1035
	mov     ebx,ed_pos
1019
        test    ebx,ebx
1036
        test    ebx,ebx
1020
        jz      edit_box_key.sh_st_of
1037
        jz      edit_box_key.sh_st_of
1021
        or      word ed_flags,ed_left_fl
1038
        or      word ed_flags,ed_left_fl
1022
        call    edit_box_key.sh_first_sh
1039
        call    edit_box_key.sh_first_sh
1023
        dec      dword ed_pos
1040
        dec      dword ed_pos
1024
        call    edit_box_key.sh_enable
1041
        call    edit_box_key.sh_enable
1025
        jmp     edit_box.draw_cursor_text
1042
        jmp     edit_box.draw_cursor_text
1026
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1043
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1027
;--- ­ ¦ â  ª« ¢¨è  right ---
1044
;--- ­ ¦ â  ª« ¢¨è  right ---
1028
edit_box_key.right: mov     ebx,ed_pos
1045
edit_box_key.right: 
-
 
1046
	mov     ebx,ed_pos
1029
        cmp     ebx,ed_size
1047
        cmp     ebx,ed_size
1030
        je      edit_box_key.sh_st_of
1048
        je      edit_box_key.sh_st_of
1031
        and     word ed_flags,ed_right_fl
1049
        and     word ed_flags,ed_right_fl
1032
        call    edit_box_key.sh_first_sh
1050
        call    edit_box_key.sh_first_sh
1033
        inc     dword  ed_pos
1051
        inc     dword  ed_pos
Line 1216... Line 1234...
1216
        jne     @f
1234
        jne     @f
Line 1217... Line 1235...
1217
        
1235
        
1218
        mov     dword ed_shift_pos,eax
1236
        mov     dword ed_shift_pos,eax
1219
        or      word  ed_flags,ed_mouse_on
1237
        or      word  ed_flags,ed_mouse_on
-
 
1238
        mov     dword ed_pos,eax
1220
        mov     dword ed_pos,eax
1239
 
-
 
1240
;        mov     dword [mouse_flag],edi          ;ãáâ ­®¢¨¬ ¨¤¥­â¨ä¨ª â®à
-
 
1241
 
-
 
1242
       	mov	ebx,dword ed_mouse_variable
-
 
1243
	push	edi
-
 
1244
	pop	dword [ebx]
-
 
1245
 
-
 
1246
 
-
 
1247
 
1221
        mov     dword [mouse_flag],edi          ;ãáâ ­®¢¨¬ ¨¤¥­â¨ä¨ª â®à
1248
 
1222
        bts     word ed_flags,1                 ;ãáâ ­®¢ª  䮪ãá 
1249
        bts     word ed_flags,1                 ;ãáâ ­®¢ª  䮪ãá 
1223
        jmp     edit_box_mouse.m_sh
1250
        jmp     edit_box_mouse.m_sh
1224
@@:             
1251
@@:             
1225
        cmp     eax,dword ed_shift_pos  ;¥á«¨ ¯®§¨æ¨¨ ­¥ ¨§¬¥­¨«¨áì
1252
        cmp     eax,dword ed_shift_pos  ;¥á«¨ ¯®§¨æ¨¨ ­¥ ¨§¬¥­¨«¨áì
1226
        je      edit_box.editbox_exit
1253
        je      edit_box.editbox_exit
1227
        mov     ed_pos,eax
1254
        mov     ed_pos,eax
1228
        mov     ebp,dword shift_color
1255
        mov     ebp,dword shift_color
1229
        mov     ebx,dword ed_shift_pos
1256
        mov     ebx,dword ed_shift_pos
1230
        call    edit_box_key.sh_cl_
1257
        call    edit_box_key.sh_cl_
-
 
1258
        or      word ed_flags,ed_mous_adn_b     ;ãáâ ­®¢¨¬ ¡¨â çâ® ¬ë ¢ë¤¥«¨«¨ +shift_on +
1231
        or      word ed_flags,ed_mous_adn_b     ;ãáâ ­®¢¨¬ ¡¨â çâ® ¬ë ¢ë¤¥«¨«¨ +shift_on +
1259
edit_box_mouse.m_sh:  
1232
edit_box_mouse.m_sh:  call    edit_box.draw_text
1260
	call    edit_box.draw_text
1233
        call    edit_box.draw_cursor
1261
        call    edit_box.draw_cursor
1234
;----------------------------------------------------------
1262
;----------------------------------------------------------
1235
;--- ¯à®æ¥¤ãà  ãáâ ­®¢ª¨ 䮪ãá  ---------------------------
1263
;--- ¯à®æ¥¤ãà  ãáâ ­®¢ª¨ 䮪ãá  ---------------------------
1236
;----------------------------------------------------------
1264
;----------------------------------------------------------
Line 1348... Line 1376...
1348
ed_mous_adn_b=         100011000b
1376
ed_mous_adn_b=         100011000b
1349
ed_mouse_on_off=1111111011111111b
1377
ed_mouse_on_off=1111111011111111b
1350
ed_height=24 ; ¢ëá®â 
1378
ed_height=24 ; ¢ëá®â 
1351
}
1379
}
Line 1352... Line 1380...
1352
 
1380
 
1353
ed_struc_size=72
1381
ed_struc_size=76
1354
struc  edit_box width,left,top,color,shift_color,focus_border_color,\
1382
struc  edit_box width,left,top,color,shift_color,focus_border_color,\
1355
       blur_border_color,text_color,max,text,flags,size,pos
1383
       blur_border_color,text_color,max,text,mouse_variable,flags,size,pos
1356
{
1384
{
1357
.width dd width
1385
.width dd width
1358
.left dd left
1386
.left dd left
1359
.top dd top
1387
.top dd top
Line 1362... Line 1390...
1362
.focus_border_color dd focus_border_color
1390
.focus_border_color dd focus_border_color
1363
.blur_border_color dd blur_border_color
1391
.blur_border_color dd blur_border_color
1364
.text_color dd text_color
1392
.text_color dd text_color
1365
.max dd max
1393
.max dd max
1366
.text dd text
1394
.text dd text
-
 
1395
.mouse_variable dd mouse_variable
1367
.flags dd flags+0
1396
.flags dd flags+0
1368
.size dd size+0
1397
.size dd size+0
1369
.pos dd pos+0
1398
.pos dd pos+0
1370
.offset dd 0
1399
.offset dd 0
1371
.cl_curs_x dd 0
1400
.cl_curs_x dd 0