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:
parent
2fb889b1a2
commit
e946df43f8
1 changed files with 76 additions and 2 deletions
|
@ -40,6 +40,8 @@ import Brick.Widgets.Core
|
|||
, joinBorders
|
||||
, padAll
|
||||
, padBottom
|
||||
, padTop
|
||||
, setAvailableSize
|
||||
, str
|
||||
, strWrap
|
||||
, strWrapWith
|
||||
|
@ -48,6 +50,7 @@ import Brick.Widgets.Core
|
|||
, txtWrapWith
|
||||
, updateAttrMap
|
||||
, vBox
|
||||
, viewport
|
||||
, vLimit
|
||||
, withAttr
|
||||
, withBorderStyle
|
||||
|
@ -108,6 +111,7 @@ data Name
|
|||
| RecField
|
||||
| AmtField
|
||||
| MemoField
|
||||
| ABViewport
|
||||
deriving (Eq, Show, Ord)
|
||||
|
||||
data DialogInput = DialogInput
|
||||
|
@ -132,6 +136,7 @@ data DialogType
|
|||
| ASelect
|
||||
| SendTx
|
||||
| Blank
|
||||
| AdrBook
|
||||
|
||||
data DisplayType
|
||||
= AddrDisplay
|
||||
|
@ -341,6 +346,45 @@ drawUI s = [splashDialog s, helpDialog s, displayDialog s, inputDialog s, ui s]
|
|||
C.hCenter
|
||||
(hBox [capCommand "↲ " "Send", capCommand "<esc> " "Cancel"]))
|
||||
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 st =
|
||||
if st ^. splashBox
|
||||
|
@ -586,6 +630,15 @@ barDoneAttr = A.attrName "done"
|
|||
barToDoAttr :: A.AttrName
|
||||
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 = clamp 0 1
|
||||
|
||||
|
@ -694,6 +747,7 @@ appEvent (BT.AppEvent t) = do
|
|||
WSelect -> return ()
|
||||
ASelect -> return ()
|
||||
SendTx -> return ()
|
||||
AdrBook -> return ()
|
||||
Blank -> do
|
||||
if s ^. timer == 90
|
||||
then do
|
||||
|
@ -931,6 +985,23 @@ appEvent (BT.VtyEvent e) = do
|
|||
setFieldValid
|
||||
(isRecipientValid (fs ^. sendTo))
|
||||
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
|
||||
case e of
|
||||
V.EvKey (V.KChar '\t') [] -> focusRing %= F.focusNext
|
||||
|
@ -955,7 +1026,7 @@ appEvent (BT.VtyEvent e) = do
|
|||
mkSendForm (s ^. balance) (SendInput "" 0.0 "")
|
||||
BT.modify $ set dialogBox SendTx
|
||||
V.EvKey (V.KChar 'b') [] ->
|
||||
BT.modify $ set dialogBox ASelect
|
||||
BT.modify $ set dialogBox AdrBook
|
||||
ev ->
|
||||
case r of
|
||||
Just AList ->
|
||||
|
@ -986,6 +1057,9 @@ theMap =
|
|||
, (baseAttr, bg V.brightBlack)
|
||||
, (barDoneAttr, V.white `on` V.blue)
|
||||
, (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
|
||||
|
|
Loading…
Reference in a new issue