// XCEventMenu.h - XCEventMenu widget header // // (c) 2012-2017 Xestia Software Development. // // This file is part of Xestia Calendar. Original code from Xestia Address Book. // // 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_XCEVENTMENU__ #define __WIDGETS_XCEVENTMENU__ #include #include #include #include #include #include #include "structs.h" #include "events.h" class XCEventMenuADT : public wxMenu { private: protected: virtual void ProcessMenuItemClick(wxCommandEvent& event) {event.Skip();}; }; class XCEventMenu : public XCEventMenuADT { private: std::map menuItems = {}; wxWindow *windowPtr = NULL; bool enableAccountSettings = FALSE; bool searchModeOnly = FALSE; int calendarID = 0; int eventID = 0; void AppendMenuItem(wxString ObjectName, wxString MenuName, wxString MenuDescription, XCEventMenuID ItemID, wxItemKind ItemType); protected: void ProcessMenuItemClick(wxCommandEvent& event); public: XCEventMenu(); ~XCEventMenu(); wxMenu* MenuPointer(); void SetCalendarID(int calendarID); void SetEventID(int eventID); void SetWindowPointer(wxWindow *windowPointer); }; #endif