// XCCalendarDayEntry.cpp - Xestia Calendar XCCalendarMonthView widget class. // // (c) 2016-2017 Xestia Software Development. // // This file is part of Xestia Calendar. // // Xestia Calendar is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by the // Free Software Foundation, version 3 of the license. // // Xestia Calendar is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License along // with Xestia Calendar. If not, see #ifndef __WIDGETS_XCCALENDARMONTHVIEW_H__ #define __WIDGETS_XCCALENDARMONTHVIEW_H__ #include #include #include "colour.h" #include "text.h" #include "events.h" #include "monthviewgen.h" #include "structs.h" #include "../libraries/CalendarDataStorage/CalendarDataStorage.h" #include "XCCalendarMonthView.h" #include "XCCalendarMonthViewDayTitle.h" #include "XCCalendarDay.h" #include "XCEventMenu.h" class XCCalendarDay; class XCCalendarMonthView: public wxPanel { private: wxFlexGridSizer *windowSizer = new wxFlexGridSizer(0, 7, 1, 1); vector calendarDayList; XCCalendarMonthViewDayTitle *mondayText = nullptr; XCCalendarMonthViewDayTitle *tuesdayText = nullptr; XCCalendarMonthViewDayTitle *wednesdayText = nullptr; XCCalendarMonthViewDayTitle *thursdayText = nullptr; XCCalendarMonthViewDayTitle *fridayText = nullptr; XCCalendarMonthViewDayTitle *saturdayText = nullptr; XCCalendarMonthViewDayTitle *sundayText = nullptr; XCEventMenu *eventMenu = nullptr; CalendarDataStorage *calendarStorage = nullptr; void ProcessGrid(XCCalendarMonthViewGrid *grid, std::vector *hideAccounts, std::vector *hideCalendars); protected: void HideAccountEntries(wxCommandEvent &accountData); void ShowAccountEntries(wxCommandEvent &accountData); void HideCalendarEntries(wxCommandEvent &calendarData); void ShowCalendarEntries(wxCommandEvent &calendarData); void DeleteCalendarEntries(wxCommandEvent &calendarData); void DeleteCalendarEntry(wxCommandEvent &eventData); void AddCalendarEntry(wxCommandEvent &eventData); void UpdateCalendarEntry(wxCommandEvent &eventData); void UpdateCalendarColour(wxCommandEvent &colourData); void ShowEventMenu(wxCommandEvent &eventData); public: XCCalendarMonthView(wxWindow *parent, const wxString& title, const wxPoint& pos, const wxSize& size, XCCalendarMonthViewGrid *grid, CalendarDataStorage *dataStorage, std::vector *hideAccounts, std::vector *hideCalendars); ~XCCalendarMonthView(); void ResizeFrameEvent(wxSizeEvent &sizeEvent); void DeselectOthersEvent(wxCommandEvent &deselectEvent); DECLARE_EVENT_TABLE() }; #endif