X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/60982deac8747c0572be62e1de56139a5cd581df..3c01c5951189e13b8b4a5d7b288b54d4a57a30f8:/samples/xrc/myframe.cpp diff --git a/samples/xrc/myframe.cpp b/samples/xrc/myframe.cpp index fc8a812c68..175d883bae 100644 --- a/samples/xrc/myframe.cpp +++ b/samples/xrc/myframe.cpp @@ -7,14 +7,6 @@ // Licence: wxWindows licence //----------------------------------------------------------------------------- -//----------------------------------------------------------------------------- -// GCC implementation -//----------------------------------------------------------------------------- - -#ifdef __GNUG__ - #pragma implementation "myframe.h" -#endif - //----------------------------------------------------------------------------- // Standard wxWidgets headers //----------------------------------------------------------------------------- @@ -32,6 +24,8 @@ #include "wx/wx.h" #endif +#include "wx/sysopt.h" + //----------------------------------------------------------------------------- // Header of this .cpp file //----------------------------------------------------------------------------- @@ -84,8 +78,7 @@ 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(wxID_EXIT, MyFrame::OnExitToolOrMenuCommand) EVT_MENU(XRCID("non_derived_dialog_tool_or_menuitem"), MyFrame::OnNonDerivedDialogToolOrMenuCommand) EVT_MENU(XRCID("derived_tool_or_menuitem"), MyFrame::OnDerivedDialogToolOrMenuCommand) EVT_MENU(XRCID("controls_tool_or_menuitem"), MyFrame::OnControlsToolOrMenuCommand) @@ -94,7 +87,7 @@ BEGIN_EVENT_TABLE(MyFrame, wxFrame) EVT_MENU(XRCID("platform_property_tool_or_menuitem"), MyFrame::OnPlatformPropertyToolOrMenuCommand) EVT_MENU(XRCID("art_provider_tool_or_menuitem"), MyFrame::OnArtProviderToolOrMenuCommand) EVT_MENU(XRCID("variable_expansion_tool_or_menuitem"), MyFrame::OnVariableExpansionToolOrMenuCommand) - EVT_MENU(XRCID("about_tool_or_menuitem"), MyFrame::OnAboutToolOrMenuCommand) + EVT_MENU(wxID_ABOUT, MyFrame::OnAboutToolOrMenuCommand) END_EVENT_TABLE() //----------------------------------------------------------------------------- @@ -123,6 +116,7 @@ MyFrame::MyFrame(wxWindow* parent) // NOTE: For toolbars you currently should do it exactly like this. // With toolbars, you currently can't create one, and set it later. It // needs to be all in one step. + wxSystemOptions::SetOption ( wxT("msw.remap"), 0 ); SetToolBar(wxXmlResource::Get()->LoadToolBar(this, wxT("main_toolbar"))); #if wxUSE_STATUSBAR @@ -183,6 +177,29 @@ void MyFrame::OnDerivedDialogToolOrMenuCommand(wxCommandEvent& WXUNUSED(event)) preferencesDialog.ShowModal(); } +void MyFrame::OnAnimationCtrlPlay(wxCommandEvent& event) +{ +#if wxUSE_ANIMATIONCTRL + // get the pointers we need + wxButton *btn = wxDynamicCast(event.GetEventObject(), wxButton); + if (!btn || !btn->GetParent()) return; + + wxWindow *win = btn->GetParent(); + wxAnimationCtrl *ctrl = XRCCTRL(*win, "controls_animation_ctrl", wxAnimationCtrl); + if (ctrl->IsPlaying()) + { + ctrl->Stop(); + btn->SetLabel(wxT("Play")); + } + else + { + if (ctrl->Play()) + btn->SetLabel(wxT("Stop")); + else + wxLogError(wxT("Cannot play the animation...")); + } +#endif +} void MyFrame::OnControlsToolOrMenuCommand(wxCommandEvent& WXUNUSED(event)) { @@ -190,22 +207,20 @@ void MyFrame::OnControlsToolOrMenuCommand(wxCommandEvent& WXUNUSED(event)) wxXmlResource::Get()->LoadDialog(&dlg, this, wxT("controls_dialog")); #if wxUSE_LISTCTRL - // There is no data in the listctrl. This will add some columns - // and some data. You don't need to use any pointers - // at all to manipulate the controls, just simply use the XRCCTL(...) macros. - // "controls_treectrl" is the name of this control in the XRC. - // (1) Insert a column, with the column header of "Name" - // (The '_' function around "Name" marks this string as one to translate). - XRCCTRL(dlg, "controls_listctrl", wxListCtrl)->InsertColumn( 0, - _("Name"), - wxLIST_FORMAT_LEFT, - ( 200 ) - ); - // (2) Insert some items into the listctrl - XRCCTRL(dlg, "controls_listctrl", wxListCtrl)->InsertItem(0,wxT("Todd Hope")); - XRCCTRL(dlg, "controls_listctrl", wxListCtrl)->InsertItem(1,wxT("Kim Wynd")); - XRCCTRL(dlg, "controls_listctrl", wxListCtrl)->InsertItem(2,wxT("Leon Li")); -#endif + // The resource file specifies the columns of the control as they are + // typically static while the items themselves are added from here as + // usually they are not static (but if they are, they can be defined in the + // resources too, see the two other list controls definitions in + // controls.xrc) + + // Insert some items into the listctrl: notice that we can access it using + // XRCCTRL + wxListCtrl * const list = XRCCTRL(dlg, "controls_listctrl", wxListCtrl); + + list->InsertItem(0, "Athos"); list->SetItem(0, 1, "90"); + list->InsertItem(1, "Porthos"); list->SetItem(1, 1, "120"); + list->InsertItem(2, "Aramis"); list->SetItem(2, 1, "80"); +#endif // wxUSE_LISTCTRL #if wxUSE_TREECTRL // There is no data in the tree ctrl. These lines will add some. @@ -224,6 +239,13 @@ void MyFrame::OnControlsToolOrMenuCommand(wxCommandEvent& WXUNUSED(event)) treectrl->AppendItem(treectrl->GetRootItem(), _("Evil accountant")); #endif +#if wxUSE_ANIMATIONCTRL + // dynamically connect our event handler for the "clicked" event of the "play" button + // in the animation ctrl page of our dialog + dlg.Connect(XRCID("controls_animation_button_play"), wxEVT_COMMAND_BUTTON_CLICKED, + wxCommandEventHandler(MyFrame::OnAnimationCtrlPlay)); +#endif + // All done. Show the dialog. dlg.ShowModal(); }