calendarID = eventInfo.calendarID;
+ // Set the calendar combination box to the name.
+
+ string combinedName = dataStorage->GetCalendar(calendarID).accountName;
+ combinedName += " : ";
+ combinedName += dataStorage->GetCalendar(eventInfo.calendarID).calendarName;
+
// Load the calendar info.
+ cmbCalendar->SetSelection(cmbCalendar->FindString(combinedName));
cmbCalendar->Show(false);
lblCalendar->Show(false);
eventData.LoadFile(eventFilePath);
// TODO: Set the duration data.
+
+ } else {
+
+ // Setup the date and time with some default values (today's date and time).
+
+ SetDefaultDateTime();
- return;
}
-
- // Setup the date and time with some default values (today's date and time).
-
- SetDefaultDateTime();
+ // Enable window updating and update window name.
+
+ UpdateWindowName();
+ enableUpdates = true;
+
}
void frmEventEditor::SetEditMode(bool editMode){
void frmEventEditor::SaveNewContact(wxCommandEvent &event){
- SaveContact();
+ if (!SaveContact())
+ {
+ return;
+ }
// Reset the form for a new entry.
szrDetails->Layout();
szrList->Layout();
-
-
}
-void frmEventEditor::SaveContact(){
+bool frmEventEditor::SaveContact(){
// Verify that a calendar has been selected.
if (cmbCalendar->GetSelection() == -1 && editMode == false){
wxMessageBox("Please select a calendar for this entry.", "No calendar selected", wxOK);
- return;
+ return false;
}
if (txtEventName->GetValue().IsEmpty()){
wxMessageBox("The event name cannot be left empty.", "Event name is empty", wxOK);
- return;
+ return false;
}
}
+ return true;
+
}
-void frmEventEditor::CloseWindow(wxCommandEvent &event){
+void frmEventEditor::CloseWindow(wxCommandEvent &event)
+{
this->Close();
}
+void frmEventEditor::CloseWindow(wxCloseEvent &event)
+{
+
+ WindowData *deleteWindowData = new WindowData;
+
+ deleteWindowData->DataType = 1;
+ deleteWindowData->WindowPointer = (void*)this;
+ deleteWindowData->WindowID = windowID;
+
+ // Delete the window from the window list.
+
+ wxCommandEvent deleteEvent(XCMAIN_DELETEWINDOWINFO);
+ deleteEvent.SetId(ID_DELETEWINDOW);
+ deleteEvent.SetClientData(deleteWindowData);
+ wxPostEvent(this->GetParent(), deleteEvent);
+
+ this->Destroy();
+
+}
+
bool frmEventEditor::ProcessEvent(wxEvent& event)
{
txtEndTime->SetValue((wxString)formattedTime);
+}
+
+void frmEventEditor::SetWindowMenuItemID(int windowID)
+{
+
+ this->windowID = windowID;
+
+}
+
+void frmEventEditor::ProcessCalendarControl(wxCommandEvent &event)
+{
+
+ UpdateWindowName();
+
+}
+
+void frmEventEditor::ProcessEventName(wxCommandEvent &event)
+{
+
+ UpdateWindowName();
+
+}
+
+void frmEventEditor::UpdateWindowName()
+{
+
+ // Generate the window title.
+
+ string windowTitle;
+
+ if (cmbCalendar->GetSelection() == -1)
+ {
+ windowTitle += "(calendar not selected)";
+ }
+ else
+ {
+ windowTitle += cmbCalendar->GetStringSelection().ToStdString();
+ }
+
+ if (txtEventName->IsEmpty())
+ {
+ windowTitle += " - ";
+ windowTitle += "(unamed event)";
+ }
+ else
+ {
+ windowTitle += " - ";
+ windowTitle += txtEventName->GetValue().ToStdString();
+ }
+
+ SetTitle(windowTitle);
+
+ // Check if post window title updating is enabled before
+ // going any further.
+
+ if (enableUpdates == false)
+ {
+ return;
+ }
+
+ WindowData *updateWindowData = new WindowData;
+
+ updateWindowData->DataType = 1;
+ updateWindowData->WindowPointer = (void*)this;
+ updateWindowData->WindowID = windowID;
+
+ // Delete the window from the window list.
+
+ wxCommandEvent updateEvent(XCMAIN_UPDATEWINDOWINFO);
+ updateEvent.SetId(ID_UPDATEWINDOW);
+ updateEvent.SetClientData(updateWindowData);
+ wxPostEvent(this->GetParent(), updateEvent);
+
}
\ No newline at end of file