Home | News | Projects | Releases
Bugs | RFE | Repositories | Help
widgets: Cleanup objects in destructors and minor code cleanup
[xestiacalendar/.git] / source / widgets / XCCalendarMenu.h
1 // XCCalendarMenu.cpp - XCCalendarMenu widget header
2 //
3 // (c) 2012-2017 Xestia Software Development.
4 //
5 // This file is part of Xestia Calendar. Original code from Xestia Address Book.
6 //
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.
10 //
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.
15 //
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__
22 #include <map>
23 #include <string>
24 #include <wx/wx.h>
25 #include <wx/listctrl.h>
26 #include <wx/popupwin.h>
27 #include <wx/app.h>
29 #include "structs.h"
30 #include "events.h"
32 class XCCalendarMenuADT : public wxMenu
33 {
35         private:
36                 
37         protected:
38                 virtual void ProcessMenuItemClick(wxCommandEvent& event) {event.Skip();};
39         public:
40                 XCCalendarMenuADT(){};
41                 ~XCCalendarMenuADT(){};
43 };
45 class XCCalendarMenu : public XCCalendarMenuADT
46 {
47         private:
48                 std::map<std::string, wxMenuItem*> menuItems = {};
49                 wxWindow *windowPtr = NULL;
50                 wxPopupTransientWindow *popupPtr = NULL;
51                 bool enableAccountSettings = FALSE;
52                 bool searchModeOnly = FALSE;
53                 int calendarID = 0;
54                 int accountPreferencesID = 0;
56                 void AppendMenuItem(wxString objectName,
57                         wxString menuName, 
58                         wxString menuDescription,
59                         XCCalendarMenuID itemID,
60                         wxItemKind itemType);
62         protected:
63                 void ProcessMenuItemClick(wxCommandEvent& event);
64         public:
65                 XCCalendarMenu();
66                 ~XCCalendarMenu();
67                 wxMenu* MenuPointer();
68                 void SetCalendarID(int calendarID);
69                 void SetAccountPreferencesID(int accountPreferencesID);
70                 void SetWindowPointer(wxWindow *windowPointer);
71                 void SetPopupPointer(wxPopupTransientWindow *popupPointer);
72         
73 };
75 #endif
Xestia Software Development
Yn Maystri
© 2006 - 2019 Xestia Software Development
Software

Xestia Address Book
Xestia Calendar
Development

Xestia Gelforn
Everything else

About
News
Privacy Policy