RelayFile/UserInterface/HeaderControl.cxx

76 lines
2.2 KiB
C++
Raw Normal View History

2025-05-08 21:44:16 +08:00
#include "HeaderControl.h"
2025-05-08 22:11:39 +08:00
#include "InterfaceDefine.hpp"
2025-05-11 00:00:10 +08:00
#include "LogControl.h"
2025-05-11 23:20:22 +08:00
#include "OnLineControl.h"
2025-05-11 21:27:59 +08:00
#include <ClientCore.h>
2025-05-08 21:44:16 +08:00
2025-05-11 21:27:59 +08:00
HeaderControl::HeaderControl(wxWindow* parent, std::shared_ptr<ClientCore>& clientCore) : wxPanel(parent), clientCore_(clientCore)
2025-05-08 21:44:16 +08:00
{
2025-05-08 22:11:39 +08:00
Init();
2025-05-08 21:44:16 +08:00
}
HeaderControl::~HeaderControl()
{
}
2025-05-08 22:11:39 +08:00
2025-05-11 00:00:10 +08:00
void HeaderControl::SetLogControl(LogControl* logControl)
{
logControl_ = logControl;
}
2025-05-11 23:20:22 +08:00
void HeaderControl::SetOnlineControl(OnlineControl* onlineControl)
{
onlineControl_ = onlineControl;
}
2025-05-08 22:11:39 +08:00
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();
2025-05-11 00:00:10 +08:00
Bind(wxEVT_BUTTON, &HeaderControl::OnConnect, this, btnConnect_->GetId());
2025-05-11 23:20:22 +08:00
Bind(wxEVT_BUTTON, &HeaderControl::OnDisconnect, this, btnDisconnect_->GetId());
2025-05-11 21:27:59 +08:00
textIP_->SetValue(wxT("127.0.0.1"));
textPort_->SetValue(wxT("8080"));
2025-05-11 00:00:10 +08:00
}
void HeaderControl::OnConnect(wxCommandEvent& event)
{
wxString ip = textIP_->GetValue();
unsigned int port{};
if (!textPort_->GetValue().ToUInt(&port)) {
logControl_->AddLog(_("Invalid port."));
2025-05-11 00:00:10 +08:00
return;
}
auto uPort = static_cast<unsigned short>(port);
2025-05-11 21:27:59 +08:00
if (!clientCore_->Connect(ip, uPort)) {
2025-05-11 00:00:10 +08:00
logControl_->AddLog(wxString::Format(_("Connect to %s:%d failed."), ip, uPort));
return;
}
2025-05-11 23:20:22 +08:00
logControl_->AddLog(_("Connect to %s:%d Success."), ip, uPort);
onlineControl_->SetConnectState(_("Connected"));
onlineControl_->SetConnectServer(wxString::Format(_("Connected to %s:%d"), ip, uPort));
2025-05-11 00:00:10 +08:00
}
void HeaderControl::OnDisconnect(wxCommandEvent& event)
{
2025-05-11 23:20:22 +08:00
clientCore_->Disconnect();
onlineControl_->SetConnectState(_("Disconnected"));
onlineControl_->SetConnectServer(_("None"));
onlineControl_->ClearClientsShow();
2025-05-11 00:00:10 +08:00
}