From f33eed6ddbe10e497a5e4df6c4667df8090ff7ad Mon Sep 17 00:00:00 2001 From: taynpg Date: Thu, 8 May 2025 21:13:36 +0800 Subject: [PATCH] =?UTF-8?q?control=EF=BC=9A=E5=9F=BA=E6=9C=AC=E6=9E=B6?= =?UTF-8?q?=E5=AD=90=E6=8E=A7=E4=BB=B6=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CMakeLists.txt | 2 ++ ClientCore/ClientCore.cxx | 10 ++++++++++ ClientCore/ClientCore.h | 6 ++++-- Information/InfoClient.hpp | 28 ++++++++++++++++++++++++++++ Information/InfoDirFile.hpp | 1 - UserInterface/CMakeLists.txt | 22 ++++++++++++++++++++-- UserInterface/HeaderControl.cxx | 0 UserInterface/HeaderControl.h | 13 +++++++++++++ UserInterface/LocalControl.cxx | 9 +++++++++ UserInterface/LocalControl.h | 13 +++++++++++++ UserInterface/LogControl.cxx | 9 +++++++++ UserInterface/LogControl.h | 13 +++++++++++++ UserInterface/MineControl.cxx | 9 +++++++++ UserInterface/MineControl.h | 13 +++++++++++++ UserInterface/OnLineControl.cxx | 9 +++++++++ UserInterface/OnLineControl.h | 13 +++++++++++++ UserInterface/RemoteControl.cxx | 9 +++++++++ UserInterface/RemoteControl.h | 13 +++++++++++++ UserInterface/TaskControl.cxx | 9 +++++++++ UserInterface/TaskControl.h | 13 +++++++++++++ UserInterface/UserInterface.cxx | 18 +++++++++++++++++- UserInterface/UserInterface.h | 17 ++++++++++++----- UserInterface/main.cxx | 15 ++++++++++++--- 23 files changed, 250 insertions(+), 14 deletions(-) create mode 100644 Information/InfoClient.hpp create mode 100644 UserInterface/HeaderControl.cxx create mode 100644 UserInterface/HeaderControl.h create mode 100644 UserInterface/LocalControl.cxx create mode 100644 UserInterface/LocalControl.h create mode 100644 UserInterface/LogControl.cxx create mode 100644 UserInterface/LogControl.h create mode 100644 UserInterface/MineControl.cxx create mode 100644 UserInterface/MineControl.h create mode 100644 UserInterface/OnLineControl.cxx create mode 100644 UserInterface/OnLineControl.h create mode 100644 UserInterface/RemoteControl.cxx create mode 100644 UserInterface/RemoteControl.h create mode 100644 UserInterface/TaskControl.cxx create mode 100644 UserInterface/TaskControl.h diff --git a/CMakeLists.txt b/CMakeLists.txt index 74cf3a8..768f099 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -4,6 +4,8 @@ project(RelayFile VERSION 0.1.0 LANGUAGES CXX) set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) +set(CMAKE_PREFIX_PATH "D:/Program/Dev/wxWidgets") + if (MSVC) add_compile_options(/utf-8) endif() diff --git a/ClientCore/ClientCore.cxx b/ClientCore/ClientCore.cxx index a678a95..f1c5c36 100644 --- a/ClientCore/ClientCore.cxx +++ b/ClientCore/ClientCore.cxx @@ -26,6 +26,16 @@ void ClientCore::Disconnect() { } +bool ClientCore::GetOnlineList(InfoClientVec& infoClientVec) +{ + return false; +} + +bool ClientCore::AskDirectory(const wxString& id, const wxString& path, DirFileInfoVec& dirInfoVec) +{ + return false; +} + void ClientCore::OnSocketEvent(wxSocketEvent& event) { switch (event.GetSocketEvent()) { diff --git a/ClientCore/ClientCore.h b/ClientCore/ClientCore.h index 09f58a4..80e4466 100644 --- a/ClientCore/ClientCore.h +++ b/ClientCore/ClientCore.h @@ -1,6 +1,8 @@ #ifndef CLIENTCORE_H #define CLIENTCORE_H +#include +#include #include #include #include @@ -16,8 +18,8 @@ public: void Disconnect(); public: - bool GetOnlineList(std::vector& list); - bool AskDirectory(const wxString& id, const wxString& path); + bool GetOnlineList(InfoClientVec& infoClientVec); + bool AskDirectory(const wxString& id, const wxString& path, DirFileInfoVec& dirInfoVec); private: void OnSocketEvent(wxSocketEvent& event); diff --git a/Information/InfoClient.hpp b/Information/InfoClient.hpp new file mode 100644 index 0000000..e3937b2 --- /dev/null +++ b/Information/InfoClient.hpp @@ -0,0 +1,28 @@ +#ifndef _InfoClient_hpp_ +#define _InfoClient_hpp_ + +#include +#include +#include +#include + +struct InfoClient { + std::string id; + std::string name; + + template void serialize(Archive& archive) + { + archive(CEREAL_NVP(id), CEREAL_NVP(name)); + } +}; + +struct InfoClientVec { + std::vector vec; + + template void serialize(Archive& archive) + { + archive(CEREAL_NVP(vec)); + } +}; + +#endif // _InfoClient_hpp_ \ No newline at end of file diff --git a/Information/InfoDirFile.hpp b/Information/InfoDirFile.hpp index 7ec03ea..7ac97c9 100644 --- a/Information/InfoDirFile.hpp +++ b/Information/InfoDirFile.hpp @@ -3,7 +3,6 @@ #include #include -#include #include #include #include diff --git a/UserInterface/CMakeLists.txt b/UserInterface/CMakeLists.txt index cd52918..bb23a6d 100644 --- a/UserInterface/CMakeLists.txt +++ b/UserInterface/CMakeLists.txt @@ -1,13 +1,31 @@ cmake_minimum_required(VERSION 3.16) -project(RemoteTran LANGUAGES CXX) +project(RelayFile LANGUAGES CXX) set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) +find_package(wxWidgets CONFIG REQUIRED) + set(MSOURCES UserInterface.h UserInterface.cxx main.cxx +HeaderControl.h +HeaderControl.cxx +LocalControl.h +LocalControl.cxx +RemoteControl.h +RemoteControl.cxx +LogControl.h +LogControl.cxx +OnLineControl.h +OnLineControl.cxx +TaskControl.h +TaskControl.cxx +MineControl.h +MineControl.cxx ) -add_executable(UserInterface ${MSOURCES}) \ No newline at end of file +add_executable(RelayFile ${MSOURCES}) +target_link_libraries(RelayFile PRIVATE wx::base wx::core) +set_target_properties(RelayFile PROPERTIES WIN32_EXECUTABLE TRUE) \ No newline at end of file diff --git a/UserInterface/HeaderControl.cxx b/UserInterface/HeaderControl.cxx new file mode 100644 index 0000000..e69de29 diff --git a/UserInterface/HeaderControl.h b/UserInterface/HeaderControl.h new file mode 100644 index 0000000..2ce01ce --- /dev/null +++ b/UserInterface/HeaderControl.h @@ -0,0 +1,13 @@ +#ifndef HEADERCONTORL_H +#define HEADERCONTORL_H + +#include + +class HeaderContorl : public wxPanel +{ +public: + HeaderContorl(wxWindow* parent); + ~HeaderContorl() override; +}; + +#endif // HEADERCONTORL_H \ No newline at end of file diff --git a/UserInterface/LocalControl.cxx b/UserInterface/LocalControl.cxx new file mode 100644 index 0000000..9d4c559 --- /dev/null +++ b/UserInterface/LocalControl.cxx @@ -0,0 +1,9 @@ +#include "LocalControl.h" + +LocalControl::LocalControl(wxWindow* parent) +{ +} + +LocalControl::~LocalControl() +{ +} diff --git a/UserInterface/LocalControl.h b/UserInterface/LocalControl.h new file mode 100644 index 0000000..093adff --- /dev/null +++ b/UserInterface/LocalControl.h @@ -0,0 +1,13 @@ +#ifndef LOCALCONTROL_H +#define LOCALCONTROL_H + +#include + +class LocalControl : public wxPanel +{ +public: + LocalControl(wxWindow* parent); + ~LocalControl() override; +}; + +#endif // LOCALCONTROL_H \ No newline at end of file diff --git a/UserInterface/LogControl.cxx b/UserInterface/LogControl.cxx new file mode 100644 index 0000000..1dc9240 --- /dev/null +++ b/UserInterface/LogControl.cxx @@ -0,0 +1,9 @@ +#include "LogControl.h" + +LogControl::LogControl(wxWindow* parent) +{ +} + +LogControl::~LogControl() +{ +} diff --git a/UserInterface/LogControl.h b/UserInterface/LogControl.h new file mode 100644 index 0000000..726c3fd --- /dev/null +++ b/UserInterface/LogControl.h @@ -0,0 +1,13 @@ +#ifndef LOGCONTROL_H +#define LOGCONTROL_H + +#include + +class LogControl : public wxPanel +{ +public: + LogControl(wxWindow* parent); + ~LogControl() override; +}; + +#endif // LOGCONTROL_H \ No newline at end of file diff --git a/UserInterface/MineControl.cxx b/UserInterface/MineControl.cxx new file mode 100644 index 0000000..051338a --- /dev/null +++ b/UserInterface/MineControl.cxx @@ -0,0 +1,9 @@ +#include "MineControl.h" + +MineControl::MineControl(wxWindow* parent) +{ +} + +MineControl::~MineControl() +{ +} diff --git a/UserInterface/MineControl.h b/UserInterface/MineControl.h new file mode 100644 index 0000000..67bd96f --- /dev/null +++ b/UserInterface/MineControl.h @@ -0,0 +1,13 @@ +#ifndef MINECONTROL_H +#define MINECONTROL_H + +#include + +class MineControl : public wxPanel +{ +public: + MineControl(wxWindow* parent); + ~MineControl() override; +}; + +#endif // MINECONTROL_H \ No newline at end of file diff --git a/UserInterface/OnLineControl.cxx b/UserInterface/OnLineControl.cxx new file mode 100644 index 0000000..a0c8a81 --- /dev/null +++ b/UserInterface/OnLineControl.cxx @@ -0,0 +1,9 @@ +#include "OnLineControl.h" + +OnlineControl::OnlineControl(wxWindow* parent) +{ +} + +OnlineControl::~OnlineControl() +{ +} diff --git a/UserInterface/OnLineControl.h b/UserInterface/OnLineControl.h new file mode 100644 index 0000000..b807917 --- /dev/null +++ b/UserInterface/OnLineControl.h @@ -0,0 +1,13 @@ +#ifndef ONLINECONTROL_H +#define ONLINECONTROL_H + +#include + +class OnlineControl : public wxPanel +{ +public: + OnlineControl(wxWindow* parent); + ~OnlineControl() override; +}; + +#endif // ONLINECONTROL_H \ No newline at end of file diff --git a/UserInterface/RemoteControl.cxx b/UserInterface/RemoteControl.cxx new file mode 100644 index 0000000..eb8b3c2 --- /dev/null +++ b/UserInterface/RemoteControl.cxx @@ -0,0 +1,9 @@ +#include "RemoteControl.h" + +RemoteControl::RemoteControl(wxWindow* parent) +{ +} + +RemoteControl::~RemoteControl() +{ +} diff --git a/UserInterface/RemoteControl.h b/UserInterface/RemoteControl.h new file mode 100644 index 0000000..352a0a9 --- /dev/null +++ b/UserInterface/RemoteControl.h @@ -0,0 +1,13 @@ +#ifndef REMOTECONTROL_H +#define REMOTECONTROL_H + +#include + +class RemoteControl : public wxPanel +{ +public: + RemoteControl(wxWindow* parent); + ~RemoteControl() override; +}; + +#endif // REMOTECONTROL_H \ No newline at end of file diff --git a/UserInterface/TaskControl.cxx b/UserInterface/TaskControl.cxx new file mode 100644 index 0000000..1850557 --- /dev/null +++ b/UserInterface/TaskControl.cxx @@ -0,0 +1,9 @@ +#include "TaskControl.h" + +TaskControl::TaskControl(wxWindow* parent) +{ +} + +TaskControl::~TaskControl() +{ +} diff --git a/UserInterface/TaskControl.h b/UserInterface/TaskControl.h new file mode 100644 index 0000000..d10660b --- /dev/null +++ b/UserInterface/TaskControl.h @@ -0,0 +1,13 @@ +#ifndef TASKCONTROL_H +#define TASKCONTROL_H + +#include + +class TaskControl : public wxPanel +{ +public: + TaskControl(wxWindow* parent); + ~TaskControl() override; +}; + +#endif // TASKCONTROL_H \ No newline at end of file diff --git a/UserInterface/UserInterface.cxx b/UserInterface/UserInterface.cxx index 4b7a8ad..771dcc9 100644 --- a/UserInterface/UserInterface.cxx +++ b/UserInterface/UserInterface.cxx @@ -1,5 +1,21 @@ #include "UserInterface.h" +UserInterface::UserInterface(const wxString& title) : wxFrame(nullptr, wxID_ANY, title, wxDefaultPosition, wxSize(800, 600)) +{ + +} + UserInterface::~UserInterface() { -} \ No newline at end of file + +} + +void UserInterface::InitUI() +{ + +} + +void UserInterface::InitData() +{ + +} diff --git a/UserInterface/UserInterface.h b/UserInterface/UserInterface.h index 3f82c97..4dca35f 100644 --- a/UserInterface/UserInterface.h +++ b/UserInterface/UserInterface.h @@ -1,10 +1,17 @@ -#ifndef _IUSERINTERFACE_H -#define _IUSERINTERFACE_H +#ifndef IUSERINTERFACE_H +#define IUSERINTERFACE_H -class UserInterface +#include + +class UserInterface final : public wxFrame { public: - ~UserInterface(); + explicit UserInterface(const wxString& title); + ~UserInterface() override; + +private: + void InitUI(); + void InitData(); }; -#endif // _IUSERINTERFACE_H \ No newline at end of file +#endif // IUSERINTERFACE_H \ No newline at end of file diff --git a/UserInterface/main.cxx b/UserInterface/main.cxx index dda5ae7..8f118dc 100644 --- a/UserInterface/main.cxx +++ b/UserInterface/main.cxx @@ -1,6 +1,15 @@ #include "UserInterface.h" -int main() +class RelayFileApp : public wxApp { - return 0; -} \ No newline at end of file +public: + bool OnInit() override + { + auto* f = new UserInterface(wxT("RelayFile")); + f->Show(); + return true; + } +}; + +IMPLEMENT_APP(RelayFileApp); +DECLARE_APP(RelayFileApp); \ No newline at end of file