Subversion Repositories Kolibri OS

Rev

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

Rev 355 Rev 356
Line 1... Line 1...
1
;ª®¬¯®­¥­â OptionBox (Žá­®¢ ­ ­  Checkbox)
1
;ª®¬¯®­¥­â OptionBox (Žá­®¢ ­ ­  Checkbox)
2
;Ž£à®¬­ ï ¡« £®¤ à­®áâì Maxxxx32, Diamond, ¨ ¤à㣨¬ ¯à®£à ¬¬¨áâ ¬, ¨ ¨å ¯à®£à ¬¬ ¬, ¡¥§
2
;Ž£à®¬­ ï ¡« £®¤ à­®áâì Maxxxx32, Diamond, Heavyiron, ¨ ¤à㣨¬ ¯à®£à ¬¬¨áâ ¬, ¨ ¨å ¯à®£à ¬¬ ¬, ¡¥§
3
;ª®â®àëå ï ­¥ ᬮ£ ¡ë ­ ¯¨á âì íâ®â ª®¬¯®­¥­â. 
3
;ª®â®àëå ï ­¥ ᬮ£ ¡ë ­ ¯¨á âì íâ®â ª®¬¯®­¥­â. 
4
;16.02.2007 
4
;16.02.2007 
5
;  - ’¥¯«®¢ €«¥ªá¥©  www.lrz.land.ru
5
;  - ’¥¯«®¢ €«¥ªá¥©  www.lrz.land.ru
Line 6... Line 6...
6
 
6
 
7
macro use_option_box
7
macro use_option_box
8
{
8
{
9
op_text_margin=4     ;à ááâ®ï­¨¥ ®â ¯àאַ㣮«ì­¨ª  祪 ¡®ªá  ¤® ­ ¤¯¨á¨ 
9
op_text_margin=4     ;à ááâ®ï­¨¥ ®â ¯àאַ㣮«ì­¨ª  祪 ¡®ªá  ¤® ­ ¤¯¨á¨ 
10
op_size=10           ;à §¬¥à ª¢ ¤à â  祪 ¡®ªá  
10
op_size=10           ;à §¬¥à ª¢ ¤à â  祪 ¡®ªá  
11
op_left equ [edi]    ;ª®®à¤¨­ â  ­ ç «  à¨á®¢ ­¨ï ¯® å
11
op_left equ [edi]    ;ª®®à¤¨­ â  ­ ç «  à¨á®¢ ­¨ï ¯® å
12
op_top equ [edi+2]   ;ª®®à¤¨­ â  ­ ç «  à¨á®¢ ­¨ï ¯® ã
-
 
13
op_color equ [edi+4] ;梥⠢­ãâਠoptionbox
12
op_top equ [edi+2]   ;ª®®à¤¨­ â  ­ ç «  à¨á®¢ ­¨ï ¯® ã
14
op_border_color equ [edi+8] ;梥â à ¬ª¨ optionbox
13
op_border_color equ [edi+4] ;梥â à ¬ª¨ optionbox
15
op_text_color equ [edi+12]  ;梥â ⥪áâ 
14
op_text_color equ [edi+8]  ;梥â ⥪áâ 
16
op_text_ptr equ [edi+16]    ;㪠§ â¥«ì ­  ­ ç «® ⥪á⮢®© áâப¨ 
15
op_text_ptr equ [edi+12]    ;㪠§ â¥«ì ­  ­ ç «® ⥪á⮢®© áâப¨ 
17
op_text_length equ [edi+20] ;¤«¨­  ­ ¤¯¨á¨ (2^64 â ª®© ¤«¨­ë ¬®¦¥â ¡ëâì ⥪áâ)
16
op_text_length equ [edi+16] ;¤«¨­  ­ ¤¯¨á¨ (2^64 â ª®© ¤«¨­ë ¬®¦¥â ¡ëâì ⥪áâ)
18
op_optibox_gr	equ [edi+22]
17
op_optibox_gr	equ [edi+18]
19
option_box:
18
option_box:
20
.draw:
19
.draw:
21
pusha   ;á®åà ­¨¬ ¢á¥ ॣ¨áâàë
20
pusha   ;á®åà ­¨¬ ¢á¥ ॣ¨áâàë
22
	mov	eax,38     	;à¨á®¢ ­¨¥ «¨­¨¨
21
	mov	eax,38     	;à¨á®¢ ­¨¥ «¨­¨¨
Line 32... Line 31...
32
	shl	ecx,16		; ᤢ¨­¥¬ ­  16 à §à冷¢ ¢ «¥¢® (㬭®¦¨¬ ­  65536)	mov	cx,si		;¢®ááâ ­®¢¨¬ §­ ç¥­¨¥ ॣ¨áâà  cx
31
	shl	ecx,16		; ᤢ¨­¥¬ ­  16 à §à冷¢ ¢ «¥¢® (㬭®¦¨¬ ­  65536)	mov	cx,si		;¢®ááâ ­®¢¨¬ §­ ç¥­¨¥ ॣ¨áâà  cx
33
	mov 	cx,si		;¢®ááâ ­®¢¨¬ §­ ç¥­¨¥ ॣ¨áâà  cx
32
	mov 	cx,si		;¢®ááâ ­®¢¨¬ §­ ç¥­¨¥ ॣ¨áâà  cx
34
	;pop	cx    	;[ª®®à¤¨­ â  ­ ç «  ¯® ®á¨ y]*65536 + [ª®®à¤¨­ â  ­ ç «  ¯® ®á¨ y]
33
	;pop	cx    	;[ª®®à¤¨­ â  ­ ç «  ¯® ®á¨ y]*65536 + [ª®®à¤¨­ â  ­ ç «  ¯® ®á¨ y]
35
	;push	cx       
34
	;push	cx       
36
	add	ecx,op_size ;[ª®®à¤¨­ â  ­ ç «  ¯® ®á¨ y]*65536 + [ª®®à¤¨­ â  ª®­æ  ¯® ®á¨ y]
35
	add	ecx,op_size ;[ª®®à¤¨­ â  ­ ç «  ¯® ®á¨ y]*65536 + [ª®®à¤¨­ â  ª®­æ  ¯® ®á¨ y]
37
	mov	edx,op_border_color ;–¢¥â «¨­¨¨
36
	mov	edx,dword op_border_color ;–¢¥â «¨­¨¨
38
	int	0x40   ;à¨á®¢ ­¨¥ ¢¥à⨪ «ì­®© «¥¢®© «¨­¨¨ ª¢ ¤à â  (¯àאַ㣮«ì­¨ª )
37
	int	0x40   ;à¨á®¢ ­¨¥ ¢¥à⨪ «ì­®© «¥¢®© «¨­¨¨ ª¢ ¤à â  (¯àאַ㣮«ì­¨ª )
39
;
38
;
40
	mov	ebp,ebx	;á®åà ­¨¬ ॣ¨áâà bx ¢ ॣ¨áâॠ㪠§ â¥«ï ¡ §ë
39
	mov	ebp,ebx	;á®åà ­¨¬ ॣ¨áâà bx ¢ ॣ¨áâॠ㪠§ â¥«ï ¡ §ë
41
	;push	bx   ;¢â®«ª­ãâì ¢ bx [ª®®à¤¨­ â  ­ ç «  ¯® ®á¨ å]*65536 + [ª®®à¤¨­ â  ­ ç «  ¯® ®á¨ x]
40
	;push	bx   ;¢â®«ª­ãâì ¢ bx [ª®®à¤¨­ â  ­ ç «  ¯® ®á¨ å]*65536 + [ª®®à¤¨­ â  ­ ç «  ¯® ®á¨ x]
42
	add	ebx,op_size      ;[ª®®à¤¨­ â  ­ ç «  + ¤«¨­  áâ®à®­ë ¯® ®á¨ å]
41
	add	ebx,op_size      ;[ª®®à¤¨­ â  ­ ç «  + ¤«¨­  áâ®à®­ë ¯® ®á¨ å]
Line 68... Line 67...
68
	movzx	ecx,word op_top	;§ £à㧨¬ ª®®à¤¨­ âë ¯® y
67
	movzx	ecx,word op_top	;§ £à㧨¬ ª®®à¤¨­ âë ¯® y
69
	add	ecx,1		;ᤢ¨­¥¬ ­  1 â.¥. ¯à¨¡ ¢¨¬ 1 ¨­ ç¥ § âà¥âáï à ¬ª 
68
	add	ecx,1		;ᤢ¨­¥¬ ­  1 â.¥. ¯à¨¡ ¢¨¬ 1 ¨­ ç¥ § âà¥âáï à ¬ª 
70
	shl	ecx,16		;ᤢ¨­¥¬ ­  16 à §à冷¢ ¢ «¥¢® (㬭®¦¨¬ ­  65536)
69
	shl	ecx,16		;ᤢ¨­¥¬ ­  16 à §à冷¢ ¢ «¥¢® (㬭®¦¨¬ ­  65536)
71
	mov	cx,bp		;¢®ááâ ­®¢¨¬ §­ ç¥­¨¥ ॣ¨áâà  cx
70
	mov	cx,bp		;¢®ááâ ­®¢¨¬ §­ ç¥­¨¥ ॣ¨áâà  cx
72
	;pop	cx
71
	;pop	cx
73
	mov	edx,op_color	;§ £à㧨¬ 梥⠯®«®áë
72
	mov	edx,dword [sc.work]	;§ £à㧨¬ 梥⠯®«®áë
74
	int	0x40            ;§ ªà á¨«¨ 
73
	int	0x40            ;§ ªà á¨«¨ 
Line 75... Line 74...
75
 
74
 
76
        mov	eax,op_optibox_gr
75
        mov	eax,dword op_optibox_gr
77
	mov	dword eax,[eax]
76
	mov	dword eax,[eax]
78
        cmp	eax,edi
77
        cmp	eax,edi
79
	jne	@f
78
	jne	@f
80
	call	.draw_op  ;­ à¨á®¢ âì ¢ª«î祭­ë© 祪 ¡®ªá
79
	call	.draw_op  ;­ à¨á®¢ âì ¢ª«î祭­ë© 祪 ¡®ªá
Line 95... Line 94...
95
	int	0x40          	;‚뢮¤ 
94
	int	0x40          	;‚뢮¤ 
96
popa				;¢®ááâ ­®¢¨âì §­ ç¥­¨ï ॣ¨áâ஢ ¨§ á⥪ 
95
popa				;¢®ááâ ­®¢¨âì §­ ç¥­¨ï ॣ¨áâ஢ ¨§ á⥪ 
97
ret				;¢ë©¤¥¬ ¨§ ¯à®æ¥¤ãàë
96
ret				;¢ë©¤¥¬ ¨§ ¯à®æ¥¤ãàë
Line 98... Line 97...
98
 
97
 
99
.clear_op:			;®ç¨á⪠ 祪 ¡®ªá 
98
.clear_op:			;®ç¨á⪠ 祪 ¡®ªá 
100
	mov	edx,op_color	;梥⠢­ãâਠ祪 ¡®ªá 
99
	mov	edx,dword [sc.work]	;梥⠢­ãâਠ祪 ¡®ªá 
Line 101... Line 100...
101
	jmp	@f		;¡¥§ãá«®¢­ë© ¯à릮ª ­  ­¨¦­îî ¬¥âªã @@
100
	jmp	@f		;¡¥§ãá«®¢­ë© ¯à릮ª ­  ­¨¦­îî ¬¥âªã @@
102
 
101
 
103
.draw_op:            ;­ à¨á®¢ âì ¢ª«î祭­ë© 祪 ¡®ªá
102
.draw_op:            ;­ à¨á®¢ âì ¢ª«î祭­ë© 祪 ¡®ªá
Line 131... Line 130...
131
	movzx	esi,word op_text_length ;§ £à㧨âì ª®«-¢® ᨬ¢®«®¢ ¢ ⥪á⮢®© áâப¥
130
	movzx	esi,word op_text_length ;§ £à㧨âì ª®«-¢® ᨬ¢®«®¢ ¢ ⥪á⮢®© áâப¥
132
	;“¬­®¦¥­¨¥ ­  6 ëáâ஥ 㬭®¦¥­¨¥ ¬®¦­® ¢®á¯®«ì§®¢ âìáï «î¡ë¬ ¬§ ¬¥â®¤®¢, ­® ­  áâ àëå à®æ¥áá®à å (386,486,P1)¡ëáâ॥ ¡ã¤¥â á ¨­áâàãªæ¨¥© Lea
131
	;“¬­®¦¥­¨¥ ­  6 ëáâ஥ 㬭®¦¥­¨¥ ¬®¦­® ¢®á¯®«ì§®¢ âìáï «î¡ë¬ ¬§ ¬¥â®¤®¢, ­® ­  áâ àëå à®æ¥áá®à å (386,486,P1)¡ëáâ॥ ¡ã¤¥â á ¨­áâàãªæ¨¥© Lea
133
	;lea	esi,[eax*2+eax]
132
	;lea	esi,[eax*2+eax]
134
	;shl	eax,1
133
	;shl	eax,1
135
	imul	esi,6               ; ¨«¨ ¬®¦­® ¨ â ª 㬭®¦¨âì ­  6
134
	imul	esi,6               ; ¨«¨ ¬®¦­® ¨ â ª 㬭®¦¨âì ­  6
-
 
135
	xor	ebx,ebx
136
        add	esi,op_text_margin   ;¤®¡ ¢¨âì 3 - à ááâ®ï­¨¥ ®â 祪 ¡®ªá  ¤® ­ ¤¯¨á¨
136
        add	esi,op_text_margin   ;¤®¡ ¢¨âì 3 - à ááâ®ï­¨¥ ®â 祪 ¡®ªá  ¤® ­ ¤¯¨á¨
Line 137... Line 137...
137
	
137
	
138
	mov	eax,37		;¯®«ã稬 ª®®à¤¨­ âë ¬ë誨 
138
	mov	eax,37		;¯®«ã稬 ª®®à¤¨­ âë ¬ë誨 
139
	mov	ebx,1		;¤®¡ ¢¨âì 1
139
	inc	ebx		;¤®¡ ¢¨âì 1
Line 140... Line 140...
140
	int	0x40                ;¯®«ãç¨âì ª®®à¤¨­ âë ªãàá®à  ®â­®á¨â¥«ì­® ®ª­  
140
	int	0x40                ;¯®«ãç¨âì ª®®à¤¨­ âë ªãàá®à  ®â­®á¨â¥«ì­® ®ª­  
141
 
141
 
142
	movzx	ebx,word op_top           ;§ £à㧨âì ¢ bx §­ ç¥­¨¥ ª®®à¤¨­ âë ã
142
	movzx	ebx,word op_top           ;§ £à㧨âì ¢ bx §­ ç¥­¨¥ ª®®à¤¨­ âë ã
Line 152... Line 152...
152
	jl	.mouse_end	     ;¥á«¨ ¬¥­ìè¥
152
	jl	.mouse_end	     ;¥á«¨ ¬¥­ìè¥
153
	add	ebx,op_size	     ;¤®¡ ¢¨âì ¤«¨­ã áâ®à®­ë ¯àאַ㣮«ì­¨ª 
153
	add	ebx,op_size	     ;¤®¡ ¢¨âì ¤«¨­ã áâ®à®­ë ¯àאַ㣮«ì­¨ª 
154
	add	ebx,esi		    ;“ç¥áâì ¢ §­ ç¥­¨¨ ¯® å ¥é¥ ¨ ¤«¨­ã ­ ¤¯¨á¨ ª 祪¡®ªáã
154
	add	ebx,esi		     ;“ç¥áâì ¢ §­ ç¥­¨¨ ¯® å ¥é¥ ¨ ¤«¨­ã ­ ¤¯¨á¨ ª 祪¡®ªáã
155
	cmp	ax,bx		     ;áâà ¢­¨âì ॣ¨áâàë
155
	cmp	ax,bx		     ;áâà ¢­¨âì ॣ¨áâàë
156
	jg	.mouse_end	     ;¥á«¨ ¡®«ìè¥ 
156
	jg	.mouse_end	     ;¥á«¨ ¡®«ìè¥ 
157
	mov	eax,op_optibox_gr
157
	mov	eax,dword op_optibox_gr
158
        mov	[eax],edi
158
        mov	[eax],edi
Line 159... Line 159...
159
 
159
 
160
.mouse_end:
160
.mouse_end:
161
popa				  ;¢®ááâ ­®¢¨âì ॣ¨áâàë ¨§ á⥪ 
161
popa				  ;¢®ááâ ­®¢¨âì ॣ¨áâàë ¨§ á⥪ 
162
ret				  ;¢ë©â¨
162
ret				  ;¢ë©â¨
Line 163... Line 163...
163
}
163
}
164
 
164
 
165
struc option_box left,top,color,border_color,text_color,text,text_length,point_gr,flags
165
struc option_box left,top,border_color,text_color,text,text_length,point_gr,flags
166
{	;áâàãªâãà  ¯ à ¬¥â஢ ¤«ï 祪 ¡®ªá 
166
{	;áâàãªâãà  ¯ à ¬¥â஢ ¤«ï 祪 ¡®ªá 
167
.left: dw left	;+0	;¯®«®¦¥­¨¥ ¯® å
-
 
168
.top: dw top	;+2	;¯®«®¦¥­¨¥ ¯® ã
167
.left: dw left	;+0	;¯®«®¦¥­¨¥ ¯® å
169
.color: dd color ;+4	;梥⠢­ãâਠ祪 ¡®ªá 
168
.top: dw top	;+2	;¯®«®¦¥­¨¥ ¯® ã
170
.border_color: dd border_color ;+8	梥â à ¬ª¨ 
169
.border_color: dd border_color ;+8	梥â à ¬ª¨ 
171
.text_color: dd text_color     ;+12	梥â ⥪áâ  ­ ¤¯¨á¨
170
.text_color: dd text_color     ;+12	梥â ⥪áâ  ­ ¤¯¨á¨
172
.text: dd text	     ;+16		 ¤à¥á ¢ ª®¤¥ ¯à®£à ¬¬ë £¤¥ à á¯®«®¦¥­ ⥪áâà
171
.text: dd text	     ;+16		 ¤à¥á ¢ ª®¤¥ ¯à®£à ¬¬ë £¤¥ à á¯®«®¦¥­ ⥪áâà
173
.text_length: dw text_length ; +20	¤«¨­  ⥪áâ 
172
.text_length: dw text_length ; +20	¤«¨­  ⥪áâ 
174
.option_group: dd point_gr	;㪠§ â¥«ì ­  à §¬¥é¥­¨¥ edi - ¨¤¥­â¨ä¨ª â®à  optibox
173
.option_group: dd point_gr	;㪠§ â¥«ì ­  à §¬¥é¥­¨¥ edi - ¨¤¥­â¨ä¨ª â®à  optibox
175
}
174
}
176
op_struc_size=26			;®¡é ï áâàãªâãà  24 ¡ ©â
175
op_struc_size=22			;®¡é ï áâàãªâãà  24 ¡ ©â
177
op_flag_en=10b
176
op_flag_en=10b
178
macro draw_option_boxes start,end	;à¨á®¢ âì 祪 ¡®ªáë
177
macro draw_option_boxes start,end	;à¨á®¢ âì 祪 ¡®ªáë
179
{
178
{
Line 195... Line 194...
195
 
194
 
196
       	mov	edi,start		; “ª § â¥«ì ­  ­ ç «® ¤ ­­ëå 祪 ¡®ªá®¢ â.¥. ­  ­ ç «® ¤ ­­ëå ¯¥à¢®£® 祪¡®ªá 
195
       	mov	edi,start		; “ª § â¥«ì ­  ­ ç «® ¤ ­­ëå 祪 ¡®ªá®¢ â.¥. ­  ­ ç «® ¤ ­­ëå ¯¥à¢®£® 祪¡®ªá 
Line 197... Line 196...
197
	mov	ecx,((end-start)/op_struc_size)	;Š®«¨ç¥á⢮ 祪 ¡®ªá®¢
196
	mov	ecx,((end-start)/op_struc_size)	;Š®«¨ç¥á⢮ 祪 ¡®ªá®¢
198
 
197
 
199
.home:
198
.home:
Line 200... Line 199...
200
	mov	eax,[edi+22]	;op_optibox_gr
199
	mov	eax,[edi+18]	;op_optibox_gr
Line 201... Line 200...
201
        mov	dword eax,[eax]
200
        mov	dword eax,[eax]