X-Git-Url: http://Server1/repobrowser/?a=blobdiff_plain;f=source%2Fwidgets%2FXCCalendarCtrl.cpp;h=7c6127cfadf5fa17e0b5dd43c90cf1bdc8b662a4;hb=refs%2Ftags%2Frelease-0.02;hp=2619242e5cb7e61a709345063cb7b4a57ac1e15d;hpb=23796a09fe99206988ad5ad3b52bd18e37f57d6a;p=xestiacalendar%2F.git diff --git a/source/widgets/XCCalendarCtrl.cpp b/source/widgets/XCCalendarCtrl.cpp index 2619242..7c6127c 100644 --- a/source/widgets/XCCalendarCtrl.cpp +++ b/source/widgets/XCCalendarCtrl.cpp @@ -41,21 +41,37 @@ 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); - MonthViewCtrl = new XCCalendarMonthView(this, "XCCalendarMonthView Test", wxDefaultPosition, wxDefaultSize, &CurrentMonthGrid, calendarStorage); - szrMain->Add(MonthViewCtrl, 1, wxEXPAND, 5); + // Get the list of hidden accounts and calendars. + + 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(wxID_ANY, XCCALENDARCTRL_CHANGEGRID, wxCommandEventHandler(XCCalendarCtrl::UpdateGrid)); + // 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)); } @@ -67,27 +83,134 @@ XCCalendarCtrl::~XCCalendarCtrl(){ 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(); // Create a new grid. - XCCalendarMonthViewGrid NewGrid = GenerateMonthGrid(ManipulatorCtrl->GetMonth(), ManipulatorCtrl->GetYear()); - MonthViewCtrl = new XCCalendarMonthView(this, _(""), wxDefaultPosition, wxDefaultSize, &NewGrid, calendarStorage); + 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; + +} + +void XCCalendarCtrl::HideAccountEntries(wxCommandEvent &accountData){ + + // Get the list of calendar IDs for the account and go through + // the list of entries in each day control. + + wxCommandEvent event(XCCALENDARMONTH_HIDEACCOUNTENTRIES); + event.SetInt(accountData.GetInt()); + event.SetId(ID_HIDEENTRIES); + wxPostEvent(monthViewCtrl, event); + +} + +void XCCalendarCtrl::ShowAccountEntries(wxCommandEvent &accountData){ + + // Get the list of calendar IDs for the account and go through + // the list of entries in each day control. + + wxCommandEvent event(XCCALENDARMONTH_SHOWACCOUNTENTRIES); + event.SetInt(accountData.GetInt()); + event.SetId(ID_SHOWENTRIES); + wxPostEvent(monthViewCtrl, event); + +} + +void XCCalendarCtrl::HideCalendarEntries(wxCommandEvent &calendarData){ + + // Get the list of calendar IDs for the account and go through + // the list of entries in each day control. + + wxCommandEvent event(XCCALENDARMONTH_HIDECALENDARENTRIES); + event.SetInt(calendarData.GetInt()); + event.SetId(ID_HIDECALENDARENTRIES); + wxPostEvent(monthViewCtrl, event); + +} + +void XCCalendarCtrl::ShowCalendarEntries(wxCommandEvent &calendarData){ + + // Get the list of calendar IDs for the account and go through + // the list of entries in each day control. + + wxCommandEvent event(XCCALENDARMONTH_SHOWCALENDARENTRIES); + event.SetInt(calendarData.GetInt()); + event.SetId(ID_SHOWCALENDARENTRIES); + wxPostEvent(monthViewCtrl, event); + +} + +void XCCalendarCtrl::DeleteCalendarEntries(wxCommandEvent &calendarData){ + + wxCommandEvent event(XCCALENDARMONTH_DELETECALENDARENTRIES); + event.SetInt(calendarData.GetInt()); + event.SetId(ID_DELETECALENDARENTRIES); + wxPostEvent(monthViewCtrl, event); + +} + +void XCCalendarCtrl::DeleteCalendarEntry(wxCommandEvent &eventData){ + + wxCommandEvent event(XCCALENDARMONTH_DELETEENTRY); + event.SetInt(eventData.GetInt()); + event.SetId(ID_DELETEENTRY); + wxPostEvent(monthViewCtrl, event); + +} + +void XCCalendarCtrl::AddCalendarEntry(wxCommandEvent &eventData){ + + EventProperties *eventInfo = (EventProperties*)eventData.GetClientData(); + + eventInfo->hideAccountsList = manipulatorCtrl->GetHiddenAccountsList(); + eventInfo->hideCalendarsList = manipulatorCtrl->GetHiddenCalendarsList(); + + wxCommandEvent addEvent(XCCALENDARMONTH_ADDENTRY); + addEvent.SetId(ID_ADDENTRY); + addEvent.SetClientData(eventInfo); + wxPostEvent(monthViewCtrl, addEvent); + +} + +void XCCalendarCtrl::UpdateCalendarEntry(wxCommandEvent &eventData){ + + EventProperties *eventInfo = (EventProperties*)eventData.GetClientData(); + + wxCommandEvent addEvent(XCCALENDARMONTH_UPDATEENTRY); + addEvent.SetId(ID_UPDATEENTRY); + addEvent.SetClientData(eventInfo); + wxPostEvent(monthViewCtrl, addEvent); + +} + +void XCCalendarCtrl::UpdateCalendarColour(wxCommandEvent &colourData){ + + ColourUpdateProperties *colourInfo = (ColourUpdateProperties*)colourData.GetClientData(); + + wxCommandEvent colourEvent(XCCALENDARMONTH_UPDATECALENDARCOLOUR); + colourEvent.SetId(ID_UPDATECOLOUR); + colourEvent.SetClientData(colourInfo); + wxPostEvent(monthViewCtrl, colourEvent); } \ No newline at end of file