X-Git-Url: http://Server1/repobrowser/?p=xestiacalendar%2F.git;a=blobdiff_plain;f=source%2Fwidgets%2FXCCalendarCtrl.cpp;h=8bd5696654fc666fe593adbd9de1bc9aafc7688f;hp=44a1eb91c3c18f1a21ed85d77520bad6b849487a;hb=902d948e5e45ad483c8e235690dda8f2bf596ad5;hpb=c5716d0f27f0f917282df9121aa97eab7a1bf6b8 diff --git a/source/widgets/XCCalendarCtrl.cpp b/source/widgets/XCCalendarCtrl.cpp index 44a1eb9..8bd5696 100644 --- a/source/widgets/XCCalendarCtrl.cpp +++ b/source/widgets/XCCalendarCtrl.cpp @@ -18,14 +18,21 @@ #include "XCCalendarCtrl.h" -BEGIN_EVENT_TABLE(XCCalendarCtrl, wxPanel) -END_EVENT_TABLE() +wxDEFINE_EVENT(XCCALENDARCTRL_CHANGEGRID, wxCommandEvent); +wxDEFINE_EVENT(XCCALENDARCTRL_HIDEACCOUNTENTRIES, wxCommandEvent); +wxDEFINE_EVENT(XCCALENDARCTRL_SHOWACCOUNTENTRIES, wxCommandEvent); +wxDEFINE_EVENT(XCCALENDARCTRL_HIDECALENDARENTRIES, wxCommandEvent); +wxDEFINE_EVENT(XCCALENDARCTRL_SHOWCALENDARENTRIES, wxCommandEvent); +wxDEFINE_EVENT(XCCALENDARCTRL_DELETECALENDARENTRIES, wxCommandEvent); +wxDEFINE_EVENT(XCCALENDARCTRL_ADDENTRY, wxCommandEvent); +wxDEFINE_EVENT(XCCALENDARCTRL_UPDATEENTRY, wxCommandEvent); +wxDEFINE_EVENT(XCCALENDARCTRL_UPDATECALENDARCOLOUR, wxCommandEvent); +wxDEFINE_EVENT(XCCALENDARCTRL_DELETEENTRY, wxCommandEvent); using namespace std; XCCalendarCtrl::XCCalendarCtrl(wxWindow *parent, CalendarDataStorage *dataStorage) : wxPanel (parent, wxID_ANY, wxDefaultPosition, wxDefaultSize){ - // Setup the pointers. calendarStorage = dataStorage; @@ -41,75 +48,99 @@ XCCalendarCtrl::XCCalendarCtrl(wxWindow *parent, CalendarDataStorage *dataStorag // Setup the top menu. - ManipulatorCtrl = new XCCalendarManipulator(this, "XCCalendarManipulator Test", wxDefaultPosition, wxDefaultSize, calendarStorage); + manipulatorCtrl = new XCCalendarManipulator(this, "XCCalendarManipulator Test", wxDefaultPosition, wxDefaultSize, calendarStorage); // Setup the month view grid. - wxDateTime DTNow = wxDateTime::Now(); - int currentMonth = ((int)DTNow.GetMonth() + 1); - int currentYear = DTNow.GetYear(); + wxDateTime dtNow = wxDateTime::Now(); + int currentMonth = ((int)dtNow.GetMonth() + 1); + int currentYear = dtNow.GetYear(); XCCalendarMonthViewGrid CurrentMonthGrid = GenerateMonthGrid(currentMonth, currentYear); - szrMain->Add(ManipulatorCtrl, 1, wxEXPAND, 5); + szrMain->Add(manipulatorCtrl, 1, wxEXPAND, 5); // Get the list of hidden accounts and calendars. - vector hideAccountsList = ManipulatorCtrl->GetHiddenAccountsList(); - vector hideCalendarsList = ManipulatorCtrl->GetHiddenCalendarsList(); + vector hideAccountsList = manipulatorCtrl->GetHiddenAccountsList(); + vector hideCalendarsList = manipulatorCtrl->GetHiddenCalendarsList(); - MonthViewCtrl = new XCCalendarMonthView(this, "XCCalendarMonthView Test", wxDefaultPosition, wxDefaultSize, &CurrentMonthGrid, calendarStorage, &hideAccountsList, &hideCalendarsList); - szrMain->Add(MonthViewCtrl, 1, wxEXPAND, 5); - - // Connect events to the control. - - Connect(ID_CHANGEGRID, XCCALENDARCTRL_CHANGEGRID, wxCommandEventHandler(XCCalendarCtrl::UpdateGrid)); - Connect(ID_HIDEENTRIES, XCCALENDARCTRL_HIDEACCOUNTENTRIES, wxCommandEventHandler(XCCalendarCtrl::HideAccountEntries)); - Connect(ID_SHOWENTRIES, XCCALENDARCTRL_SHOWACCOUNTENTRIES, wxCommandEventHandler(XCCalendarCtrl::ShowAccountEntries)); - Connect(ID_HIDECALENDARENTRIES, XCCALENDARCTRL_HIDECALENDARENTRIES, wxCommandEventHandler(XCCalendarCtrl::HideCalendarEntries)); - Connect(ID_SHOWCALENDARENTRIES, XCCALENDARCTRL_SHOWCALENDARENTRIES, wxCommandEventHandler(XCCalendarCtrl::ShowCalendarEntries)); - Connect(ID_DELETECALENDARENTRIES, XCCALENDARCTRL_DELETECALENDARENTRIES, wxCommandEventHandler(XCCalendarCtrl::DeleteCalendarEntries)); - Connect(ID_DELETEENTRY, XCCALENDARCTRL_DELETEENTRY, wxCommandEventHandler(XCCalendarCtrl::DeleteCalendarEntry)); - Connect(ID_ADDENTRY, XCCALENDARCTRL_ADDENTRY, wxCommandEventHandler(XCCalendarCtrl::AddCalendarEntry)); - Connect(ID_UPDATEENTRY, XCCALENDARCTRL_UPDATEENTRY, wxCommandEventHandler(XCCalendarCtrl::UpdateCalendarEntry)); - Connect(ID_UPDATECOLOUR, XCCALENDARCTRL_UPDATECALENDARCOLOUR, wxCommandEventHandler(XCCalendarCtrl::UpdateCalendarColour)); - + monthViewCtrl = new XCCalendarMonthView(this, "XCCalendarMonthView Test", wxDefaultPosition, wxDefaultSize, &CurrentMonthGrid, calendarStorage, &hideAccountsList, &hideCalendarsList); + szrMain->Add(monthViewCtrl, 1, wxEXPAND, 5); + + // Bind events to the control. + + Bind(XCCALENDARCTRL_CHANGEGRID, &XCCalendarCtrl::UpdateGrid, this, ID_CHANGEGRID); + Bind(XCCALENDARCTRL_HIDEACCOUNTENTRIES, &XCCalendarCtrl::HideAccountEntries, this, ID_HIDEENTRIES); + Bind(XCCALENDARCTRL_SHOWACCOUNTENTRIES, &XCCalendarCtrl::ShowAccountEntries, this, ID_SHOWENTRIES); + Bind(XCCALENDARCTRL_HIDECALENDARENTRIES, &XCCalendarCtrl::HideCalendarEntries, this, ID_HIDECALENDARENTRIES); + Bind(XCCALENDARCTRL_SHOWCALENDARENTRIES, &XCCalendarCtrl::ShowCalendarEntries, this, ID_SHOWCALENDARENTRIES); + Bind(XCCALENDARCTRL_DELETECALENDARENTRIES, &XCCalendarCtrl::DeleteCalendarEntries, this, ID_DELETECALENDARENTRIES); + Bind(XCCALENDARCTRL_DELETEENTRY, &XCCalendarCtrl::DeleteCalendarEntry, this, ID_DELETEENTRY); + Bind(XCCALENDARCTRL_ADDENTRY, &XCCalendarCtrl::AddCalendarEntry, this, ID_ADDENTRY); + Bind(XCCALENDARCTRL_UPDATEENTRY, &XCCalendarCtrl::UpdateCalendarEntry, this, ID_UPDATEENTRY); + Bind(XCCALENDARCTRL_DELETEENTRY, &XCCalendarCtrl::DeleteCalendarEntry, this, ID_DELETEENTRY); + Bind(XCCALENDARCTRL_UPDATECALENDARCOLOUR, &XCCalendarCtrl::UpdateCalendarColour, this, ID_UPDATECOLOUR); } XCCalendarCtrl::~XCCalendarCtrl(){ // Destory the controls in the XCCalendarCtrl class. + + Unbind(XCCALENDARCTRL_CHANGEGRID, &XCCalendarCtrl::UpdateGrid, this, ID_CHANGEGRID); + Unbind(XCCALENDARCTRL_HIDEACCOUNTENTRIES, &XCCalendarCtrl::HideAccountEntries, this, ID_HIDEENTRIES); + Unbind(XCCALENDARCTRL_SHOWACCOUNTENTRIES, &XCCalendarCtrl::ShowAccountEntries, this, ID_SHOWENTRIES); + Unbind(XCCALENDARCTRL_HIDECALENDARENTRIES, &XCCalendarCtrl::HideCalendarEntries, this, ID_HIDECALENDARENTRIES); + Unbind(XCCALENDARCTRL_SHOWCALENDARENTRIES, &XCCalendarCtrl::ShowCalendarEntries, this, ID_SHOWCALENDARENTRIES); + Unbind(XCCALENDARCTRL_DELETECALENDARENTRIES, &XCCalendarCtrl::DeleteCalendarEntries, this, ID_DELETECALENDARENTRIES); + Unbind(XCCALENDARCTRL_DELETEENTRY, &XCCalendarCtrl::DeleteCalendarEntry, this, ID_DELETEENTRY); + Unbind(XCCALENDARCTRL_ADDENTRY, &XCCalendarCtrl::AddCalendarEntry, this, ID_ADDENTRY); + Unbind(XCCALENDARCTRL_UPDATEENTRY, &XCCalendarCtrl::UpdateCalendarEntry, this, ID_UPDATEENTRY); + Unbind(XCCALENDARCTRL_DELETEENTRY, &XCCalendarCtrl::DeleteCalendarEntry, this, ID_DELETEENTRY); + Unbind(XCCALENDARCTRL_UPDATECALENDARCOLOUR, &XCCalendarCtrl::UpdateCalendarColour, this, ID_UPDATECOLOUR); + + szrMain->Clear(); + + delete monthViewCtrl; + monthViewCtrl = nullptr; + + delete manipulatorCtrl; + manipulatorCtrl = nullptr; + + calendarStorage = nullptr; + + this->SetSizer(nullptr, true); } void XCCalendarCtrl::UpdateGrid(wxCommandEvent &event){ - XCCalendarMonthView *OldGrid = nullptr; + XCCalendarMonthView *oldGrid = nullptr; // Park the old grid. - OldGrid = MonthViewCtrl; + oldGrid = monthViewCtrl; // Get the list of hidden accounts and calendars. - vector hideAccountsList = ManipulatorCtrl->GetHiddenAccountsList(); - vector hideCalendarsList = ManipulatorCtrl->GetHiddenCalendarsList(); + vector hideAccountsList = manipulatorCtrl->GetHiddenAccountsList(); + vector hideCalendarsList = manipulatorCtrl->GetHiddenCalendarsList(); // Create a new grid. - XCCalendarMonthViewGrid NewGrid = GenerateMonthGrid(ManipulatorCtrl->GetMonth(), ManipulatorCtrl->GetYear()); - MonthViewCtrl = new XCCalendarMonthView(this, _(""), wxDefaultPosition, wxDefaultSize, &NewGrid, calendarStorage, &hideAccountsList, &hideCalendarsList); + XCCalendarMonthViewGrid NewGrid = GenerateMonthGrid(manipulatorCtrl->GetMonth(), manipulatorCtrl->GetYear()); + monthViewCtrl = new XCCalendarMonthView(this, _(""), wxDefaultPosition, wxDefaultSize, &NewGrid, calendarStorage, &hideAccountsList, &hideCalendarsList); // Detach the old grid and attach the new one. szrMain->Detach(1); - OldGrid->Show(false); - szrMain->Add(MonthViewCtrl, 1, wxEXPAND, 5); + oldGrid->Show(false); + szrMain->Add(monthViewCtrl, 1, wxEXPAND, 5); szrMain->Layout(); // Delete the old grid. - delete OldGrid; - OldGrid = nullptr; + delete oldGrid; + oldGrid = nullptr; } @@ -121,7 +152,7 @@ void XCCalendarCtrl::HideAccountEntries(wxCommandEvent &accountData){ wxCommandEvent event(XCCALENDARMONTH_HIDEACCOUNTENTRIES); event.SetInt(accountData.GetInt()); event.SetId(ID_HIDEENTRIES); - wxPostEvent(MonthViewCtrl, event); + wxPostEvent(monthViewCtrl, event); } @@ -133,7 +164,7 @@ void XCCalendarCtrl::ShowAccountEntries(wxCommandEvent &accountData){ wxCommandEvent event(XCCALENDARMONTH_SHOWACCOUNTENTRIES); event.SetInt(accountData.GetInt()); event.SetId(ID_SHOWENTRIES); - wxPostEvent(MonthViewCtrl, event); + wxPostEvent(monthViewCtrl, event); } @@ -145,7 +176,7 @@ void XCCalendarCtrl::HideCalendarEntries(wxCommandEvent &calendarData){ wxCommandEvent event(XCCALENDARMONTH_HIDECALENDARENTRIES); event.SetInt(calendarData.GetInt()); event.SetId(ID_HIDECALENDARENTRIES); - wxPostEvent(MonthViewCtrl, event); + wxPostEvent(monthViewCtrl, event); } @@ -157,7 +188,7 @@ void XCCalendarCtrl::ShowCalendarEntries(wxCommandEvent &calendarData){ wxCommandEvent event(XCCALENDARMONTH_SHOWCALENDARENTRIES); event.SetInt(calendarData.GetInt()); event.SetId(ID_SHOWCALENDARENTRIES); - wxPostEvent(MonthViewCtrl, event); + wxPostEvent(monthViewCtrl, event); } @@ -166,7 +197,7 @@ void XCCalendarCtrl::DeleteCalendarEntries(wxCommandEvent &calendarData){ wxCommandEvent event(XCCALENDARMONTH_DELETECALENDARENTRIES); event.SetInt(calendarData.GetInt()); event.SetId(ID_DELETECALENDARENTRIES); - wxPostEvent(MonthViewCtrl, event); + wxPostEvent(monthViewCtrl, event); } @@ -175,7 +206,7 @@ void XCCalendarCtrl::DeleteCalendarEntry(wxCommandEvent &eventData){ wxCommandEvent event(XCCALENDARMONTH_DELETEENTRY); event.SetInt(eventData.GetInt()); event.SetId(ID_DELETEENTRY); - wxPostEvent(MonthViewCtrl, event); + wxPostEvent(monthViewCtrl, event); } @@ -183,13 +214,13 @@ void XCCalendarCtrl::AddCalendarEntry(wxCommandEvent &eventData){ EventProperties *eventInfo = (EventProperties*)eventData.GetClientData(); - eventInfo->hideAccountsList = ManipulatorCtrl->GetHiddenAccountsList(); - eventInfo->hideCalendarsList = ManipulatorCtrl->GetHiddenCalendarsList(); + eventInfo->hideAccountsList = manipulatorCtrl->GetHiddenAccountsList(); + eventInfo->hideCalendarsList = manipulatorCtrl->GetHiddenCalendarsList(); wxCommandEvent addEvent(XCCALENDARMONTH_ADDENTRY); addEvent.SetId(ID_ADDENTRY); addEvent.SetClientData(eventInfo); - wxPostEvent(MonthViewCtrl, addEvent); + wxPostEvent(monthViewCtrl, addEvent); } @@ -200,7 +231,7 @@ void XCCalendarCtrl::UpdateCalendarEntry(wxCommandEvent &eventData){ wxCommandEvent addEvent(XCCALENDARMONTH_UPDATEENTRY); addEvent.SetId(ID_UPDATEENTRY); addEvent.SetClientData(eventInfo); - wxPostEvent(MonthViewCtrl, addEvent); + wxPostEvent(monthViewCtrl, addEvent); } @@ -211,6 +242,6 @@ void XCCalendarCtrl::UpdateCalendarColour(wxCommandEvent &colourData){ wxCommandEvent colourEvent(XCCALENDARMONTH_UPDATECALENDARCOLOUR); colourEvent.SetId(ID_UPDATECOLOUR); colourEvent.SetClientData(colourInfo); - wxPostEvent(MonthViewCtrl, colourEvent); + wxPostEvent(monthViewCtrl, colourEvent); } \ No newline at end of file