summaryrefslogtreecommitdiff
path: root/xmake/templates/c++/wxwidgets/src/main.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'xmake/templates/c++/wxwidgets/src/main.cpp')
-rw-r--r--xmake/templates/c++/wxwidgets/src/main.cpp48
1 files changed, 48 insertions, 0 deletions
diff --git a/xmake/templates/c++/wxwidgets/src/main.cpp b/xmake/templates/c++/wxwidgets/src/main.cpp
new file mode 100644
index 000000000..4b43fe6e3
--- /dev/null
+++ b/xmake/templates/c++/wxwidgets/src/main.cpp
@@ -0,0 +1,48 @@
+#include <wx/wx.h>
+
+namespace Examples {
+class Frame : public wxFrame {
+ enum wxOwnedID {
+ ID_Hello = 2
+ };
+
+ public:
+ Frame() : wxFrame(nullptr, wxID_ANY, "Hello World") {
+ auto menuFile = new wxMenu();
+ menuFile->Append(ID_Hello, "&Hello...\tCtrl-H", "Help string shown in status bar for this menu item");
+ menuFile->AppendSeparator();
+ menuFile->Append(wxID_EXIT);
+
+ auto menuHelp = new wxMenu();
+ menuHelp->Append(wxID_ABOUT);
+ auto menuBar = new wxMenuBar();
+
+ menuBar->Append(menuFile, "&File");
+ menuBar->Append(menuHelp, "&Help");
+ SetMenuBar(menuBar);
+
+ CreateStatusBar();
+ SetStatusText("Welcome to wxWidgets!");
+
+ menuBar->Bind(wxEVT_MENU, [&](wxCommandEvent &event) {
+ if (event.GetId() == ID_Hello)
+ wxLogMessage("Hello world from wxWidgets!");
+ else if (event.GetId() == wxID_ABOUT)
+ wxMessageBox("This is a wxWidgets Hello World example", "About Hello World", wxOK | wxICON_INFORMATION);
+ else if (event.GetId() == wxID_EXIT)
+ Close(true);
+ else
+ event.Skip();
+ });
+ }
+};
+
+class Application : public wxApp {
+ bool OnInit() override {
+ (new Frame())->Show();
+ return true;
+ }
+};
+} // namespace Examples
+
+wxIMPLEMENT_APP(Examples::Application); \ No newline at end of file