APIEnv_ChangeNavigatorViewID
주어진 Project Navigator 항목과 그것의 뷰 설정들을 세트합니다.
GSErrCode ACAPI_Environment (
APIEnv_ChangeNavigatorViewID,
API_NavigatorItem* navigatorItem,
API_NavigatorView* navigatorView
);
파라미터
- navigatorItem
- [in]
guid로 식별되는 네비게이터 항목입니다. - navigatorView
- [in] 지정한 항목의 새로운 뷰 설정들입니다. (
NULL이 될 수 있음)
리턴 값
APIERR_BADPARS- 지정한 네비게이터 항목이 Public View Map 또는 My View Map에 존재하지 않습니다. (팀워크 모드)
APIERR_NOTMINE- 당신은 항목을 변경할 권한을 갖고 있지 않습니다.
NoError- 함수가 성공적으로 완료되었습니다.
다른 공통 API 오류들에 대해서는 API 오류 문서를 보십시오.
설명
이 함수를 이용하여 Project Navigator 항목의 이름 또는 ID를 변경할 수 있고 선택적으로 그것의 뷰 설정들도 변경할 수 있습니다. View Map 항목들만 변경할 수 있습니다.
예제
API_NavigatorItem navItem;
BNZeroMemory (&navItem, sizeof(API_NavigatorItem));
navItem.mapId = API_PublicViewMap; //for performance
if (ACAPI_Environment (APIEnv_GetNavigatorItemID, guid, &navItem)== NoError) {
API_NavigatorView navView;
BNZeroMemory (&navView, sizeof(API_NavigatorView));
if (ACAPI_Environment ( APIEnv_GetNavigatorViewID, &navItem, &navView) == NoError) {
if (navView.layerStats != NULL)
BMhKill ((GSHandle*) &(navView.layerStats));
if (navView.modelViewOpt != NULL)
BMKillPtr ((GSPtr*) &(navView.modelViewOpt));
if (navView.dimPrefs != NULL)
BMKillPtr ((GSPtr*) &(navView.dimPrefs));
//name
if (navItem.customName) {
navItem.customName = false;
} else {
navItem.customName = true;
CHCopyC ("Name from API", navItem.name);
}
//uiId
if (navItem.customUiId) {
navItem.customUiId = false;
} else {
navItem.customUiId = true;
CHCopyC ("ID from API", navItem.uiId);
}
// settings
// layer combination
short attributeCount, i;
API_Attribute attribute;
err = ACAPI_Attribute_GetNum (API_LayerCombID, &attributeCount);
if (err == NoError) {
BNZeroMemory (&attribute, sizeof (API_Attribute));
attribute.header.typeID = API_LayerCombID;
for (i = attributeCount; i > 0; --i) {
attribute.header.index = i;
err = ACAPI_Attribute_Get (&attribute);
if (err == NoError) {
CHTruncate (attribute.header.name, navView.layerCombination, sizeof (navView.layerCombination));
break;
}
}
}
// model view options
err = ACAPI_Attribute_GetNum (API_ModelViewOptionsID, &attributeCount);
if (err == NoError) {
BNZeroMemory (&attribute, sizeof (API_Attribute));
attribute.header.typeID = API_ModelViewOptionsID;
for (i = attributeCount; i > 0; --i) {
attribute.header.index = i;
err = ACAPI_Attribute_Get (&attribute);
if (err == NoError) {
CHTruncate (attribute.header.name, navView.modelViewOptName, sizeof (navView.modelViewOptName));
break;
}
}
}
// dimension styles
err = ACAPI_Attribute_GetNum (API_DimStandID, &attributeCount);
if (err == NoError) {
BNZeroMemory (&attribute, sizeof (API_Attribute));
attribute.header.typeID = API_DimStandID;
for (i = attributeCount; i > 0; --i) {
attribute.header.index = i;
err = ACAPI_Attribute_Get (&attribute);
if (err == NoError) {
CHTruncate (attribute.header.name, navView.dimName, sizeof (navView.dimName));
break;
}
}
}
// scale
navView.drawingScale = 123;
err = ACAPI_Environment (APIEnv_ChangeNavigatorViewID, &navItem, &navView);
}
}
요구사항
- 버전: API 10 또는 이후
- 헤더: APIdefs_Environment.h