RelayFile/UserInterface/HeaderControl.cxx

62 lines
1.6 KiB
C++

#include "HeaderControl.h"
#include "InterfaceDefine.hpp"
#include "LogControl.h"
#include <ClientCore.h>
HeaderControl::HeaderControl(wxWindow* parent, std::shared_ptr<ClientCore>& clientCore) : wxPanel(parent), clientCore_(clientCore)
{
Init();
}
HeaderControl::~HeaderControl()
{
}
void HeaderControl::SetLogControl(LogControl* logControl)
{
logControl_ = logControl;
}
void HeaderControl::Init()
{
auto* topSizer = new wxBoxSizer(wxHORIZONTAL);
textIP_ = new wxTextCtrl(this, wxID_ANY);
textPort_ = new wxTextCtrl(this, wxID_ANY);
btnConnect_ = new wxButton(this, wxID_ANY, _("Connect"));
btnDisconnect_ = new wxButton(this, wxID_ANY, _("Disconnect"));
topSizer->Add(textIP_, 0, wxALL, gBorder);
topSizer->Add(textPort_, 0, wxALL, gBorder);
topSizer->Add(btnConnect_, 0, wxALL, gBorder);
topSizer->Add(btnDisconnect_, 0, wxALL, gBorder);
SetSizer(topSizer);
Layout();
Bind(wxEVT_BUTTON, &HeaderControl::OnConnect, this, btnConnect_->GetId());
textIP_->SetValue(wxT("127.0.0.1"));
textPort_->SetValue(wxT("8080"));
}
void HeaderControl::OnConnect(wxCommandEvent& event)
{
wxString ip = textIP_->GetValue();
unsigned int port{};
if (!textPort_->GetValue().ToUInt(&port)) {
logControl_->AddLog(_("Invalid port."));
return;
}
auto uPort = static_cast<unsigned short>(port);
if (!clientCore_->Connect(ip, uPort)) {
logControl_->AddLog(wxString::Format(_("Connect to %s:%d failed."), ip, uPort));
return;
}
logControl_->AddLog(wxString::Format(_("Connect to %s:%d Success."), ip, uPort));
}
void HeaderControl::OnDisconnect(wxCommandEvent& event)
{
}