X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/5aa5c1e4c9150c6cacdaf6090e2ae8c496e79b6b..59af5f19d077fa88fad9bf6a01040f5af390da79:/utils/dialoged/src/dlghndlr.cpp diff --git a/utils/dialoged/src/dlghndlr.cpp b/utils/dialoged/src/dlghndlr.cpp index 2be4b234f2..f6d3358712 100644 --- a/utils/dialoged/src/dlghndlr.cpp +++ b/utils/dialoged/src/dlghndlr.cpp @@ -42,6 +42,8 @@ BEGIN_EVENT_TABLE(wxResourceEditorDialogHandler, wxEvtHandler) EVT_PAINT(wxResourceEditorDialogHandler::OnPaint) EVT_MOUSE_EVENTS(wxResourceEditorDialogHandler::OnMouseEvent) EVT_SIZE(wxResourceEditorDialogHandler::OnSize) +EVT_MENU(OBJECT_MENU_EDIT, wxResourceEditorDialogHandler::OnObjectEdit) +EVT_MENU(OBJECT_MENU_DELETE, wxResourceEditorDialogHandler::OnObjectDelete) END_EVENT_TABLE() BEGIN_EVENT_TABLE(wxResourceEditorControlHandler, wxEvtHandler) @@ -867,6 +869,43 @@ void wxResourceEditorDialogHandler::OnDragEnd(int x, int y, int WXUNUSED(keys), } // wxResourceEditorDialogHandler::OnDragEnd() +void wxResourceEditorDialogHandler::OnObjectEdit(wxCommandEvent& event) +{ + wxMenu* menu = (wxMenu*) event.GetEventObject(); + + wxWindow *data = (wxWindow *)menu->GetClientData(); + if (!data) + return; + + wxResourceManager::GetCurrentResourceManager()->EditWindow(data); +} + +void wxResourceEditorDialogHandler::OnObjectDelete(wxCommandEvent& event) +{ + wxMenu* menu = (wxMenu*) event.GetEventObject(); + + wxWindow *data = (wxWindow *)menu->GetClientData(); + if (!data) + return; + + // Before deleting a dialog, give the user a last chance + // change their mind, in case they accidentally right + // clicked the dialog rather than the widget they were + // aiming for. + if (data->IsKindOf(CLASSINFO(wxPanel))) + { + wxString str(wxT("Deleting dialog : ")); + str += data->GetName(); + if (wxMessageBox(wxT("Are you sure?"), str, wxYES_NO | wxCENTRE) == wxNO) + return; + } + + wxResourceManager::GetCurrentResourceManager()->DeselectItemIfNecessary(data); + + wxResourceManager::GetCurrentResourceManager()->SaveInfoAndDeleteHandler(data); + wxResourceManager::GetCurrentResourceManager()->DeleteResource(data); + wxResourceManager::GetCurrentResourceManager()->DeleteWindow(data); +}