0,0 → 1,99 |
include "../../macros.inc" |
include "../../KOSfuncs.inc" |
|
KOS_APP_START |
|
CODE |
|
mcall SF_SYSTEM, SSF_WINDOW_BEHAVIOR, SSSF_SET_WB, -1, 1 |
mcall SF_STYLE_SETTINGS, SSF_GET_COLORS, syscl, sizeof.system_colors |
mcall SF_SET_EVENTS_MASK, EVM_REDRAW + EVM_MOUSE + EVM_KEY |
mcall SF_KEYBOARD, SSF_SET_INPUT_MODE, 1 |
|
wait_event: |
mcall SF_WAIT_EVENT |
|
cmp eax, EV_REDRAW |
jz redraw_event |
|
cmp eax, EV_MOUSE |
jz draw_text |
|
cmp eax, EV_KEY |
jz key_event |
|
jmp wait_event |
|
key_event: |
mcall SF_GET_KEY |
cmp eax, 256 ;Escape |
jnz wait_event |
mcall SF_TERMINATE_PROCESS |
|
redraw_event: |
mcall SF_REDRAW, SSF_BEGIN_DRAW |
mcall SF_CREATE_WINDOW, <0, WIN_W>, <0, WIN_H>, 0x01000000, 0x1000000, 0 |
mcall SF_DRAW_RECT, <0, WIN_W + 1>, <0, WIN_H + 1>, [syscl.work] |
mcall SF_REDRAW, SSF_END_DRAW |
|
draw_text: |
; Draw labels |
mov ecx, 0xF0000000 |
or ecx, [syscl.work_text] |
mcall SF_DRAW_TEXT, <10, 10>, , gxlabel, , [syscl.work] |
mcall , <10, 30>, , gylabel |
mcall , <10, 50>, , pidlabel |
mcall , <10, 70>, , lxlabel |
mcall , <10, 90>, , lylabel |
|
; Get mouse porition |
mcall SF_MOUSE_GET, SSF_SCREEN_POSITION |
push eax |
|
; Draw coords |
mov esi, 0x50000000 |
or esi, [syscl.work_text] |
xor ecx, ecx |
mov cx, [esp + 2] |
mcall SF_DRAW_NUMBER, 0x00040000, , <102, 10> |
mov cx, [esp] |
mcall , , , <102, 30> |
|
; Get pixel owner |
xor ebx, ebx |
mov bx, [esp + 2] |
mov cx, [esp] |
mcall SF_GET_PIXEL_OWNER |
|
; Draw pixel owner |
xchg ecx, eax |
mcall SF_DRAW_NUMBER, 0x00040000, , <102, 50> |
|
mcall SF_THREAD_INFO, pinf |
|
xor ecx, ecx |
mov cx, [esp + 2] |
sub ecx, [pinf.box.left] |
mcall SF_DRAW_NUMBER, 0x00040000, , <102, 70> |
mov cx, [esp] |
sub ecx, [pinf.box.top] |
mcall , , , <102, 90> |
|
pop eax |
jmp wait_event |
|
DATA |
|
WIN_W = 200 |
WIN_H = 150 |
gxlabel db 'Global X:', 0 |
gylabel db 'Global Y:', 0 |
lxlabel db 'Local X:', 0 |
lylabel db 'Local Y:', 0 |
pidlabel db 'PID:', 0 |
|
syscl system_colors |
pinf process_information |
|
UDATA |
KOS_APP_END |
Property changes: |
Added: svn:executable |
+* |
\ No newline at end of property |