Subversion Repositories Kolibri OS

Rev

Rev 2592 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
1815 yogev_ezra 1
;
2
;   PANEL SETUP
3
;
3645 fedesco 4
;------------------------------------------------------------------------------
2592 mario79 5
; last update:  09/04/2012
6
; changed by:   Marat Zakiyanov aka Mario79, aka Mario
7
; changes:      Code optimizing and refactoring.
3645 fedesco 8
;
2592 mario79 9
;------------------------------------------------------------------------------
10
	use32
11
	org 0x0
12
	db 'MENUET01'		; 8 byte id
13
	dd 0x01			; header version
14
	dd START		; start of code
15
	dd IM_END		; size of image
16
	dd I_END	;0x8000		; memory for app
17
	dd stack_top		; esp
18
	dd 0x0			; boot parameters
19
	dd 0x0			; path
20
;------------------------------------------------------------------------------
1829 clevermous 21
include '../../../macros.inc'
3645 fedesco 22
include 'lang.inc'
2592 mario79 23
;------------------------------------------------------------------------------
24
START:
3645 fedesco 25
;------------------------------------------------------------------------------
2592 mario79 26
align 4
27
red:
28
	call	draw_window
3645 fedesco 29
;------------------------------------------------------------------------------
2592 mario79 30
align 4
1815 yogev_ezra 31
still:
2592 mario79 32
	mcall	10
3645 fedesco 33
 
2592 mario79 34
	cmp	eax,1	; redraw request ?
35
	je	red
1815 yogev_ezra 36
 
2592 mario79 37
	cmp	eax,2	; key in buffer ?
38
	je	key
1815 yogev_ezra 39
 
2592 mario79 40
	cmp	eax,3	; button in buffer ?
41
	je	button
3645 fedesco 42
 
2592 mario79 43
	jmp	still
3645 fedesco 44
;------------------------------------------------------------------------------
2592 mario79 45
align 4
46
key:
47
	mcall	2
3645 fedesco 48
 
2592 mario79 49
	shr	eax,8
50
	cmp	eax,'0'
51
	jb	still
1815 yogev_ezra 52
 
2592 mario79 53
	cmp	eax,'9'
54
	jg	still
3645 fedesco 55
 
2592 mario79 56
	mov	edi,[ent]
57
	add	edi,text
58
	mov	esi,edi
59
	inc	esi
60
	mov	ecx,3
61
	cld
62
	rep	movsb
3645 fedesco 63
 
2592 mario79 64
	mov	[edi],al
3645 fedesco 65
 
2592 mario79 66
	jmp	red
3645 fedesco 67
;------------------------------------------------------------------------------
2592 mario79 68
align 4
69
button:
70
	mcall	17
3645 fedesco 71
 
2592 mario79 72
	cmp	ah,1	; button id=1 ?
73
	jne	noclose
1815 yogev_ezra 74
 
2592 mario79 75
	mcall	-1	; close this program
76
;--------------------------------------
77
align 4
78
noclose:
79
	cmp	ah,10
80
	jne	no_apply
3645 fedesco 81
 
2592 mario79 82
	mov	esi,text+17
83
	mov	edi,panel_ini_data_area	;I_END+10
84
	mov	ecx,12
85
;--------------------------------------
86
align 4
87
newfe:
88
	mov	ebx,[esi]
89
	mov	[edi],ebx
90
	mov	[edi+4],byte ';'
91
	add	edi,5
92
	add	esi,55
93
	loop	newfe
1815 yogev_ezra 94
 
2592 mario79 95
	mov	[edi],byte 'x'
96
	mcall	70,dat_write
97
	mov	esi,1
98
;--------------------------------------
99
align 4
100
newread:
101
	inc	esi
102
	mcall	9,proc_info,esi
103
	cmp	esi,eax
104
	jg	all_terminated
3645 fedesco 105
 
2592 mario79 106
	mov	eax,[ebx+10]
107
	and	eax,not 0x20202000
108
	cmp	eax,'@PAN'
109
	jne	newread
1815 yogev_ezra 110
 
2592 mario79 111
	mov	eax,[ebx+14]
112
	and	eax,not 0x2020
113
	cmp	ax,'EL'
114
	jne	newread
3645 fedesco 115
 
2592 mario79 116
	mcall	18,2,esi
3645 fedesco 117
 
2592 mario79 118
	mcall	5,5
3645 fedesco 119
 
2592 mario79 120
	mov	esi,1
121
	jmp	newread
122
;--------------------------------------
123
align 4
124
all_terminated:
125
	mcall	5,25
1815 yogev_ezra 126
 
2592 mario79 127
	mcall	70,panel_start
128
;--------------------------------------
129
align 4
130
no_apply:
131
	cmp	ah,11
132
	jb	still
1815 yogev_ezra 133
 
2592 mario79 134
	shr	eax,8
135
	sub	eax,11
136
	imul	eax,55
137
	add	eax,17
138
	mov	[ent],eax
139
	mov	[text+eax],dword '0000'
140
	jmp	red
3645 fedesco 141
;------------------------------------------------------------------------------
1815 yogev_ezra 142
;   *********************************************
143
;   *******  WINDOW DEFINITIONS AND DRAW ********
144
;   *********************************************
3645 fedesco 145
;------------------------------------------------------------------------------
2592 mario79 146
align 4
1815 yogev_ezra 147
draw_window:
2592 mario79 148
	mcall	12,1
149
; DRAW WINDOW
150
	xor	eax,eax
151
	xor	esi,esi
152
	mcall	,<100,385>,<100,190>,0x14ffffff,,labelt
1815 yogev_ezra 153
 
2592 mario79 154
	mcall	8,<25,335>,<162,12>,10,0x80a0c0	;0x6677cc
1815 yogev_ezra 155
 
2592 mario79 156
	mov	ebx,340*65536+20
157
	mov	ecx,34*65536+10
158
	inc	edx	;11 - button
159
;--------------------------------------
160
align 4
161
newb:
162
	mcall
163
	add	ecx,10*65536
164
	inc	edx
165
	cmp	edx,23
166
	jb	newb
1815 yogev_ezra 167
 
2592 mario79 168
	mov	ebx,25*65536+35           ; draw info text with function 4
169
	mov	ecx,0x224466
170
	mov	edx,text
171
	mov	esi,55
172
	mov	eax,4
173
;--------------------------------------
174
align 4
175
newline:
176
	mcall
177
	add	ebx,10
178
	add	edx,55
179
	cmp	[edx],byte 'x'
180
	jne	newline
1815 yogev_ezra 181
 
2592 mario79 182
	mcall	12,2
183
	ret
3645 fedesco 184
;------------------------------------------------------------------------------
2592 mario79 185
align 4
1815 yogev_ezra 186
; DATA AREA
3645 fedesco 187
if lang eq it
188
	text:
189
		db 'largehzza        0000  :  0 for full screen width     <'
190
		db 'pulsanti         0000  :  0 no frames  , 1 frames     <'
191
		db 'soften_up        0001  :  0 no         , 1 si         <'
192
		db 'soften_down      0001  :  0 no         , 1 si         <'
193
		db 'minimize_left    0001  :  0 no         , 1 si         <'
194
		db 'minimize_right   0001  :  0 no         , 1 si         <'
195
		db 'posizione icone  0100  :  posizione in pixel          <'
196
		db 'menu_enable      0001  :  0 no         , 1 si         <'
197
		db 'setup_enable     0001  :  0 no         , 1 si         <'
198
		db 'graph_text       0001  :  0 grafica    , 1 text       <'
199
		db 'soften_middle    0001  :  0 no         , 1 si         <'
200
		db 'icone            0001  :  0 start      , 1 attivato   <'
201
		db '                                                       '
202
		db '                        Applica                        '
203
		db 'x'
204
 
205
	labelt:
206
		db 'Setup pannello'
207
	labellen:
208
else
209
	text:
210
		db 'width            0000  :  0 for full screen width     <'
211
		db 'buttons          0000  :  0 no frames  , 1 frames     <'
212
		db 'soften_up        0001  :  0 no         , 1 yes        <'
213
		db 'soften_down      0001  :  0 no         , 1 yes        <'
214
		db 'minimize_left    0001  :  0 no         , 1 yes        <'
215
		db 'minimize_right   0001  :  0 no         , 1 yes        <'
216
		db 'icons_position   0100  :  position in pixels          <'
217
		db 'menu_enable      0001  :  0 no         , 1 yes        <'
218
		db 'setup_enable     0001  :  0 no         , 1 yes        <'
219
		db 'graph_text       0001  :  0 graphics   , 1 text       <'
220
		db 'soften_middle    0001  :  0 no         , 1 yes        <'
221
		db 'icons            0001  :  0 start      , 1 activate   <'
222
		db '                                                       '
223
		db '                         APPLY                         '
224
		db 'x'
225
 
226
	labelt:
227
		db 'Panel setup'
228
	labellen:
229
end if
230
;------------------------------------------------------------------------------
2592 mario79 231
align 4
232
ent	dd  17
3645 fedesco 233
;------------------------------------------------------------------------------
2592 mario79 234
align 4
235
panel_start:
236
	dd 7
237
	dd 0
238
	dd 0
239
	dd 0
240
	dd 0
241
	db '/RD/1/@PANEL',0
3645 fedesco 242
;------------------------------------------------------------------------------
2592 mario79 243
align 4
244
dat_write:
245
	dd 2
246
	dd 0
247
	dd 0
248
	dd 5*12+1
249
	dd panel_ini_data_area	;I_END+10
250
	db 'PANEL.DAT',0
3645 fedesco 251
;------------------------------------------------------------------------------
2592 mario79 252
IM_END:
3645 fedesco 253
;------------------------------------------------------------------------------
2592 mario79 254
align 4
255
proc_info:
256
	rb 1024
257
;------------------------------------------------------------------------------
258
align 4
259
	rb 1024
260
stack_top:
3645 fedesco 261
;------------------------------------------------------------------------------
2592 mario79 262
align 4
263
panel_ini_data_area:
264
	rb 61
3645 fedesco 265
;------------------------------------------------------------------------------
1815 yogev_ezra 266
I_END:
3645 fedesco 267
;------------------------------------------------------------------------------