본문으로 건너뛰기

Context Menu에 새로운 메뉴 추가

VIZZARD Context Menu에 커스텀 메뉴를 추가하고 처리하는 방법을 소개합니다.


구현 절차​

1. Plugin 기본 코드 구성​

SHControl 구현 절차를 기준으로 Plugin 기본 코드를 구성합니다.


2. 메뉴에 할당할 ID 정의​

private int MENU_VIEW_SP = 8000;
private int MENU_VIEW_ID = 8001;
private int MENU_MODEL_SP = 8002;
private int MENU_MODEL_ID = 8003;

3. VIZZARD 초기화 완료 시 Context Menu 추가​

VIZZARD 프로그램 구동이 완료되면, 아래 이벤트에서 새로운 Context Menu를 추가합니다.

private void Connector_OnInitializedAppEvent(object sender, EventArgs e)
{
// 뷰어 영역에서 단일 모델 선택 시 메뉴 추가
Connector.AddContextMenu(
MENU_VIEW_SP,
CONTEXTMENU_TYPE.VIEW_SINGLE,
CONTEXTMENU_ITEMTYPE.SEPARATOR,
"",
true
);

Connector.AddContextMenu(
MENU_VIEW_ID,
CONTEXTMENU_TYPE.VIEW_SINGLE,
CONTEXTMENU_ITEMTYPE.CONTEXTMENU,
"커스텀 메뉴 #1",
true
);

// 뷰어 영역에서 복수 모델 선택 시 메뉴 추가
Connector.AddContextMenu(
MENU_MODEL_SP,
CONTEXTMENU_TYPE.VIEW_MULTI,
CONTEXTMENU_ITEMTYPE.SEPARATOR,
"",
true
);

Connector.AddContextMenu(
MENU_MODEL_ID,
CONTEXTMENU_TYPE.VIEW_MULTI,
CONTEXTMENU_ITEMTYPE.CONTEXTMENU,
"커스텀 메뉴 #2",
true
);
}

4. Context Menu 클릭 이벤트 등록​

메뉴 선택 시 처리를 위해 이벤트를 추가합니다.

private void Connector_OnInitializedAppEvent(object sender, EventArgs e)
{
// 뷰어 영역에서 단일 모델 선택 시 메뉴 추가
Connector.AddContextMenu(MENU_VIEW_SP, CONTEXTMENU_TYPE.VIEW_SINGLE, CONTEXTMENU_ITEMTYPE.SEPARATOR, "", true);
Connector.AddContextMenu(MENU_VIEW_ID, CONTEXTMENU_TYPE.VIEW_SINGLE, CONTEXTMENU_ITEMTYPE.CONTEXTMENU, "커스텀 메뉴 #1", true);

// 뷰어 영역에서 복수 모델 선택 시 메뉴 추가
Connector.AddContextMenu(MENU_MODEL_SP, CONTEXTMENU_TYPE.VIEW_MULTI, CONTEXTMENU_ITEMTYPE.SEPARATOR, "", true);
Connector.AddContextMenu(MENU_MODEL_ID, CONTEXTMENU_TYPE.VIEW_MULTI, CONTEXTMENU_ITEMTYPE.CONTEXTMENU, "커스텀 메뉴 #2", true);

// Context Menu 클릭 이벤트 등록
Connector.OnContextMenuClickEvent += Connector_OnContextMenuClickEvent;
}

5. 메뉴 선택에 따른 처리​

이벤트 발생 시, 선택된 메뉴 ID를 기준으로 기능을 분기 처리합니다.

private void Connector_OnContextMenuClickEvent(object sender, ContextMenuClickEventArgs e)
{
if (e.ID == MENU_VIEW_ID)
{
// 커스텀 메뉴 #1 처리
}
else if (e.ID == MENU_MODEL_ID)
{
// 커스텀 메뉴 #2 처리
}
}

Context Menu 적용 화면​

Figure 1 - Context Menu 화면