#include #include #include "palmUtil.h" extern void *GetObjectPtr(UInt16 objectID) { FormPtr frm; frm = FrmGetActiveForm(); return (FrmGetObjectPtr(frm, FrmGetObjectIndex(frm, objectID))); } extern FieldPtr GetFocusField(void) { FormPtr frm; UInt16 focus; FormObjectKind objType; frm = FrmGetActiveForm(); focus = FrmGetFocus(frm); if (focus == noFocus) return NULL; objType = FrmGetObjectType(frm, focus); if (objType == frmFieldObj) return FrmGetObjectPtr(frm, focus); return NULL; } extern Err UtilDBSize(DmOpenRef dbR, UInt16 *size) { Err err; LocalID dbID; UInt16 cardNo; UInt32 numRecords; err = DmOpenDatabaseInfo(dbR, &dbID, NULL, NULL, &cardNo, NULL); if (err) return err; err = DmDatabaseSize(cardNo, dbID, &numRecords, NULL, NULL); if (err) return err; *size = numRecords; return errNone; } extern Err UtilSwapRecords(DmOpenRef dbR, UInt16 i, UInt16 j) { Err err; err = DmMoveRecord(dbR, i, j); if (err) return err; if (i < j) { err = DmMoveRecord(dbR, j - 1, i); } else if (i > j) { err = DmMoveRecord(dbR, j + 1, i); } if (err) return err; return errNone; } extern Err UtilScrambleDB(DmOpenRef dbR) { UInt16 i, n, r; Err err; err = UtilDBSize(dbR, &n); if (err) return err; for (i = 0; i < n; i++) { r = SysRandom(0) % n; err = UtilSwapRecords(dbR, i, r); if (err) return err; } return errNone; } extern void WorkingWinDrawTruncChars(const char *pChars, UInt16 length, Int16 x, Int16 y, Int16 maxWidth) { WinGlueDrawTruncChars(pChars, length, x, y, maxWidth); /* Int16 stringWidth, stringLength; Boolean trunc; if (FntCharsWidth(pChars, length) <= maxWidth) { WinDrawChars(pChars, length, x, y); return; } stringWidth = maxWidth - FntCharWidth(chrEllipsis); stringLength = length; FntCharsInWidth(pChars, &stringWidth, &stringLength, &trunc); WinDrawChars(pChars, stringLength, x, y); WorkingWinDrawChar(chrEllipsis, x+stringWidth, y); */ }