Graphisoft®

API Development KitVersion: 18

APIEnv_SetToolBoxModeID

실제 툴박스 모드를 세트합니다.

    GSErrCode ACAPI_Environment (
        APIEnv_SetToolBoxModeID,
        API_ToolBoxItem*     toolBoxItem
    );

 

파라미터

toolBoxItem
[in] 세트할 툴박스 모드입니다.

 

리턴 값

NoError
함수가 성공적으로 완료되었습니다.
APIERR_BADPARS
라이브러리 파트 타입의 variationID가 툴박스 모드 타입과 일치하지 않습니다.
APIERR_BADID
toolBoxItem->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 함수