all repos — taro @ 47c0289dd6f70a93ea8ef27520f3da06f6ce1b50

mblaze frontend in uxn + crystal

taro-ls: add button row on the bottom, handle hover effect; taro-ctl: implement making all as read
Iris Lightshard nilix@nilfm.cc
PGP Signature
-----BEGIN PGP SIGNATURE-----

iQIzBAABCAAdFiEEkFh6dA+k/6CXFXU4O3+8IhROY5gFAmQXbD4ACgkQO3+8IhRO
Y5hFQg//eYmAAYS2Ix52+abHG91DbZ7EBpxWq97DV9vucn4bUSQbsC7hudUsPUF/
EcpEO5rXPxvN6TPi00kdYEiTm3l/J4w1oOnqtMeHiptS0VVblkyNcrylomxfG+Jy
xW8v31NoFkSPhWwqlOkE5IKI8myyYKAvA4aSWLgAuULrZkdLrGff/E7hVYUZo9aL
xmvYAwecFlNnJMCuGpbPy4v18a1eq2IeUlphsWJ7MWMMCX4sj0TpGAsAwkhSJxxw
RsEI7BPgmHmQlwN2CsvSdISHiGHpcVieSq5OvLOgqLYlDffVqLYSsr6MNJqm1tLr
MzdWUM0v3g5aLBKw2e6CQeu2zXSSkOyUkK+zWHwrQHlCyIrFT2/2nSwGFAiFs3Ja
TuG4KmjKmr5karS+y/5fRveLP1WYSr0WZEJa5gfBQQXA2BENpAL+iDMv/RLXQDkj
tlmDgn7y9KPdKaMRLn/op2rbLOSrrDvnM/cGwbV5aAzrOqLnkw2Z5uek4972rXFW
xPaj1GzUoT3BSL2CmmA5pxVCMra+3aqMNKP58OvTDrlFqJhajbLEOdxpmswEigir
xa+ZsAzoAvgKzM7jA4LvJFbCbr6vT11d9yYVZEG6+rgjb2di5B4ZmKcXmazvZTt1
lWTqe+BgDnclju3n6SBeZ9OI3uwZc+jHVUVq5wO0s8+FfGx5yUI=
=HpB7
-----END PGP SIGNATURE-----
commit

47c0289dd6f70a93ea8ef27520f3da06f6ce1b50

parent

68783e113b1162dffaae610bcb59a7e28b304209

2 files changed, 70 insertions(+), 4 deletions(-)

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

@@ -155,6 +155,11 @@

return run_cmd(mailCmd) end + def mark_all_read + mailCmd = "mflag -S :" + return run_cmd(mailCmd) + end + def set_mbox(box : String) @mailbox = box end

@@ -209,6 +214,9 @@ case m.type

when 1 then taro.mblaze.set_mbox(String.new(m.data)) taro.mainWindow.write_msg(2_u8, taro.mblaze.list_mail.to_slice) + when 3 then + taro.mblaze.mark_all_read + taro.mainWindow.write_msg(2_u8, taro.mblaze.list_mail.to_slice) end end end
M taro-ls.taltaro-ls.tal

@@ -43,7 +43,7 @@ ( variables )

|0000 -@refresh [ &mboxes $1 &list $1 &fg $1 ] +@refresh [ &mboxes $1 &list $1 &fg $1 &btns $1 ] @resizing [ $1 &x $2 &y $2 &dx $2 &dy $2 ] @decoding [ $1 &msg_type $1 &counting $1 &count $2 &processed $2 ] @mboxes [ &bytes $2 &data $2 &len $2 &offset $2 &elem_offset $1

@@ -52,6 +52,7 @@ &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 ] ( program )

@@ -72,7 +73,9 @@ #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/read_all STZ ;on_screen .Screen/vector DEO2 ;on_mouse .Mouse/vector DEO2

@@ -179,6 +182,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 .resizing LDZ #00 EQU ,&resz_check JCN ( resizing )

@@ -204,6 +208,31 @@

#01 .refresh/fg STZ BRK +@mouse_event_buttons ( numBtns -- ) + + STH + + ( 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 + 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 + + #01 [ .Mouse/x DEI2 #0008 SUB2 #04 SFT2 NIP ] .btn_colors ADD STZ + + &done + #01 .refresh/btns STZ + POPr + +JMP2r + @handle_rsz ( -- mousestate ) ( chk_x_rsz )

@@ -387,6 +416,11 @@ .list [ TOP_SECTION MID_SEPARATOR ADD2 ] draw_scrollbar

#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 + #00 .refresh/btns STZ + &no_btns + .refresh/fg LDZ #00 EQU ,&no_fg JCN clear_fg draw_resize_handle

@@ -448,7 +482,7 @@ LDZk INC SWP STZ

JMP2r -@shouldnt_draw_word ( list -- flag ) +@shouldnt_draw_word ( list -- bit ) DUP LB_OFFSET LDZ2 DUP2 ( above top of view )

@@ -621,6 +655,26 @@ POPr

JMP2r +@draw_button_2x2_symmetrical ( color sprite* x* y* -- ) + + .Screen/y DEO2 + .Screen/x DEO2 + + .Screen/addr DEO2 + + 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 ==- ) @strlen ( addr* -- len* )

@@ -632,6 +686,10 @@ SWP2 SUB2

JMP2r +@debug_u8 ( byte -- ) + #00 SWP debug_u16 +JMP2r + @debug_u16 ( short* -- ) SWP ,&byte JSR

@@ -639,8 +697,6 @@ &byte ( byte -- ) DUP #04 SFT ,&char JSR

&char ( char -- ) #0f AND DUP #09 GTH #27 MUL ADD #30 ADD .Console/error DEO JMP2r - - @debug ( str* -- )

@@ -657,6 +713,8 @@ @resize_handle [ e2c2 aa1a 3a02 fe00 ]

@cursor [ f8e0 e090 8804 0000 ] @scrollbar [ 0707 0707 0707 0707 ] @blank [ 0000 0000 0000 0000 ] + +@all_read_button [ 0001 0111 0904 0278 ] @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