rvv041 - Addresss Book Window working with static data

new attributes created for the box
	 At this stage, the Evenhandler is processing the exit command only
         to close the window and return to the main window.
This commit is contained in:
Rene V. Vergara A. 2024-05-24 12:20:49 -04:00
parent 2fb889b1a2
commit e946df43f8

View file

@ -40,6 +40,8 @@ import Brick.Widgets.Core
, joinBorders , joinBorders
, padAll , padAll
, padBottom , padBottom
, padTop
, setAvailableSize
, str , str
, strWrap , strWrap
, strWrapWith , strWrapWith
@ -48,6 +50,7 @@ import Brick.Widgets.Core
, txtWrapWith , txtWrapWith
, updateAttrMap , updateAttrMap
, vBox , vBox
, viewport
, vLimit , vLimit
, withAttr , withAttr
, withBorderStyle , withBorderStyle
@ -108,6 +111,7 @@ data Name
| RecField | RecField
| AmtField | AmtField
| MemoField | MemoField
| ABViewport
deriving (Eq, Show, Ord) deriving (Eq, Show, Ord)
data DialogInput = DialogInput data DialogInput = DialogInput
@ -132,6 +136,7 @@ data DialogType
| ASelect | ASelect
| SendTx | SendTx
| Blank | Blank
| AdrBook
data DisplayType data DisplayType
= AddrDisplay = AddrDisplay
@ -341,6 +346,45 @@ drawUI s = [splashDialog s, helpDialog s, displayDialog s, inputDialog s, ui s]
C.hCenter C.hCenter
(hBox [capCommand "" "Send", capCommand "<esc> " "Cancel"])) (hBox [capCommand "" "Send", capCommand "<esc> " "Cancel"]))
Blank -> emptyWidget Blank -> emptyWidget
AdrBook ->
-- D.renderDialog
-- (D.dialog (Just (str "Select Wallet")) Nothing 50)
-- (selectListBox "Wallets" (st ^. wallets) listDrawWallet <=>
-- C.hCenter
-- (hBox
-- [ capCommand "↑↓ " "move"
-- , capCommand "↲ " "select"
-- , capCommand "N" "ew"
-- , capCommand "S" "how phrase"
-- , xCommand
-- ]))
D.renderDialog
(D.dialog (Just $ str " Address Book ") Nothing 60)
(withAttr abDefAttr $
setAvailableSize (50,20) $
viewport ABViewport BT.Vertical $
vLimit 20 $
hLimit 50 $
vBox $ [vLimit 16 $
hLimit 50 $
vBox $ --[ L.renderList listDrawAB True (s^.abaddresses) ],
[str "Addresses 1.................",
str "Addresses 2.....",
str "Addresses 3",
str "Addresses 4"],
padTop Max $
vLimit 4 $
hLimit 50 $
withAttr abMBarAttr $
vBox $ [C.hCenter $
(capCommand "N" "ew Address" <+>
capCommand "E" "dit Address" <+>
capCommand3 "" "C" "opy Address"),
C.hCenter $
(capCommand "D" "elete Address" <+>
capCommand "S" "end Zcash" <+>
capCommand3 "E" "x" "it")]])
splashDialog :: State -> Widget Name splashDialog :: State -> Widget Name
splashDialog st = splashDialog st =
if st ^. splashBox if st ^. splashBox
@ -586,6 +630,15 @@ barDoneAttr = A.attrName "done"
barToDoAttr :: A.AttrName barToDoAttr :: A.AttrName
barToDoAttr = A.attrName "remaining" barToDoAttr = A.attrName "remaining"
abDefAttr :: A.AttrName
abDefAttr = A.attrName "abdefault"
abSelAttr :: A.AttrName
abSelAttr = A.attrName "abselected"
abMBarAttr :: A.AttrName
abMBarAttr = A.attrName "menubar"
validBarValue :: Float -> Float validBarValue :: Float -> Float
validBarValue = clamp 0 1 validBarValue = clamp 0 1
@ -694,6 +747,7 @@ appEvent (BT.AppEvent t) = do
WSelect -> return () WSelect -> return ()
ASelect -> return () ASelect -> return ()
SendTx -> return () SendTx -> return ()
AdrBook -> return ()
Blank -> do Blank -> do
if s ^. timer == 90 if s ^. timer == 90
then do then do
@ -931,6 +985,23 @@ appEvent (BT.VtyEvent e) = do
setFieldValid setFieldValid
(isRecipientValid (fs ^. sendTo)) (isRecipientValid (fs ^. sendTo))
RecField RecField
AdrBook -> do
case e of
V.EvKey (V.KChar 'x') [] ->
BT.modify $ set dialogBox Blank
V.EvKey V.KEnter [] -> do
ns <- liftIO $ refreshWallet s
BT.put ns
BT.modify $ set dialogBox Blank
V.EvKey (V.KChar 'n') [] -> do
BT.modify $
set inputForm $
updateFormState (DialogInput "New Wallet") $
s ^. inputForm
BT.modify $ set dialogBox WName
V.EvKey (V.KChar 's') [] ->
BT.modify $ set displayBox PhraseDisplay
ev -> BT.zoom wallets $ L.handleListEvent ev
Blank -> do Blank -> do
case e of case e of
V.EvKey (V.KChar '\t') [] -> focusRing %= F.focusNext V.EvKey (V.KChar '\t') [] -> focusRing %= F.focusNext
@ -954,8 +1025,8 @@ appEvent (BT.VtyEvent e) = do
set txForm $ set txForm $
mkSendForm (s ^. balance) (SendInput "" 0.0 "") mkSendForm (s ^. balance) (SendInput "" 0.0 "")
BT.modify $ set dialogBox SendTx BT.modify $ set dialogBox SendTx
V.EvKey (V.KChar 'b') [] -> V.EvKey (V.KChar 'b') [] ->
BT.modify $ set dialogBox ASelect BT.modify $ set dialogBox AdrBook
ev -> ev ->
case r of case r of
Just AList -> Just AList ->
@ -986,6 +1057,9 @@ theMap =
, (baseAttr, bg V.brightBlack) , (baseAttr, bg V.brightBlack)
, (barDoneAttr, V.white `on` V.blue) , (barDoneAttr, V.white `on` V.blue)
, (barToDoAttr, V.white `on` V.black) , (barToDoAttr, V.white `on` V.black)
, (abDefAttr, V.white `on` V.blue)
, (abSelAttr, V.blue `on` V.white)
, (abMBarAttr, V.white `on` V.black)
] ]
theApp :: M.App State Tick Name theApp :: M.App State Tick Name