-// frmMain.h - frmMain form functions header.
+// frmMain.h - frmMain form functions
//
// (c) 2016-2017 Xestia Software Development.
//
#include "frmMain.h"
+wxDEFINE_EVENT(XCMAIN_PROCESSCALENDAR, wxCommandEvent);
+wxDEFINE_EVENT(XCMAIN_EDITCALENDAR, wxCommandEvent);
+wxDEFINE_EVENT(XCMAIN_DELETECALENDAR, wxCommandEvent);
+wxDEFINE_EVENT(XCMAIN_ADDEVENT, wxCommandEvent);
+wxDEFINE_EVENT(XCMAIN_UPDATEEVENT, wxCommandEvent);
+wxDEFINE_EVENT(XCMAIN_EDITEVENT, wxCommandEvent);
+wxDEFINE_EVENT(XCMAIN_DELETEEVENT, wxCommandEvent);
+
+wxDEFINE_EVENT(XCMAIN_ADDWINDOWINFO, wxCommandEvent);
+wxDEFINE_EVENT(XCMAIN_UPDATEWINDOWINFO, wxCommandEvent);
+wxDEFINE_EVENT(XCMAIN_DELETEWINDOWINFO, wxCommandEvent);
+
frmMain::frmMain( wxWindow* parent )
:
frmMainADT( parent )
{
-
// Setup the default settings if they don't
// exist.
mainCalendarCtrl = new XCCalendarCtrl(this, &calendarData);
szrMain->Add(mainCalendarCtrl, 1, wxEXPAND, 5);
szrMain->Layout();
+
+ // Bind events to the control.
- Connect(ID_PROCESSCALENDAR, XCMAIN_PROCESSCALENDAR, wxCommandEventHandler(frmMain::ProcessCalendar));
- Connect(ID_EDITCALENDAR, XCMAIN_EDITCALENDAR, wxCommandEventHandler(frmMain::EditCalendar));
- Connect(ID_DELETECALENDAR, XCMAIN_DELETECALENDAR, wxCommandEventHandler(frmMain::DeleteCalendar));
- Connect(ID_DELETEEVENT, XCMAIN_DELETEEVENT, wxCommandEventHandler(frmMain::DeleteEvent));
- Connect(ID_ADDENTRY, XCMAIN_ADDEVENT, wxCommandEventHandler(frmMain::AddEvent));
- Connect(ID_UPDATEENTRY, XCMAIN_UPDATEEVENT, wxCommandEventHandler(frmMain::UpdateEvent));
- Connect(ID_EDITEVENT, XCMAIN_EDITEVENT, wxCommandEventHandler(frmMain::EditEvent));
+ Bind(XCMAIN_PROCESSCALENDAR, &frmMain::ProcessCalendar, this, ID_PROCESSCALENDAR);
+ Bind(XCMAIN_EDITCALENDAR, &frmMain::EditCalendar, this, ID_EDITCALENDAR);
+ Bind(XCMAIN_DELETECALENDAR, &frmMain::DeleteCalendar, this, ID_DELETECALENDAR);
+ Bind(XCMAIN_ADDEVENT, &frmMain::AddEvent, this, ID_ADDENTRY);
+ Bind(XCMAIN_UPDATEEVENT, &frmMain::UpdateEvent, this, ID_UPDATEENTRY);
+ Bind(XCMAIN_EDITEVENT, &frmMain::EditEvent, this, ID_EDITEVENT);
+ Bind(XCMAIN_DELETEEVENT, &frmMain::DeleteEvent, this, ID_DELETEEVENT);
+ Bind(XCMAIN_ADDWINDOWINFO, &frmMain::WindowAdd, this, ID_ADDWINDOW);
+ Bind(XCMAIN_UPDATEWINDOWINFO, &frmMain::WindowUpdate, this, ID_UPDATEWINDOW);
+ Bind(XCMAIN_DELETEWINDOWINFO, &frmMain::WindowDelete, this, ID_DELETEWINDOW);
}
void frmMain::QuitApp( wxCloseEvent& event )
void frmMain::ShowPreferencesWindow( wxCommandEvent& event )
{
+ // Close all windows first.
+
+ if (CloseAllWindows() == false)
+ {
+ return;
+ }
+
// Open the preferences window.
reloadAccounts = FALSE;
void frmMain::EditCalendar( wxCommandEvent& event )
{
+ // Close all windows first.
+
+ if (CloseAllWindows() == false)
+ {
+ return;
+ }
+
// Get the calendar data.
CDSGetCalendarInfo calendarInfo = calendarData.GetCalendar(event.GetInt());
void frmMain::DeleteCalendar( wxCommandEvent& event )
{
+ // Close all windows first.
+
+ if (CloseAllWindows() == false)
+ {
+ return;
+ }
+
CalendarProperties *calendarEventInfo = (CalendarProperties*)event.GetClientData();
// Get the calendar data.
frmEventEditor *frameNewEvent = new frmEventEditor ( this );
frameNewEvent->SetupForm(&calendarData, preferences);
+ frameNewEvent->SetWindowMenuItemID(++WindowMenuItemID);
+
+ // Add the window to the window list.
+
+ WindowData *newWindowData = new WindowData;
+
+ newWindowData->DataType = 1;
+ newWindowData->WindowPointer = (void*)frameNewEvent;
+ newWindowData->WindowID = WindowMenuItemID;
+
+ wxCommandEvent addevent(XCMAIN_ADDWINDOWINFO);
+ addevent.SetId(ID_ADDWINDOW);
+ addevent.SetClientData(newWindowData);
+ wxPostEvent(this, addevent);
+
frameNewEvent->Show();
}
frmEventEditor *frameEditEvent = new frmEventEditor ( this );
frameEditEvent->SetEventID(event.GetInt());
frameEditEvent->SetEditMode(true);
+ frameEditEvent->SetWindowMenuItemID(++WindowMenuItemID);
frameEditEvent->SetupForm(&calendarData, preferences);
+
+ // Add the window to the window list.
+
+ WindowData *newWindowData = new WindowData;
+
+ newWindowData->DataType = 1;
+ newWindowData->WindowPointer = (void*)frameEditEvent;
+ newWindowData->WindowID = WindowMenuItemID;
+
+ wxCommandEvent addevent(XCMAIN_ADDWINDOWINFO);
+ addevent.SetId(ID_ADDWINDOW);
+ addevent.SetClientData(newWindowData);
+ wxPostEvent(this, addevent);
+
+ // Setup the form and display it.
+
frameEditEvent->Show();
}