APIEnv_SetToolBoxModeID
실제 툴박스 모드를 세트합니다.
GSErrCode ACAPI_Environment (
APIEnv_SetToolBoxModeID,
API_ToolBoxItem* toolBoxItem
);
파라미터
- toolBoxItem
- [in] 세트할 툴박스 모드입니다.
리턴 값
NoError- 함수가 성공적으로 완료되었습니다.
APIERR_BADPARS- 라이브러리 파트 타입의 variationID가 툴박스 모드 타입과 일치하지 않습니다.
APIERR_BADIDtoolBoxItem->typeID가 유효하지 않은 데이터를 포함하고 있습니다.
다른 공통 API 오류들에 대해서는 API 오류 문서를 보십시오.
설명
이 함수는 현재 툴박스 모드를 변경하는 데 사용합니다.
이 모드는 요소 타입 ID에 의해 지정됩니다.
더 많은 툴박스 모드(ID_Wind, ID_Door, ID_Symb, ID_Light)들을 가질 수 있는 타입들에 대해서, 도구의 variationID 역시 제공되어야 합니다.
API_ZombieElemID 또는 유효하지 않은 요소 타입 ID 사양에 대해서는 화살표 모드가 세트될 것입니다.
이 함수는 툴박스를 즉시 전환하지 않지만 애플리케이션 큐에 이벤트를 게시한다는 것을 참고하십시오. 이 커맨드는 애플리케이션 이벤트들이 처리되었을 때에만 실행될 것입니다.
활성 툴박스 모드를 가져오려면 APIEnv_GetToolBoxModeID 함수를 사용하십시오.
예제
API_Guid guid;
API_Element element;
API_ToolBoxItem tboxInfo;
GSErrCode err;
BNZeroMemory (&tboxInfo, sizeof (API_ToolBoxItem));
tboxInfo.typeID = API_ZombieElemID;
tboxInfo.variationID = APIVarId_Generic;
if (ClickAnElem ("Click an element to set toolbox mode", API_ZombieElemID, NULL, &tboxInfo.typeID, &guid, NULL)) {
if (tboxInfo.typeID == API_ObjectID || tboxInfo.typeID == API_LampID ||
tboxInfo.typeID == API_WindowID || tboxInfo.typeID == API_DoorID)
{
BNZeroMemory (&element, sizeof (API_Element));
element.header.typeID = tboxInfo.typeID;
element.header.guid = guid;
err = ACAPI_Element_Get (&element);
if (err == NoError)
tboxInfo.variationID = element.header.variationID;
}
}
err = ACAPI_Environment (APIEnv_SetToolBoxModeID, &tboxInfo, NULL, NULL);
if (err == NoError) {
if (tboxInfo.typeID == API_ZombieElemID)
WriteReport ("Current toolbox mode: Arrow");
else {
if (tboxInfo.variationID == APIVarId_Generic) {
WriteReport ("Current toolbox mode: %s", ElemID_To_Name (tboxInfo.typeID));
} else {
char *p = (char *) &tboxInfo.variationID;
WriteReport ("Current toolbox mode: %s External \"%c%c%c%c\"", ElemID_To_Name (tboxInfo.typeID), p[0], p[1], p[2], p[3]);
}
}
}
요구사항
- 버전: API 2.1 또는 이후
- 헤더: APIdefs_Environment.h
참고사항
API_ToolBoxItem,
APIEnv_GetToolBoxModeID,
ACAPI_Environment, API 함수