taro-ls: add all buttons, click handling, implement refresh and read_all; taro-ctl: fix message size and handle 0 length messages
This commit is contained in:
parent
47c0289dd6
commit
bb102262e5
2 changed files with 85 additions and 24 deletions
|
@ -111,12 +111,16 @@ module Taro
|
|||
szhigh : UInt16 = UInt16.new(szslice[1])
|
||||
@szshort = szlow + szhigh
|
||||
@sizing = false
|
||||
if @szshort == 0
|
||||
@decoding = false
|
||||
break
|
||||
end
|
||||
else
|
||||
slc = Slice(UInt8).new(@szshort)
|
||||
@stdout_r.read_fully(slc)
|
||||
@decoding = false
|
||||
data = slc
|
||||
szshort = 0
|
||||
@decoding = false
|
||||
@szshort = 0
|
||||
break
|
||||
end
|
||||
end
|
||||
|
|
101
taro-ls.tal
101
taro-ls.tal
|
@ -52,7 +52,8 @@
|
|||
@list [ &bytes $2 &data $2 &len $2 &offset $2 &elem_offset $1
|
||||
&top $2 &height $1 &select_index $2 &select_len $2
|
||||
&sb_len $1 &sb_pos $2 &sb_step $2 ]
|
||||
@btn_colors [ &read_all $1 ]
|
||||
@btn_colors [ &compose $1 &refresh $1 &read_all $1 &search $1 &refile $1 &trash $1 ]
|
||||
@btn_fns [ &compose $2 &refresh $2 &read_all $2 &search $2 &refile $2 &trash $2 ]
|
||||
|
||||
( program )
|
||||
|
||||
|
@ -73,9 +74,24 @@
|
|||
|
||||
.Screen/height DEI2 TOP_SECTION BOTTOM_SECTION ADD2 MID_SEPARATOR ADD2 SUB2 #03 SFT2 NIP .list/height STZ
|
||||
TOP_SECTION #03 SFT2 NIP .mboxes/height STZ
|
||||
|
||||
#01 .refresh/btns STZ
|
||||
#01 .refresh/fg STZ
|
||||
|
||||
#03 .btn_colors/compose STZ
|
||||
#03 .btn_colors/refresh STZ
|
||||
#03 .btn_colors/read_all STZ
|
||||
#03 .btn_colors/search STZ
|
||||
#03 .btn_colors/refile STZ
|
||||
#03 .btn_colors/trash STZ
|
||||
|
||||
;noop_button_click .btn_fns/compose STZ2
|
||||
;send_get_mbox .btn_fns/refresh STZ2
|
||||
;send_mark_all_read .btn_fns/read_all STZ2
|
||||
;noop_button_click .btn_fns/search STZ2
|
||||
;noop_button_click .btn_fns/refile STZ2
|
||||
;noop_button_click .btn_fns/trash STZ2
|
||||
|
||||
|
||||
;on_screen .Screen/vector DEO2
|
||||
;on_mouse .Mouse/vector DEO2
|
||||
|
@ -163,6 +179,12 @@ JMP2r
|
|||
|
||||
JMP2r
|
||||
|
||||
@send_mark_all_read ( -> )
|
||||
#03 .Console/write DEO
|
||||
#00 .Console/write DEOk DEO
|
||||
( message size is 0, no payload )
|
||||
JMP2r
|
||||
|
||||
@send_str ( str* -- )
|
||||
|
||||
&while
|
||||
|
@ -182,7 +204,7 @@ BRK
|
|||
|
||||
;mbox_select_handler .mboxes .refresh/mboxes #0000 #00 mouse_event_list
|
||||
;noop_list_click .list .refresh/list TOP_SECTION MID_SEPARATOR ADD2 #04 mouse_event_list
|
||||
#01 mouse_event_buttons
|
||||
.btn_fns .btn_colors SUB mouse_event_buttons
|
||||
|
||||
.resizing LDZ #00 EQU ,&resz_check JCN
|
||||
( resizing )
|
||||
|
@ -215,20 +237,27 @@ BRK
|
|||
( TODO: check if any button is active and only refresh if it is )
|
||||
|
||||
STHkr #00 &while EQUk ,&end JCN
|
||||
DUP .btn_colors ADD #03 SWP STZ
|
||||
DUP .btn_colors ADD
|
||||
DUP LDZ #01 NEQ ,&continue JCN
|
||||
#01 .refresh/btns STZ
|
||||
&continue
|
||||
#03 SWP STZ
|
||||
|
||||
INC
|
||||
,&while JMP &end POP2
|
||||
|
||||
.Mouse/x DEI2 #0008 LTH2 ,&done JCN
|
||||
.Mouse/x DEI2 #0008 SUB2 [ STHkr #00 SWP #40 SFT2 #0001 SUB2 ] GTH2 ,&done JCN
|
||||
|
||||
.Mouse/y DEI2 .Screen/height DEI2 #0020 SUB2 LTH2 ,&done JCN
|
||||
.Mouse/y DEI2 .Screen/height DEI2 #0010 SUB2 GTH2 ,&done JCN
|
||||
.Mouse/y DEI2 .Screen/height DEI2 #0030 SUB2 LTH2 ,&done JCN
|
||||
.Mouse/y DEI2 .Screen/height DEI2 #0020 SUB2 GTH2 ,&done JCN
|
||||
|
||||
#01 [ .Mouse/x DEI2 #0008 SUB2 #04 SFT2 NIP ] .btn_colors ADD STZ
|
||||
#01 .refresh/btns STZ
|
||||
.Mouse/state DEI #01 AND #00 EQU ,&done JCN
|
||||
.Mouse/x DEI2 #0008 SUB2 #04 SFT2 NIP #10 SFT .btn_fns ADD LDZ2 JSR2
|
||||
|
||||
&done
|
||||
#01 .refresh/btns STZ
|
||||
POPr
|
||||
|
||||
JMP2r
|
||||
|
@ -374,6 +403,10 @@ JMP2r
|
|||
|
||||
JMP2r
|
||||
|
||||
@noop_button_click ( -> )
|
||||
|
||||
JMP2r
|
||||
|
||||
@try_scroll_up_mouse ( list -- )
|
||||
|
||||
STH
|
||||
|
@ -417,7 +450,12 @@ JMP2r
|
|||
&no_list
|
||||
|
||||
.refresh/btns LDZ #00 EQU ,&no_btns JCN
|
||||
.btn_colors/read_all LDZ ;all_read_button #0008 .Screen/height DEI2 #0020 SUB2 draw_button_2x2_symmetrical
|
||||
.btn_colors/compose LDZ ;compose_button #0008 .Screen/height DEI2 #0030 SUB2 draw_2x2
|
||||
.btn_colors/refresh LDZ ;refresh_button #0018 .Screen/height DEI2 #0030 SUB2 draw_2x2
|
||||
.btn_colors/read_all LDZ ;all_read_button #0028 .Screen/height DEI2 #0030 SUB2 draw_2x2
|
||||
.btn_colors/search LDZ ;search_button #0038 .Screen/height DEI2 #0030 SUB2 draw_2x2
|
||||
.btn_colors/refile LDZ ;refile_button #0048 .Screen/height DEI2 #0030 SUB2 draw_2x2
|
||||
.btn_colors/trash LDZ ;trash_button #0058 .Screen/height DEI2 #0030 SUB2 draw_2x2
|
||||
#00 .refresh/btns STZ
|
||||
&no_btns
|
||||
|
||||
|
@ -655,24 +693,15 @@ JMP2r
|
|||
|
||||
JMP2r
|
||||
|
||||
@draw_button_2x2_symmetrical ( color sprite* x* y* -- )
|
||||
@draw_2x2 ( color sprite* x* y* -- )
|
||||
|
||||
.Screen/y DEO2
|
||||
.Screen/x DEO2
|
||||
|
||||
#16 .Screen/auto DEO
|
||||
.Screen/addr DEO2
|
||||
.Screen/sprite DEOk DEO
|
||||
#00 .Screen/auto DEO
|
||||
|
||||
STHk .Screen/sprite DEO
|
||||
.Screen/x DEI2 #0008 ADD2 .Screen/x DEO2
|
||||
|
||||
STHkr #10 ADD .Screen/sprite DEO
|
||||
.Screen/x DEI2 #0008 SUB2 .Screen/x DEO2
|
||||
.Screen/y DEI2 #0008 ADD2 .Screen/y DEO2
|
||||
|
||||
STHkr #20 ADD .Screen/sprite DEO
|
||||
.Screen/x DEI2 #0008 ADD2 .Screen/x DEO2
|
||||
STHr #30 ADD .Screen/sprite DEO
|
||||
|
||||
JMP2r
|
||||
|
||||
( -== util ==- )
|
||||
|
@ -714,7 +743,35 @@ JMP2r
|
|||
@scrollbar [ 0707 0707 0707 0707 ]
|
||||
@blank [ 0000 0000 0000 0000 ]
|
||||
|
||||
@all_read_button [ 0001 0111 0904 0278 ]
|
||||
@refresh_button [
|
||||
0000 0708 1010 1000 0000 e010 3e1c 0800
|
||||
0010 387c 0807 0000 0008 0808 10e0 0000
|
||||
]
|
||||
|
||||
@all_read_button [
|
||||
0000 0101 0905 003c 0000 8080 90a0 003c
|
||||
3c00 0509 0101 0000 3c00 a090 8080 0000
|
||||
]
|
||||
|
||||
@search_button [
|
||||
0000 0007 0810 2142 0000 00e0 1008 8442
|
||||
4221 1008 0700 0000 4284 0810 e000 0000
|
||||
]
|
||||
|
||||
@refile_button [
|
||||
0000 003f 202f 2024 0000 fe82 12fa 1202
|
||||
2f24 203f 0000 0000 fa02 02fe 0000 0000
|
||||
]
|
||||
|
||||
@trash_button [
|
||||
0003 021f 101f 080a 00c0 40f8 08f8 1050
|
||||
0a0a 0a08 0f00 0000 5050 5010 f000 0000
|
||||
]
|
||||
|
||||
@compose_button [
|
||||
0010 107c 1010 0102 0000 0020 5088 1020
|
||||
0408 191e 1d00 0000 4080 00a8 5000 0000
|
||||
]
|
||||
|
||||
@font [
|
||||
00 00 00 00 00 00 00 00 00 18 18 18 08 00 08 00 00 14 14 00 00 00 00 00 00 24 7e 24 24 7e 24 00
|
||||
|
@ -745,6 +802,6 @@ JMP2r
|
|||
|
||||
|
||||
@word $ff
|
||||
@selected_mbox $ff
|
||||
@selected_mbox "INBOX 00 $f9 ( default mailbox is INBOX, total space #06 + #f9 = #ff bytes )
|
||||
@list_data $4000
|
||||
@mbox_data $4000
|
Loading…
Reference in a new issue