Rev 5847 | Rev 5867 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 5847 | Rev 5865 | ||
---|---|---|---|
Line 4... | Line 4... | ||
4 | ;; Copyright (C) MenuetOS 2000-2004 Ville Mikael Turjanmaa ;; |
4 | ;; Copyright (C) MenuetOS 2000-2004 Ville Mikael Turjanmaa ;; |
5 | ;; Distributed under terms of the GNU General Public License ;; |
5 | ;; Distributed under terms of the GNU General Public License ;; |
6 | ;; ;; |
6 | ;; ;; |
7 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
7 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
Line 8... | Line 8... | ||
8 | 8 | ||
Line 9... | Line 9... | ||
9 | $Revision: 5847 $ |
9 | $Revision: 5865 $ |
10 | 10 | ||
11 | ;============================================================================== |
11 | ;============================================================================== |
Line 437... | Line 437... | ||
437 | cmp ecx, WIN_POS - 2 |
437 | cmp ecx, WIN_POS - 2 |
438 | jne @b |
438 | jne @b |
439 | pop ecx eax |
439 | pop ecx eax |
440 | ret |
440 | ret |
441 | ;------------------------------------------------------------------------------ |
441 | ;------------------------------------------------------------------------------ |
442 | iglobal |
- | |
443 | win_zmodi db ZPOS_DESKTOP,\ |
- | |
444 | ZPOS_ALWAYS_BACK,\ |
- | |
445 | ZPOS_NORMAL,\ |
- | |
446 | ZPOS_ALWAYS_TOP |
- | |
447 | endg |
442 | |
448 | align 4 |
443 | align 4 |
449 | ;------------------------------------------------------------------------------ |
444 | ;------------------------------------------------------------------------------ |
450 | calculatescreen: ;///////////////////////////////////////////////////////////// |
445 | calculatescreen: ;///////////////////////////////////////////////////////////// |
451 | ;------------------------------------------------------------------------------ |
446 | ;------------------------------------------------------------------------------ |
452 | ;? Scan all windows from bottom to top, calling `setscreen` for each one |
447 | ;? Scan all windows from bottom to top, calling `setscreen` for each one |
Line 472... | Line 467... | ||
472 | 467 | ||
Line 473... | Line 468... | ||
473 | push eax ;for num layout |
468 | push eax ;for num layout |
Line 474... | Line 469... | ||
474 | 469 | ||
475 | push edx ecx ebx eax |
470 | push edx ecx ebx eax |
476 | 471 | ||
477 | mov dword[esp+14], 0 |
472 | mov dword[esp+10h], ZPOS_DESKTOP |
478 | ;-------------------------------------- |
473 | ;-------------------------------------- |
479 | align 4 |
474 | align 4 |
Line 491... | Line 486... | ||
491 | 486 | ||
492 | add edi, window_data |
487 | add edi, window_data |
493 | test [edi + WDATA.fl_wstate], WSTATE_MINIMIZED |
488 | test [edi + WDATA.fl_wstate], WSTATE_MINIMIZED |
Line 494... | Line 489... | ||
494 | jnz .skip_window |
489 | jnz .skip_window |
495 | - | ||
496 | mov eax, [esp+14] |
490 | |
497 | mov al, [eax+win_zmodi] |
491 | mov eax, [esp+10h] |
Line 498... | Line 492... | ||
498 | cmp [edi + WDATA.z_modif], al |
492 | cmp [edi + WDATA.z_modif], al |
499 | jne .skip_window |
493 | jne .skip_window |
Line 546... | Line 540... | ||
546 | .skip_window: |
540 | .skip_window: |
547 | inc esi |
541 | inc esi |
548 | dec ebp |
542 | dec ebp |
549 | jnz .next_window |
543 | jnz .next_window |
550 | ;--------------------------------------------- |
544 | ;--------------------------------------------- |
551 | inc dword[esp+14] |
545 | inc dword[esp+10h] |
552 | cmp dword[esp+14], ZPOS_ALWAYS_TOP |
546 | cmp dword[esp+10h], ZPOS_ALWAYS_TOP |
553 | jbe .layout |
547 | jle .layout |
554 | ;--------------------------------------------- |
548 | ;--------------------------------------------- |
555 | mov esi, [TASK_COUNT] |
549 | mov esi, [TASK_COUNT] |
556 | movzx edi, word[WIN_POS + esi * 2] |
550 | movzx edi, word[WIN_POS + esi * 2] |
557 | shl edi, 5 |
551 | shl edi, 5 |
558 | add edi, window_data |
552 | add edi, window_data |
Line 1010... | Line 1004... | ||
1010 | 1004 | ||
1011 | mov edi, [TASK_COUNT] |
1005 | mov edi, [TASK_COUNT] |
1012 | movzx esi, word[WIN_POS + edi * 2] |
1006 | movzx esi, word[WIN_POS + edi * 2] |
Line 1013... | Line 1007... | ||
1013 | call window._.set_screen |
1007 | call window._.set_screen |
Line 1014... | Line 1008... | ||
1014 | 1008 | ||
1015 | call window._.set_top_wnd ;Fantomer |
1009 | call window._.set_top_wnd |
Line 1016... | Line 1010... | ||
1016 | 1010 | ||
Line 2430... | Line 2424... | ||
2430 | mov [ecx+RECT.bottom], edx |
2424 | mov [ecx+RECT.bottom], edx |
2431 | ret |
2425 | ret |
2432 | ;------------------------------------------------------------------------------ |
2426 | ;------------------------------------------------------------------------------ |
2433 | align 4 |
2427 | align 4 |
2434 | ;------------------------------------------------------------------------------ |
2428 | ;------------------------------------------------------------------------------ |
- | 2429 | window._.redraw_top_wnd: ;//////////////////////////////////////////////////////// |
|
- | 2430 | ;------------------------------------------------------------------------------ |
|
- | 2431 | ;? redraw all windows one above the window |
|
- | 2432 | ;------------------------------------------------------------------------------ |
|
- | 2433 | ;> eax = left |
|
- | 2434 | ;> ebx = top |
|
- | 2435 | ;> ecx = right |
|
- | 2436 | ;> edx = bottom |
|
- | 2437 | ;> esi = process number |
|
- | 2438 | ;! corrupted edi |
|
- | 2439 | ;------------------------------------------------------------------------------ |
|
- | 2440 | push 0 |
|
- | 2441 | jmp window._.set_top_wnd.go |
|
- | 2442 | ||
- | 2443 | align 4 |
|
- | 2444 | ;------------------------------------------------------------------------------ |
|
2435 | window._.set_top_wnd: ;//////////////////////////////////////////////////////// |
2445 | window._.set_top_wnd: ;//////////////////////////////////////////////////////// |
2436 | ;------------------------------------------------------------------------------ |
2446 | ;------------------------------------------------------------------------------ |
2437 | ;? updates all windows one above the window |
2447 | ;? call set_screen for all windows one above the window |
2438 | ;------------------------------------------------------------------------------ |
2448 | ;------------------------------------------------------------------------------ |
2439 | ;> eax = left |
2449 | ;> eax = left |
2440 | ;> ebx = top |
2450 | ;> ebx = top |
2441 | ;> ecx = right |
2451 | ;> ecx = right |
2442 | ;> edx = bottom |
2452 | ;> edx = bottom |
2443 | ;> esi = process number |
2453 | ;> esi = process number |
2444 | ;! corrupted edi |
2454 | ;! corrupted edi |
2445 | ;------------------------------------------------------------------------------ |
2455 | ;------------------------------------------------------------------------------ |
2446 | movzx edi, word[WIN_POS + esi * 2] |
- | |
2447 | shl edi, 5 |
- | |
2448 | cmp [edi + window_data + WDATA.z_modif], ZPOS_ALWAYS_TOP |
- | |
2449 | jne @f |
- | |
2450 | ret |
- | |
2451 | @@: |
- | |
Line -... | Line 2456... | ||
- | 2456 | ||
- | 2457 | push 1 |
|
2452 | 2458 | .go: |
|
2453 | push esi |
2459 | push esi |
2454 | pushfd |
2460 | pushfd |
Line 2455... | Line 2461... | ||
2455 | cli |
2461 | cli |
2456 | 2462 | ||
2457 | push ebp |
2463 | push ebp |
2458 | mov ebp, [TASK_COUNT] |
2464 | mov ebp, [TASK_COUNT] |
Line -... | Line 2465... | ||
- | 2465 | cmp ebp, 1 |
|
- | 2466 | jbe .exit |
|
- | 2467 | ||
- | 2468 | shl esi, 5 |
|
2459 | cmp ebp, 1 |
2469 | cmp [esi + window_data + WDATA.z_modif], ZPOS_ALWAYS_TOP |
2460 | jbe .exit |
2470 | je .exit |
Line 2461... | Line 2471... | ||
2461 | 2471 | ||
2462 | push eax ;for num layout |
2472 | push eax ;for num layout |
2463 | push edx ecx ebx eax |
2473 | push edx ecx ebx eax |
2464 | 2474 | ||
2465 | movzx eax, byte [edi + window_data + WDATA.z_modif] |
2475 | movsx eax, byte [esi + window_data + WDATA.z_modif] |
2466 | inc eax |
2476 | inc eax |
2467 | mov dword[esp+14], eax |
2477 | mov dword[esp+10h], eax |
2468 | ;-------------------------------------- |
2478 | ;-------------------------------------- |
Line 2481... | Line 2491... | ||
2481 | 2491 | ||
2482 | add edi, window_data |
2492 | add edi, window_data |
2483 | test [edi + WDATA.fl_wstate], WSTATE_MINIMIZED |
2493 | test [edi + WDATA.fl_wstate], WSTATE_MINIMIZED |
Line 2484... | Line 2494... | ||
2484 | jnz .skip_window |
2494 | jnz .skip_window |
2485 | - | ||
2486 | mov eax, [esp+14] |
2495 | |
2487 | mov al, [eax+win_zmodi] |
2496 | mov eax, [esp+10h] |
Line 2488... | Line 2497... | ||
2488 | cmp [edi + WDATA.z_modif], al |
2497 | cmp [edi + WDATA.z_modif], al |
2489 | jne .skip_window |
2498 | jne .skip_window |
Line 2525... | Line 2534... | ||
2525 | jbe @f |
2534 | jbe @f |
2526 | mov edx, [esp + RECT.bottom] |
2535 | mov edx, [esp + RECT.bottom] |
2527 | ;-------------------------------------- |
2536 | ;-------------------------------------- |
2528 | align 4 |
2537 | align 4 |
2529 | @@: |
2538 | @@: |
- | 2539 | cmp dword[esp+32], 0 |
|
- | 2540 | je .set_fl_redraw |
|
- | 2541 | ||
2530 | push esi |
2542 | push esi |
2531 | movzx esi, word[WIN_POS + esi * 2] |
2543 | movzx esi, word[WIN_POS + esi * 2] |
2532 | call window._.set_screen |
2544 | call window._.set_screen |
2533 | pop esi |
2545 | pop esi |
- | 2546 | jmp @f |
|
2534 | 2547 | .set_fl_redraw: |
|
2535 | mov [edi + WDATA.fl_redraw], 1 ;set redraw flag |
2548 | mov [edi + WDATA.fl_redraw], 1 ;set redraw flag |
- | 2549 | @@: |
|
2536 | ;-------------------------------------- |
2550 | ;-------------------------------------- |
2537 | align 4 |
2551 | align 4 |
2538 | .skip_window: |
2552 | .skip_window: |
2539 | inc esi |
2553 | inc esi |
2540 | dec ebp |
2554 | dec ebp |
2541 | jnz .next_window |
2555 | jnz .next_window |
2542 | ;-------------------------------------- |
2556 | ;-------------------------------------- |
2543 | inc dword[esp+14] |
2557 | inc dword[esp+10h] |
2544 | cmp dword[esp+14], ZPOS_ALWAYS_TOP |
2558 | cmp byte[esp+10h], ZPOS_ALWAYS_TOP |
2545 | jbe .layout |
2559 | jle .layout |
2546 | ;------------------------------------- |
2560 | ;------------------------------------- |
Line 2547... | Line 2561... | ||
2547 | 2561 | ||
2548 | pop eax ebx ecx edx |
2562 | pop eax ebx ecx edx |
2549 | pop ebp ;del num layout |
2563 | pop ebp ;del num layout |
Line 2553... | Line 2567... | ||
2553 | 2567 | ||
2554 | pop ebp |
2568 | pop ebp |
2555 | popfd |
2569 | popfd |
Line -... | Line 2570... | ||
- | 2570 | pop esi |
|
2556 | pop esi |
2571 |