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-----
2 files changed,
70 insertions(+),
4 deletions(-)
M
taro-ctl.cr
→
taro-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.tal
→
taro-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