Home | News | Projects | Releases
Bugs | RFE | Repositories | Help
widgets: Cleanup objects in destructors and minor code cleanup
[xestiacalendar/.git] / source / widgets / XCEventMenu.cpp
1 // XCCalendarMenu.cpp - XCCalendarMenu widget
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 #include "XCEventMenu.h"
21 XCEventMenu::XCEventMenu(){
22         
23         // Setup the menu items.
24         
25         AppendMenuItem(wxT("editevent"), _("Edit Event"), wxT(""), ID_EVENTMENU_EDIT, wxITEM_NORMAL);
26         AppendMenuItem(wxT("deleteevent"), _("Delete Event"), wxT(""), ID_EVENTMENU_DELETE, wxITEM_NORMAL);
28 }
30 XCEventMenu::~XCEventMenu(){
32         // Destory the XCEventMenu object.
33         
34         // Remove items from list (but don't delete).
35         
36         menuItems.clear();
37         
38         // Menu items are deleted through ~wxMenuBase()
39         
40 }
42 void XCEventMenu::AppendMenuItem(wxString objectName, 
43         wxString menuName, 
44         wxString menuDescription,
45         XCEventMenuID itemID,
46         wxItemKind itemType){
47         
48         if (itemType == wxITEM_SEPARATOR){
49                 this->AppendSeparator();
50                 return;
51         }
52         
53         // Append a menu item to the XCEventMenu control.
55         wxMenuItem *menuitem = this->Append(itemID, menuName, menuDescription);
56         this->Connect(menuitem->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(XCEventMenu::ProcessMenuItemClick));
57         menuItems.insert(std::make_pair(objectName.ToStdString(), menuitem));
59 }
61 wxMenu* XCEventMenu::MenuPointer(){
63         return this;
65 }
67 void XCEventMenu::ProcessMenuItemClick( wxCommandEvent& event){
69         // Process an action when a menu item in the XCEventMenu
70         // control is selected.
71         
72         int itemID = event.GetId();
73         
74         switch (itemID){
75                 
76                 case ID_EVENTMENU_EDIT:
77                         {
78                                 wxCommandEvent editEntry(XCMAIN_EDITEVENT);
79                                 editEntry.SetId(ID_EDITEVENT);
80                                 editEntry.SetInt(eventID);
81                                 wxPostEvent(windowPtr, editEntry);
82                         }
83                         break;
84                 case ID_EVENTMENU_DELETE:
85                         {
86                                 EventProperties *eventInfo = new EventProperties;
88                                 eventInfo->calendarID = calendarID;
89                                 eventInfo->eventID = eventID;
90                                 
91                                 wxCommandEvent deleteEvent(XCMAIN_DELETEEVENT);
92                                 deleteEvent.SetId(ID_DELETEEVENT);
93                                 deleteEvent.SetClientData(eventInfo);
94                                 wxPostEvent(windowPtr, deleteEvent);
95                         }
96                         break;
97                         
98         }
102 void XCEventMenu::SetCalendarID(int calendarID){
103         
104         this->calendarID = calendarID;
105         
108 void XCEventMenu::SetEventID(int eventID){
109         
110         this->eventID = eventID;
111         
114 void XCEventMenu::SetWindowPointer(wxWindow *windowPointer){
115         
116         windowPtr = windowPointer;
117         
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