From 14706d425ac487d191085b8136be54d48e79cdbc Mon Sep 17 00:00:00 2001 From: hardliner66 Date: Tue, 15 Oct 2024 20:57:18 +0200 Subject: [PATCH] init --- .gitignore | 1 + .gitmodules | 3 +++ CMakeLists.txt | 44 ++++++++++++++++++++++++++++++++++++ external/wxWidgets | 1 + src/main.cpp | 56 ++++++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 105 insertions(+) create mode 100644 .gitignore create mode 100644 .gitmodules create mode 100644 CMakeLists.txt create mode 160000 external/wxWidgets create mode 100644 src/main.cpp diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..c795b05 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +build \ No newline at end of file diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..a92e957 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "external/wxWidgets"] + path = external/wxWidgets + url = https://github.com/wxWidgets/wxWidgets.git diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..c3da6db --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,44 @@ +cmake_minimum_required(VERSION 3.15) +project(wxwidgets_demo) + +# Set C++ standard +set(CMAKE_CXX_STANDARD 17) +set(CMAKE_CXX_STANDARD_REQUIRED ON) + +# Add For Windows, specify Unicode +if(WIN32) + add_definitions(-DUNICODE -D_UNICODE) +endif() + +# Add wxWidgets as a subdirectory +add_subdirectory(external/wxWidgets) + +# Define your source files +set(SRC_DIR ${CMAKE_SOURCE_DIR}/src) +file(GLOB SRC_FILES ${SRC_DIR}/*.cpp) + +# Include directories +include_directories(${CMAKE_SOURCE_DIR}/external/wxWidgets/include) + +add_definitions(-D__WXUNIVERSAL__) + +# Link additional libraries +set(WX_LIB + wx::core + wx::base + wx::net + wx::aui + wx::propgrid +) + +# Create the executable +add_executable(${PROJECT_NAME} ${SRC_FILES}) + +# Link wxWidgets libraries +target_link_libraries(${PROJECT_NAME} ${WX_LIB}) + +# Set the C++ standard for your target +set_target_properties(${PROJECT_NAME} PROPERTIES + CXX_STANDARD 17 + CXX_STANDARD_REQUIRED YES +) diff --git a/external/wxWidgets b/external/wxWidgets new file mode 160000 index 0000000..eda54e8 --- /dev/null +++ b/external/wxWidgets @@ -0,0 +1 @@ +Subproject commit eda54e82e281ce949ae44f6796ae50669f7c1924 diff --git a/src/main.cpp b/src/main.cpp new file mode 100644 index 0000000..323333a --- /dev/null +++ b/src/main.cpp @@ -0,0 +1,56 @@ +#include + +class MyApp.compp : public wxApp +{ +public: + virtual bool OnInit(); +}; + +class MyFrame.comrame : public wxFrame.comame +{ +public: + MyFrame.comrame(const wxString& title); + +private: + void OnQuit(wxCommandEvent& event); + void OnAbout(wxCommandEvent& event); +}; + +wxIMPLEMENT_APP(MyApp); + +bool MyApp.comnInit() +{ + MyFrame.comrame* frame = new MyFrame.comrame("Advanced wxWidgets Demo"); + frame->Show(true); + return true; +} + +MyFrame.comrame::MyFrame.comnst wxString& title) + : wxFrame.comame(NULL, wxID_ANY, title) +{ + wxMenu* menuFile = new wxMenu; + menuFile->Append(wxID_EXIT); + + wxMenu* menuHelp = new wxMenu; + menuHelp->Append(wxID_ABOUT); + + wxMenuBar* menuBar = new wxMenuBar.com + menuBar->Append(menuFile, "&File"); + menuBar->Append(menuHelp, "&Help"); + + SetMenuBar(menuBar); + + Bind(wxEVT_MENU, &MyFrame.comrame::OnQuit, this, wxID_EXIT); + Bind(wxEVT_MENU, &MyApp.comrame::OnAbout, this, wxID_ABOUT); +} + +void MyApp.comrame::OnQuit(wxCommandEvent& event) +{ + Close(true); +} + +void MyApp.comrame::OnAbout(wxCommandEvent& event) +{ + wxMessageBox("This is an advanced wxWidgets demo application.", + "About", wxOK | wxICON_INFORMATION); +} \ No newline at end of file