X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/44c4a3348693414bace13852e50d926c1aa9f08b..69477ac44979d42e1139dc70a2be7c0390043246:/samples/resource/resource.cpp?ds=sidebyside diff --git a/samples/resource/resource.cpp b/samples/resource/resource.cpp index 2a88d0518f..e29236c867 100644 --- a/samples/resource/resource.cpp +++ b/samples/resource/resource.cpp @@ -6,7 +6,7 @@ // Created: 04/01/98 // RCS-ID: $Id$ // Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows license +// Licence: wxWindows license ///////////////////////////////////////////////////////////////////////////// #ifdef __GNUG__ @@ -24,6 +24,10 @@ #include "wx/wx.h" #endif +#if wxUSE_UNICODE + #error "This sample can't be compiled in Unicode mode." +#endif // wxUSE_UNICODE + #include "wx/resource.h" #include @@ -35,6 +39,12 @@ // in the program code/executable for UNIX and Windows // platforms. +// In order to get the ID of the controls defined in the +// dialog, we include the header automatically generated +// by DialogEd + +#include "dialog1.h" + // If you have a Windows compiler that can cope with long strings, // then you can always use the #include form for simplicity. @@ -46,8 +56,8 @@ // Under Windows, some compilers can't include // a whole .wxr file. So we use a .rc user-defined resource // instead. dialog1 will point to the whole .wxr 'file'. -static char *dialog1 = NULL; -static char *menu1 = NULL; +static wxChar *dialog1 = NULL; +static wxChar *menu1 = NULL; #else // Other platforms should have sensible compilers that // cope with long strings. @@ -70,123 +80,133 @@ MyApp::MyApp() bool MyApp::OnInit(void) { #if defined(__WXMSW__) - // Load the .wxr 'file' from a .rc resource, under Windows. - dialog1 = wxLoadUserResource("dialog1", "WXRDATA"); - menu1 = wxLoadUserResource("menu1", "WXRDATA"); - // All resources in the file (only one in this case) get parsed - // by this call. - wxResourceParseString(dialog1); - wxResourceParseString(menu1); + // Load the .wxr 'file' from a .rc resource, under Windows. + dialog1 = wxLoadUserResource(wxT("dialog1"), wxT("WXRDATA")); + menu1 = wxLoadUserResource(wxT("menu1"), wxT("WXRDATA")); + // All resources in the file (only one in this case) get parsed + // by this call. + wxResourceParseString(dialog1); + wxResourceParseString(menu1); #else - // Simply parse the data pointed to by the variable dialog1. - // If there were several resources, there would be several - // variables, and this would need to be called several times. - wxResourceParseData(dialog1); - wxResourceParseData(menu1); + // Simply parse the data pointed to by the variable dialog1. + // If there were several resources, there would be several + // variables, and this would need to be called several times. + wxResourceParseData(dialog1); + wxResourceParseData(menu1); #endif - // Create the main frame window - frame = new MyFrame((wxFrame *) NULL, -1, (char *) "wxWindows Resource Sample", wxPoint(0, 0), wxSize(300, 250)); - - // Give it a status line - frame->CreateStatusBar(2); - -/* - // Make a menubar - wxMenu *file_menu = new wxMenu; + // Create the main frame window + frame = new MyFrame( (wxFrame *) NULL, -1, + (char *) "wxWindows Resource Sample", + wxPoint(-1, -1), wxSize(300, 250) ); - file_menu->Append(RESOURCE_TEST1, "&Dialog box test", "Test dialog box resource"); - file_menu->Append(RESOURCE_QUIT, "E&xit", "Quit program"); + // Give it a status line + frame->CreateStatusBar(2); - wxMenuBar *menu_bar = new wxMenuBar; + wxMenuBar *menu_bar = wxResourceCreateMenuBar("menu1"); - menu_bar->Append(file_menu, "&File"); -*/ + // Associate the menu bar with the frame + frame->SetMenuBar(menu_bar); - wxMenuBar *menu_bar = wxResourceCreateMenuBar("menu1"); - - // Associate the menu bar with the frame - frame->SetMenuBar(menu_bar); + // Make a panel + frame->panel = new MyPanel( frame, -1, wxPoint(0, 0), wxSize(400, 400), + 0, "MyMainFrame" ); + frame->Show(TRUE); - // Make a panel - frame->panel = new MyPanel(frame, -1, wxPoint(0, 0), wxSize(400, 400), 0, "MyMainFrame"); - frame->Show(TRUE); + SetTopWindow(frame); - SetTopWindow(frame); + return TRUE; +} - return TRUE; +MyApp::~MyApp() +{ +#if defined(__WXMSW__) + delete dialog1; + delete menu1; +#endif } BEGIN_EVENT_TABLE(MyPanel, wxPanel) - EVT_LEFT_DOWN( MyPanel::OnClick) + EVT_LEFT_DOWN( MyPanel::OnClick) END_EVENT_TABLE() -MyPanel::MyPanel( wxWindow *parent, wxWindowID id, const wxPoint& pos, const wxSize& size, - int style, const wxString &name ) : - wxPanel( parent, id, pos, size, style, name ) +MyPanel::MyPanel +( + wxWindow *parent, wxWindowID id, const wxPoint& pos, + const wxSize& size, + int style, const wxString &name +) : wxPanel( parent, id, pos, size, style, name ) { } -void MyPanel::OnClick( wxMouseEvent &WXUNUSED(event) ) +void MyPanel::OnClick( wxMouseEvent &WXUNUSED(event2) ) { - MyFrame *frame = (MyFrame*)(wxTheApp->GetTopWindow()); - wxCommandEvent event; - frame->OnTest1( event ); + MyFrame *frame = (MyFrame*)(wxTheApp->GetTopWindow()); + wxCommandEvent event; + frame->OnTestDialog( event ); } BEGIN_EVENT_TABLE(MyFrame, wxFrame) - EVT_MENU(RESOURCE_QUIT, MyFrame::OnQuit) - EVT_MENU(RESOURCE_TEST1, MyFrame::OnTest1) + EVT_MENU(RESOURCE_ABOUT, MyFrame::OnAbout) + EVT_MENU(RESOURCE_QUIT, MyFrame::OnQuit) + EVT_MENU(RESOURCE_TESTDIALOG, MyFrame::OnTestDialog) END_EVENT_TABLE() // Define my frame constructor -MyFrame::MyFrame(wxWindow *parent, const wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size): - wxFrame(parent, id, title, pos, size) +MyFrame::MyFrame +( + wxWindow *parent, const wxWindowID id, + const wxString& title, const wxPoint& pos, const wxSize& size +) : wxFrame(parent, id, title, pos, size) { - panel = (wxWindow *) NULL; + panel = (wxWindow *) NULL; +} + +void MyFrame::OnAbout( wxCommandEvent& WXUNUSED(event) ) +{ + wxMessageBox("wxWindows resource sample.\n" + "(c) Julian Smart", "About wxWindows sample", + wxICON_INFORMATION | wxOK); } void MyFrame::OnQuit( wxCommandEvent& WXUNUSED(event) ) { - Close(TRUE); + Close(TRUE); } -void MyFrame::OnTest1(wxCommandEvent& WXUNUSED(event) ) +void MyFrame::OnTestDialog(wxCommandEvent& WXUNUSED(event) ) { - MyDialog *dialog = new MyDialog; - if (dialog->LoadFromResource(this, "dialog1")) - { + MyDialog *dialog = new MyDialog; + + if (dialog->LoadFromResource(this, "dialog1")) + { wxTextCtrl *text = (wxTextCtrl *)wxFindWindowByName("multitext3", dialog); if (text) - text->SetValue("wxWindows resource demo"); - dialog->SetModal(TRUE); - dialog->ShowModal(); - } - dialog->Close(TRUE); -} + { + text->SetValue("wxWindows resource demo"); + } -bool MyFrame::OnClose(void) -{ - Show(FALSE); + dialog->ShowModal(); + } - return TRUE; + dialog->Close(TRUE); } BEGIN_EVENT_TABLE(MyDialog, wxDialog) - EVT_BUTTON(RESOURCE_OK, MyDialog::OnOk) - EVT_BUTTON(RESOURCE_CANCEL, MyDialog::OnCancel) + //EVT_BUTTON(RESOURCE_OK, MyDialog::OnOk) + EVT_BUTTON(ID_BUTTON109, MyDialog::OnCancel) END_EVENT_TABLE() void MyDialog::OnOk(wxCommandEvent& WXUNUSED(event) ) { - EndModal(RESOURCE_OK); + // EndModal(RESOURCE_OK); } void MyDialog::OnCancel(wxCommandEvent& WXUNUSED(event) ) { - EndModal(RESOURCE_CANCEL); + EndModal(ID_BUTTON109); }