X-Git-Url: http://Server1/repobrowser/?a=blobdiff_plain;f=source%2Fwidgets%2FXCCalendarMonthView.cpp;h=22ee98d2bfab563e094a70db527d42206c26c953;hb=ca1d24d80ec04ae64a7540cf8bca61c053f2a193;hp=e5c384f81f0425a012e528594c3bcf295243e875;hpb=401fd2eee6047f72fdaf811bbcc3924409a4fb9d;p=xestiacalendar%2F.git diff --git a/source/widgets/XCCalendarMonthView.cpp b/source/widgets/XCCalendarMonthView.cpp index e5c384f..22ee98d 100644 --- a/source/widgets/XCCalendarMonthView.cpp +++ b/source/widgets/XCCalendarMonthView.cpp @@ -20,13 +20,24 @@ using namespace std; +wxDEFINE_EVENT(XCCALENDARMONTH_DESELECTOTHERENTRIES, wxCommandEvent); +wxDEFINE_EVENT(XCCALENDARMONTH_HIDEACCOUNTENTRIES, wxCommandEvent); +wxDEFINE_EVENT(XCCALENDARMONTH_SHOWACCOUNTENTRIES, wxCommandEvent); +wxDEFINE_EVENT(XCCALENDARMONTH_HIDECALENDARENTRIES, wxCommandEvent); +wxDEFINE_EVENT(XCCALENDARMONTH_SHOWCALENDARENTRIES, wxCommandEvent); +wxDEFINE_EVENT(XCCALENDARMONTH_DELETECALENDARENTRIES, wxCommandEvent); +wxDEFINE_EVENT(XCCALENDARMONTH_DISPLAYEVENTMENU, wxCommandEvent); +wxDEFINE_EVENT(XCCALENDARMONTH_DELETEENTRY, wxCommandEvent); +wxDEFINE_EVENT(XCCALENDARMONTH_ADDENTRY, wxCommandEvent); +wxDEFINE_EVENT(XCCALENDARMONTH_UPDATEENTRY, wxCommandEvent); +wxDEFINE_EVENT(XCCALENDARMONTH_UPDATECALENDARCOLOUR, wxCommandEvent); + BEGIN_EVENT_TABLE(XCCalendarMonthView, wxPanel) EVT_PAINT(XCCalendarMonthView::PaintFrameEvent) END_EVENT_TABLE() XCCalendarMonthView::XCCalendarMonthView(wxWindow *parent, const wxString& title, const wxPoint& pos, const wxSize& size, XCCalendarMonthViewGrid *grid, CalendarDataStorage *dataStorage, std::vector *hideAccounts, std::vector *hideCalendars) : wxPanel(parent, wxID_ANY, pos, size, wxTAB_TRAVERSAL){ - calendarStorage = dataStorage; mondayText = new XCCalendarMonthViewDayTitle(this, _("Monday"), wxDefaultPosition, wxDefaultSize); @@ -39,13 +50,13 @@ XCCalendarMonthView::XCCalendarMonthView(wxWindow *parent, const wxString& title eventMenu = new XCEventMenu; - WindowSizer->Add(mondayText, 1, wxEXPAND|wxALL, 0); - WindowSizer->Add(tuesdayText, 1, wxEXPAND|wxALL, 0); - WindowSizer->Add(wednesdayText, 1, wxEXPAND|wxALL, 0); - WindowSizer->Add(thursdayText, 1, wxEXPAND|wxALL, 0); - WindowSizer->Add(fridayText, 1, wxEXPAND|wxALL, 0); - WindowSizer->Add(saturdayText, 1, wxEXPAND|wxALL, 0); - WindowSizer->Add(sundayText, 1, wxEXPAND|wxALL, 0); + windowSizer->Add(mondayText, 1, wxEXPAND|wxALL, 0); + windowSizer->Add(tuesdayText, 1, wxEXPAND|wxALL, 0); + windowSizer->Add(wednesdayText, 1, wxEXPAND|wxALL, 0); + windowSizer->Add(thursdayText, 1, wxEXPAND|wxALL, 0); + windowSizer->Add(fridayText, 1, wxEXPAND|wxALL, 0); + windowSizer->Add(saturdayText, 1, wxEXPAND|wxALL, 0); + windowSizer->Add(sundayText, 1, wxEXPAND|wxALL, 0); ProcessGrid(grid, hideAccounts, hideCalendars); @@ -68,18 +79,19 @@ XCCalendarMonthView::XCCalendarMonthView(wxWindow *parent, const wxString& title this->Layout(); this->SetBackgroundColour(wxColour(0,0,0)); - Connect(ID_MONTHVIEWCLEARSELECTION, XCCALENDARMONTH_DESELECTOTHERENTRIES, wxCommandEventHandler(XCCalendarMonthView::DeselectOthersEvent)); - Connect(ID_HIDEENTRIES, XCCALENDARMONTH_HIDEACCOUNTENTRIES, wxCommandEventHandler(XCCalendarMonthView::HideAccountEntries)); - Connect(ID_SHOWENTRIES, XCCALENDARMONTH_SHOWACCOUNTENTRIES, wxCommandEventHandler(XCCalendarMonthView::ShowAccountEntries)); - Connect(ID_HIDECALENDARENTRIES, XCCALENDARMONTH_HIDECALENDARENTRIES, wxCommandEventHandler(XCCalendarMonthView::HideCalendarEntries)); - Connect(ID_SHOWCALENDARENTRIES, XCCALENDARMONTH_SHOWCALENDARENTRIES, wxCommandEventHandler(XCCalendarMonthView::ShowCalendarEntries)); - Connect(ID_DELETECALENDARENTRIES, XCCALENDARMONTH_DELETECALENDARENTRIES, wxCommandEventHandler(XCCalendarMonthView::DeleteCalendarEntries)); - Connect(ID_DISPLAYEVENTMENU, XCCALENDARMONTH_DISPLAYEVENTMENU, wxCommandEventHandler(XCCalendarMonthView::ShowEventMenu)); - Connect(ID_DELETEENTRY, XCCALENDARMONTH_DELETEENTRY, wxCommandEventHandler(XCCalendarMonthView::DeleteCalendarEntry)); - Connect(ID_ADDENTRY, XCCALENDARMONTH_ADDENTRY, wxCommandEventHandler(XCCalendarMonthView::AddCalendarEntry)); - Connect(ID_UPDATEENTRY, XCCALENDARMONTH_UPDATEENTRY, wxCommandEventHandler(XCCalendarMonthView::UpdateCalendarEntry)); - Connect(ID_UPDATECOLOUR, XCCALENDARMONTH_UPDATECALENDARCOLOUR, wxCommandEventHandler(XCCalendarMonthView::UpdateCalendarColour)); + // Bind events to the control. + Bind(XCCALENDARMONTH_DELETECALENDARENTRIES, &XCCalendarMonthView::DeselectOthersEvent, this, ID_MONTHVIEWCLEARSELECTION); + Bind(XCCALENDARMONTH_HIDEACCOUNTENTRIES, &XCCalendarMonthView::HideAccountEntries, this, ID_HIDEENTRIES); + Bind(XCCALENDARMONTH_SHOWACCOUNTENTRIES, &XCCalendarMonthView::ShowAccountEntries, this, ID_SHOWENTRIES); + Bind(XCCALENDARMONTH_HIDECALENDARENTRIES, &XCCalendarMonthView::HideCalendarEntries, this, ID_HIDECALENDARENTRIES); + Bind(XCCALENDARMONTH_SHOWCALENDARENTRIES, &XCCalendarMonthView::ShowCalendarEntries, this, ID_SHOWCALENDARENTRIES); + Bind(XCCALENDARMONTH_DELETECALENDARENTRIES, &XCCalendarMonthView::DeleteCalendarEntries, this, ID_DELETECALENDARENTRIES); + Bind(XCCALENDARMONTH_DISPLAYEVENTMENU, &XCCalendarMonthView::ShowEventMenu, this, ID_DISPLAYEVENTMENU); + Bind(XCCALENDARMONTH_DELETEENTRY, &XCCalendarMonthView::DeleteCalendarEntry, this, ID_DELETEENTRY); + Bind(XCCALENDARMONTH_ADDENTRY, &XCCalendarMonthView::AddCalendarEntry, this, ID_ADDENTRY); + Bind(XCCALENDARMONTH_UPDATEENTRY, &XCCalendarMonthView::UpdateCalendarEntry, this, ID_UPDATEENTRY); + Bind(XCCALENDARMONTH_UPDATECALENDARCOLOUR, &XCCalendarMonthView::UpdateCalendarColour, this, ID_UPDATECOLOUR); } XCCalendarMonthView::XCCalendarMonthView(XCCalendarMonthViewGrid *grid, CalendarDataStorage *dataStorage, std::vector *hideAccounts, std::vector *hideCalendars) @@ -97,13 +109,13 @@ XCCalendarMonthView::XCCalendarMonthView(XCCalendarMonthViewGrid *grid, Calendar saturdayText = new XCCalendarMonthViewDayTitle(this, _("Saturday"), wxDefaultPosition, wxDefaultSize); sundayText = new XCCalendarMonthViewDayTitle(this, _("Sunday"), wxDefaultPosition, wxDefaultSize); - windowSizer->Add(MondayText, 1, wxEXPAND|wxALL, 0); - windowSizer->Add(TuesdayText, 1, wxEXPAND|wxALL, 0); - windowSizer->Add(WednesdayText, 1, wxEXPAND|wxALL, 0); - windowSizer->Add(ThursdayText, 1, wxEXPAND|wxALL, 0); - windowSizer->Add(FridayText, 1, wxEXPAND|wxALL, 0); - windowSizer->Add(SaturdayText, 1, wxEXPAND|wxALL, 0); - windowSizer->Add(SundayText, 1, wxEXPAND|wxALL, 0); + windowSizer->Add(mondayText, 1, wxEXPAND|wxALL, 0); + windowSizer->Add(tuesdayText, 1, wxEXPAND|wxALL, 0); + windowSizer->Add(wednesdayText, 1, wxEXPAND|wxALL, 0); + windowSizer->Add(thursdayText, 1, wxEXPAND|wxALL, 0); + windowSizer->Add(fridayText, 1, wxEXPAND|wxALL, 0); + windowSizer->Add(saturdayText, 1, wxEXPAND|wxALL, 0); + windowSizer->Add(sundayText, 1, wxEXPAND|wxALL, 0); ProcessGrid(grid, hideAccounts, hideCalendars); @@ -130,7 +142,20 @@ XCCalendarMonthView::XCCalendarMonthView(XCCalendarMonthViewGrid *grid, Calendar XCCalendarMonthView::~XCCalendarMonthView(){ + delete mondayText; + delete tuesdayText; + delete wednesdayText; + delete thursdayText; + delete fridayText; + delete saturdayText; + delete sundayText; + for (vector::iterator dayIter = calendarDayList.begin(); + dayIter != calendarDayList.end(); dayIter++){ + + delete ((*dayIter)); + + } } @@ -148,7 +173,7 @@ void XCCalendarMonthView::ProcessGrid(XCCalendarMonthViewGrid *grid, std::vector week++; for (vector::iterator dayIter = (*weekIter).dayList.begin(); - dayIter != (*weekIter).dayList.end(); DayIter++){ + dayIter != (*weekIter).dayList.end(); dayIter++){ // Add Calendar entries. @@ -200,10 +225,10 @@ void XCCalendarMonthView::ResizeFrameEvent(wxSizeEvent &SizeEvent){ } -void XCCalendarMonthView::DeselectOthersEvent(wxCommandEvent &DeselectEvent){ +void XCCalendarMonthView::DeselectOthersEvent(wxCommandEvent &deselectEvent){ for (vector::iterator dayIter = calendarDayList.begin(); - dayIter != calendarDayList.end(); DayIter++){ + dayIter != calendarDayList.end(); dayIter++){ if (deselectEvent.GetClientData() != (void*)(*dayIter)){ @@ -341,6 +366,16 @@ void XCCalendarMonthView::UpdateCalendarEntry(wxCommandEvent &eventData){ EventProperties *eventInfo = (EventProperties*)eventData.GetClientData(); bool foundDate = false; + for (vector::iterator dayIter = calendarDayList.begin(); + dayIter != calendarDayList.end(); dayIter++){ + + wxCommandEvent addEvent(XCCALENDARDAY_DELETEENTRY); + addEvent.SetId(ID_DELETEENTRY); + addEvent.SetInt(eventInfo->eventID); + wxPostEvent((*dayIter), addEvent); + + } + for (vector::iterator dayIter = calendarDayList.begin(); dayIter != calendarDayList.end(); dayIter++){ @@ -351,8 +386,8 @@ void XCCalendarMonthView::UpdateCalendarEntry(wxCommandEvent &eventData){ (*dayIter)->GetCalendarMonth() == (eventInfo->eventMonth + 1) && (*dayIter)->GetCalendarDay() == eventInfo->eventDay){ - wxCommandEvent addEvent(XCCALENDARDAY_UPDATEENTRY); - addEvent.SetId(ID_UPDATEENTRY); + wxCommandEvent addEvent(XCCALENDARDAY_ADDENTRY); + addEvent.SetId(ID_ADDENTRY); addEvent.SetClientData(eventInfo); wxPostEvent((*dayIter), addEvent); foundDate = true;