Home | News | Projects | Releases
Bugs | RFE | Repositories | Help
widgets: Cleanup objects in destructors and minor code cleanup
[xestiacalendar/.git] / source / widgets / XCCalendarManipulator.cpp
index 79ed65e..81843b5 100644 (file)
@@ -137,6 +137,62 @@ XCCalendarManipulator::XCCalendarManipulator(wxWindow* parent, const wxString& t
 XCCalendarManipulator::~XCCalendarManipulator(){
        
        // Destory the controls from the widget.
+
+       dateButton->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(XCCalendarManipulator::DateTextClick), NULL, this);
+       nextButton->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(XCCalendarManipulator::NextMonth), NULL, this);
+       calendarsButton->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(XCCalendarManipulator::ShowCalendarsList), NULL, this);
+       previousButton->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(XCCalendarManipulator::PreviousMonth), NULL, this);
+       
+#if defined(WIN32)
+       dateButton->Disconnect(wxEVT_ENTER_WINDOW, wxMouseEventHandler(XCCalendarManipulator::ButtonMouseover), NULL, this);
+       dateButton->Disconnect(wxEVT_LEAVE_WINDOW, wxMouseEventHandler(XCCalendarManipulator::ButtonMouseout), NULL, this);
+       nextButton->Disconnect(wxEVT_ENTER_WINDOW, wxMouseEventHandler(XCCalendarManipulator::ButtonMouseover), NULL, this);
+       nextButton->Disconnect(wxEVT_LEAVE_WINDOW, wxMouseEventHandler(XCCalendarManipulator::ButtonMouseout), NULL, this);
+       calendarsButton->Disconnect(wxEVT_ENTER_WINDOW, wxMouseEventHandler(XCCalendarManipulator::ButtonMouseover), NULL, this);
+       calendarsButton->Disconnect(wxEVT_LEAVE_WINDOW, wxMouseEventHandler(XCCalendarManipulator::ButtonMouseout), NULL, this);
+       previousButton->Disconnect(wxEVT_ENTER_WINDOW, wxMouseEventHandler(XCCalendarManipulator::ButtonMouseover), NULL, this);
+       previousButton->Disconnect(wxEVT_LEAVE_WINDOW, wxMouseEventHandler(XCCalendarManipulator::ButtonMouseout), NULL, this);
+#endif
+       
+       Unbind(XCCALENDARMANIPULATOR_CHANGEGRID, &XCCalendarManipulator::ChangeGrid, this, ID_CHANGEGRID);
+
+       // Delete the buttons in pnlMain.
+       
+       szrNavigation->Clear();
+       
+       delete previousButton;
+       previousButton = nullptr;
+       
+       delete nextButton;
+       nextButton = nullptr;
+       
+       delete calendarsButton;
+       calendarsButton = nullptr;
+       
+       delete dateButton;
+       dateButton = nullptr;
+       
+       // Delete szrNavigation.
+       
+       szrMain->Clear();
+       pnlMain->SetSizer(nullptr, true);
+       
+       // Delete pnlMain itself;
+       
+       delete pnlMain;
+       pnlMain = nullptr;
+
+       delete moo;
+       moo = nullptr;
+
+       delete calendarList;
+       calendarList = nullptr;
+       
+       // Delete szrMain itself;
+       
+       this->SetSizer(nullptr, true);
+
+       dataStorage = nullptr;
        
 }
 
Xestia Software Development
Yn Maystri
© 2006 - 2019 Xestia Software Development
Software

Xestia Address Book
Xestia Calendar
Development

Xestia Gelforn
Everything else

About
News
Privacy Policy