all repos — taro @ bb102262e5fa7f9387a6376955183c33c3053e09

mblaze frontend in uxn + crystal

taro-ls: add all buttons, click handling, implement refresh and read_all; taro-ctl: fix message size and handle 0 length messages
Iris Lightshard nilix@nilfm.cc
PGP Signature
-----BEGIN PGP SIGNATURE-----

iQIzBAABCAAdFiEEkFh6dA+k/6CXFXU4O3+8IhROY5gFAmQZM0sACgkQO3+8IhRO
Y5gIuA//RHBxA3ve9IxZ+SZOHBsowB5PMyU7ZpeiK2DA7YtIhrvEuXSuJ+nbcZPL
oRCmPXeiwbg88obWRU7k4voEDxAd1xzn2oqxSb83pmYLaVWtJ4DKTxhMqjTYsVu9
mlqK9ZQfdBmgLuyuKGq6zltvYAlnwftW0/vbVfHc4yJSaBDOtve1Kvds6x63lWEZ
saNXj4BNmSMMQCpeKVQcZQl+zh/pqrU/kCiGUIZCuKvJMRRjkoDIF7nbkykjwfDv
7SL7/DMlWOCxAe5bq7+ervMt0xZZb+dU0LEkHkeW3EJx+i8IO4vEGIYWK/xDT9gz
TZqWByvI+zM+a9564Xn0S7YYzhdOQ7aYKDj5d4eLsaM9uQpQjavJV2Yny1iuvcFj
dA3JvUrJdX0xcd3Qgxf7do5U//kmvOSBFEfXqaIUo1QVDawzp9Buy7VBVkrumB68
7SAaxxKbk8EY7PGh2iVSpw+cJs1NImo+fYKRgPYfWjPaDEvUDMBgDxuCBQAORusf
sKa/qDenLoXusrEQI/Bu5TmoDKqxYmbSrzmonJ64UiMmnEcpEWT6NoeJHfeICnph
bSIMkuJ2N70vI58lMMysDwefg6s/5YUVhqgVY8T50W7g5kQeS4DTAIeky4k7CDkI
8l3LrsbMpdzH6r08UpaNtZrynfzs1w3rjS97W/1ML+QXx71GZG4=
=r2/u
-----END PGP SIGNATURE-----
commit

bb102262e5fa7f9387a6376955183c33c3053e09

parent

47c0289dd6f70a93ea8ef27520f3da06f6ce1b50

2 files changed, 85 insertions(+), 24 deletions(-)

jump to
M taro-ctl.crtaro-ctl.cr

@@ -111,12 +111,16 @@ szlow : UInt16 = UInt16.new(szslice[0])*256

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
M taro-ls.taltaro-ls.tal

@@ -52,7 +52,8 @@ &sb_len $1 &sb_pos $2 &sb_step $2 ]

@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 @@ #0001 .mboxes/select_len STZ2

.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 @@ ;selected_mbox send_str

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 @@ @on_mouse ( -> )

;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 @@

( 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 @@ POP

JMP2r +@noop_button_click ( -> ) + +JMP2r + @try_scroll_up_mouse ( list -- ) STH

@@ -417,7 +450,12 @@ #00 .refresh/list STZ

&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 @@ POPr

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 @@ @cursor [ f8e0 e090 8804 0000 ]

@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 @@ ]

@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