Subversion Repositories Kolibri OS

Rev

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

Rev 8869 Rev 9679
Line 15... Line 15...
15
;;                                                              ;;
15
;;                                                              ;;
16
;;  See file COPYING for details                                ;;
16
;;  See file COPYING for details                                ;;
17
;;                                                              ;;
17
;;                                                              ;;
18
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
18
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Line 19... Line 19...
19
 
19
 
Line 20... Line 20...
20
$Revision: 8869 $
20
$Revision: 9679 $
21
 
21
 
22
uglobal
22
uglobal
23
align 4
23
align 4
Line 187... Line 187...
187
        and     edx, 0xFFFF
187
        and     edx, 0xFFFF
188
        shr     eax, 16
188
        shr     eax, 16
189
        mov     [putimg.image_cx], eax
189
        mov     [putimg.image_cx], eax
190
        mov     [putimg.image_cy], edx
190
        mov     [putimg.image_cy], edx
191
; calculate absolute (i.e. screen) coordinates
191
; calculate absolute (i.e. screen) coordinates
192
        mov     eax, [TASK_BASE]
192
        ;mov     eax, [TASK_BASE]
-
 
193
        mov     eax, [current_slot_idx]
-
 
194
        shl     eax, 5 ; sizeof.WDATA
193
        mov     ebx, [eax-twdw + WDATA.box.left]
195
        mov     ebx, [eax + window_data + WDATA.box.left]
194
        add     ebx, [putimg.image_cx]
196
        add     ebx, [putimg.image_cx]
195
        mov     [putimg.abs_cx], ebx
197
        mov     [putimg.abs_cx], ebx
196
        mov     ebx, [eax-twdw + WDATA.box.top]
198
        mov     ebx, [eax +window_data + WDATA.box.top]
197
        add     ebx, [putimg.image_cy]
199
        add     ebx, [putimg.image_cy]
198
        mov     [putimg.abs_cy], ebx
200
        mov     [putimg.abs_cy], ebx
199
; real_sx = MIN(wnd_sx-image_cx, image_sx);
201
; real_sx = MIN(wnd_sx-image_cx, image_sx);
200
        mov     ebx, [eax-twdw + WDATA.box.width]       ; ebx = wnd_sx
202
        mov     ebx, [eax + window_data + WDATA.box.width]       ; ebx = wnd_sx
201
        inc     ebx                                     ; WDATA.box.width is one pixel less than real window x-size
203
        inc     ebx                                     ; WDATA.box.width is one pixel less than real window x-size
202
        sub     ebx, [putimg.image_cx]
204
        sub     ebx, [putimg.image_cx]
203
        ja      @f
205
        ja      @f
204
        add     esp, putimg.stack_data
206
        add     esp, putimg.stack_data
205
        popad
207
        popad
Line 210... Line 212...
210
        jbe     .end_x
212
        jbe     .end_x
211
        mov     ebx, [putimg.image_sx]
213
        mov     ebx, [putimg.image_sx]
212
  .end_x:
214
  .end_x:
213
        mov     [putimg.real_sx], ebx
215
        mov     [putimg.real_sx], ebx
214
; init real_sy
216
; init real_sy
215
        mov     ebx, [eax-twdw + WDATA.box.height]      ; ebx = wnd_sy
217
        mov     ebx, [eax + window_data + WDATA.box.height]      ; ebx = wnd_sy
216
        inc     ebx
218
        inc     ebx
217
        sub     ebx, [putimg.image_cy]
219
        sub     ebx, [putimg.image_cy]
218
        ja      @f
220
        ja      @f
219
        add     esp, putimg.stack_data
221
        add     esp, putimg.stack_data
220
        popad
222
        popad
Line 1399... Line 1401...
1399
        jle     .exit
1401
        jle     .exit
1400
        mov     [drbar.bar_sy], edx
1402
        mov     [drbar.bar_sy], edx
1401
        mov     [drbar.bar_sx], ecx
1403
        mov     [drbar.bar_sx], ecx
1402
        mov     [drbar.bar_cx], eax
1404
        mov     [drbar.bar_cx], eax
1403
        mov     [drbar.bar_cy], ebx
1405
        mov     [drbar.bar_cy], ebx
1404
        mov     edi, [TASK_BASE]
1406
        ;mov     edi, [TASK_BASE]
-
 
1407
        mov     edi, [current_slot_idx]
-
 
1408
        shl     edi, 5 ; sizeof.WDATA
1405
        add     eax, [edi-twdw + WDATA.box.left]        ; win_cx
1409
        add     eax, [edi + window_data + WDATA.box.left]        ; win_cx
1406
        add     ebx, [edi-twdw + WDATA.box.top]         ; win_cy
1410
        add     ebx, [edi + window_data + WDATA.box.top]         ; win_cy
1407
        mov     [drbar.abs_cx], eax
1411
        mov     [drbar.abs_cx], eax
1408
        mov     [drbar.abs_cy], ebx
1412
        mov     [drbar.abs_cy], ebx
1409
; real_sx = MIN(wnd_sx-bar_cx, bar_sx);
1413
; real_sx = MIN(wnd_sx-bar_cx, bar_sx);
1410
        mov     ebx, [edi-twdw + WDATA.box.width]       ; ebx = wnd_sx
1414
        mov     ebx, [edi + window_data + WDATA.box.width]       ; ebx = wnd_sx
1411
        inc     ebx                                     ; WDATA.box.width is one pixel less than real window x-size
1415
        inc     ebx                                     ; WDATA.box.width is one pixel less than real window x-size
1412
        sub     ebx, [drbar.bar_cx]
1416
        sub     ebx, [drbar.bar_cx]
1413
        ja      @f
1417
        ja      @f
1414
  .exit:
1418
  .exit:
1415
        add     esp, drbar.stack_data
1419
        add     esp, drbar.stack_data
Line 1422... Line 1426...
1422
        jbe     .end_x
1426
        jbe     .end_x
1423
        mov     ebx, [drbar.bar_sx]
1427
        mov     ebx, [drbar.bar_sx]
1424
  .end_x:
1428
  .end_x:
1425
        mov     [drbar.real_sx], ebx
1429
        mov     [drbar.real_sx], ebx
1426
; real_sy = MIN(wnd_sy-bar_cy, bar_sy);
1430
; real_sy = MIN(wnd_sy-bar_cy, bar_sy);
1427
        mov     ebx, [edi-twdw + WDATA.box.height]      ; ebx = wnd_sy
1431
        mov     ebx, [edi + window_data + WDATA.box.height]      ; ebx = wnd_sy
1428
        inc     ebx
1432
        inc     ebx
1429
        sub     ebx, [drbar.bar_cy]
1433
        sub     ebx, [drbar.bar_cy]
1430
        ja      @f
1434
        ja      @f
1431
        add     esp, drbar.stack_data
1435
        add     esp, drbar.stack_data
1432
        popad
1436
        popad