rvv041 #82
1 changed files with 76 additions and 2 deletions
|
@ -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
|
||||||
pitmutt marked this conversation as resolved
|
|||||||
|
|
||||||
pitmutt marked this conversation as resolved
pitmutt
commented
The name of the field should be The name of the field should be `_abAddress` so no conflicts with existing fields are found.
|
|||||||
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
|
||||||
|
@ -955,7 +1026,7 @@ appEvent (BT.VtyEvent e) = do
|
||||||
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
|
||||||
|
|
Loading…
Reference in a new issue
The name of the field should be
_abDescrip
so the there are no conflict with the lens.@reneve It's better to use more specific name fields to avoid conflicts.