Subversion Repositories Kolibri OS

Rev

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

Rev 49 Rev 52
Line 266... Line 266...
266
;                   ebx = [top]*65536+[bottom]
266
;                   ebx = [top]*65536+[bottom]
267
;    eax = 6         ; set screen workarea
267
;    eax = 6         ; set screen workarea
268
;          input  : ecx = [left]*65536+[right]
268
;          input  : ecx = [left]*65536+[right]
269
;                   edx = [top]*65536+[bottom]
269
;                   edx = [top]*65536+[bottom]
270
;          output : nothing
270
;          output : nothing
-
 
271
;    eax = 7         ; get skin margins
-
 
272
;          input  : nothing
-
 
273
;          output : eax = [left]*65536+[right]
-
 
274
;                   ebx = [top]*65536+[bottom]
-
 
275
;    eax = 8         ; set window skin
-
 
276
;          input  : ecx = pointer to file info block
-
 
277
;          output : eax = FS error code
Line 271... Line 278...
271
 
278
 
Line 272... Line 279...
272
 
279
 
Line 307... Line 314...
307
 
314
 
308
     cmp  eax,2       ; set common window colours
315
     cmp  eax,2       ; set common window colours
309
     jne  no_com_colours
316
     jne  no_com_colours
310
     mov  [windowtypechanged],dword 1
317
     mov  [windowtypechanged],dword 1
311
     mov  esi,[0x3010]
318
     mov  esi,[0x3010]
312
     add  esi,0x10
-
 
313
     add  ebx,[esi]
-
 
314
     mov  esi,ebx
319
     add  esi,[esi+0x10]
315
     mov  edi,common_colours
320
     mov  edi,common_colours
316
     and  ecx,127
321
     and  ecx,127
317
     cld
322
     cld
318
     rep  movsb
323
     rep  movsb
Line 382... Line 387...
382
    .exit:
387
    .exit:
383
        popad
388
        popad
384
        ret
389
        ret
385
   no_set_workarea:
390
   no_set_workarea:
Line -... Line 391...
-
 
391
 
-
 
392
        cmp     eax,7       ; get skin margins
-
 
393
        jne     no_get_skinmargins
-
 
394
        popad
-
 
395
        mov     eax,dword[_skinmargins+0]
-
 
396
        mov     [esp+36],eax
-
 
397
        mov     eax,dword[_skinmargins+4]
-
 
398
        mov     [esp+24],eax
-
 
399
        ret
-
 
400
   no_get_skinmargins:
-
 
401
 
-
 
402
        cmp     eax,8       ; set window skin
-
 
403
        jne     no_set_skin
-
 
404
        mov     eax,ebx
-
 
405
        mov     edi,[0x3010]
-
 
406
        add     ebx,[edi+0x10]        ; abs start of info block
-
 
407
        pushd   [ebx+0] [ebx+4] [ebx+8] [ebx+12]
-
 
408
        mov     dword[ebx+0],0        ; read
-
 
409
        mov     dword[ebx+4],0        ; from the beginning
-
 
410
        mov     dword[ebx+8],64       ; 32 KBytes maximum
-
 
411
        mov     ecx,skin_data+64*512
-
 
412
        sub     ecx,[edi+0x10]
-
 
413
        mov     dword[ebx+12],ecx     ; destination
-
 
414
        push	eax
-
 
415
        pushad
-
 
416
        call    file_system
-
 
417
        popad
-
 
418
        pop	eax
-
 
419
        popd    [ebx+12] [ebx+8] [ebx+4] [ebx+0]
-
 
420
        cmp     eax,ERROR_SUCCESS
-
 
421
        je      @f
-
 
422
        cmp     eax,ERROR_END_OF_FILE
-
 
423
        jne     .exit
-
 
424
    @@: cmp     [skin_data+64*512+SKIN_HEADER.ident],'SKIN'
-
 
425
        mov     eax,ERROR_UNKNOWN_FS
-
 
426
        jne     .exit
-
 
427
        mov     esi,skin_data+64*512
-
 
428
        mov     edi,skin_data
-
 
429
        mov     ecx,(64*512)/4
-
 
430
        rep     movsd
-
 
431
        call    parse_skin_data
-
 
432
        call    calculatescreen
-
 
433
        mov     dword[esp+32+36],0
-
 
434
        jmp     redraw_screen_direct
-
 
435
  .exit:
-
 
436
        mov     [esp+32+36],eax
-
 
437
        popad
-
 
438
        ret
-
 
439
   no_set_skin:
386
 
440
 
387
     popad
441
     popad
Line 388... Line 442...
388
     ret
442
     ret
Line 1322... Line 1376...
1322
        mov   eax,[npye]
1376
        mov   eax,[npye]
1323
        mov   [edi+12],eax
1377
        mov   [edi+12],eax
Line 1324... Line 1378...
1324
 
1378
 
Line 1325... Line 1379...
1325
    @@: mov     [reposition],cl
1379
    @@: mov     [reposition],cl
1326
 
1380
 
1327
        cmp   [reposition],1         ; save new X and Y start
1381
        cmp   [reposition],1         ; save new position and size
1328
        jne   no_xy_save
1382
        jne   no_bounds_save
1329
        ; 
1383
        ; 
1330
        push  esi edi ecx
1384
        push  esi edi ecx
1331
        mov   esi,edi
1385
        mov   esi,edi
1332
        sub   edi,window_data
1386
        sub   edi,window_data
1333
        shr   edi,5
1387
        shr   edi,5
1334
        shl   edi,8
1388
        shl   edi,8
1335
        add   edi,0x80000+0x90
1389
        add   edi,0x80000+0x90
1336
        mov   ecx,2
1390
        mov   ecx,4
1337
        cld
1391
        cld
1338
        rep   movsd
1392
        rep   movsd
1339
        pop   ecx edi esi
1393
        pop   ecx edi esi
Line 1340... Line 1394...
1340
        ; 
1394
        ; 
Line 1341... Line 1395...
1341
      no_xy_save:
1395
      no_bounds_save:
1342
 
1396