Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 5899 → Rev 5900

/programs/system/notify3/notify.asm
108,7 → 108,6
 
;; CALC WIDTH
mov eax, [text.max_len]
dec eax
imul eax, 6
add eax, MARGIN
add eax, [text.offset]
124,6 → 123,12
sub eax, LINEH
mov [window.x], eax
 
;; CALC PBAR
mov eax, [window.width]
sub eax, [text.offset]
sub eax, MARGIN
mov [pbar.width], eax
 
;; CALC Y
mcall 68, 22, sz_shname, 256 + 512, 4 + 1 ;OPEN_ALWAYS AND WRITE
add eax, 512
232,12 → 237,17
;; COPY TEXT TO CTRL
add eax, NTCTRL_TEXT
mov ebx, text.buffer
 
mov ecx, [text.lines]
cmpne byte [params.pbar], 1, @f
dec ecx
@@:
 
.copy_start:
cmpe ecx, 0, .copy_end
mov dl, [ebx]
cmpne dl, 0, @f
mov dl, "|"
mov dl, 10
dec ecx
@@:
mov [eax], dl
271,10 → 281,12
add eax, NTCTRL_APPLY_TEXT
cmpne byte [eax], 1, @f
mov byte [eax], 0
 
mov eax, [ctrl.addr]
add eax, NTCTRL_TEXT
mov esi, 1
call parse_text
 
mov edi, redraw
@@:
 
282,10 → 294,14
mov eax, [ctrl.addr]
add eax, NTCTRL_APPLY_ICON
cmpne byte [eax], 1, @f
mov byte [eax], 0
 
mov eax, [ctrl.addr]
add eax, NTCTRL_ICON
mov dl, [eax]
mov [params.icon], dl
 
mov edi, redraw
@@:
 
;; TEST TITLE
292,12 → 308,37
mov eax, [ctrl.addr]
add eax, NTCTRL_APPLY_TITLE
cmpne byte [eax], 1, @f
mov byte [eax], 0
 
mov eax, [ctrl.addr]
add eax, NTCTRL_TITLE
mov dl, [eax]
mov [params.title], dl
 
mov edi, redraw
@@:
 
;; TEST PBAR
mov eax, [ctrl.addr]
add eax, NTCTRL_APPLY_PBAR
cmpne byte [eax], 1, @f
mov byte [eax], 0
 
mov eax, [ctrl.addr]
add eax, NTCTRL_PBAR_CUR
mov edx, [eax]
mov [pbar.cur_val], edx
 
mov eax, [ctrl.addr]
add eax, NTCTRL_PBAR_MAX
mov edx, [eax]
mov [pbar.max_val], edx
 
call calc_fill_width
 
mov edi, redraw
@@:
 
;; TEST CLOSE
mov eax, [ctrl.addr]
add eax, NTCTRL_CLOSE
337,6 → 378,7
redraw:
call draw_window
call draw_text
call draw_pbar
 
jmp update
 
474,6 → 516,10
draw_text:
mov esi, [text.lines]
 
cmpne byte [params.pbar], 1, @f
dec esi
@@:
 
mov eax, 4
mov ebx, [text.offset]
shl ebx, 16
528,6 → 574,31
 
;----------------------------
 
draw_pbar:
cmpne byte [params.pbar], 1, .exit
mov esi, 0xFF0000
mov ecx, LINEH
imul ecx, [text.lines]
shl ecx, 16
add ecx, (LINEH / 2) shl 16 + 8
mcall 13, <[text.offset], [pbar.width]>, , 0x555555
 
sub ecx, -(1 shl 16) + 2
 
mov bx, word [pbar.f_width]
add ebx, 1 shl 16
 
mcall , , , 0x999999
mov cx, 1
mcall , , , 0xAAAAAA
mov cx, 6
mov bx, 1
mcall
.exit:
ret
 
;----------------------------
 
init_window:
dec dword [window.width]
dec dword [window.height]
540,8 → 611,12
;----------------------------
 
parse_text:
mov dword [text.lines], 1
cmpne byte [params.pbar], 1, @f
inc dword [text.lines]
@@:
 
mov dword [text.max_len], 0
mov dword [text.lines], 1
mov ebx, text.buffer
mov ecx, 0
mov dl, 0
625,6 → 700,7
cmpe dl, "d", .set_atcl
cmpe dl, "c", .set_clcl
cmpe dl, "t", .set_title
cmpe dl, "p", .set_pbar
 
mov bl, 1
mov ecx, sz_icons
647,6 → 723,11
mov byte [params.title], 1
jmp .next_char
 
.set_pbar:
mov byte [params.pbar], 1
inc dword [text.lines]
jmp .next_char
 
.set_icon:
mov [params.icon], bl
 
659,6 → 740,26
 
;----------------------------
 
calc_fill_width:
mov eax, [pbar.cur_val]
cmpng eax, [pbar.max_val], @f
mov eax, [pbar.max_val]
@@:
cmpnl eax, 0, @f
mov eax, 0
@@:
 
mov ebx, [pbar.width]
sub ebx, 2
imul eax, ebx
mov edx, 0
mov ebx, [pbar.max_val]
div ebx
mov [pbar.f_width], eax
ret
 
;----------------------------
 
@imports:
library img, "libimg.obj"
import img, img.to_rgb, "img_to_rgb2", \
673,6 → 774,7
sz_std db "'NOTIFY 3\n", \
"d - disable auto-closing\n", \
"c - disable click-closing\n", \
"p - use progressbar\n", \
"t - title\n", \
" \n", \
"ICONS:\n", \
723,6 → 825,7
.atcl rb 1
.clcl rb 1
.title rb 1
.pbar rb 1
.icon rb 1
.ctrl rb 1
 
742,6 → 845,12
.name rb 31
.addr rd 1
 
pbar:
.width rd 1
.cur_val rd 1
.max_val rd 1
.f_width rd 1
 
buffer rb 1024
first_draw rb 1
prev_pid rd 1
/programs/system/notify3/readme.txt
15,6 → 15,7
d - disable auto-closing
c - disable closing by click
t - title
p - progressbar
 
2.3.1 ICONS:
A - application
/programs/system/notify3/test_ctrl.asm
49,6 → 49,19
mcall 5, 1
cmpe byte [eax], 0, @b
 
;; CONFIG PBAR
mov eax, [ctrl.addr]
add eax, NTCTRL_PBAR_MAX
mov dword [eax], 9
 
mov eax, [ctrl.addr]
add eax, NTCTRL_PBAR_CUR
mov dword [eax], 9
 
mov eax, [ctrl.addr]
add eax, NTCTRL_APPLY_PBAR
mov byte [eax], 1
 
;; LOOP OF NOTIFIES CHANGES
@@:
;; SHIFT TEXT
68,10 → 81,10
mov byte [eax], 1
 
;; CLOSE NOTIFY IF TIME IS END
cmpe byte [sz_time], "0" - 1, .exit
cmpe byte [sz_time], "0", .exit
 
;; WAIT AND DO NEXT ITERATION
mcall 5, 10
mcall 5, 20
jmp @b
 
.exit:
95,8 → 108,8
mov [eax], dh
 
inc byte [timer]
cmpne byte [timer], 10, .skip_changes
sub byte [timer], 10
cmpne byte [timer], 5, .skip_changes
sub byte [timer], 5
 
;; CHANGE TIMER TEXT
dec byte [sz_time]
126,6 → 139,16
add eax, NTCTRL_APPLY_TITLE
mov byte [eax], 1
 
;; CHANGE PBAR
mov eax, [ctrl.addr]
add eax, NTCTRL_PBAR_CUR
dec dword [eax]
 
;; APPLY PBAR
mov eax, [ctrl.addr]
add eax, NTCTRL_APPLY_PBAR
mov byte [eax], 1
 
.skip_changes:
 
ret
148,7 → 171,7
;-------------------------------------------------------------------------------
 
sz_time:
db "5", 0
db "9", 0
sz_text:
db "Hello, World!!! It is a marquee! ", 0
sz_quote:
158,10 → 181,11
sz_sec_line_end:
db " seconds", 0
sz_flags:
db "Idc", 0
db "Idcp", 0
 
fi_launch:
dd 7, 0, params, 0, 0
;db "/usbhd0/2/svn/programs/system/notify3/notify", 0
db "@notify", 0
 
@end: