'서브메뉴 구분선'에 해당되는 글 1건

  1. 2008.11.30 윈도우창 메뉴 만들기
AIR/메뉴2008. 11. 30. 17:44

AIR에서 메뉴를 생성하려면 크게 2가지의 클래스가 필요하다.
NativeMenu() 클래스는 메뉴 줄기를 담는 그릇 정도라고 생각하면 좋을 것 같다. 이 자체를 메뉴로 사용한다기 보다는 NativeMenuItem()라는 클래스에 메뉴 이름이나 이벤트 등을 설정하여
NativeMenu 클래스에 addItem()하게 된다.

보통 NativeMenu는 크롬창 밑에 바로 붙는 시스템 메뉴로 사용이 되고,
NativeMenuItem는 메뉴의 이름 등 한 개 항목을 설정하는데 NativeMenuItem() 여러개를 한 개의 NativeMenu() 에 설정하면 아래 그림처럼 풀다운 메뉴로 사용된다.


참고) 그림에서 메인메뉴항목은 담는그릇인 NativeMenu와 라벨명이 "메인메뉴항목"이라고 설정된 NativeMenuItem으로 구성

또한 그림처럼 메뉴명 아래 구분 되어진 선을 추가 하고 싶을 때는 NativeMenuItem("",구분선 여부=true)라는 클래스를 생성하여 사용하는 NativeMenu()에 addItem()하면 된다. NativeMenuItem는 메뉴로서도 이용되지만 이처럼 구분선으로도 활용된다.

이들을 생성하여 윈도우의 메뉴로 설정하기 위해서는 몇가지 주의할 필요가 있다.
윈도우에서 사용할 수 있는 메뉴는 1개뿐이다. 그림처럼 주 메뉴가 2개 이상이 설정하고자 할때는 NativeMenu()에 다른 여러개의 NativeMenu()를 만들어 addSubmenu(대상NativeMenu() , 라벨 )을 사용하여 설정한다.

[주메뉴가 3개인 메뉴 트리]
mainMenu[ NativeMenu ] - subMenu[ NativeMenu ]
     - subMenu[ NativeMenu ]
     - subMenu[ NativeMenu ]

 
이처럼 만든 NativeMenu를 어플리케이션에 반영하고자 한다면  
NativeApplication.nativeApplication.menu 속성에 대입할 수 있다.
물론 윈도우가 1개일 경우에는 위처럼 직접 설정하면 되지만 여러개의 윈도우에서 각각 메뉴를 설정하고자 한다면 NativeApplication.nativeApplication.openedWindows[ 윈도우 index번호 ].menu 를 사용하여 메뉴를 설정할 수 있다. 또는 대상.stage.nativeWindow.menu 속성을 사용하여 메뉴를 설정 할 수도 있다.
Posted by 버터백통