// ID name to help new users emphasize this point which is often overlooked
// when starting out with wxWidgets.
BEGIN_EVENT_TABLE(MyFrame, wxFrame)
+ EVT_MENU(XRCID("unload_resource_menuitem"), MyFrame::OnUnloadResourceMenuCommand)
+ EVT_MENU(XRCID("reload_resource_menuitem"), MyFrame::OnReloadResourceMenuCommand)
+ EVT_MENU(XRCID("exit_tool_or_menuitem"), MyFrame::OnExitToolOrMenuCommand)
EVT_MENU(XRCID("exit_tool_or_menuitem"), MyFrame::OnExitToolOrMenuCommand)
EVT_MENU(XRCID("non_derived_dialog_tool_or_menuitem"), MyFrame::OnNonDerivedDialogToolOrMenuCommand)
EVT_MENU(XRCID("derived_tool_or_menuitem"), MyFrame::OnDerivedDialogToolOrMenuCommand)
// Private methods
//-----------------------------------------------------------------------------
+void MyFrame::OnUnloadResourceMenuCommand(wxCommandEvent& WXUNUSED(event))
+{
+ if ( wxXmlResource::Get()->Unload(wxT("rc/basicdlg.xrc")) )
+ wxLogMessage(_T("Basic dialog resource has now been unloaded, you ")
+ _T("won't be able to use it before loading it again"));
+ else
+ wxLogWarning(_T("Failed to unload basic dialog resource"));
+}
+
+void MyFrame::OnReloadResourceMenuCommand(wxCommandEvent& WXUNUSED(event))
+{
+ if ( wxXmlResource::Get()->Load(wxT("rc/basicdlg.xrc")) )
+ wxLogStatus(_T("Basic dialog resource has been loaded."));
+ else
+ wxLogError(_T("Failed to load basic dialog resource"));
+}
+
void MyFrame::OnExitToolOrMenuCommand(wxCommandEvent& WXUNUSED(event))
{
// true is to force the frame to close.
wxDialog dlg;
// "non_derived_dialog" is the name of the wxDialog XRC node that should
// be loaded.
- wxXmlResource::Get()->LoadDialog(&dlg, this, wxT("non_derived_dialog"));
- dlg.ShowModal();
-
+ if ( wxXmlResource::Get()->LoadDialog(&dlg, this, wxT("non_derived_dialog")) )
+ dlg.ShowModal();
}
private:
// Event handlers (these functions should _not_ be virtual)
+ void OnUnloadResourceMenuCommand(wxCommandEvent& event);
+ void OnReloadResourceMenuCommand(wxCommandEvent& event);
void OnExitToolOrMenuCommand(wxCommandEvent& event);
void OnAboutToolOrMenuCommand(wxCommandEvent& event);
void OnNonDerivedDialogToolOrMenuCommand(wxCommandEvent& event);
<object class="wxMenu" name="file_tool_or_menuitem">
<label>_File</label>
<style>wxMENU_TEAROFF</style>
+ <object class="wxMenuItem" name="unload_resource_menuitem">
+ <label>_Unload resource\tCtrl-U</label>
+ <help>Unload basic dialog resource</help>
+ </object>
+ <object class="wxMenuItem" name="reload_resource_menuitem">
+ <label>_Reload resource\tCtrl-R</label>
+ <help>Reload basic dialog resource</help>
+ </object>
<object class="wxMenuItem" name="exit_tool_or_menuitem">
<label>E_xit\tAlt-X</label>
<help>Exit this application</help>