diff --git a/src/gd_gui.erl b/src/gd_gui.erl index d1eb6b6..ad2d0cb 100644 --- a/src/gd_gui.erl +++ b/src/gd_gui.erl @@ -611,33 +611,15 @@ rename_key(State = #s{picker = Picker}) -> rename_key(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("New Key")), - Sizer = wxBoxSizer:new(?wxVERTICAL), - NameSz = wxStaticBoxSizer:new(?wxVERTICAL, Dialog, [{label, J("Name (Optional)")}]), - NameTx = wxTextCtrl:new(Dialog, ?wxID_ANY), - ok = wxTextCtrl:setValue(NameTx, Name), - _ = wxStaticBoxSizer:add(NameSz, NameTx, zxw:flags(base)), - 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, NameSz, zxw:flags(base)), - _ = wxBoxSizer:add(Sizer, ButtSz, zxw:flags(wide)), - ok = wxDialog:setSizer(Dialog, Sizer), - ok = wxBoxSizer:layout(Sizer), - ok = wxDialog:setSize(Dialog, {500, 130}), - ok = wxDialog:center(Dialog), - ok = wxStyledTextCtrl:setFocus(NameTx), + Title = J("Rename Key"), + Label = J("New Name"), + Options = [{label, Label}, {init, Name}, selected, empty], ok = - case wxDialog:showModal(Dialog) of - ?wxID_OK -> - NewName = wxTextCtrl:getValue(NameTx), - gd_con:rename_key(ID, NewName); - ?wxID_CANCEL -> - ok + case zxw_modal_text:show(Frame, Title, Options) of + {ok, ""} -> gd_con:rename_key(ID, binary_to_list(ID)); + {ok, NewName} -> gd_con:rename_key(ID, NewName); + cancel -> ok end, - ok = wxDialog:destroy(Dialog), State. diff --git a/src/gd_v_devman.erl b/src/gd_v_devman.erl index a0cec25..e4c2906 100644 --- a/src/gd_v_devman.erl +++ b/src/gd_v_devman.erl @@ -27,7 +27,7 @@ {name = <<"">> :: binary(), call = #w{} :: #w{}, dryrun = #w{} :: none | #w{}, - args = [] :: [{wx:wx_object(), wx:wx_object(), argt()}]}). + args = [] :: [argt()]}). % Code book pages -record(p, @@ -56,7 +56,9 @@ code = {none, []} :: {Codebook :: none | wx:wx_object(), Pages :: [#p{}]}, cons = {none, []} :: {Consbook :: none | wx:wx_object(), Pages :: [#c{}]}}). --type argt() :: int | string | address | list(argt()). +% TODO: Spec HZ AACIs. +-type argt() :: term(). % FIXME: Whatever HZ returns in the AACI as an arg type. + %%% Interface