1 // XCCalendarMenu.cpp - XCCalendarMenu widget header
3 // (c) 2012-2017 Xestia Software Development.
5 // This file is part of Xestia Calendar. Original code from Xestia Address Book.
7 // Xestia Calendar is free software: you can redistribute it and/or modify
8 // it under the terms of the GNU General Public License as published by the
9 // Free Software Foundation, version 3 of the license.
11 // Xestia Calendar is distributed in the hope that it will be useful,
12 // but WITHOUT ANY WARRANTY; without even the implied warranty of
13 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 // GNU General Public License for more details.
16 // You should have received a copy of the GNU General Public License along
17 // with Xestia Calendar. If not, see <http://www.gnu.org/licenses/>
19 #ifndef __WIDGETS_XCCALENDARMENU__
20 #define __WIDGETS_XCCALENDARMENU__
25 #include <wx/listctrl.h>
26 #include <wx/popupwin.h>
32 class XCCalendarMenuADT : public wxMenu
38 virtual void ProcessMenuItemClick(wxCommandEvent& event) {event.Skip();};
40 XCCalendarMenuADT(){};
41 ~XCCalendarMenuADT(){};
45 class XCCalendarMenu : public XCCalendarMenuADT
48 std::map<std::string, wxMenuItem*> menuItems = {};
49 wxListCtrl *contactListCtrl = NULL;
50 wxWindow *windowPtr = NULL;
51 wxPopupTransientWindow *popupPtr = NULL;
52 bool enableAccountSettings = FALSE;
53 bool searchModeOnly = FALSE;
55 int accountPreferencesID = 0;
57 void AppendMenuItem(wxString objectName,
59 wxString menuDescription,
60 XCCalendarMenuID itemID,
64 void ProcessMenuItemClick(wxCommandEvent& event);
68 wxMenu* MenuPointer();
69 void SetCalendarID(int calendarID);
70 void SetAccountPreferencesID(int accountPreferencesID);
71 void SetWindowPointer(wxWindow *windowPointer);
72 void SetPopupPointer(wxPopupTransientWindow *popupPointer);