float GetKeysAction::GetFloat() { double fValue; DescriptorUnitID units; OSErr iErr = m_pReadProcs->getUnitFloatProc(m_Token, &units, &fValue); if(iErr) throw ExceptionSPErr(StringUtil::ssprintf("GetKeysAction::GetFloat(%08x)", m_CurKey), iErr); return (float) fValue; }
//------------------------------------------------------------------------------- // // ReadScriptParameters // // See if we were called by the Photoshop scripting system and return the value // in displayDialog if the user wants to see our dialog. // //------------------------------------------------------------------------------- OSErr ReadScriptParameters(Boolean* displayDialog) { OSErr err = noErr; PIReadDescriptor token = NULL; DescriptorKeyID key = 0; DescriptorTypeID type = 0; DescriptorUnitID units; int32 flags = 0; double percent; DescriptorEnumID disposition; Boolean ignoreSelection; DescriptorKeyIDArray array = { keyAmount, keyDisposition, 0 }; if (displayDialog != NULL) *displayDialog = gData->queryForParameters; else return errMissingParameter; PIDescriptorParameters* descParams = gFilterRecord->descriptorParameters; if (descParams == NULL) return err; ReadDescriptorProcs* readProcs = gFilterRecord->descriptorParameters->readDescriptorProcs; if (readProcs == NULL) return err; if (descParams->descriptor != NULL) { token = readProcs->openReadDescriptorProc(descParams->descriptor, array); if (token != NULL) { while(readProcs->getKeyProc(token, &key, &type, &flags) && !err) { switch (key) { case keyAmount: err = readProcs->getUnitFloatProc(token, &units, &percent); if (!err) gParams->percent = (int16)percent; break; case keyDisposition: err = readProcs->getEnumeratedProc(token, &disposition); if (!err) { gParams->disposition = ScriptToDialog(disposition); CopyColor(gData->color, gData->colorArray[gParams->disposition]); } break; case keyIgnoreSelection: err = readProcs->getBooleanProc(token, &ignoreSelection); if (!err) gParams->ignoreSelection = ignoreSelection; break; default: err = readErr; break; } } err = readProcs->closeReadDescriptorProc(token); gFilterRecord->handleProcs->disposeProc(descParams->descriptor); descParams->descriptor = NULL; } *displayDialog = descParams->playInfo == plugInDialogDisplay; } return err; }