mirror of
https://github.com/RPCSX/rpcsx.git
synced 2025-12-06 07:12:14 +01:00
57 lines
1.7 KiB
C++
57 lines
1.7 KiB
C++
#include "stdafx.h"
|
|
#include "stdafx_gui.h"
|
|
#include "rpcs3.h"
|
|
#include "Emu/System.h"
|
|
#include "Emu/Memory/Memory.h"
|
|
#include "wx/ustring.h"
|
|
#include "Emu/Cell/lv2/sys_time.h"
|
|
#include "MsgDialog.h"
|
|
|
|
void MsgDialogFrame::CreateOsk(const std::string& msg, char16_t* osk_text)
|
|
{
|
|
if (m_dialog) m_dialog->Destroy();
|
|
osk_button_ok = nullptr;
|
|
osk_text_input = nullptr;
|
|
osk_text_return = osk_text;
|
|
|
|
m_dialog = new wxDialog(nullptr, wxID_ANY, msg, wxDefaultPosition, wxDefaultSize);
|
|
wxSizer* osk_dialog_sizer = new wxBoxSizer(wxVERTICAL);
|
|
wxSizer* osk_text_sizer = new wxBoxSizer(wxHORIZONTAL);
|
|
wxSizer* osk_button_sizer = new wxBoxSizer(wxHORIZONTAL);
|
|
|
|
osk_text_input = new wxTextCtrl(m_dialog, wxID_OK, wxEmptyString, wxDefaultPosition, wxSize(200, -1));
|
|
osk_text_sizer->Add(osk_text_input, 0, wxALL, 4);
|
|
if (type.default_cursor == 0)
|
|
{
|
|
osk_text_input->SetFocus();
|
|
}
|
|
|
|
osk_text_input->Bind(wxEVT_TEXT, [&](wxCommandEvent& event)
|
|
{
|
|
wxUString wx_osk_string = osk_text_input->GetValue();
|
|
std::memcpy(osk_text_return, wx_osk_string.utf16_str(), wx_osk_string.size() * 2);
|
|
on_osk_input_entered();
|
|
});
|
|
|
|
osk_button_ok = new wxButton(m_dialog, wxID_OK);
|
|
osk_button_sizer->Add(osk_button_ok, 0, wxLEFT | wxRIGHT | wxBOTTOM, 4);
|
|
|
|
osk_dialog_sizer->Add(osk_text_sizer, 0, wxCENTER);
|
|
osk_dialog_sizer->Add(osk_button_sizer, 0, wxCENTER);
|
|
|
|
m_dialog->SetSizerAndFit(osk_dialog_sizer);
|
|
m_dialog->Centre(wxBOTH);
|
|
m_dialog->Show();
|
|
m_dialog->Enable();
|
|
|
|
m_dialog->Bind(wxEVT_BUTTON, [&](wxCommandEvent& event)
|
|
{
|
|
on_close(CELL_MSGDIALOG_BUTTON_OK);
|
|
});
|
|
|
|
m_dialog->Bind(wxEVT_CLOSE_WINDOW, [on_close = on_close](wxCloseEvent& event)
|
|
{
|
|
on_close(CELL_MSGDIALOG_BUTTON_ESCAPE);
|
|
});
|
|
}
|