/kernel/branches/net/applications/ircc/gui.inc |
---|
133,6 → 133,8 |
.noscroll: |
mov [scroll1.position], 0 |
print_channel_list: |
pusha |
156,7 → 158,10 |
mul ecx |
mov edx, eax |
mov eax, [window_open] |
add edx, [eax + window.data_ptr] |
mov eax, [eax + window.data_ptr] |
add edx, eax |
mov ebp, [eax + window_data.selected] |
sub ebp, [scroll1.position] |
add edx, window_data.names |
pop ebx |
168,8 → 173,19 |
mov edi, [ysize] ; Calculate how many names will fit on screen |
sub edi, TEXT_Y + 15 ;+ 10 ;;;;; |
.loop: |
; TODO: check if name is selected and highlight background color if so |
cmp byte[edx], ' ' ; end of list? |
dec ebp ; is this name selected? |
jnz @f |
; yes, highlight it |
pusha |
mov cx, bx |
mov bx, USERLIST_X |
shl ecx, 16 |
mov cx, 10 - 1 |
mov edx, 0x00000055 ; blue! |
mcall 13 |
popa |
@@: |
cmp byte[edx], 0 ; end of list? |
je .done |
mcall |
/kernel/branches/net/applications/ircc/ircc.asm |
---|
42,12 → 42,12 |
USERCMD_MAX_SIZE = 400 |
WIN_MIN_X = 600 |
WIN_MIN_Y = 180 |
WIN_MIN_Y = 165 |
TEXT_X = 5 |
TEXT_Y = 45 |
TEXT_Y = 30 |
TOP_Y = 40 |
TOP_Y = 25 |
MAX_WINDOWS = 20 |
MAX_USERS = 4096 |
107,6 → 107,7 |
text rb 120*60 |
title rb 256 |
names rb MAX_NICK_LEN * MAX_USERS |
selected dd ? ; selected user, 0 if none selected |
usertext rb 256 |
usertextlen dd ? |
ends |
169,7 → 170,6 |
mcall 48, 3, colors, 40 |
; set edit box and scrollbar colors |
mov eax, [colors.work] |
mov [scroll1.bg_color], eax |
374,10 → 374,6 |
status dd STATUS_DISCONNECTED |
channel_line_sun dd 0x9999ff |
channel_line_shadow dd 0x666699 |
index_list_2 dd 0x0000ff |
text_start dd ? ; pointer to current textbox data |
irc_data dd 0x0 ; encoder |
textbox_width dd 80 ; in characters, not pixels ;) |
422,8 → 418,8 |
edit1 edit_box 0, 0, 0, 0xffffff, 0x6f9480, 0, 0, 0, USERCMD_MAX_SIZE, usercommand, mouse_dd, ed_focus, 25, 25 |
; xsize, xpos, ysize, ypos, max, cur, pos, bgcol, frcol, linecol |
scroll1 scrollbar SCROLLBAR_WIDTH, 300, 150, TOP_Y, 10, 100, 0, 0, 0, 0, 0, 1 |
scroll2 scrollbar SCROLLBAR_WIDTH, 300, 150, TOP_Y, 10, 100, 0, 0, 0, 0, 0, 1 |
main_PID dd ? ; identifier of main thread |
utf8_bytes_rest dd ? ; bytes rest in current UTF8 sequence |
utf8_char dd ? ; first bits of current UTF8 character |
/kernel/branches/net/applications/ircc/serverparser.inc |
---|
46,6 → 46,8 |
server_commands: |
dd '322 ', cmd_322 ; RPL_LIST |
dd '323 ', cmd_323 ; RPL_LISTEND |
dd '328 ', cmd_328 |
dd '332 ', cmd_topic |
dd '333 ', cmd_333 ; nickname and time of topic |
870,3 → 872,18 |
.fail: |
ret |
cmd_322: |
add esi, 4 |
call skip_nick |
call print_text2 |
mov esi, str_newline |
call print_text2 |
ret |
cmd_323: |
ret |
/kernel/branches/net/applications/ircc/userparser.inc |
---|
145,7 → 145,6 |
mov edi, windows |
.loop: |
mov [edi+window.flags], FLAG_CLOSE |
; call notify_channel_thread |
add edi, sizeof.window |
dec ecx |
jnz .loop |