Created
March 8, 2014 04:07
-
-
Save yuya-oc/9425195 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// wxWidgets "Hello world" Program | |
// For compilers that support precompilation, includes "wx/wx.h". | |
#include <wx/wxprec.h> | |
#ifndef WX_PRECOMP | |
#include <wx/wx.h> | |
#endif | |
//#define USE_GUI_THREAD | |
#ifdef USE_GUI_THREAD | |
#include <dispatch/dispatch.h> | |
#endif | |
class MyApp: public wxApp | |
{ | |
public: | |
virtual bool OnInit(); | |
}; | |
class MyFrame: public wxFrame | |
{ | |
public: | |
MyFrame(const wxString& title, const wxPoint& pos, const wxSize& size); | |
private: | |
void OnHello(wxCommandEvent& event); | |
void OnExit(wxCommandEvent& event); | |
void OnAbout(wxCommandEvent& event); | |
wxDECLARE_EVENT_TABLE(); | |
}; | |
enum | |
{ | |
ID_Hello = 1 | |
}; | |
wxBEGIN_EVENT_TABLE(MyFrame, wxFrame) | |
EVT_MENU(ID_Hello, MyFrame::OnHello) | |
EVT_MENU(wxID_EXIT, MyFrame::OnExit) | |
EVT_MENU(wxID_ABOUT, MyFrame::OnAbout) | |
wxEND_EVENT_TABLE() | |
//wxIMPLEMENT_APP(MyApp); | |
wxIMPLEMENT_WX_THEME_SUPPORT | |
int g_argc; | |
char** g_argv; | |
void launchWxApp(){ | |
wxEntryStart(g_argc, g_argv); | |
wxTheApp->CallOnInit(); | |
wxTheApp->OnRun(); | |
} | |
int main(int argc, char **argv){ | |
g_argc = argc; | |
g_argv = argv; | |
#ifdef USE_GUI_THREAD | |
dispatch_queue_t aQueue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,0); | |
dispatch_async(aQueue, ^{ | |
launchWxApp(); | |
}); | |
while(true); | |
#else | |
launchWxApp(); | |
#endif | |
return 0; | |
} | |
wxIMPLEMENT_APP_NO_MAIN(MyApp); | |
bool MyApp::OnInit() | |
{ | |
MyFrame *frame = new MyFrame( "Hello World", wxPoint(50, 50), wxSize(450, 340) ); | |
frame->Show( true ); | |
return true; | |
} | |
MyFrame::MyFrame(const wxString& title, const wxPoint& pos, const wxSize& size) | |
: wxFrame(NULL, wxID_ANY, title, pos, size) | |
{ | |
wxMenu *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); | |
wxMenu *menuHelp = new wxMenu; | |
menuHelp->Append(wxID_ABOUT); | |
wxMenuBar *menuBar = new wxMenuBar; | |
menuBar->Append( menuFile, "&File" ); | |
menuBar->Append( menuHelp, "&Help" ); | |
SetMenuBar( menuBar ); | |
CreateStatusBar(); | |
SetStatusText( "Welcome to wxWidgets!" ); | |
} | |
void MyFrame::OnExit(wxCommandEvent& event) | |
{ | |
Close( true ); | |
} | |
void MyFrame::OnAbout(wxCommandEvent& event) | |
{ | |
wxMessageBox( "This is a wxWidgets' Hello world sample", | |
"About Hello World", wxOK | wxICON_INFORMATION ); | |
} | |
void MyFrame::OnHello(wxCommandEvent& event) | |
{ | |
wxLogMessage("Hello world from wxWidgets!"); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment