Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 3190 → Rev 3191

/kernel/branches/net/applications/ircc/window.inc
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