Add "send money" dialogue

This commit is contained in:
Craig Everett 2024-10-09 19:10:58 +09:00
parent 1f10f7c6f9
commit b41e3ed1fd
2 changed files with 59 additions and 35 deletions

View File

@ -518,7 +518,6 @@ read(Path, Pass) ->
ok = log(info, "Decrypt failed at ~p", [L]),
{error, bad_password};
E:R ->
tell("Here: ~p", [{E, R}]),
{E, R}
end;
Error ->

View File

@ -581,42 +581,67 @@ www(State = #s{id = {_, #w{wx = ID_T}}}) ->
State.
spend(State) ->
tell("Would be doing a SpendTX"),
spend(State = #s{accounts = []}) ->
State;
spend(State = #s{picker = Picker}) ->
case wxListBox:getSelection(Picker) of
-1 -> State;
Selected -> spend(Selected + 1, State)
end.
spend(Selected, State = #s{frame = Frame, j = J, accounts = Accounts}) ->
#poa{id = ID, name = Name} = lists:nth(Selected, Accounts),
Dialog = wxDialog:new(Frame, ?wxID_ANY, J("Transfer"), [{size, {500, 400}}]),
Sizer = wxBoxSizer:new(?wxVERTICAL),
Account = [Name, " (", ID, ")"],
FromTx = wxStaticText:new(Dialog, ?wxID_ANY, Account),
FromSz = wxStaticBoxSizer:new(?wxVERTICAL, Dialog, [{label, J("From")}]),
_ = wxStaticBoxSizer:add(FromSz, FromTx, zxw:flags(wide)),
ToTx = wxTextCtrl:new(Dialog, ?wxID_ANY),
ToSz = wxStaticBoxSizer:new(?wxVERTICAL, Dialog, [{label, J("To")}]),
_ = wxStaticBoxSizer:add(ToSz, ToTx, zxw:flags(wide)),
AmtTx = wxTextCtrl:new(Dialog, ?wxID_ANY),
AmtSz = wxStaticBoxSizer:new(?wxVERTICAL, Dialog, [{label, J("Amount")}]),
_ = wxStaticBoxSizer:add(AmtSz, AmtTx, zxw:flags(wide)),
DataTx = wxTextCtrl:new(Dialog, ?wxID_ANY, [{style, ?wxTE_MULTILINE}]),
DataSz = wxStaticBoxSizer:new(?wxVERTICAL, Dialog, [{label, J("Message (optional)")}]),
_ = wxStaticBoxSizer:add(DataSz, DataTx, zxw:flags(wide)),
Style = [{style, ?wxSL_HORIZONTAL bor ?wxSL_LABELS}],
Preset = 1_000,
Min = 1,
Max = 1_000_000_000,
GasSl = wxSlider:new(Dialog, ?wxID_ANY, Preset, Min, Max, Style),
GasSz = wxStaticBoxSizer:new(?wxVERTICAL, Dialog, [{label, J("Gas Price")}]),
_ = wxStaticBoxSizer:add(GasSz, GasSl, zxw:flags(wide)),
ButtSz = wxBoxSizer:new(?wxHORIZONTAL),
Affirm = wxButton:new(Dialog, ?wxID_OK),
Cancel = wxButton:new(Dialog, ?wxID_CANCEL),
_ = wxBoxSizer:add(ButtSz, Affirm, zxw:flags(wide)),
_ = wxBoxSizer:add(ButtSz, Cancel, zxw:flags(wide)),
_ = wxBoxSizer:add(Sizer, FromSz, zxw:flags(base)),
_ = wxBoxSizer:add(Sizer, ToSz, zxw:flags(base)),
_ = wxBoxSizer:add(Sizer, AmtSz, zxw:flags(base)),
_ = wxBoxSizer:add(Sizer, DataSz, zxw:flags(wide)),
_ = wxBoxSizer:add(Sizer, GasSz, zxw:flags(base)),
_ = wxBoxSizer:add(Sizer, ButtSz, zxw:flags(base)),
ok = wxDialog:setSizer(Dialog, Sizer),
ok = wxBoxSizer:layout(Sizer),
ok = wxFrame:center(Dialog),
ok =
case wxDialog:showModal(Dialog) of
?wxID_OK -> gmc_con:drop_key(ID);
?wxID_CANCEL -> ok
end,
ok = wxDialog:destroy(Dialog),
State.
%spend(State = #s{accounts = []}) ->
% State;
%spend(State = #s{picker = Picker}) ->
% case wxListBox:getSelection(Picker) of
% -1 -> State;
% Selected -> spend(Selected + 1, State)
% end.
%spend(Selected, State = #s{frame = Frame, j = J, }) ->
% #poa{id = ID, name = Name} = lists:nth(Selected, Accounts),
% Dialog = wxDialog:new(Frame, ?wxID_ANY, J("New Key")),
% Sizer = wxBoxSizer:new(?wxVERTICAL),
% Account = [J("From: "), Name, " (", ID, ")"],
% MessageT = wxStaticText:new(Dialog, ?wxID_ANY, Message),
% ButtSz = wxBoxSizer:new(?wxHORIZONTAL),
% Affirm = wxButton:new(Dialog, ?wxID_OK),
% Cancel = wxButton:new(Dialog, ?wxID_CANCEL),
% _ = wxBoxSizer:add(ButtSz, Affirm, zxw:flags(wide)),
% _ = wxBoxSizer:add(ButtSz, Cancel, zxw:flags(wide)),
% _ = wxBoxSizer:add(Sizer, MessageT, zxw:flags(wide)),
% _ = wxBoxSizer:add(Sizer, ButtSz, zxw:flags(base)),
% ok = wxDialog:setSizer(Dialog, Sizer),
% ok = wxBoxSizer:layout(Sizer),
% ok = wxFrame:center(Dialog),
% ok =
% case wxDialog:showModal(Dialog) of
% ?wxID_OK -> gmc_con:drop_key(ID);
% ?wxID_CANCEL -> ok
% end,
% ok = wxDialog:destroy(Dialog),
% State State.
grids_dialogue(State) ->
%grids_dialogue(State = #s{frame = Frame, j = J}) ->