/* SetPopMatch(theDialog, popupItemNumber, selStr) Sets currently selected item to that which matches string (case insensitive). Returns item number or zero if there is no match. Thread Safety: SetPopMatch is not thread-safe. */ int SetPopMatch(DialogPtr theDialog, int popupItemNumber, const char *selStr) { ControlHandle controlH; MenuHandle mH; int numMenuItems; int i; unsigned char temp[256]; char itemText[256]; int result; int err; if (err = XOPGetDialogItemAsControl(theDialog, popupItemNumber, &controlH)) return 0; mH = GetPopMenuHandle(theDialog, popupItemNumber); if (mH == NULL) return 0; result = 0; numMenuItems = CountMenuItems(mH); for (i=1; i<=numMenuItems; i++) { GetMenuItemText(mH, i, temp); CopyPascalStringToC(temp, itemText); if (CmpStr(itemText,selStr) == 0) { result = i; SetControlValue(controlH, result); InvalDBox(theDialog, popupItemNumber); // This can move heap. break; } } return result; }
///////////////////////////////////////////////////////////////// // CmpStrFrIProp ( const void * p1, const void *p2) ///////////////////////////////////////////////////////////////// int CmpStrFrIProp (const void * p1, const void *p2) { NCB_PROP * prop1 = (NCB_PROP *)p1; NCB_PROP * prop2 = (NCB_PROP *)p2; SZ sz1 = szFrNi (Ncb::m_pnmStatic, prop1->m_en.m_ni); SZ sz2 = szFrNi (Ncb::m_pnmStatic, prop2->m_en.m_ni); return CmpStr (sz1, sz2); }
/* CheckAndTranslatePortName(portNameIn, portNameOut, allowNone) Returns via portNameOut a valid portName, or None if allowNone is true. Does translation to allow platform independence. Returns 0 if OK or error code. */ static int CheckAndTranslatePortName(const char* portNameIn, char* portNameOut, int allowNone) { VDTPortPtr pp; int errorCode; strcpy(portNameOut, portNameIn); errorCode = allowNone ? VDT_ERR_EXPECTED_PORTNAME_OR_NONE:VDT_ERR_EXPECTED_PORTNAME; if (CmpStr(portNameIn, "None") == 0) { if (!allowNone) return VDT_ERR_EXPECTED_PORTNAME; return 0; } TranslatePortName(portNameOut); // Do platform-related port name translation and handle other name equivalences. pp = FindVDTPort(NULL, portNameOut); if (pp == NULL) return errorCode; return 0; }