+XCCalendarMonthView::XCCalendarMonthView(wxWindow *parent, const wxString& title, const wxPoint& pos, const wxSize& size, XCCalendarMonthViewGrid *grid, CalendarDataStorage *dataStorage, std::vector<int> *hideAccounts, std::vector<int> *hideCalendars)
+ : wxPanel(parent, wxID_ANY, pos, size, wxTAB_TRAVERSAL){
+ calendarStorage = dataStorage;
+
+ mondayText = new XCCalendarMonthViewDayTitle(this, _("Monday"), wxDefaultPosition, wxDefaultSize);
+ tuesdayText = new XCCalendarMonthViewDayTitle(this, _("Tuesday"), wxDefaultPosition, wxDefaultSize);
+ wednesdayText = new XCCalendarMonthViewDayTitle(this, _("Wednesday"), wxDefaultPosition, wxDefaultSize);
+ thursdayText = new XCCalendarMonthViewDayTitle(this, _("Thursday"), wxDefaultPosition, wxDefaultSize);
+ fridayText = new XCCalendarMonthViewDayTitle(this, _("Friday"), wxDefaultPosition, wxDefaultSize);
+ saturdayText = new XCCalendarMonthViewDayTitle(this, _("Saturday"), wxDefaultPosition, wxDefaultSize);
+ sundayText = new XCCalendarMonthViewDayTitle(this, _("Sunday"), wxDefaultPosition, wxDefaultSize);
+
+ 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);
+
+ ProcessGrid(grid, hideAccounts, hideCalendars);
+
+ // Setup the days.
+
+ // Setup the growable rows and columns.
+
+ windowSizer->AddGrowableCol(0);
+ windowSizer->AddGrowableCol(1);
+ windowSizer->AddGrowableCol(2);
+ windowSizer->AddGrowableCol(3);
+ windowSizer->AddGrowableCol(4);
+ windowSizer->AddGrowableCol(5);
+ windowSizer->AddGrowableCol(6);
+ windowSizer->SetFlexibleDirection( wxBOTH );
+ windowSizer->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
+
+ this->SetSizer(windowSizer);
+ windowSizer->Fit(this);
+ this->Layout();
+ this->SetBackgroundColour(wxColour(0,0,0));
+
+ // Bind events to the control.
+
+ Bind(XCCALENDARMONTH_DESELECTOTHERENTRIES, &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<int> *hideAccounts, std::vector<int> *hideCalendars)
+ : wxPanel(NULL, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL){