6,14 → 6,15 |
include '../../../proc32.inc' |
include '../../../macros.inc' |
|
BUTTON_SIDE equ 16 ; button are squares |
BUTTON_SPACE equ 19 ; space between cols and rows |
BUTTON_ID_SHIFT equ 2 ; button_id = character + BUTTON_ID_SHIFT |
TABLE_BEGIN_X equ 2 |
TABLE_BEGIN_Y equ 2 |
BUTTON_SIDE = 28 ; button are squares |
BUTTON_SPACE = 34 ; space between cols and rows |
BUTTON_ID_SHIFT = 2 ; button_id = character + BUTTON_ID_SHIFT |
TABLE_BEGIN_X = 2 |
TABLE_BEGIN_Y = 2 |
PANEL_Y = BUTTON_SPACE*8+TABLE_BEGIN_Y+TABLE_BEGIN_Y |
|
FOCUS_SQUARE_COLOR equ 0x000080FF |
PAGE_SWITCHER_BLINK_COLOR equ 0x00808080 |
FOCUS_SQUARE_COLOR = 0x000080FF |
SWITCHER_BLINK_COLOR = 0x00808080 |
|
|
start: |
62,18 → 63,14 |
|
redraw: |
mcall 9, proc_info, -1 |
mcall 48, 3, sys_colors, 40 |
|
mcall 12, 1 |
|
mcall 48, 4 ; get skin height |
mov ecx, 300*0x10000+184 |
mov ecx, 200*0x10000+PANEL_Y+33 |
add ecx, eax |
mov edx, 0x34000000 |
or edx, [sys_colors.work] |
mov esi, 0x80000000 |
or esi, [sys_colors.grab_text] |
mcall 0, <300,315>, , , , window_title |
mov ebx, 200*0x10000+BUTTON_SPACE*16+TABLE_BEGIN_X+TABLE_BEGIN_X+9 |
mcall 0, , , 0x34AAAaaa, 0x80000000, window_title |
test [proc_info.wnd_state], 0x04 |
jnz @f |
|
176,7 → 173,7 |
ret |
@@: inc [symbol_current] |
add [button_x], BUTTON_SPACE |
cmp [button_x], 306 ; the last in row? |
cmp [button_x], BUTTON_SPACE*16+TABLE_BEGIN_X ; the last in row? |
jne .next_button |
add [button_y], BUTTON_SPACE ; next row |
mov [button_x], TABLE_BEGIN_X |
186,19 → 183,14 |
|
|
proc draw_button |
mov ebx, [button_x] |
shl ebx, 16 |
mov bx, BUTTON_SIDE |
mov ecx, [button_y] |
shl ecx, 16 |
mov cx, BUTTON_SIDE |
mov edx, 0x80000000 |
mov dl, [symbol_current] |
add edx, BUTTON_ID_SHIFT |
mcall 8, , , |
mov esi, 0xFFFfff |
mcall 8, <[button_x],BUTTON_SIDE>, <[button_y],BUTTON_SIDE> |
and edx, 0x7FFFFFFF |
or edx, 0x20000000 |
mcall , , , , [sys_colors.work_button] |
mcall |
|
test edi, edi ; is focused? |
jz .symbol ; draw only character, not selection square |
238,11 → 230,11 |
|
.symbol: |
mov ebx, [button_x] |
add ebx, 6 |
add ebx, 9 |
shl ebx, 16 |
add ebx, [button_y] |
add ebx, 5 |
mcall 4, , [sys_colors.work_button_text], symbol_current, 1 |
add ebx, 7 |
mcall 4, , 0x01000000, symbol_current, 1 |
|
ret |
endp |
251,20 → 243,20 |
proc draw_page_switcher _blinking |
|
mcall 8, , , 0x8000FFAA |
|
mov esi, [sys_colors.work_button] |
mov esi, 0xCCCccc |
cmp [_blinking], 1 ; blinking? |
jne @f |
mov esi, PAGE_SWITCHER_BLINK_COLOR |
@@: mcall , <2,60>, <157,19>, 0x2000FFAA |
mov esi, SWITCHER_BLINK_COLOR |
@@: mcall , <2,98>, <PANEL_Y+1,23>, 0x2000FFAA |
|
mov ecx, 0x80000000 |
or ecx, [sys_colors.work_button_text] |
mov ecx, 0x81000000 |
mov edx, string_000_127 |
cmp [symbol_start], 0 ; first page? |
je @f |
mov edx, string_128_255 ; ok, the second one |
@@: mcall 4, <11,164>, |
@@: mcall 4, <10,PANEL_Y+6>, |
mcall , <115,PANEL_Y+6>, 0x81000000, string_ASCII_CODE |
|
ret |
endp |
|
271,15 → 263,9 |
|
proc draw_codes |
|
mov ecx, 0x80000000 |
or ecx, [sys_colors.work_text] |
mcall 4, <80,164>, , string_ASCII_CODE |
mcall , <180,164>, , string_ASCII_HEX_CODE |
movzx ecx, [symbol_focused] |
mov esi, 0x40000000 |
or esi, [sys_colors.work_text] |
mcall 47, 0x00030000, , <152,164>, , [sys_colors.work] |
mcall , 0x00020100, , <276,164>, |
mcall 47, 0x00030000, , <250,PANEL_Y+6>, 0x41000000, 0xAAAaaa |
mcall , 0x00020100, , <500,PANEL_Y+6>, |
|
ret |
endp |
289,11 → 275,10 |
mcall -1 |
|
|
szZ window_title ,'ASCIIVju v0.4' |
szZ window_title ,'ASCIIVju' |
szZ string_000_127 ,'000-127' |
szZ string_128_255 ,'128-255' |
szZ string_ASCII_CODE ,'ASCII Code: ' |
szZ string_ASCII_HEX_CODE ,'ASCII Hex-Code: ' |
szZ string_ASCII_CODE ,'ASCII Code: ASCII Hex-Code:' |
|
button_x dd 2 |
button_y dd 2 |
305,6 → 290,5 |
symbol_focused db 0 |
i_end: |
proc_info process_information |
sys_colors system_colors |
rb 0x400 ;stack |
e_end: |