]> git.saurik.com Git - wxWidgets.git/blobdiff - utils/dialoged/src/dlghndlr.cpp
Moved the cleanup code to an EVT_WINDOW_DESTROY handler.
[wxWidgets.git] / utils / dialoged / src / dlghndlr.cpp
index 7e494242e0baf6bc8f037d566771e6d3d13a70d2..f6d33587123ff1a50541b401db742538fcbc84e6 100644 (file)
@@ -42,6 +42,8 @@ BEGIN_EVENT_TABLE(wxResourceEditorDialogHandler, wxEvtHandler)
 EVT_PAINT(wxResourceEditorDialogHandler::OnPaint)
 EVT_MOUSE_EVENTS(wxResourceEditorDialogHandler::OnMouseEvent)
 EVT_SIZE(wxResourceEditorDialogHandler::OnSize)
 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)
 END_EVENT_TABLE()
 
 BEGIN_EVENT_TABLE(wxResourceEditorControlHandler, wxEvtHandler)
@@ -432,7 +434,7 @@ void wxResourceEditorDialogHandler::OnMouseEvent(wxMouseEvent& event)
                 firstDragY = y;
                 dragType = wxDRAG_TYPE_BOUNDING_BOX;
                 wxClientDC dc(handlerDialog);
                 firstDragY = y;
                 dragType = wxDRAG_TYPE_BOUNDING_BOX;
                 wxClientDC dc(handlerDialog);
-                OnDragBegin(x, y, keys, dc, NULL);
+                OnDragBegin(x, y, keys, dc, 0);
                 dragMode = wxDRAG_MODE_CONTINUE_LEFT;
                 oldDragX = x; oldDragY = y;
             }
                 dragMode = wxDRAG_MODE_CONTINUE_LEFT;
                 oldDragX = x; oldDragY = y;
             }
@@ -867,6 +869,43 @@ void wxResourceEditorDialogHandler::OnDragEnd(int x, int y, int WXUNUSED(keys),
 
 }  // wxResourceEditorDialogHandler::OnDragEnd()
 
 
 }  // 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);
+}