/** * name: AddDate * class: CAnnivEditCtrl * desc: Add a new item to the array of dates * param: mda - the date to add * return: 0 on success, -1 on failure, 1 if the item to change was edited before and the new item was not set **/ INT_PTR CAnnivEditCtrl::AddDate(MAnnivDate &mda) { MAnnivDate *pmda, **pmd; // if a date with wID exists, replace it if ((pmda = FindDateById(mda.Id())) != NULL) { BYTE bChanged = pmda->IsChanged(), bRemindChanged = pmda->IsReminderChanged(); if (!bChanged) { pmda->Set(mda); pmda->Module(mda.Module()); pmda->Description(mda.Description()); pmda->Flags(mda.Flags()); } if (!bRemindChanged) { pmda->RemindOption(mda.RemindOption()); pmda->RemindOffset(mda.RemindOffset()); } return bChanged || bRemindChanged; } if (mda.Id() == ANID_NONE) mda.Id(_numDates - 1); if (pmd = (MAnnivDate **)mir_realloc(_pDates, (_numDates + 1) * sizeof(pmda))) { _pDates = pmd; if (_pDates[_numDates] = new MAnnivDate(mda)) { _numDates++; return 0; } } return 1; }
/** * name: Set * class: MAnnivDate * desc: duplicates the given anniversary date class * param: none * return: nothing **/ VOID MAnnivDate::SetDate(MAnnivDate &mda) { SetDate(mda.SystemTime()); _wID = mda.Id(); _strDesc = mda.Description(); _strModule = mda.Module(); _wFlags = mda.Flags(); _bRemind = mda.RemindOption(); _wDaysEarlier = mda.RemindOffset(); }