API_AddParType
라이브러리 파트의 한 파라미터를 설명합니다.
typedef struct { API_AddParID typeID; short index; short typeMod; char name[API_NameLen]; GS::uchar_t uDescname [API_UAddParDescLen]; GS::uchar_t valueDescription [API_UAddParNumDescLen]; Int32 dim1; Int32 dim2; unsigned short flags; short filler_1; Int32 filler_2; GSHandle arrayDescriptions; union { double real; GS::uchar_t uStr [API_UAddParStrLen]; GSHandle array; } value; } API_AddParType;
멤버
- typeID
- 추가 파라미터의 타입입니다.
- index
- 추가 파라미터 리스트 안에서 이 파라미터의 인덱스 값입니다.
- typeMod
- 타입 수식어(modifier)입니다; 이 변수는 단순한 인스턴스 또는 타입
typeID
인 배열입니다. - name[API_NameLen]
- 추가 파라미터의 이름입니다.
- uDescname[API_UAddParDescLen]
- 추가 파라미터의 Unicode 설명입니다.
- valueDescription[API_UAddParNumDescLen]
- UTF-16 인코딩 형식의 Unicode 파라미터 값 설명입니다.
- dim1
- 배열의 1번째 차원입니다; 배열 수식어인 경우 해당됨
- dim2
- 배열의 2번째 차원입니다; 배열 수식어인 경우 해당됨
- flags
- 수식어(Modifier) flag
-
값
설명
API_ParFlg_Child
이 파라미터는 앞의 타이틀의 자손입니다.
API_ParFlg_BoldName
파라미터의 이름을 강조체로 보여줍니다.
API_ParFlg_Open
이 파라미터의 자손 파라미터들을 보여줍니다.
API_ParFlg_Disabled
이 파라미터를 비활성화합니다; 주로 분리자 라인에 대하여 사용합니다.
API_ParFlg_Hidden
숨겨진 파라미터입니다; Settings 다이얼로그에서 보이지 않습니다.
API_ParFlg_SHidden
스크립트로부터 숨겨진 파라미터입니다.
- arrayDescriptions
- UTF-16 인코딩 형식의 배열 파라미터의 Unicode 설명 문자열 값들입니다. 공간 절약을 위해 값들을 바로 뒤에 저장됩니다.
- value:: real
- 파라미터의 값을 포함합니다;
typeID
이APIParT_CString
이 아닌 경우입니다. - value:: uStr[API_UAddParStrLen]
- 문자열 타입 파라미털의 Unicode 값을 포함합니다;
typeID
가APIParT_CString
일 때입니다. - value:: array
- 배열 파라미터의 값들입니다. 문자열 타입 배열들의 경우 공간 절약을 위해 값들을 바로 뒤에 저장합니다. (예: "alpha\0beta\0gamma\0")
설명
이 structure는 라이브러리 파트에 대한 추가 파라미터들을 설명합니다. 또한 라이브러리 파트 기반 요소(객체, 창, 문 등)와 속성 타입(Zone 카테고리)에 대해서도 사용합니다.
배열 수식어를 가진 파라미터들에 대해서 당신은 요소를 생성하거나 변경할 때 즉시 배열의 차원들을 변경할 수 있습니다. 이렇게 하면 배열에 대하여 일단 placeholder를 라이브러리 파트 파라미터에 넣어두고 나서 당신이 실제로 라이브러리 파트를 배치할 때 조정할 수 있습니다.
(API 1.3에 존재했던) 값 리스트 타입 수식어는 사라졌습니다. 왜냐하면 값 리스트 스크립트가 소멸되었기 때문입니다; API 2.1에서 라이브러리 파트의 파라미터 스크립트를 기반으로 하는 새로운 접근 방식이 도입되었습니다.
파라미터 리스트에 있는 파라미터를 변경하기 위해 APIAny_OpenParametersID, APIAny_ChangeAParameterID, APIAny_GetActParametersID, APIAny_CloseParametersID 함수들을 사용하는 것을 적극 권장합니다.
예제
static void DumpOneParam (API_AddParID typeID, const char *varname, unsigned short flags, double value, const GS::uchar_t *valueStr, Int32 dim1, Int32 dim2) { char head[256], val[256]; if (dim1 == 0 && dim2 == 0) sprintf (head, " %s 0x%02X", varname, flags); else { if (dim1 < 0) { sprintf (head, " %s: [%d][%d] 0x%02X", varname, -dim1, -dim2, flags); ACAPI_WriteReport (head, false); return; } sprintf (head, " [%d][%d]", dim1, dim2); } switch (typeID) { case APIParT_Integer: case APIParT_LightSw: case APIParT_Intens: case APIParT_LineTyp: case APIParT_Mater: case APIParT_FillPat: case APIParT_PenCol: case APIParT_Boolean: sprintf (val, "%d", (Int32) value); break; case APIParT_Length: case APIParT_Angle: case APIParT_RealNum: case APIParT_ColRGB: sprintf (val, "%f", value); break; case APIParT_CString: case APIParT_Title: sprintf (val, "\"%s\"", (const char *) GS::UniString (valueStr).ToCStr ()); break; case APIParT_Separator: CHCopyC ("-------------------", val); break; default: CHCopyC ("???????", val); break; } GiveMessage_Str (head, val, false); return; }이 예제에 대하여 컨트롤 프레임을 가져오기 위해 ACAPI_LibPart_GetParams 함수의 예제를 보십시오.
요구사항
- 버전: API 1.3 또는 이후
- 헤더: APIdefs_LibraryParts.h
참고사항
API_AddParID, API_AttributeDef, API_ElementMemo,
ACAPI_LibPart_GetParams, APIAny_OpenParametersID, APIAny_ChangeAParameterID, APIAny_GetActParametersID, APIAny_CloseParametersID,
API 타입