Stub for new IRC client.
git-svn-id: svn://kolibrios.org@3191 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
163
kernel/branches/net/applications/ircc/window.inc
Normal file
163
kernel/branches/net/applications/ircc/window.inc
Normal file
@@ -0,0 +1,163 @@
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
;; ;;
|
||||
;; Copyright (C) KolibriOS team 2004-2013. All rights reserved. ;;
|
||||
;; Distributed under terms of the GNU General Public License ;;
|
||||
;; ;;
|
||||
;; ;;
|
||||
;; GNU GENERAL PUBLIC LICENSE ;;
|
||||
;; Version 2, June 1991 ;;
|
||||
;; ;;
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
|
||||
window_create:
|
||||
|
||||
; allocate the window data block
|
||||
mcall 68, 12, sizeof.window_data
|
||||
test eax, eax
|
||||
jz .fail
|
||||
|
||||
; fill it with all zeros
|
||||
push eax
|
||||
mov edi, eax
|
||||
mov ecx, (sizeof.window_data+3)/4
|
||||
xor eax, eax
|
||||
rep stosd
|
||||
pop eax
|
||||
|
||||
.fail:
|
||||
ret
|
||||
|
||||
|
||||
window_set_name: ; esi = ptr to name, ebx = window ptr
|
||||
|
||||
pusha
|
||||
|
||||
; Skip heading spaces
|
||||
.spaceloop:
|
||||
cmp byte[esi], ' '
|
||||
jne .done
|
||||
inc esi
|
||||
jmp .spaceloop
|
||||
.done:
|
||||
|
||||
; Now copy it
|
||||
lea edi, [ebx + window.name]
|
||||
mov ecx, MAX_WINDOWNAME_LEN
|
||||
.loop:
|
||||
lodsb
|
||||
cmp al, 10
|
||||
jbe .addzero
|
||||
stosb
|
||||
dec ecx
|
||||
jnz .loop
|
||||
.addzero:
|
||||
xor al, al
|
||||
stosb
|
||||
|
||||
call draw_windownames ; redraw it
|
||||
|
||||
popa
|
||||
|
||||
ret
|
||||
|
||||
|
||||
|
||||
window_find: ; esi is ptr to windowname
|
||||
|
||||
; mov [current_window],
|
||||
; call reset_gui
|
||||
|
||||
.fail:
|
||||
ret
|
||||
|
||||
|
||||
|
||||
|
||||
window_refresh:
|
||||
|
||||
; set the correct buffer pointers ; FIXME: what is it good for?
|
||||
mov eax, [textbox_width] ;
|
||||
imul eax, 11 ;
|
||||
mov [pos], eax ;
|
||||
|
||||
mov eax, [window_open]
|
||||
mov eax, [eax + window.data_ptr]
|
||||
add eax, window_data.text
|
||||
mov [text_start], eax
|
||||
|
||||
ret
|
||||
|
||||
|
||||
print_text: ; eax = start ptr
|
||||
; dl = end char
|
||||
pusha
|
||||
ptr2:
|
||||
mov bl, [eax]
|
||||
|
||||
cmp bl, dl
|
||||
je ptr_ret
|
||||
cmp bl, 0
|
||||
je ptr_ret
|
||||
call print_character
|
||||
|
||||
inc eax
|
||||
jmp ptr2
|
||||
|
||||
ptr_ret:
|
||||
popa
|
||||
ret
|
||||
|
||||
|
||||
print_text2: ; esi = ptr to ASCIIZ string
|
||||
|
||||
pusha
|
||||
.loop:
|
||||
lodsb
|
||||
test al, al
|
||||
jz .done
|
||||
mov bl, al
|
||||
call print_character
|
||||
jmp .loop
|
||||
|
||||
.done:
|
||||
popa
|
||||
ret
|
||||
|
||||
|
||||
if TIMESTAMP
|
||||
print_timestamp:
|
||||
|
||||
pusha
|
||||
mcall 3 ; get system time
|
||||
|
||||
mov bl, '['
|
||||
call print_character
|
||||
mov ecx, TIMESTAMP
|
||||
.loop:
|
||||
mov bl, al
|
||||
shr bl, 4
|
||||
add bl, '0'
|
||||
call print_character
|
||||
|
||||
mov bl, al
|
||||
and bl, 0x0f
|
||||
add bl, '0'
|
||||
call print_character
|
||||
|
||||
dec ecx
|
||||
jz .done
|
||||
|
||||
mov bl, ':'
|
||||
call print_character
|
||||
shr eax, 8
|
||||
jmp .loop
|
||||
.done:
|
||||
mov bl, ']'
|
||||
call print_character
|
||||
mov bl, ' '
|
||||
call print_character
|
||||
|
||||
popa
|
||||
ret
|
||||
end if
|
Reference in New Issue
Block a user