/kernel/trunk/gui/button.inc |
---|
68,7 → 68,7 |
shr eax,16 |
shr ebx,16 |
mov edx,[0x3010] |
mov edx,[TASK_BASE] |
add eax,[edx-twdw + WDATA.box.left] |
add ebx,[edx-twdw + WDATA.box.top] |
164,7 → 164,7 |
sys_button: |
push edi |
mov edi,[0x3000] |
mov edi,[CURRENT_TASK] |
shl edi,8 |
rol eax,16 |
add ax,word[edi+0x80000+APPDATA.wnd_clientbox.left] |
197,7 → 197,7 |
push ebx |
shr eax,16 |
shr ebx,16 |
mov edx,[0x3010] |
mov edx,[TASK_BASE] |
mov esi,[edx-twdw + WDATA.box.left] |
mov edi,[edx-twdw + WDATA.box.top] |
add eax,esi |
247,7 → 247,7 |
shl eax,4 |
add eax,edi |
mov bx,[0x3000] |
mov bx,[CURRENT_TASK] |
mov [eax],bx |
add eax,2 ; save button id number |
298,7 → 298,7 |
add eax,0x10 |
mov dx,[0x3000] |
mov dx,[CURRENT_TASK] |
cmp dx,[eax] |
jnz rnewba |
504,7 → 504,7 |
movzx ebx,word [eax] |
movzx ecx,word [0xC000 + ebx * 2] |
cmp ecx,[0x3004] |
cmp ecx,[TASK_COUNT] |
jne buttonnewcheck |
; check that button start is inside window x/y end |
/kernel/trunk/gui/event.inc |
---|
101,7 → 101,7 |
mov ebx, [CURRENT_TASK] |
shl ebx, 5 |
mov ebx, [0x3000+ebx+4] |
mov ebx, [CURRENT_TASK+ebx+4] |
mov [eax+APPOBJ.pid], ebx |
mov edx, [.flags] |
mov [eax+EVENT.state], edx |
274,7 → 274,7 |
call destroy_event.force |
ret |
.switch: |
mov eax, [0x3010] |
mov eax, [TASK_BASE] |
mov [eax+TASKDATA.state], byte 5 |
call change_task |
jmp .wait |
339,7 → 339,7 |
ret |
.switch: |
or [eax+EVENT.state], EVENT_WATCHED |
mov eax, [0x3010] |
mov eax, [TASK_BASE] |
mov [eax+TASKDATA.state], byte 5 |
call change_task |
mov eax, [.event] |
497,7 → 497,7 |
jne eventoccur |
newwait: |
mov eax, [0x3010] |
mov eax, [TASK_BASE] |
mov [eax+TASKDATA.state], byte 5 |
call change_task |
511,10 → 511,10 |
pushad |
mov edi,[0x3010] ; WINDOW REDRAW |
mov edi,[TASK_BASE] ; WINDOW REDRAW |
test [edi+TASKDATA.event_mask],dword 1 |
jz no_eventoccur1 |
;mov edi,[0x3010] |
;mov edi,[TASK_BASE] |
cmp [edi-twdw+WDATA.fl_redraw],byte 0 |
je no_eventoccur1 |
popad |
522,12 → 522,12 |
ret |
no_eventoccur1: |
;mov edi,[0x3010] ; KEY IN BUFFER |
;mov edi,[TASK_BASE] ; KEY IN BUFFER |
test [edi+TASKDATA.event_mask],dword 2 |
jz no_eventoccur2 |
mov ecx, [0x3000] |
mov ecx, [CURRENT_TASK] |
movzx edx,word [0xC000+ecx*2] |
mov eax, [0x3004] |
mov eax, [TASK_COUNT] |
cmp eax,edx |
jne no_eventoccur2x |
cmp [0xf400],byte 0 |
546,14 → 546,14 |
jb @b |
no_eventoccur2: |
;mov edi,[0x3010] ; BUTTON IN BUFFER |
;mov edi,[TASK_BASE] ; BUTTON IN BUFFER |
test [edi+TASKDATA.event_mask],dword 4 |
jz no_eventoccur3 |
cmp [0xf500],byte 0 |
je no_eventoccur3 |
mov ecx, [0x3000] |
mov ecx, [CURRENT_TASK] |
movzx edx, word [0xC000+ecx*2] |
mov eax, [0x3004] |
mov eax, [TASK_COUNT] |
cmp eax,edx |
jnz no_eventoccur3 |
popad |
572,10 → 572,10 |
no_eventoccur3: |
;mov edi,[0x3010] ; mouse event |
;mov edi,[TASK_BASE] ; mouse event |
test [edi+TASKDATA.event_mask],dword 00100000b |
jz no_mouse_event |
mov eax,[0x3000] |
mov eax,[CURRENT_TASK] |
shl eax,8 |
test [eax+0x80000+APPDATA.event_mask],dword 00100000b |
jz no_mouse_event |
586,7 → 586,7 |
no_mouse_event: |
;mov edi,[0x3010] ; DESKTOP BACKGROUND REDRAW |
;mov edi,[TASK_BASE] ; DESKTOP BACKGROUND REDRAW |
test [edi+TASKDATA.event_mask],dword 16 |
jz no_eventoccur5 |
cmp [0xfff0],byte 2 |
596,10 → 596,10 |
ret |
no_eventoccur5: |
;mov edi,[0x3010] ; IPC |
;mov edi,[TASK_BASE] ; IPC |
test [edi+TASKDATA.event_mask],dword 01000000b |
jz no_ipc |
mov eax,[0x3000] |
mov eax,[CURRENT_TASK] |
shl eax,8 |
test [eax+0x80000+APPDATA.event_mask],dword 01000000b |
jz no_ipc |
610,10 → 610,10 |
no_ipc: |
;mov edi,[0x3010] ; STACK |
;mov edi,[TASK_BASE] ; STACK |
test [edi+TASKDATA.event_mask],dword 10000000b |
jz no_stack_event |
mov eax,[0x3000] |
mov eax,[CURRENT_TASK] |
shl eax,8 |
test [eax+0x80000+APPDATA.event_mask],dword 10000000b |
jz no_stack_event |
625,7 → 625,7 |
test byte [edi+TASKDATA.event_mask+1], 1 ; DEBUG |
jz .test_IRQ |
mov eax, [0x3000] |
mov eax, [CURRENT_TASK] |
shl eax, 8 |
test byte [eax+0x80000+APPDATA.event_mask+1], byte 1 |
jz .test_IRQ |
635,7 → 635,7 |
ret |
;.test_ext: |
; mov eax, [0x3000] |
; mov eax, [CURRENT_TASK] |
; shl eax, 8 |
; test dword [eax+0x80000+APPDATA.event_mask], EVENT_EXTENDED |
; jz .test_IRQ |
651,7 → 651,7 |
mov ebx,0x00010000 |
xor ecx, ecx |
irq_event_test: |
mov edi,[0x3010] |
mov edi,[TASK_BASE] |
test [edi+TASKDATA.event_mask],ebx |
jz no_irq_event |
mov edi,ecx |
658,7 → 658,7 |
shl edi,2 |
add edi,irq_owner |
mov edx,[edi] |
mov eax,[0x3010] |
mov eax,[TASK_BASE] |
mov eax,[eax+TASKDATA.pid] |
cmp edx,eax |
jne no_irq_event |
/kernel/trunk/gui/skincode.inc |
---|
365,7 → 365,7 |
shl eax,4 |
add eax,edi |
mov bx,[0x3000] |
mov bx,[CURRENT_TASK] |
mov [eax],bx |
add eax,2 ; save button id number |
404,7 → 404,7 |
shl eax,4 |
add eax,edi |
mov bx,[0x3000] |
mov bx,[CURRENT_TASK] |
mov [eax],bx |
add eax,2 ; save button id number |
/kernel/trunk/gui/window.inc |
---|
60,7 → 60,7 |
mov esi, 1 |
call setscreen |
mov ebp, [0x3004] ; number of processes |
mov ebp, [TASK_COUNT] ; number of processes |
cmp ebp, 1 |
jbe .finish |
align 4 |
68,7 → 68,7 |
movzx edi, word [0xC400 + esi * 2] |
shl edi, 5 |
cmp [0x3000+edi+TASKDATA.state], byte 9 |
cmp [CURRENT_TASK+edi+TASKDATA.state], byte 9 |
je .not_wnd |
add edi, window_data |
375,7 → 375,7 |
cmp eax,2 ; set common window colours |
jne no_com_colours |
mov [windowtypechanged],dword 1 |
mov esi,[0x3010] |
mov esi,[TASK_BASE] |
add esi,TASKDATA.mem_start |
add ebx,[esi] |
mov esi,ebx |
389,7 → 389,7 |
cmp eax,3 ; get common window colours |
jne no_get_com |
mov esi,[0x3010] |
mov esi,[TASK_BASE] |
add esi,TASKDATA.mem_start |
add ebx,[esi] |
mov edi,ebx |
468,7 → 468,7 |
cmp eax,8 ; set window skin |
jne no_set_skin |
mov eax,ebx |
mov edi,[0x3010] |
mov edi,[TASK_BASE] |
add ebx,[edi+TASKDATA.mem_start] ; abs start of info block |
pushd [ebx+0] [ebx+4] [ebx+8] [ebx+12] |
mov dword[ebx+0],0 ; read |
515,7 → 515,7 |
repos_windows: |
mov ecx,[0x3004] |
mov ecx,[TASK_COUNT] |
mov edi,0x20*2 |
mov byte[0x0000fff0],1 |
dec ecx |
911,7 → 911,7 |
; if type of current active window is 3, |
; it must be redrawn |
mov eax, [0x3004] |
mov eax, [TASK_COUNT] |
movzx eax, word [0xC400 + eax*2] |
shl eax, 5 |
add eax, window_data |
928,7 → 928,7 |
xor esi, esi ; drop others |
waloop: |
cmp esi, dword [0x3004] |
cmp esi, dword [TASK_COUNT] |
jae wacont |
inc esi |
lea edi, [0xC000 + esi*2] |
944,13 → 944,13 |
pop esi ; esi = pointer at 0xC400 |
movzx eax, word [esi] |
mov bx, [0x3004] ; number of processes |
mov bx, [TASK_COUNT] ; number of processes |
mov [0xC000+eax*2], bx ; this is the last (and the upper) |
; update on screen -window stack |
xor esi, esi |
waloop2: |
mov edi, [0x3004] |
mov edi, [TASK_COUNT] |
cmp esi, edi |
jae wacont2 |
inc esi |
992,7 → 992,7 |
add esi, 2 |
push esi |
mov eax, [0x3004] |
mov eax, [TASK_COUNT] |
lea eax, word [0xC400 + eax * 2] ; number of the upper window |
cmp esi, eax |
1000,7 → 1000,7 |
movzx eax, word [esi] |
shl eax, 5 |
cmp [0x3000 + eax + TASKDATA.state], byte 9 |
cmp [CURRENT_TASK + eax + TASKDATA.state], byte 9 |
je .new_check ; skip dead windows |
lea esi, [eax+window_data] |
1058,7 → 1058,7 |
; update screen info |
pushad |
mov edi, [0x3004] ; the last process (number) |
mov edi, [TASK_COUNT] ; the last process (number) |
movzx esi, word [0xC400 + edi * 2] |
shl esi, 5 |
add esi, window_data |
1072,7 → 1072,7 |
add ecx, eax ; ecx = x_end |
add edx, ebx ; edx = y_end |
mov edi, [0x3004] |
mov edi, [TASK_COUNT] |
movzx esi, word [0xC400 + edi * 2] |
call setscreen |
popad |
1137,7 → 1137,7 |
jz .skip_redrawings |
mov [edi+WDATA.fl_redraw], 1 |
and [edi+WDATA.fl_wstate], not WSTATE_MINIMIZED |
cmp eax, [0x3004] ; the uppermost window |
cmp eax, [TASK_COUNT] ; the uppermost window |
jnz .no_uppermost |
mov eax, [edi+WDATA.box.left] |
mov ebx, [edi+WDATA.box.top] |
1174,7 → 1174,7 |
cmp [window_minimize], 0 |
je .no_minimizing |
mov eax, [0x3004] ; the uppermost window |
mov eax, [TASK_COUNT] ; the uppermost window |
mov bl, 0 |
xchg [window_minimize], bl |
cmp bl, 1 |
1192,7 → 1192,7 |
ret |
.mouse_buttons_pressed: |
mov esi,[0x3004] |
mov esi,[TASK_COUNT] |
inc esi |
cwloop: |
1228,7 → 1228,7 |
pushad |
mov eax, esi |
mov ebx, [0x3004] |
mov ebx, [TASK_COUNT] |
cmp eax, ebx ; is this window active? |
jz .move_resize_window |
1751,7 → 1751,7 |
test eax, eax |
jne rsw_no_address |
mov eax,[0x3000] |
mov eax,[CURRENT_TASK] |
shl eax,8 |
mov [eax+0x80000+APPDATA.wnd_shape],ebx |
1759,7 → 1759,7 |
cmp eax,1 |
jne rsw_no_scale |
mov eax,[0x3000] |
mov eax,[CURRENT_TASK] |
shl eax,8 |
mov byte [eax+0x80000+APPDATA.wnd_shape_scale], bl |
rsw_no_scale: |