X-Git-Url: http://Server1/repobrowser/?p=xestiacalendar%2F.git;a=blobdiff_plain;f=source%2Fwidgets%2FXCCalendarMonthView.cpp;h=941a484c4450c5f440006133a52dc8a8b30cb0e3;hp=479f59c8c89461c2878bc0b7a605b8930f9abf7b;hb=902d948e5e45ad483c8e235690dda8f2bf596ad5;hpb=12c1ca8d2877104bd61b02ae72ef32314afeaa51 diff --git a/source/widgets/XCCalendarMonthView.cpp b/source/widgets/XCCalendarMonthView.cpp index 479f59c..941a484 100644 --- a/source/widgets/XCCalendarMonthView.cpp +++ b/source/widgets/XCCalendarMonthView.cpp @@ -20,134 +20,146 @@ using namespace std; +wxDEFINE_EVENT(XCCALENDARMONTH_DESELECTOTHERENTRIES, wxCommandEvent); +wxDEFINE_EVENT(XCCALENDARMONTH_HIDEACCOUNTENTRIES, wxCommandEvent); +wxDEFINE_EVENT(XCCALENDARMONTH_SHOWACCOUNTENTRIES, wxCommandEvent); +wxDEFINE_EVENT(XCCALENDARMONTH_HIDECALENDARENTRIES, wxCommandEvent); +wxDEFINE_EVENT(XCCALENDARMONTH_SHOWCALENDARENTRIES, wxCommandEvent); +wxDEFINE_EVENT(XCCALENDARMONTH_DELETECALENDARENTRIES, wxCommandEvent); +wxDEFINE_EVENT(XCCALENDARMONTH_DISPLAYEVENTMENU, wxCommandEvent); +wxDEFINE_EVENT(XCCALENDARMONTH_DELETEENTRY, wxCommandEvent); +wxDEFINE_EVENT(XCCALENDARMONTH_ADDENTRY, wxCommandEvent); +wxDEFINE_EVENT(XCCALENDARMONTH_UPDATEENTRY, wxCommandEvent); +wxDEFINE_EVENT(XCCALENDARMONTH_UPDATECALENDARCOLOUR, wxCommandEvent); + BEGIN_EVENT_TABLE(XCCalendarMonthView, wxPanel) -EVT_PAINT(XCCalendarMonthView::PaintFrameEvent) END_EVENT_TABLE() -XCCalendarMonthView::XCCalendarMonthView(wxWindow *parent, const wxString& title, const wxPoint& pos, const wxSize& size, XCCalendarMonthViewGrid *grid, CalendarDataStorage *dataStorage) +XCCalendarMonthView::XCCalendarMonthView(wxWindow *parent, const wxString& title, const wxPoint& pos, const wxSize& size, XCCalendarMonthViewGrid *grid, CalendarDataStorage *dataStorage, std::vector *hideAccounts, std::vector *hideCalendars) : wxPanel(parent, wxID_ANY, pos, size, wxTAB_TRAVERSAL){ - - Connect(ID_MONTHVIEWCLEARSELECTION, XCCALENDARMONTH_DESELECTOTHERENTRIES, wxCommandEventHandler(XCCalendarMonthView::DeselectOthersEvent)); - calendarStorage = dataStorage; - MondayText = new XCCalendarMonthViewDayTitle(this, _("Monday"), wxDefaultPosition, wxDefaultSize); - TuesdayText = new XCCalendarMonthViewDayTitle(this, _("Tuesday"), wxDefaultPosition, wxDefaultSize); - WednesdayText = new XCCalendarMonthViewDayTitle(this, _("Wednesday"), wxDefaultPosition, wxDefaultSize); - ThursdayText = new XCCalendarMonthViewDayTitle(this, _("Thursday"), wxDefaultPosition, wxDefaultSize); - FridayText = new XCCalendarMonthViewDayTitle(this, _("Friday"), wxDefaultPosition, wxDefaultSize); - SaturdayText = new XCCalendarMonthViewDayTitle(this, _("Saturday"), wxDefaultPosition, wxDefaultSize); - SundayText = new XCCalendarMonthViewDayTitle(this, _("Sunday"), wxDefaultPosition, wxDefaultSize); - - WindowSizer->Add(MondayText, 1, wxEXPAND|wxALL, 0); - WindowSizer->Add(TuesdayText, 1, wxEXPAND|wxALL, 0); - WindowSizer->Add(WednesdayText, 1, wxEXPAND|wxALL, 0); - WindowSizer->Add(ThursdayText, 1, wxEXPAND|wxALL, 0); - WindowSizer->Add(FridayText, 1, wxEXPAND|wxALL, 0); - WindowSizer->Add(SaturdayText, 1, wxEXPAND|wxALL, 0); - WindowSizer->Add(SundayText, 1, wxEXPAND|wxALL, 0); - - ProcessGrid(grid); + mondayText = new XCCalendarMonthViewDayTitle(this, _("Monday"), wxDefaultPosition, wxDefaultSize); + tuesdayText = new XCCalendarMonthViewDayTitle(this, _("Tuesday"), wxDefaultPosition, wxDefaultSize); + wednesdayText = new XCCalendarMonthViewDayTitle(this, _("Wednesday"), wxDefaultPosition, wxDefaultSize); + thursdayText = new XCCalendarMonthViewDayTitle(this, _("Thursday"), wxDefaultPosition, wxDefaultSize); + fridayText = new XCCalendarMonthViewDayTitle(this, _("Friday"), wxDefaultPosition, wxDefaultSize); + saturdayText = new XCCalendarMonthViewDayTitle(this, _("Saturday"), wxDefaultPosition, wxDefaultSize); + sundayText = new XCCalendarMonthViewDayTitle(this, _("Sunday"), wxDefaultPosition, wxDefaultSize); + + eventMenu = new XCEventMenu; + + windowSizer->Add(mondayText, 1, wxEXPAND|wxALL, 0); + windowSizer->Add(tuesdayText, 1, wxEXPAND|wxALL, 0); + windowSizer->Add(wednesdayText, 1, wxEXPAND|wxALL, 0); + windowSizer->Add(thursdayText, 1, wxEXPAND|wxALL, 0); + windowSizer->Add(fridayText, 1, wxEXPAND|wxALL, 0); + windowSizer->Add(saturdayText, 1, wxEXPAND|wxALL, 0); + windowSizer->Add(sundayText, 1, wxEXPAND|wxALL, 0); + + ProcessGrid(grid, hideAccounts, hideCalendars); // Setup the days. // Setup the growable rows and columns. - WindowSizer->AddGrowableCol(0); - WindowSizer->AddGrowableCol(1); - WindowSizer->AddGrowableCol(2); - WindowSizer->AddGrowableCol(3); - WindowSizer->AddGrowableCol(4); - WindowSizer->AddGrowableCol(5); - WindowSizer->AddGrowableCol(6); - WindowSizer->SetFlexibleDirection( wxBOTH ); - WindowSizer->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); - - this->SetSizer(WindowSizer); - WindowSizer->Fit(this); + windowSizer->AddGrowableCol(0); + windowSizer->AddGrowableCol(1); + windowSizer->AddGrowableCol(2); + windowSizer->AddGrowableCol(3); + windowSizer->AddGrowableCol(4); + windowSizer->AddGrowableCol(5); + windowSizer->AddGrowableCol(6); + windowSizer->SetFlexibleDirection( wxBOTH ); + windowSizer->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); + + this->SetSizer(windowSizer); + windowSizer->Fit(this); this->Layout(); this->SetBackgroundColour(wxColour(0,0,0)); -} + // Bind events to the control. -XCCalendarMonthView::XCCalendarMonthView(XCCalendarMonthViewGrid *grid, CalendarDataStorage *dataStorage) - : wxPanel(NULL, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL){ + Bind(XCCALENDARMONTH_DESELECTOTHERENTRIES, &XCCalendarMonthView::DeselectOthersEvent, this, ID_MONTHVIEWCLEARSELECTION); + Bind(XCCALENDARMONTH_HIDEACCOUNTENTRIES, &XCCalendarMonthView::HideAccountEntries, this, ID_HIDEENTRIES); + Bind(XCCALENDARMONTH_SHOWACCOUNTENTRIES, &XCCalendarMonthView::ShowAccountEntries, this, ID_SHOWENTRIES); + Bind(XCCALENDARMONTH_HIDECALENDARENTRIES, &XCCalendarMonthView::HideCalendarEntries, this, ID_HIDECALENDARENTRIES); + Bind(XCCALENDARMONTH_SHOWCALENDARENTRIES, &XCCalendarMonthView::ShowCalendarEntries, this, ID_SHOWCALENDARENTRIES); + Bind(XCCALENDARMONTH_DELETECALENDARENTRIES, &XCCalendarMonthView::DeleteCalendarEntries, this, ID_DELETECALENDARENTRIES); + Bind(XCCALENDARMONTH_DISPLAYEVENTMENU, &XCCalendarMonthView::ShowEventMenu, this, ID_DISPLAYEVENTMENU); + Bind(XCCALENDARMONTH_DELETEENTRY, &XCCalendarMonthView::DeleteCalendarEntry, this, ID_DELETEENTRY); + Bind(XCCALENDARMONTH_ADDENTRY, &XCCalendarMonthView::AddCalendarEntry, this, ID_ADDENTRY); + Bind(XCCALENDARMONTH_UPDATEENTRY, &XCCalendarMonthView::UpdateCalendarEntry, this, ID_UPDATEENTRY); + Bind(XCCALENDARMONTH_UPDATECALENDARCOLOUR, &XCCalendarMonthView::UpdateCalendarColour, this, ID_UPDATECOLOUR); - Connect(ID_MONTHVIEWCLEARSELECTION, XCCALENDARMONTH_DESELECTOTHERENTRIES, wxCommandEventHandler(XCCalendarMonthView::DeselectOthersEvent)); +} + +XCCalendarMonthView::~XCCalendarMonthView(){ - calendarStorage = dataStorage; - - MondayText = new XCCalendarMonthViewDayTitle(this, _("Monday"), wxDefaultPosition, wxDefaultSize); - TuesdayText = new XCCalendarMonthViewDayTitle(this, _("Tuesday"), wxDefaultPosition, wxDefaultSize); - WednesdayText = new XCCalendarMonthViewDayTitle(this, _("Wednesday"), wxDefaultPosition, wxDefaultSize); - ThursdayText = new XCCalendarMonthViewDayTitle(this, _("Thursday"), wxDefaultPosition, wxDefaultSize); - FridayText = new XCCalendarMonthViewDayTitle(this, _("Friday"), wxDefaultPosition, wxDefaultSize); - SaturdayText = new XCCalendarMonthViewDayTitle(this, _("Saturday"), wxDefaultPosition, wxDefaultSize); - SundayText = new XCCalendarMonthViewDayTitle(this, _("Sunday"), wxDefaultPosition, wxDefaultSize); - - WindowSizer->Add(MondayText, 1, wxEXPAND|wxALL, 0); - WindowSizer->Add(TuesdayText, 1, wxEXPAND|wxALL, 0); - WindowSizer->Add(WednesdayText, 1, wxEXPAND|wxALL, 0); - WindowSizer->Add(ThursdayText, 1, wxEXPAND|wxALL, 0); - WindowSizer->Add(FridayText, 1, wxEXPAND|wxALL, 0); - WindowSizer->Add(SaturdayText, 1, wxEXPAND|wxALL, 0); - WindowSizer->Add(SundayText, 1, wxEXPAND|wxALL, 0); - - ProcessGrid(grid); + delete mondayText; + delete tuesdayText; + delete wednesdayText; + delete thursdayText; + delete fridayText; + delete saturdayText; + delete sundayText; - // Setup the days. + for (vector::iterator dayIter = calendarDayList.begin(); + dayIter != calendarDayList.end(); dayIter++){ + + delete ((*dayIter)); + + } - // Setup the growable rows and columns. + delete eventMenu; + this->SetSizer(nullptr, true); - WindowSizer->AddGrowableCol(0); - WindowSizer->AddGrowableCol(1); - WindowSizer->AddGrowableCol(2); - WindowSizer->AddGrowableCol(3); - WindowSizer->AddGrowableCol(4); - WindowSizer->AddGrowableCol(5); - WindowSizer->AddGrowableCol(6); - WindowSizer->SetFlexibleDirection( wxBOTH ); - WindowSizer->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); - - this->SetSizer(WindowSizer); - WindowSizer->Fit(this); - this->Layout(); - this->SetBackgroundColour(wxColour(0,0,0)); + // Unbind events from control -} - -XCCalendarMonthView::~XCCalendarMonthView(){ + Unbind(XCCALENDARMONTH_DESELECTOTHERENTRIES, &XCCalendarMonthView::DeselectOthersEvent, this); + Unbind(XCCALENDARMONTH_HIDEACCOUNTENTRIES, &XCCalendarMonthView::HideAccountEntries, this); + Unbind(XCCALENDARMONTH_SHOWACCOUNTENTRIES, &XCCalendarMonthView::ShowAccountEntries, this); + Unbind(XCCALENDARMONTH_HIDECALENDARENTRIES, &XCCalendarMonthView::HideCalendarEntries, this); + Unbind(XCCALENDARMONTH_SHOWCALENDARENTRIES, &XCCalendarMonthView::ShowCalendarEntries, this); + Unbind(XCCALENDARMONTH_DELETECALENDARENTRIES, &XCCalendarMonthView::DeleteCalendarEntries, this); + Unbind(XCCALENDARMONTH_DISPLAYEVENTMENU, &XCCalendarMonthView::ShowEventMenu, this); + Unbind(XCCALENDARMONTH_DELETEENTRY, &XCCalendarMonthView::DeleteCalendarEntry, this); + Unbind(XCCALENDARMONTH_ADDENTRY, &XCCalendarMonthView::AddCalendarEntry, this); + Unbind(XCCALENDARMONTH_UPDATEENTRY, &XCCalendarMonthView::UpdateCalendarEntry, this); + Unbind(XCCALENDARMONTH_UPDATECALENDARCOLOUR, &XCCalendarMonthView::UpdateCalendarColour, this); + // Don't delete CalendarDataStorage object (used elsewhere). + calendarStorage = nullptr; } -void XCCalendarMonthView::ProcessGrid(XCCalendarMonthViewGrid *grid){ +void XCCalendarMonthView::ProcessGrid(XCCalendarMonthViewGrid *grid, std::vector *hideAccounts, std::vector *hideCalendars){ // TODO: Delete the old calendar entries. // Add the new calendar entries. - int Week = 0; + int week = 0; - for (vector::iterator WeekIter = grid->WeekList.begin(); - WeekIter != grid->WeekList.end(); WeekIter++){ + for (vector::iterator weekIter = grid->weekList.begin(); + weekIter != grid->weekList.end(); weekIter++){ - Week++; + week++; - for (vector::iterator DayIter = (*WeekIter).DayList.begin(); - DayIter != (*WeekIter).DayList.end(); DayIter++){ - - // TODO: Add CalendarEntries. + for (vector::iterator dayIter = (*weekIter).dayList.begin(); + dayIter != (*weekIter).dayList.end(); dayIter++){ - XCCalendarDay *CalendarDayItem = new XCCalendarDay(this, "XCCalendarMonthView Test", wxPoint(50, 50), wxSize(200, 200)); + // Add Calendar entries. + XCCalendarDay *calendarDayItem = new XCCalendarDay(this, "XCCalendarMonthView Test", wxPoint(50, 50), wxSize(100,100)); + // Setup the control. - CalendarDayItem->SetupControl((*DayIter).Day, (*DayIter).Month, (*DayIter).Year, (*DayIter).IsInMonth, this, calendarStorage); + calendarDayItem->SetupControl((*dayIter).day, (*dayIter).month, (*dayIter).year, (*dayIter).isInMonth, this, calendarStorage, hideAccounts, hideCalendars); - CalendarDayList.push_back(CalendarDayItem); - WindowSizer->Add(CalendarDayItem, 1, wxEXPAND, 5); + calendarDayList.push_back(calendarDayItem); + windowSizer->Add(calendarDayItem, 1, wxEXPAND, 5); } @@ -155,52 +167,238 @@ void XCCalendarMonthView::ProcessGrid(XCCalendarMonthViewGrid *grid){ // Add the Growable Rows. - for (int WeekSeek = 0; WeekSeek < Week; WeekSeek++){ + for (int weekSeek = 0; weekSeek < week; weekSeek++){ - WindowSizer->AddGrowableRow((WeekSeek + 1)); + windowSizer->AddGrowableRow((weekSeek + 1)); } } -void XCCalendarMonthView::Repaint(){ +void XCCalendarMonthView::ResizeFrameEvent(wxSizeEvent &SizeEvent){ + + // TODO: Check if window size is less than 120 pixels and if it is, + // switch to the small block mode. - // Draw the border. + // Refresh the window. - this->Layout(); + this->Refresh(); + +} +void XCCalendarMonthView::DeselectOthersEvent(wxCommandEvent &deselectEvent){ + + for (vector::iterator dayIter = calendarDayList.begin(); + dayIter != calendarDayList.end(); dayIter++){ + + if (deselectEvent.GetClientData() != (void*)(*dayIter)){ + + wxCommandEvent deselectEvent(XCCALENDARDAY_DESELECTALLENTRIES); + deselectEvent.SetId(ID_DESELECTALLITEMS); + wxPostEvent((*dayIter), deselectEvent); + + } + + } + } -void XCCalendarMonthView::PaintFrameEvent(wxPaintEvent &PaintEvent){ +void XCCalendarMonthView::HideAccountEntries(wxCommandEvent &accountData){ + + for (vector::iterator dayIter = calendarDayList.begin(); + dayIter != calendarDayList.end(); dayIter++){ + + wxCommandEvent hideEvent(XCCALENDARDAY_HIDEACCOUNTENTRIES); + hideEvent.SetInt(accountData.GetInt()); + hideEvent.SetId(ID_HIDEENTRIES); + wxPostEvent((*dayIter), hideEvent); + + } + +} - Repaint(); +void XCCalendarMonthView::ShowAccountEntries(wxCommandEvent &accountData){ + + for (vector::iterator dayIter = calendarDayList.begin(); + dayIter != calendarDayList.end(); dayIter++){ + + wxCommandEvent showEvent(XCCALENDARDAY_SHOWACCOUNTENTRIES); + showEvent.SetInt(accountData.GetInt()); + showEvent.SetId(ID_SHOWENTRIES); + wxPostEvent((*dayIter), showEvent); + + } } -void XCCalendarMonthView::ResizeFrameEvent(wxSizeEvent &SizeEvent){ +void XCCalendarMonthView::HideCalendarEntries(wxCommandEvent &accountData){ + + for (vector::iterator dayIter = calendarDayList.begin(); + dayIter != calendarDayList.end(); dayIter++){ + + wxCommandEvent hideEvent(XCCALENDARDAY_HIDECALENDARENTRIES); + hideEvent.SetInt(accountData.GetInt()); + hideEvent.SetId(ID_HIDECALENDARENTRIES); + wxPostEvent((*dayIter), hideEvent); + + } + +} - // TODO: Check if window size is less than 120 pixels and if it is, - // switch to the small block mode. +void XCCalendarMonthView::ShowCalendarEntries(wxCommandEvent &accountData){ - // Refresh the window. + for (vector::iterator dayIter = calendarDayList.begin(); + dayIter != calendarDayList.end(); dayIter++){ + + wxCommandEvent hideEvent(XCCALENDARDAY_SHOWCALENDARENTRIES); + hideEvent.SetInt(accountData.GetInt()); + hideEvent.SetId(ID_SHOWCALENDARENTRIES); + wxPostEvent((*dayIter), hideEvent); + + } - this->Refresh(); +} + +void XCCalendarMonthView::DeleteCalendarEntries(wxCommandEvent &calendarData){ + + for (vector::iterator dayIter = calendarDayList.begin(); + dayIter != calendarDayList.end(); dayIter++){ + + wxCommandEvent deleteEvent(XCCALENDARDAY_DELETECALENDARENTRIES); + deleteEvent.SetInt(calendarData.GetInt()); + deleteEvent.SetId(ID_DELETECALENDARENTRIES); + wxPostEvent((*dayIter), deleteEvent); + + } + +} + +void XCCalendarMonthView::DeleteCalendarEntry(wxCommandEvent &eventData){ + + for (vector::iterator dayIter = calendarDayList.begin(); + dayIter != calendarDayList.end(); dayIter++){ + + wxCommandEvent deleteEvent(XCCALENDARDAY_DELETEENTRY); + deleteEvent.SetInt(eventData.GetInt()); + deleteEvent.SetId(ID_DELETEENTRY); + wxPostEvent((*dayIter), deleteEvent); + + } + +} + +void XCCalendarMonthView::AddCalendarEntry(wxCommandEvent &eventData){ + + EventProperties *eventInfo = (EventProperties*)eventData.GetClientData(); + bool foundDate = false; + + for (vector::iterator dayIter = calendarDayList.begin(); + dayIter != calendarDayList.end(); dayIter++){ + + // Check if the date matches with the date in the day + // widget. If it does, add the widget. + + if ((*dayIter)->GetCalendarYear() == eventInfo->eventYear && + (*dayIter)->GetCalendarMonth() == (eventInfo->eventMonth + 1) && + (*dayIter)->GetCalendarDay() == eventInfo->eventDay){ + + wxCommandEvent addEvent(XCCALENDARDAY_ADDENTRY); + addEvent.SetId(ID_ADDENTRY); + addEvent.SetClientData(eventInfo); + wxPostEvent((*dayIter), addEvent); + foundDate = true; + break; + + } + + } + + if (foundDate == false){ + + delete eventInfo; + eventInfo = nullptr; + + } } -void XCCalendarMonthView::DeselectOthersEvent(wxCommandEvent &DeselectEvent){ +void XCCalendarMonthView::UpdateCalendarEntry(wxCommandEvent &eventData){ + + EventProperties *eventInfo = (EventProperties*)eventData.GetClientData(); + bool foundDate = false; + + for (vector::iterator dayIter = calendarDayList.begin(); + dayIter != calendarDayList.end(); dayIter++){ + + wxCommandEvent addEvent(XCCALENDARDAY_DELETEENTRY); + addEvent.SetId(ID_DELETEENTRY); + addEvent.SetInt(eventInfo->eventID); + wxPostEvent((*dayIter), addEvent); + + } - for (vector::iterator DayIter = CalendarDayList.begin(); - DayIter != CalendarDayList.end(); DayIter++){ + for (vector::iterator dayIter = calendarDayList.begin(); + dayIter != calendarDayList.end(); dayIter++){ - if (DeselectEvent.GetClientData() != (void*)(*DayIter)){ + // Check if the date matches with the date in the day + // widget. If it does, update the widget. - wxCommandEvent DeselectEvent(XCCALENDARDAY_DESELECTALLENTRIES); - DeselectEvent.SetId(ID_DESELECTALLITEMS); - wxPostEvent((*DayIter), DeselectEvent); + if ((*dayIter)->GetCalendarYear() == eventInfo->eventYear && + (*dayIter)->GetCalendarMonth() == (eventInfo->eventMonth + 1) && + (*dayIter)->GetCalendarDay() == eventInfo->eventDay){ + + wxCommandEvent addEvent(XCCALENDARDAY_ADDENTRY); + addEvent.SetId(ID_ADDENTRY); + addEvent.SetClientData(eventInfo); + wxPostEvent((*dayIter), addEvent); + foundDate = true; + break; } } + if (foundDate == false){ + + delete eventInfo; + eventInfo = nullptr; + + } + +} + +void XCCalendarMonthView::UpdateCalendarColour(wxCommandEvent &colourData){ + + ColourUpdateProperties *colourDataInfo = (ColourUpdateProperties*)colourData.GetClientData(); + + for (vector::iterator dayIter = calendarDayList.begin(); + dayIter != calendarDayList.end(); dayIter++){ + + // Check if the date matches with the date in the day + // widget. If it does, update the widget. + + ColourUpdateProperties *colourDataPassInfo = colourDataInfo; + + wxCommandEvent updateColour(XCCALENDARDAY_UPDATECALENDARCOLOUR); + updateColour.SetId(ID_UPDATECOLOUR); + updateColour.SetClientData(colourDataPassInfo); + wxPostEvent((*dayIter), updateColour); + + } + +} + +void XCCalendarMonthView::ShowEventMenu(wxCommandEvent &eventData){ + + EventProperties *eventInfo = (EventProperties*)eventData.GetClientData(); + + eventMenu->SetEventID(eventInfo->eventID); + eventMenu->SetCalendarID(eventInfo->calendarID); + eventMenu->SetWindowPointer(this->GetParent()->GetParent()); + + this->PopupMenu(eventMenu, wxDefaultPosition); + + delete eventInfo; + eventInfo = nullptr; + } \ No newline at end of file