From cae4b1d9de5079ce72365d79ccb2454aa56b1598 Mon Sep 17 00:00:00 2001 From: hidnplayr Date: Sun, 6 Apr 2014 11:06:43 +0000 Subject: [PATCH] Eye candy git-svn-id: svn://kolibrios.org@4781 a494cfbc-eb01-0410-851d-a64ba20cac60 --- programs/network/netstat/netstat.asm | 115 ++++++++++++++++++--------- 1 file changed, 78 insertions(+), 37 deletions(-) diff --git a/programs/network/netstat/netstat.asm b/programs/network/netstat/netstat.asm index 88606630cd..77e87d0a54 100644 --- a/programs/network/netstat/netstat.asm +++ b/programs/network/netstat/netstat.asm @@ -24,59 +24,99 @@ use32 dd I_END ; size of image dd (I_END+0x1000) ; memory for app dd (I_END+0x1000) ; esp - dd 0, 0 ; I_Param , I_Path + dd 0, 0 ; I_Param, I_Path include '../../macros.inc' include '../../network.inc' - -macro DrawRectangle x, y, w, h, color -{ - mcall 13, x shl 16 + w, y shl 16 + 1, color ; top - mcall , x shl 16 + 1, y shl 16 + h, color ; left - mcall , (x+w) shl 16 +1, y shl 16 + (h+1), color ; right - mcall , x shl 16 + w, (y+h) shl 16 + 1, color ; bottom -} - - START: mcall 40, EVM_REDRAW + EVM_BUTTON + EVM_STACK2 + EVM_KEY window_redraw: +; Notify kernel of start of window draw mcall 12, 1 - mcall 0, 100 shl 16 + 600, 100 shl 16 + 240, 0x34E1E1E1, , name ; draw window - DrawRectangle 0, 25, 400, 180, 0x777777 + +; Draw the window + mcall 0, 100 shl 16 + 600, 100 shl 16 + 240, 0x34E1E1E1, , name + +; Define the buttons (for tabs) + mov ebx, 5 shl 16 + 54 + mov ecx, 4 shl 16 + 21 + mov edx, 0x60000000 + 101 + .buttonloop: + mcall 8 + add ebx, 60 shl 16 + inc edx + cmp dl, 106 + jle .buttonloop + +; draw sides and upper lines of the tab buttons + mov eax, 13 + mov ebx, 5 shl 16 + 1 + mov ecx, 4 shl 16 + 21 + mov edx, 0x00777777 + .loop: + mcall + mov bx, 54 + mov cx, 1 + mcall + mov bx, 1 + mov cx, 21 + add ebx, 54 shl 16 + mcall + add ebx, 6 shl 16 + cmp ebx, 360 shl 16 + jb .loop + +; Draw sides and bottom lines of the rectangle + mcall , 0 shl 16 + 1, 25 shl 16 + 180;, 0x00777777 + mcall , (0+400) shl 16 +1, 25 shl 16 + (180+1) + mcall , 0 shl 16 + 400, (25+180) shl 16 + 1 redraw: - mcall 13, 1 shl 16 + 399, 26 shl 16 + 179, 0x00F3F3F3 + +; Draw interface buttons (on the right hand side) call draw_interfaces +; Draw upper line of rectangle + mcall 13, 0 shl 16 + 400, 25 shl 16 + 1, 0x00777777 + +; Fill rectangle + mcall 13, 1 shl 16 + 399, 26 shl 16 + 179, 0x00F3F3F3 + +; Fill tab buttons + mov eax, 13 + mov ebx, 6 shl 16 + 53 + mov si, 101 + .buttonloop: + mov ecx, 6 shl 16 + 19 + mov edx, 0x00BBBBBB + cmp si, [mode] + jne @f + mov edx, 0x00F3F3F3 ; Activated button has other colors + inc ecx + @@: + mcall + mov edx, 0x00E1E1E1 + cmp si, [mode] + jne @f + mov edx, 0x00FFFFFF ; Activated button has other colors + @@: + mov ecx, 5 shl 16 + 1 + mcall + add ebx, 60 shl 16 + inc si + cmp si, 106 + jle .buttonloop +; Print button names on top of the buttons + mcall 4, 9 shl 16 + 12, 0x80000000, modes + +; Get information about the selected device xor ebx, ebx mov bh, [device] mcall 74 mov [device_type], eax - mov edx, 101 - mov esi, 0x00BBBbbb - mov edi, 0x0081BBFF - - cmp dl, [mode] - cmove esi, edi - mcall 8, 5 shl 16 + 55, 5 shl 16 + 20 - .morebuttons: - inc edx - add ebx, 60 shl 16 - mov esi, 0x00BBBbbb - - cmp dl, [mode] - cmove esi, edi - mcall - - cmp edx, 105 - jle .morebuttons - - mcall 4, 9 shl 16 + 12, 0x80000000, modes - cmp [mode], 101 jne .no_eth @@ -552,7 +592,8 @@ button: ; button je exit cmp ah, 0 je .interface - mov [mode], ah + shr ax, 8 + mov [mode], ax jmp redraw .interface: @@ -718,7 +759,7 @@ draw_interfaces: ; DATA AREA name db 'Network status', 0 -mode db 101 +mode dw 101 device db 0 last_device db 0 device_type dd 0