Subversion Repositories Kolibri OS

Rev

Rev 2249 | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 2249 Rev 6972
Line -... Line 1...
-
 
1
; í«¥¬¥­â Optionbox ¤«ï ¡¨¡«¨®â¥ª¨ box_lib.obj
1
;ä ©« ᮧ¤ ­ 13.02.2009    ª®¤ ¯à¨¬¥­¥­  GPL2 «¨æ¥­§¨ï
2
; ­  ª®¤ ¯à¨¬¥­¥­  GPL2 «¨æ¥­§¨ï
-
 
3
; ä ©« ᮧ¤ ­ 13.02.2009 
2
;Œ ªà®á ¤«ï á¨á⥬­®© ¡¨¡«¨®â¥ª¨ box_lib.obj
4
; ¯®á«¥¤­ïï ¬®¤¨ä¨ª æ¨ï 12.09.2017 IgorA
3
;Optionbox
-
 
Line 4... Line -...
4
 
-
 
5
macro use_optionbox_driver	;¬ ªà®áë ª®â®àë¥ ã¯à ¢«ïîâ à ¡®â®© ¡®ªá  )
5
 
6
{
6
align 16
7
option_box_draw:
7
option_box_draw:
Line 8... Line 8...
8
        pusha
8
	pusha
-
 
9
 
9
 
10
	mov   eax,dword[esp+36]
10
        mov     eax,dword [esp+36]
11
@@:
11
@@:     mov     edi,dword [eax]
12
	mov   edi,dword[eax]
12
        test    edi,edi
13
	test  edi,edi
13
        je      option_check
14
	je    option_check
14
        call    option_box_draw_box
15
	call  option_box_draw_box
Line 15... Line 16...
15
        add     eax,4
16
	add   eax,4
16
        jmp    @b 
17
	jmp   @b 
-
 
18
 
17
 
19
option_check:
18
option_check:
20
	mov   eax,dword[esp+36]
19
        mov     eax,dword [esp+36]
21
@@:
Line 20... Line 22...
20
@@:     mov     edi,dword [eax]
22
	mov   edi,dword[eax]
21
        test    edi,edi
23
	test  edi,edi
Line 37... Line 39...
37
        call    option_box_clear_op
39
	call  option_box_clear_op
38
        popa
40
	popa
39
        add     eax,4
41
	add   eax,4
40
        jmp     @b
42
	jmp   @b
Line 41... Line 43...
41
 
43
 
42
 
44
@@:
43
@@:     popa
45
	popa
44
        ret 4 
-
 
Line -... Line 46...
-
 
46
	ret 4 
45
        ; exit ¢®®¡é¥ :)
47
 
46
 
48
 
47
 
49
align 16
48
option_box_mouse:
50
option_box_mouse:
49
        pusha
51
	pusha
50
	mcall	37,2
52
	mcall SF_MOUSE_GET,SSF_BUTTON
51
	test    eax,eax
53
	test  eax,eax
-
 
54
	jnz @f
52
	jnz	@f
55
	popa
53
	popa
56
	ret 4
-
 
57
 
54
        ret 4
58
@@:
55
@@:
59
	mov   eax,dword[esp+36]
56
        mov     eax,dword [esp+36]
60
@@:
57
@@:     mov     edi,dword [eax]
61
	mov   edi,dword[eax]
58
        test    edi,edi
62
	test  edi,edi
59
        je      option_check
63
	je    option_check
Line 60... Line -...
60
        call    option_box_mouse_op
-
 
61
        add     eax,4
64
	call  option_box_mouse_op
62
        jmp    @b 
-
 
63
 
65
	add   eax,4
64
}
66
	jmp   @b 
Line 65... Line 67...
65
macro use_optionbox_draw
67
 
66
{
68
align 16
67
option_box_draw_box:
69
option_box_draw_box:
68
        pusha   ;á®åà ­¨¬ ¢á¥ ॣ¨áâàë
70
	pusha   ;á®åà ­¨¬ ¢á¥ ॣ¨áâàë
69
 
71
 
70
        movzx ebx,word op_left 
72
	movzx ebx,word op_left 
71
        shl ebx,16 
-
 
72
        add ebx,dword op_size 
-
 
73
        movzx ecx,word op_top 
73
	shl   ebx,16 
Line 74... Line -...
74
        shl ecx,16 
-
 
75
        add ecx,dword op_size 
74
	add   ebx,dword op_size 
76
        mov edx,dword op_border_color 
75
	movzx ecx,word op_top 
77
        mov eax,13 
76
	shl   ecx,16 
Line 78... Line 77...
78
        mcall ;à¨á㥬 à ¬ªã 
77
	add   ecx,dword op_size 
79
  
78
	mcall SF_DRAW_RECT,,,op_border_color ;à¨á㥬 à ¬ªã 
80
        mov edx,dword op_color 
79
 
81
        add ebx,1 shl 16 - 2 
80
	add   ebx,1 shl 16 - 2 
82
        add ecx,1 shl 16 - 2 
81
	add   ecx,1 shl 16 - 2 
Line 83... Line 82...
83
        mcall ;§ ªà è¨¢ ¥¬ ¢­ãâ७­®á⨠祪¡®ªá  
82
	mcall ,,,op_color ;§ ªà è¨¢ ¥¬ ¢­ãâ७­®á⨠祪¡®ªá  
84
 
83
 
85
;        mov     eax,dword option_group
84
;	mov   eax,dword option_group
-
 
85
;	mov   eax,[eax]
86
;        mov     dword eax,[eax]
86
;	cmp   eax,edi
87
;        cmp     eax,edi
87
;	jne   @f
88
;        jne     @f
88
;	call  option_box_draw_op  ;­ à¨á®¢ âì ¢ª«î祭­ë© 祪 ¡®ªá
89
;        call    option_box_draw_op  ;­ à¨á®¢ âì ¢ª«î祭­ë© 祪 ¡®ªá
89
 
90
 
90
 
91
 
91
;----------------------------
92
;----------------------------
92
;à áç¥â ªã¤  ¡ã¤¥â ¯à®¨§¢¥¤¥­ ¢ë¢®¤ ⥪áâ 
93
;à áç¥â ªã¤  ¡ã¤¥â ¯à®¨§¢¥¤¥­ ¢ë¢®¤ ⥪áâ 
93
;----------------------------
94
;----------------------------
94
@@:
95
@@:     movzx ebx,word op_left        ;§ £à㧨âì §­ ç¥­¨¥ å ¤«ï 祪 ¡®ªá 
-
 
96
        add   ebx,dword op_size
95
	movzx ebx,word op_left ;§ £à㧨âì §­ ç¥­¨¥ å ¤«ï 祪 ¡®ªá 
97
        add   ebx,dword op_text_margin;¤®¡ ¢¨âì à §¬¥à áâ®à®­ë ¨ à ááâ®ï­¨¥ ­  ª®â®à®¬ ­ ç­¥âáï ¢ë¢®¤ ⥪áâ 
-
 
98
        shl   ebx,16                ;ᤢ¨­¥¬ ­  16 à §à冷¢ ¢ «¥¢® (㬭®¦¨¬ ­  65536)
-
 
99
        mov   bx,word op_top        ;§ £à㧨¬ §­ ç¥­¨¥ ¯® y
96
	add   ebx,dword op_size
100
        mov   eax,op_size
97
	add   ebx,dword op_text_margin ;¤®¡ ¢¨âì à §¬¥à áâ®à®­ë ¨ à ááâ®ï­¨¥ ­  ª®â®à®¬ ­ ç­¥âáï ¢ë¢®¤ ⥪áâ 
101
        shr   eax,1
-
 
102
        add   eax,4
-
 
103
        add   ebx,eax
98
	shl   ebx,16       ;ᤢ¨­¥¬ ­  16 à §à冷¢ ¢ «¥¢® (㬭®¦¨¬ ­  65536)
104
        mov   ecx,dword op_text_color        ;§ £à㧨¬ 梥⠭ ¤¯¨á¨ + flags
99
	mov   bx,word op_top ;§ £à㧨¬ §­ ç¥­¨¥ ¯® y
Line 105... Line 100...
105
        sub   ebx,7        ;¤®¡ ¢¨¬ §­ ç¥­¨¥ ¤«¨­ë áâ®à®­ë -9+2
100
	mov   eax,op_size
106
        
101
	shr   eax,1
Line 137... Line 132...
137
        movzx ecx,word op_top ;§ £à㧨âì ª®®à¤¨­ âã ¯® ã
132
	movzx ecx,word op_top ;§ £à㧨âì ª®®à¤¨­ âã ¯® ã
138
        pop   ax
133
	pop   ax
139
        add   cx,ax         
134
	add   cx,ax         
140
        shl   ecx,16          ;ᤢ¨­¥¬ ­  16 à §à冷¢ ¢ «¥¢® (㬭®¦¨¬ ­  65536)
135
	shl   ecx,16       ;ᤢ¨­¥¬ ­  16 à §à冷¢ ¢ «¥¢® (㬭®¦¨¬ ­  65536)
141
        mov   cx,bp           ;§ £à㧨¬ §­ ç¥­¨ï ॣ¨áâà  ãª § â¥«ï ¡ §ë ¢ cx
136
	mov   cx,bp        ;§ £à㧨¬ §­ ç¥­¨ï ॣ¨áâà  ãª § â¥«ï ¡ §ë ¢ cx
142
        mov   eax,13          ;¢ eax - §­ ç¥­¨ï ä㭪樨 ¤«ï ¢ë¢®¤  ¯®«®áë â.¥. ¯® áã⨠¯àאַ㣮«ì­¨ª , ª®â®àë© ®â®¡à ¦ ¥â ¢ª«î祭­ë© ª®¬¯®­¥­â 祪 ¡®ªá
137
	mcall SF_DRAW_RECT ;¢ë¢®¤ ¯®«®áë â.¥. ¯® áã⨠¯àאַ㣮«ì­¨ª , ª®â®àë© ®â®¡à ¦ ¥â ¢ª«î祭­ë© ª®¬¯®­¥­â 祪 ¡®ªá
143
        mcall            ;¢ë¢®¤
-
 
144
ret                                ;¢ë©â¨ ¨§ ¯à®æ¥¤ãàë
138
	ret                ;¢ë©â¨ ¨§ ¯à®æ¥¤ãàë
145
}
-
 
Line 146... Line -...
146
 
-
 
147
 
-
 
148
macro use_optionbox_mouse
139
 
149
{
140
 
150
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
141
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-
 
142
;Ž¡à ¡®â稪 mouse
151
;Ž¡à ¡®â稪 mouse
143
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
152
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
144
align 16
153
option_box_mouse_op:                 ;®¡à ¡®âª  ¬ëè¨ 
145
option_box_mouse_op:                 ;®¡à ¡®âª  ¬ëè¨ 
154
pusha
-
 
155
        mov     esi,dword op_text_length ;§ £à㧨âì ª®«-¢® ᨬ¢®«®¢ ¢ ⥪á⮢®© áâப¥
-
 
156
        ;“¬­®¦¥­¨¥ ­  6 ëáâ஥ 㬭®¦¥­¨¥ ¬®¦­® ¢®á¯®«ì§®¢ âìáï «î¡ë¬ ¬§ ¬¥â®¤®¢, ­® ­  áâ àëå à®æ¥áá®à å (386,486,P1)¡ëáâ॥ ¡ã¤¥â á ¨­áâàãªæ¨¥© Lea
-
 
157
;        lea    esi,[eax*2+eax]
146
pusha
158
;        shl    eax,1
-
 
159
        imul    esi,6               ; ¨«¨ ¬®¦­® ¨ â ª 㬭®¦¨âì ­  6
147
	mov   esi,dword op_text_length ;§ £à㧨âì ª®«-¢® ᨬ¢®«®¢ ¢ ⥪á⮢®© áâப¥
Line 160... Line -...
160
        xor     ebx,ebx
-
 
161
        add     esi,dword op_text_margin   ;¤®¡ ¢¨âì 3 - à ááâ®ï­¨¥ ®â 祪 ¡®ªá  ¤® ­ ¤¯¨á¨
-
 
162
        
148
	imul  esi,6                ;¨«¨ ¬®¦­® ¨ â ª 㬭®¦¨âì ­  6
Line 163... Line 149...
163
        mov     eax,37          ;¯®«ã稬 ª®®à¤¨­ âë ¬ë誨 
149
	add   esi,dword op_text_margin ;¤®¡ ¢¨âì 3 - à ááâ®ï­¨¥ ®â 祪 ¡®ªá  ¤® ­ ¤¯¨á¨
164
        inc     ebx             ;¤®¡ ¢¨âì 1
150
 
165
        mcall                ;¯®«ãç¨âì ª®®à¤¨­ âë ªãàá®à  ®â­®á¨â¥«ì­® ®ª­  
151
	mcall SF_MOUSE_GET,SSF_WINDOW_POSITION ;¯®«ãç¨âì ª®®à¤¨­ âë ªãàá®à  ®â­®á¨â¥«ì­® ®ª­  
166
 
152
 
Line 183... Line 169...
183
        mov     [eax],edi
169
	mov   [eax],edi
Line 184... Line 170...
184
 
170
 
185
option_box_mouse_end:
171
option_box_mouse_end:
186
popa                              ;¢®ááâ ­®¢¨âì ॣ¨áâàë ¨§ á⥪ 
172
	popa                         ;¢®ááâ ­®¢¨âì ॣ¨áâàë ¨§ á⥪ 
187
ret                               ;¢ë©â¨
-
 
188
 
-
 
189
}
173
	ret                          ;¢ë©â¨