static void UpdateUnread(DmOpenRef db) { FormPtr form = FrmGetActiveForm(); if (FormIsNot(form, FormMain)) return; char unreadbuf[20]; StrPrintF(unreadbuf, "%d unread", (UInt16) CountUnread(db)); FrmCopyLabel(form, LabelUnread, unreadbuf); }
static void UpdatePos(DmOpenRef db) { FormPtr form = FrmGetActiveForm(); if (FormIsNot(form, FormMain)) return; char posbuf[20]; StrPrintF(posbuf, "%d/%d", GetCurrentIndex() + 1, (UInt16) GetSMSCount(db, g_SelectedCategory)); FrmCopyLabel(form, LabelPosition, posbuf); }
// Show a dynamic label on the form. void show_lab(FormPtr form, UInt16 labelID, Char* tmp_text) { UInt16 label_index; label_index = FrmGetObjectIndex(form, labelID); FrmHideObject(form, label_index); FrmCopyLabel(form, labelID, tmp_text); FrmShowObject(form, label_index); return; }
/*********************************************************************** * * FUNCTION: SelectOneTime * * DESCRIPTION: Display a form showing a time and allow the user * to select a different time. This is the single time * dialog as seen in general panel * * PARAMETERS: hour - pointer to hour to change minute - pointer to minute to change * title - string title for the dialog * * RETURNED: true if the OK button was pressed * if true the parameters passed are changed * * REVISION HISTORY: * Name Date Description * ---- ---- ----------- * roger 12/2/94 Initial Revision in General Panel * gavin 3/20/98 Extracted into separate system function * ***********************************************************************/ Boolean SelectOneTime(Int16 *hour,Int16 *minute, const Char * titleP) { FormType * originalForm, * frm; EventType event; Boolean confirmed = false; Boolean handled = false; Boolean done = false; TimeFormatType timeFormat; // Format to display time in Int16 curHour; UInt16 currentTimeButton; UInt8 hoursTimeButtonValue; Char hoursTimeButtonString[3]; UInt8 minuteTensButtonValue; Char minuteTensButtonString[2]; UInt8 minuteOnesButtonValue; Char minuteOnesButtonString[2]; Char separatorString[3]; timeFormat = (TimeFormatType)PrefGetPreference(prefTimeFormat); originalForm = FrmGetActiveForm(); frm = (FormType *) FrmInitForm (SelectOneTimeDialog); if (titleP) FrmSetTitle (frm, (Char *) titleP); FrmSetActiveForm (frm); curHour = *hour; if (Use24HourFormat(timeFormat)) { // Hide the AM & PM ui FrmHideObject (frm, FrmGetObjectIndex (frm, timeAMCheckbox)); FrmHideObject (frm, FrmGetObjectIndex (frm, timePMCheckbox)); } else { if (curHour < 12) CtlSetValue(FrmGetObjectPtr (frm, FrmGetObjectIndex (frm, timeAMCheckbox)), true); else { CtlSetValue(FrmGetObjectPtr (frm, FrmGetObjectIndex (frm, timePMCheckbox)), true); curHour -= 12; } if (curHour == 0) curHour = 12; } // Set the time seperator to the system defined one separatorString[0] = TimeSeparator(timeFormat); separatorString[1] = '\0'; FrmCopyLabel(frm, timeSeparatorLabel, separatorString); // Now set the time displayed in the push buttons. hoursTimeButtonValue = curHour; StrIToA(hoursTimeButtonString, hoursTimeButtonValue); CtlSetLabel(FrmGetObjectPtr (frm, FrmGetObjectIndex (frm, timeHourButton)), hoursTimeButtonString); minuteTensButtonValue = *minute / 10; StrIToA(minuteTensButtonString, minuteTensButtonValue); CtlSetLabel(FrmGetObjectPtr (frm, FrmGetObjectIndex (frm, timeMinutesTensButton)), minuteTensButtonString); minuteOnesButtonValue = *minute % 10; StrIToA(minuteOnesButtonString, minuteOnesButtonValue); CtlSetLabel(FrmGetObjectPtr (frm, FrmGetObjectIndex (frm, timeMinutesOnesButton)), minuteOnesButtonString); // Set the hour time button to be the one set by the arrows currentTimeButton = defaultTimeButton; CtlSetValue(FrmGetObjectPtr (frm, FrmGetObjectIndex (frm, defaultTimeButton)), true); FrmDrawForm (frm); while (!done) { EvtGetEvent (&event, evtWaitForever); if (! SysHandleEvent ((EventType *)&event)) FrmHandleEvent (frm,&event); if (event.eType == ctlSelectEvent) { switch (event.data.ctlSelect.controlID) { case timeOkButton: frm = FrmGetActiveForm(); // Set the new time (seconds are cleared). if (Use24HourFormat(timeFormat)) *hour = hoursTimeButtonValue; else { *hour = hoursTimeButtonValue % 12 + // 12am is 0 hours! (CtlGetValue(FrmGetObjectPtr (frm, FrmGetObjectIndex (frm, timePMCheckbox))) ? 12 : 0); } *minute = minuteTensButtonValue * 10 + minuteOnesButtonValue; done = true; confirmed = true; break; case timeCancelButton: done = true; break; case timeDecreaseButton: case timeIncreaseButton: frm = FrmGetActiveForm(); switch (currentTimeButton) { // MemHandle increasing and decreasing the time for each time digit case timeHourButton: if (event.data.ctlSelect.controlID == timeDecreaseButton) { if (Use24HourFormat(timeFormat)) if (hoursTimeButtonValue > 0) hoursTimeButtonValue--; else hoursTimeButtonValue = 23; else if (hoursTimeButtonValue > 1) hoursTimeButtonValue--; else hoursTimeButtonValue = 12; } else { if (Use24HourFormat(timeFormat)) if (hoursTimeButtonValue < 23) hoursTimeButtonValue++; else hoursTimeButtonValue = 0; else if (hoursTimeButtonValue < 12) hoursTimeButtonValue++; else hoursTimeButtonValue = 1; } StrIToA(hoursTimeButtonString, hoursTimeButtonValue); CtlSetLabel(FrmGetObjectPtr (frm, FrmGetObjectIndex (frm, timeHourButton)), hoursTimeButtonString); break; case timeMinutesTensButton: if (event.data.ctlSelect.controlID == timeDecreaseButton) { if (minuteTensButtonValue > 0) minuteTensButtonValue--; else minuteTensButtonValue = 5; } else { if (minuteTensButtonValue < 5) minuteTensButtonValue++; else minuteTensButtonValue = 0; } StrIToA(minuteTensButtonString, minuteTensButtonValue); CtlSetLabel(FrmGetObjectPtr (frm, FrmGetObjectIndex (frm, timeMinutesTensButton)), minuteTensButtonString); break; case timeMinutesOnesButton: if (event.data.ctlSelect.controlID == timeDecreaseButton) { if (minuteOnesButtonValue > 0) minuteOnesButtonValue--; else minuteOnesButtonValue = 9; } else { if (minuteOnesButtonValue < 9) minuteOnesButtonValue++; else minuteOnesButtonValue = 0; } StrIToA(minuteOnesButtonString, minuteOnesButtonValue); CtlSetLabel(FrmGetObjectPtr (frm, FrmGetObjectIndex (frm, timeMinutesOnesButton)), minuteOnesButtonString); break; } handled = true; break; // timeDecreaseButton & timeIncreaseButton case timeHourButton: currentTimeButton = timeHourButton; break; case timeMinutesTensButton: currentTimeButton = timeMinutesTensButton; break; case timeMinutesOnesButton: currentTimeButton = timeMinutesOnesButton; break; } } else if (event.eType == appStopEvent) { EvtAddEventToQueue (&event); done = true; break; } } // end while true FrmEraseForm (frm); FrmDeleteForm (frm); FrmSetActiveForm(originalForm); return (confirmed); }