28#include <wx/fileconf.h>
29#include <wx/json_defs.h>
30#include <wx/jsonreader.h>
31#include <wx/tokenzr.h>
50PinConfirmDlg::PinConfirmDlg() {
56PinConfirmDlg::PinConfirmDlg(wxWindow* parent, wxWindowID
id,
57 const wxString& caption,
const wxString& hint,
58 const wxPoint& pos,
const wxSize& size,
60 wxFont* pif = FontMgr::Get().
GetFont(_(
"Dialog"));
62 Create(parent,
id, caption, hint, pos, size, style);
65PinConfirmDlg::~PinConfirmDlg() {
71void PinConfirmDlg::OnTextChange(wxCommandEvent&) {
72 auto txt = m_pin_textctrl->GetValue().ToStdString();
74 if (txt.size() >= 4) {
76 value = std::stoi(txt);
77 }
catch (std::exception&) {
81 m_ok_btn->Enable(value >= 0 && txt.size() >= 4);
84bool PinConfirmDlg::Create(wxWindow* parent, wxWindowID
id,
85 const wxString& caption,
const wxString& hint,
86 const wxPoint& pos,
const wxSize& size,
long style) {
87 SetExtraStyle(GetExtraStyle() | wxWS_EX_BLOCK_EVENTS);
88 wxDialog::Create(parent,
id, caption, pos, size, style);
91 GetSizer()->Fit(
this);
92 GetSizer()->SetSizeHints(
this);
97void PinConfirmDlg::CreateControls(
const wxString&) {
98 wxBoxSizer* itemBoxSizer2 =
new wxBoxSizer(wxVERTICAL);
99 SetSizer(itemBoxSizer2);
102 itemBoxSizer2->AddSpacer(20);
104 premtext =
new wxStaticText(
105 this, -1,
"A loooooooooooooooooooooooooooooooooooooooooooooong line\n");
106 itemBoxSizer2->Add(premtext, 0, wxEXPAND | wxALL, 10);
108 m_pin_textctrl =
new wxTextCtrl(
this, wxID_ANY,
" ", wxDefaultPosition,
109 wxDefaultSize, wxTE_CENTRE);
110 itemBoxSizer2->Add(m_pin_textctrl, 0, wxALIGN_CENTER_HORIZONTAL | wxALL, 10);
113 wxBoxSizer* itemBoxSizer16 =
new wxBoxSizer(wxHORIZONTAL);
114 itemBoxSizer2->Add(itemBoxSizer16, 0, wxALIGN_RIGHT | wxALL, 5);
116 m_cancel_btn =
new wxButton(
this, wxID_CANCEL);
118 m_cancel_btn->Bind(wxEVT_COMMAND_BUTTON_CLICKED,
119 [&](wxCommandEvent e) { OnCancelClick(e); });
120 itemBoxSizer16->Add(m_cancel_btn, 0, wxALIGN_CENTER_VERTICAL | wxALL, 5);
122 m_ok_btn =
new wxButton(
this, wxID_OK);
123 itemBoxSizer16->Add(m_ok_btn, 0, wxALIGN_CENTER_VERTICAL | wxALL, 5);
124 m_ok_btn->SetDefault();
125 m_ok_btn->Bind(wxEVT_COMMAND_BUTTON_CLICKED,
126 [&](wxCommandEvent e) { OnOKClick(e); });
127 m_ok_btn->Enable(
false);
128 m_pin_textctrl->Bind(wxEVT_TEXT,
129 [&](wxCommandEvent& ev) { OnTextChange(ev); });
132void PinConfirmDlg::SetMessage(
const wxString& msg) {
134 premtext->SetLabel(msg);
135 premtext->Refresh(
true);
139void PinConfirmDlg::SetPincodeText(
const wxString& message) {
140 m_pin_textctrl->ChangeValue(message);
141 m_pin_textctrl->Show();
142 GetSizer()->Fit(
this);
145void PinConfirmDlg::OnOKClick(wxCommandEvent&) { EndModal(wxID_OK); }
147void PinConfirmDlg::OnCancelClick(wxCommandEvent&) { EndModal(wxID_CANCEL); }
wxFont * GetFont(const wxString &TextElement, int requested_font_size=0)
Get a font object for a UI element.
Global variables stored in configuration file.
General purpose GUI support.
Peer client non-gui abstraction.
Confirm peer transfer PIN code dialog.
Semantic version encode/decode object.