DIRECTORY
AdobeOps
USING [ARNumber, ARSystemHandle, EnumeratedSequence,
FieldList, FieldType, KeyedPossibilities, ToolType],
ARAccess USING [ARStorage],
BasicTime USING [GMT],
IO USING [STREAM],
Rope USING [ROPE];
Stream USING [Handle],
Time USING [Packed];
raised from calls to GetFieldValue, GetFieldValuePair and ReadAR
StreamError: ERROR [type: Type];
Type:
TYPE = {
fieldListEmpty, fieldNameNotFound, badValueField, badFieldNameField,
missingFieldNameField, missingValueField};
EnumError: ERROR [why: EnumProblemType];
EnumProblemType: TYPE = {noMatch};
CreateStream: PROCEDURE[fL: AdobeOps.FieldList] RETURNS[ARAccess.ARStorage];
DisplayType: TYPE = {displayedField, nonDisplayedField};
UserContextHandle: TYPE = REF UserContextObject;
UserContext: TYPE = REF UserContextRec;
UserContextRec:
TYPE =
RECORD[
arSH: AdobeOps.ARSystemHandle,
context: SEQUENCE length: CARDINAL OF UserContextObject];
UserContextObject: TYPE = REF UserContextObjectRec;
UserContextObjectRec:
TYPE =
RECORD[
dirty: BOOLEAN ¬ FALSE,
body:
SELECT type: DisplayType
FROM
nonDisplayedField => [readOnlyField: Rope.ROPE],
displayedField => [editableField: UserContextBody],
ENDCASE];
UserContextBody: TYPE = REF UserContextBodyRec;
UserContextBodyRec:
TYPE =
RECORD [
SELECT type: AdobeOps.FieldType
FROM
arId => [arn: AdobeOps.ARNumber],
fixedLengthString, string => [s: Rope.ROPE],
dateTime => [temp: Rope.ROPE, dt: BasicTime.GMT],
numeric => [num: CARDINAL],
enumerated => [value: CARD16],
ENDCASE];
InitializeUserContext: PROCEDURE[arSH: AdobeOps.ARSystemHandle,
tool: AdobeOps.ToolType] RETURNS[userContext: UserContext];
FreeUserContext: PROCEDURE[uCPtr: REF UserContext];
ResetUserContext: PROCEDURE[uC: UserContext];
ClearUserContext: PROCEDURE[uC: UserContext];
FindPossibilities:
PROCEDURE[value:
CARDINAL, possibilities: AdobeOps.KeyedPossibilities]
RETURNS[AdobeOps.EnumeratedSequence];
GetValueFromEnumString: PROCEDURE[s: Rope.ROPE, uC: AdobeToolContext.UserContext, index: CARDINAL] RETURNS[value: CARDINAL];
GetEnumValueFromUC:
PROCEDURE[uC: AdobeToolContext.UserContext, index:
CARDINAL]
RETURNS[value: CARDINAL];
ConvertStreamDataToUserContext: PROCEDURE[sH: IO.STREAM, to: UserContext];
ConvertUserContextToStreamData: PROCEDURE[sH: IO.STREAM, from: UserContext];