Subversion Repositories Kolibri OS

Rev

Rev 139 | Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
134 diamond 1
;   *********************************************
2
;   *******  DRAW PLAY BAR **********************
3
;   *********************************************
4
 
5
draw_bar:
6
    push eax ebp
7
    mov  eax,[cur_tick]
8
    test eax,eax
9
    jz   .ex
10
    mov  ebp,[coo]
11
    mov  ebx,[ebp-20]
12
    mul  ebx
13
    mov  ebx,[tick_count]
14
    test ebx,ebx
15
    jz   .ex
16
    div  ebx
17
    mov  ebx,[ebp-16]
18
    mov  bx,ax
19
    mov  ecx,[ebp-12]
20
    mov  edx,0x84706a
21
    mov  eax,13
22
    int  0x40
23
    mov  esi,TOTALTIME_XY
24
    mov  eax,[tick_count]
25
    call draw_total_time
26
  .nobar:
27
    mov  esi,[ebp+20]
28
    mov  ebx,[ebp+12]
29
    mov  ecx,[ebp+16]
30
    call draw_cur_time
31
    mov  esi,140 shl 16+(WND_HEIGHT-18)
32
    sub  ebx,95 shl 16
33
    add  ecx,(WND_HEIGHT-34)shl 16
34
    call draw_cur_time
35
  .ex:
36
    pop  ebp eax
37
    ret
38
 
39
 
40
 
41
;   *********************************************
42
;   *******      *******
43
;   *********************************************
44
 
45
draw_window:
46
    mov  eax,12
47
    mov  ebx,1
48
    int  0x40
49
    or   [flag],FL_BOTTRED
50
    xor  eax,eax
51
    mov  ebx,100*65536+275
52
    mov  ecx,200*65536+WND_HEIGHT
53
    mov  edi,hdr_raw+12
54
    mov  ebp,[coo]
55
    test [flag],FL_HIDDEN
56
    jz   .nohide1
57
    and  ebx,0xffff
58
    and  ecx,0xffff
59
    add  edi,275*14*3
60
  .nohide1:
61
    push edi
62
    mov  edx,WND_BACK
63
    mov  esi,edx
64
    mov  edi,edx
65
    int  0x40
66
    mov  ecx,[channel]
67
    shl  ecx,4
68
    add  cl,[sel_track]
69
    mcall 47,0x20100,,<191,15>,0xf0f000
70
    movsx ecx,[octave]
71
    add   ecx,100
72
    mcall ,0x30000,,<132,15>
73
    pop  ebx
74
    mcall 7,,(275 shl 16+14),0
75
    mov  esi,0x80ecce7a
76
 
77
    mov  eax,8
78
    mov  ebx,265 shl 16+7
79
    mov  ecx,3 shl 16+7
80
    mov  edx,1+1 shl 30
81
    int  0x40        ; close button
82
    sub  ebx,10 shl 16
83
    mov  edx,100+1 shl 30
84
    int  0x40        ; shade button-101
85
    sub  ebx,10 shl 16
86
    add  edx,3
87
    int  0x40        ; minimize button-103
88
    sub  ebx,239 shl 16
89
    inc  edx         ; about button-104
90
    int  0x40
91
    xor  esi,esi
92
    xor  edi,edi
93
    mov  ecx,3
94
    pushd [ebp+12]
95
    pushd [ebp+16]
96
    call draw_navigation
97
    add  esp,8
98
 
99
    mov  ebx,[ebp-16]
100
    add  ebx,[ebp-20]
101
    mov  ecx,[ebp-12]
102
    add  ecx,[ebp-24]
103
    mov  esi,0x2c2b46
104
    mov  edx,2+1 shl 29
105
    int  0x40
106
 
107
    shr  eax,1
108
 
109
    mov  ecx,12
110
    mov  ebx,FN_XY
111
    mov  edx,[fn_ptr];I_PARAM;filename
112
    mov  esi,1;[fname_len]
113
    mov  edi,0x00e200
114
  .fnlp:
115
    push ecx
116
    mcall ,,edi
117
    add  ebx,1 shl 16
118
    mcall
119
    add  ebx,6 shl 16
120
    inc  edx
121
    pop  ecx
122
    loop .fnlp
123
    add  ebx,5 shl 16
124
    mcall ,,0xa0a0a0,text,text_end-text
125
    call draw_bar
126
    call PL_show
127
    test [flag],FL_HIDDEN
128
    jnz  .nohide2
129
    mov  eax,7
130
    mov  ebx,btn_raw+12
131
    mov  ecx,BTNS_SIZE
132
    mov  edx,BTNS_XY
133
    int  0x40
134
  .nohide2:
135
    mov  esi,FL_SHUFFLE
136
    mov  edi,btncoords+8
137
    mov  eax,13
138
    mov  edx,0xd600
139
    mov  ecx,2
140
  .loo3:
141
    test [flag],esi
142
    je   .el
143
    mov  ebx,[edi]
144
    add  ebx,5 shl 16
145
    add  ebx,[ebp]
146
    mov  bx,3
147
    push ecx
148
    mov  ecx,[edi+4]
149
    add  ecx,4 shl 16
150
    add  ecx,[ebp+4]
151
    mov  cx,2
152
    int  0x40
153
    pop  ecx
154
  .el:
155
    add  edi,8
156
    inc  esi
157
    loop .loo3
158
 
159
  .enddraw:
160
    mov  eax,12
161
    mov  ebx,2
162
    int  0x40
163
    ret
164
 
165
draw_navigation:
166
; ebp - coordinates
167
    push esi edi ecx
168
    mov  eax,8
169
 
170
    mov  ecx,5
171
    mov  ebx,[ebp]
172
    add  ebx,[ebp-8]
173
    add  ebx,esi
174
    mov  edx,3+1 shl 30
175
  .btnloo:
176
    push ecx
177
    mov  ecx,[ebp+4]
178
    add  ecx,[ebp-4]
179
    add  ecx,edi
180
    int  0x40
181
    pop  ecx
182
    add  ebx,[ebp+8]
183
    inc  edx
184
    loop .btnloo
185
    pop  ecx
186
 
187
    lea  edi,[ebp+24]
188
  .btnloo2:
189
    mov  ebx,[edi]
190
    add  ebx,[ebp]
191
    add  ebx,[esp+4]
192
    push ecx
193
    mov  ecx,[edi+4]
194
    add  ecx,[ebp+4]
195
    add  ecx,[esp+4]
196
    int  0x40
197
    pop  ecx
198
    add  edi,8
199
    inc  edx
200
    loop .btnloo2
201
    pop  edi esi
202
    ret
203
 
204
draw_cur_time:
205
    pusha
206
    mcall 13,,,WND_BACK
207
    mcall 8,,,101+1 shl 29+1 shl 30
208
    mov  ebx,[tick_count]
209
    mov  eax,[cur_tick]
210
    test [flag],FL_REVERSE
211
    jz   .norev
212
    xchg eax,ebx
213
    sub  eax,ebx
214
    lea  ebx,[esi-6 shl 16]
215
    push eax
216
    mcall 4,,0xf000,dots+1,1
217
    pop  eax
218
  .norev:
219
    mov  [esp+28],eax
220
    popa
221
draw_total_time:      ; eax -time to show
222
    pusha
223
    xor  edx,edx
224
    mov  ebx,100
225
    div  ebx
226
    xor  edx,edx
227
    mov  ebx,60
228
    div  ebx
229
    push edx
230
    mov  ecx,eax
231
    mcall 47,0x20000,,esi,0xf000
232
    pop  ecx
233
    add  edx,17 shl 16
234
    int  0x40
235
    sub  edx,5 shl 16
236
    mcall 4,edx,esi,dots,1
237
    popa
238
    ret
239
 
240
BOTT_BTN equ 25 shl 16+18
241
BOTT_SIZEX equ 25
242
BOTT_SIZEY equ 18
243
BOTT_S     equ BOTT_SIZEX*BOTT_SIZEY*3
244
BOTT_X  equ PL_X
245
BOTT_Y  equ (WND_HEIGHT-27)
246
BOTT_SPACE equ 30 shl 16
247
 
248
popup db -1
249
 
250
draw_bottom:
251
    pusha
252
    mcall 13,175,(BOTT_Y-5)shl 16+24,WND_BACK
253
    add  ebx,(266-30)shl 16-135
254
    mcall
255
    mov  ecx,5
256
    mov  esi,bot_btn
257
    push esi
258
    mov  ebx,bottom_raw+12
259
    xor  eax,eax
260
  .nxt:
261
    push ecx
262
    lodsw
263
    shl  eax,16
264
    lea  edx,[eax+BOTT_Y]
265
    mcall 7,,BOTT_BTN
266
    add  ebx,BOTT_S*4
267
    pop  ecx
268
    cmp  ecx,4
269
    jne  .noadj
270
    add  ebx,BOTT_S
271
  .noadj:
272
    loop .nxt
273
    mov  esi,[esp]
274
    mov  ecx,5
275
    mov  ebp,BOTT_Y shl 16+BOTT_SIZEY
276
    mov  edx,20+1 shl 30
277
  .nxt2:
278
    push ecx
279
    lodsw
280
    shl  eax,16
281
    lea  ebx,[eax+BOTT_SIZEX+2 shl 16-3]
282
    mcall 8,,ebp
283
    inc  edx
284
    pop  ecx
285
    loop .nxt2
286
    pop  esi
287
    call draw_popup
288
    popa
289
    ret
290
 
291
draw_popup:
292
    movsx eax,[popup]
293
    cmp  eax,0
294
    jge  .ok
295
    mov  edx,30+1 shl 31
296
    mov  ecx,21
297
    mov  eax,8
298
  .clr:
299
    mcall
300
    inc  edx
301
    loop .clr
302
    jmp  .ex
303
  .ok:
304
    push eax
305
    lea  edx,[eax+1 shl 31+20]
306
    mcall 8
307
    pop  eax
308
    mov  ebx,eax
309
    shl  eax,2
310
    mov  ecx,3
311
    cmp  eax,4
312
    jne  .noadj1
313
    inc  ecx
314
  .noadj1:
315
    cmp  eax,8
316
    jb   .noadj2
317
    inc  eax
318
  .noadj2:
319
    inc  eax
320
    push eax
321
    movzx edx,word[bot_btn+ebx*2]
322
    shl  edx,16
323
    add  edx,BOTT_Y
324
    push edx
325
  .noadj3:
326
    imul ebx,eax,BOTT_S
327
    add  ebx,bottom_raw+12
328
    push ecx
329
  .nxt:
330
    push ecx
331
    mcall 7,,BOTT_BTN
332
    add  ebx,BOTT_S
333
    sub  edx,BOTT_SIZEY
334
    pop  ecx
335
    loop .nxt
336
    pop  ecx ebx edx
337
    mov  ebp,BOTT_Y shl 16+BOTT_SIZEY
338
    mov  eax,8
339
    add  edx,1 shl 30+30
340
    add  ebx,2 shl 16
341
    mov  bx,BOTT_SIZEX-3
342
  .nxt2:
343
    push ecx
344
    mcall ,,ebp
345
    inc  edx
346
    sub  ebp,BOTT_SIZEY shl 16
347
    pop  ecx
348
    loop .nxt2
349
  .ex:
350
    ret
351
 
352
bot_btn:
353
    dw 10,40,70,100,240
354
 
355
about1:
356
  db 13,10,'* MIDAMP for MenuetOS v1.0 by Willow, July 2005 *',13,10,0