Graphisoft®

API Development KitVersion: 18

Settings 다이얼로그에서의 커스텀 패널


ArchiCAD 8부터 당신은 통합된 사용자 인터페이스 구성요소들을 당신의 커스텀 요소와 속성 데이터를 처리하기 위한 표준 Settings 다이얼로그에 추가할 수 있습니다.
당신은 추가적인 패널들을 다음에 첨부할 수 있습니다

 

패널들의 등록

우선 RegisterInterface 함수에서 당신은 애드온이 Settings 다이얼로그 중 하나를 커스텀 패널에 추가하고 싶다는 것을 서버 애플리케이션에게 알려주어야 합니다. 다이얼로그는 요소 Settings의 경우 요소 ID 및 variation, 또는 속성 Settings의 경우 속성 ID로 지정됩니다. 또한 당신은 관련 인터페이스 리소스(패널의 아이콘, 타이틀 문자열, 탭 페이지 다이얼로그 자체)들의 리소스 ID들도 전달해야 합니다.

API 11  ArchiCAD 11부터 패널의 기본 외형을 제어하기 위해 선택적인 visibleByDefault 파라미터가 추가되었습니다. 만약 당신이 true를 전달하면, Work Environment 설정에서 패널의 실제 가시도를 오버라이드하지 않는 이상 이 패널은 지정한 Settings 다이얼로그 또는 정보 상자에 나타나게 될 것입니다.

API 12  ArchiCAD 12에서 요소 및 속성 Settings 패널의 성장 타입(없음/수평/수직/양쪽)을 제어하기 위해 선택적인 growType 파라미터가 추가되었습니다.

자세한 것은 함수들의 설명에서 찾아볼 수 있습니다:

ACAPI_Register_SettingsPanel
ACAPI_Register_AttributePanel
ACAPI_Register_InfoBoxPanel

 

패널 핸들러 설치하기

커스텀 패널들을 등록한 후에 애드온은 Initialize 함수에서 핸들러들을 초기화해야 합니다. 프로그램 시작 단계에서 호출되기 위해 애드온은 반드시 Preloaded 타입이어야 합니다. 즉, CheckEnvironment의 리턴 값은 APIAddon_Preload이어야 합니다.

요소 또는 속성 Settings 패널은 TBUI::APIToolUIPanel 또는 VBAD::APIAttrUIPanel 클래스들로부터 파생된 객체에 의해 표시됩니다. 이 클래스들은 요소 또는 속성 데이터를 포함하는 탭 페이지와 다이얼로그 항목 자체에 대한 레퍼런스에 대한 옵저버를 포함하고 있습니다. 옵저버들은 해당 데이터베이스와 다이얼로그 사용자 액션 이벤트들을 처리하도록 되어 있습니다.

이 클래스들을 활용하기 위해 애드온은 반드시 UCLib, UDLib 그리고 VBElemDialogs 모듈들을 포함해야 합니다. (이 모듈들의 인터페이스는 문서화되지 않았음)

패널 객체들이 성공적으로 만들어졌을 때, 패널 생성 및 파괴 핸들러 함수들은 ACAPI_Install_PanelHandler와 함께 API에게 전달되어야 합니다.

 

탭 페이지 생성하기/파괴하기

다이얼로그 항목인 탭 페이지가 온 디맨드(on demand)로만 구성되는지, 즉 사용자가 Settings 다이얼로그 열기를 선택했을 때, 애드온이 커스텀 패널을 등록한 경우, 다이얼로그 관리자가 다이얼로그를 패널별로 구축한다는 것을 아는 것은 중요합니다. 다이얼로그 생성 프로세스가 당신의 패널에 이르렀을 때, 설치된 APIPanelCreateProc를 호출합니다. 이때 애드온은 다이얼로그 항목들을 직접 생성하고 옵저버를 탭 페이지에 부착할 수 있습니다. Settings 다이얼로그를 닫은 후에 모든 패널들이 파괴됩니다; 옵저버를 떼고 탭 페이지 객체를 파괴하기 위해 APIPanelDestroyProc가 호출됩니다.

정보 상자(Info Box)의 경우, 정보 상자가 해당 툴박스 모드로 전환할 때 생성-파괴 이벤트들이 발생합니다.

 

Panel_Test 예제 애드온을 연구하면 이 주제에 대한 더 많은 경험을 얻을 수 있습니다.