ArxDbgUiPrBase::Status ArxDbgUiPrAngleDef::go() { CString prompt; char defStr[512]; int initFlag; // set up prompt acdbAngToS(m_default, m_unit, m_precision, defStr); prompt.Format(_T("\n%s<%s>: "), message(), defStr); // set up init flag if (m_angType == kNoZero) initFlag = RSG_NOZERO; else initFlag = 0; int result; while (1) { acedInitGet(initFlag, keyWords()); if (m_useBasePt) result = acedGetOrient(asDblArray(m_basePt), prompt, &m_value); else result = acedGetOrient(NULL, prompt, &m_value); if (result == RTNORM) { if (inRange()) return ArxDbgUiPrBase::kOk; } else if(result == RTKWORD) { acedGetInput(m_keyWordPicked.GetBuffer(512)); m_keyWordPicked.ReleaseBuffer(); return ArxDbgUiPrBase::kKeyWord; } else if (result == RTNONE) { if (m_angType == ArxDbgUiPrAngle::kRange) { ASSERT(m_minVal != m_maxVal); // make sure they set ranges! ASSERT((m_default >= m_minVal) && (m_default <= m_maxVal)); } m_value = m_default; return ArxDbgUiPrBase::kOk; } else return ArxDbgUiPrBase::kCancel; } }
ArxDbgUiPrBase::Status ArxDbgUiPrAngle::go() { CString prompt; int initFlag = 0; // set up prompt prompt.Format(_T("\n%s: "), message()); // set up init flag if (m_allowNone == false) initFlag += RSG_NONULL; if (m_angType == kNoZero) initFlag += RSG_NOZERO; int result; while (1) { acedInitGet(initFlag, keyWords()); if (m_useBasePt) result = acedGetOrient(asDblArray(m_basePt), prompt, &m_value); else result = acedGetOrient(NULL, prompt, &m_value); if (result == RTNORM) { if (inRange()) return ArxDbgUiPrBase::kOk; } else if (result == RTKWORD) { acedGetInput(m_keyWordPicked.GetBuffer(512)); m_keyWordPicked.ReleaseBuffer(); return ArxDbgUiPrBase::kKeyWord; } else if (result == RTNONE) { if (inRange()) return ArxDbgUiPrBase::kOk; } else return ArxDbgUiPrBase::kCancel; } }