Bori에서 단축키 사용방법
페이지 정보
본문
오래전 DOS기반의 프로그램 개발시 단축키 기능을 많이 활용했던 기억이 떠오릅니다.
그 때 사용했던 언어가 클리퍼인데, 몇십년이 지난 지금에는 어떻게 프로그램을 개발했는 지 기억조차 나지가 않네요. ㅠㅠ
저의 경우 윈도우즈 환경의 프로그램 개발시 단축키 기능을 적용해 본 기억이 없었던 것 같네요.
최근 지인분 중에 단축키 사용방법에 대해 문의를 주셔서 보리 5.36에서 단축키 사용법도 익힐 겸 보리 사용자들을 위해 단축키 사용하는 방법에 대해 글을 정리합니다.
단축키로 사용하는 함수는 addCmdKey()입니다.
static void addCmdKey (int fSubKey, int key, str command)
첫번째 인수는 Ctrl, Alt, Shift key를 사용하는지 지정합니다.
이 키들을 사용하지 않으면 그냥 0을 입력하시면 됩니다.
Ctrl과 Alt를 동시에 사용하는 경우에는 Project.CMDKEY_CONTROL | Project.CMDKEY_ALT 와 같이 '|'를 사용하여 결합하면 됩니다.
두번째 인수는 사용할 키값을 지정합니다.
펑션키 같은 것들은 함수표에 상수로 지정되어 있는 KEY_F1, KEY_F2,..등을 사용합니다.
문자키를 사용하려면 영어 대문자로 씁니다. 'F', 'T',...처럼 씁니다.
이때는 F가 아니고 'F'로 써야 합니다
소문자나 한글은 사용하지 않습니다. 문자로 지정하는 키 값은 숫자, 영어 대문자만 사용이 가능합니다.
세번째 인수는 명령어입니다.
이 명령어는 개발자가 원하는대로 지정할 수 있습니다.
1. onOpen even에 단축키 설정하기
단축키들은 프로그램 실행시 처음 보여주는 시작 뷰(view)의 onOpen event에 한번 설정해 두면 프로젝트 종료 때까지 계속 적용이 됩니다.
참고로 말씀드리면, 보통 보리(Bori)에서는 home.view를 시작 뷰로 사용을 합니다.
void onOpen (Vars vars)
Project.addCmdKey(Project.CMDKEY_SHIFT, 'S', "SHIFT_S");
Project.addCmdKey(Project.CMDKEY_ALT, 'S', "ALT_S");
Project.addCmdKey(Project.CMDKEY_CONTROL, KEY_F7, "CONTROL_F7");
Project.addCmdKey(Project.CMDKEY_SHIFT | Project.CMDKEY_CONTROL, 'F', "SHIFT_CONTROL_F");
Project.addCmdKey(Project.CMDKEY_SHIFT | Project.CMDKEY_CONTROL | Project.CMDKEY_ALT, 'F', "SHIFT_CONTROL_ALT_F");
Project.addCmdKey(0, KEY_F1, "KEY_F1");
Project.addCmdKey(0, KEY_F2, "KEY_F2");
Project.addCmdKey(0, KEY_F5, "KEY_F5");
Project.addCmdKey(0, KEY_SHIFT, "KEY_SHIFT");
2. 뷰의 onCommand event에 단축키 설정한 값을 받아 특정 작업 실행하기
지정된 단축키가 실제 사용되면, 세번째 인수로 지정한 명령어가 현재 view의 onCommand event로 보내집니다.
그럼으로 단축키를 눌러 지정한 명령어를 받아 특정작업을 하려면 onCommand event handler에서 처리하면 됩니다.
void onCommand (Event ev)
str command = ev.getText();
if(command == "CONTROL_F7") puts("CONTROL_F7를 선택하였습니다.");
elif(command == "SHIFT_S") puts("SHIFT_S를 선택하였습니다.");
elif(command == "ALT_S") puts("ALT_S를 선택하였습니다.");
elif(command == "SHIFT_CONTROL_F") puts("SHIFT_CONTROL_F를 선택하였습니다.");
elif(command == "SHIFT_CONTROL_ALT_F") puts("SHIFT_CONTROL_ALT_F를 선택하였습니다.");
elif(command == "KEY_F1") puts("KEY_F1 선택하였습니다.");
elif(command == "KEY_F2") puts("KEY_F2 선택하였습니다.");
elif(command == "KEY_F5") puts("KEY_F5 선택하였습니다.");
3. 단축키 활용예제 실행하기