이 절에서는 제어 도구를 정의하기 위한 일반적인 절차와 다양한 유형의 제어 도구를 작성하는 방법을 설명합니다.
제어 도구가 PUSH_ACTION 및/또는 DROP_ACTION를 가질 경우, 해당 활동 정의를 작성합니다. 이들 활동이 바로 사용자가 제어를 누르거나 제어로 파일을 끌어 놓을 때 수행되는 활동입니다.
제어 도구에 대한 아이콘 이미지 파일을 작성하십시오.
아이콘 크기, 이름 및 위치에 대한 정보는 "아이콘 이미지 파일"을 참조하십시오.
새로운 프론트 패널 환경설정 파일을 다음 위치에 작성하십시오.
시스템-전체: /etc/dt/appconfig/types/language/*.fp
개인: HomeDirectory/.dt/types/*.fp
제어 도구 정의를 새 파일에 추가하십시오.
파일을 저장하십시오.
작업 공간 메뉴에서 작업 공간 관리자 재시작을 선택하십시오.
다음과 같은 필드를 사용하여 제어의 동작을 정의하십시오.
TYPE: 아이콘으로 설정합니다.
PUSH_ACTION: 수행될 활동의 이름을 지정합니다.
예를 들어, 개인 응용 프로그램 서브패널에 놓여질 다음과 같은 제어 도구는 사용자가 확보한 게임을 수행합니다.
CONTROL Ball { TYPE icon CONTAINER_NAME PersAppsSubpanel CONTAINER_TYPE SUBPANEL ICON ball PUSH_ACTION RunBallGame HELP_STRING "Choose this control to play Ball." }
다음 제어 도구는 스위치의 왼쪽 상단에 놓입니다. 이 제어 도구는 CutDisp라는 이름의 활동을 수행합니다.
CONTROL StartCutDisp { TYPE icon CONTAINER_NAME Switch CONTAINER_TYPE SWITCH POSITION_HINTS first ICON cutdisp HELP_STRING "Choose this control to run cutdisp." PUSH_ACTION CutDisp }
다음 필드들을 사용하여 제어 도구의 동작을 정의하십시오.
TYPE: 파일로 설정합니다.
PUSH_ACTION: 열기로 설정합니다.
파일의 데이터 유형에 열기 활동이 정의되어 있어야 합니다.
예를 들어, 다음 제어 도구는 기본 패널의 오른쪽 끝에 놓이게 됩니다. 이 제어 도구는 데이터 파일 /users/ellen/PhoneList.txt로 문서 편집기를 시작합니다. *.txt 파일에 대한 열기 활동은 기본 활동 데이터베이스의 일부입니다.
CONTROL EditPhoneList { TYPE file FILE_NAME /users/ellen/PhoneList.txt CONTAINER_NAME Top CONTAINER_TYPE BOX POSITION_HINTS last ICON PhoneBook HELP_STRING 'This control displays Ellen's phone list." PUSH_ACTION Open }
DROP_ACTION 필드를 사용하여 사용자가 파일을 제어 도구로 끌어다 놓을 때 수행되는 활동을 지정하십시오. 활동이 파일 인수를 수용할 수 있어야 합니다.
제어 도구 정의에는 흔히 PUSH_ACTION과 DROP_ACTION 필드 모두가 포함됩니다. 누름과 놓기 활동에 대하여 동일한 활동을 사용할 수 있습니다.
예를 들어, 개인 응용 프로그램 서브패널에 위치한 다음과 같은 제어 도구는 파일 인수를 취하는 X 클라이언트 xwud를 수행합니다.
CONTROL Run_xwud { CONTAINER_NAME PerAppsSubpanel CONTAINER_TYPE SUBPANEL POSITION_HINTS 2 ICON XwudImage PUSH_ACTION RunXwud DROP_ACTION RunXwud }
다음 필드들을 사용하여 제어 도구의 동작을 정의하십시오.
TYPE: 다음 값 중 하나를 지정합니다.
icon-제어 도구에 PUSH_ACTION 및/또는 DROP_ACTION을 지정하려는 경우에 이 유형을 사용합니다.
file-제어 도구를 선택했을 때 파일 관리자에서 파일 아이콘을 두 번 누르기한 것과 마찬가지로 동작하도록 하려는 경우에 이 유형을 사용합니다.
MONITOR_TYPE: 이미지 변경을 일으키는 조건을 설명합니다. 다음 값들 중 하나를 사용합니다.
mail-정보가 파일에 추가될 때 제어 도구가 모양을 변경합니다.
file-지정된 파일이 비지 않은 상태가 될 때 제어 도구가 모양을 변경합니다.
예를 들어, 다음 제어 도구는 사용자가 익명의 ftp를 사용하여 자신의 시스템 으로 전송하려고 하는 meetings라는 파일이 있는지를 검색합니다. 이 제어 도구는 개인 응용 프로그램 서브패널의 상단에 놓입니다.
CONTROL MonitorCalendar { TYPE file CONTAINER_NAME PersonalApps CONTAINER_TYPE SUBPANEL POSITION_HINTS first FILE_NAME /users/ftp/meetings MONITOR_TYPE file ICON meetingsno ALTERNATE_ICON meetingsyes }
단일 인스턴스 제어 도구는 PUSH_ACTION가 시작한 프로세스가 이미 수행중인지 여부를 알아보기 위한 점검을 합니다. 프로세스가 수행되고 있지 않으면 PUSH_ACTION이 수행됩니다. 프로세스가 이미 수행되고 있으면 윈도우가 현재 작업 공간에서 윈도우 스택의 맨위로 이동됩니다.
다음 필드들을 사용하여 제어 도구의 동작을 정의하십시오.
PUSH_RECALL: 참으로 설정합니다.
CLIENT_NAME: 제어 도구에 대한 클라이언트명을 지정합니다.
CLIENT_NAME의 값이 응용 프로그램 최상위 윈도우의 WM_CLASS 특성에 있는 첫번째 문자열(res_name)과 일치해야 합니다. 자세한 정보는 xprop(1) 매뉴얼 페이지를 참조하십시오.
PUSH_ACTION: 사용자가 제어 도구를 눌러서 수행되는 활동을 설명합니다.
예를 들어, 다음 제어 도구는 활동 명이 MyEditor인 응용 프로그램에 대한 단일 인스턴스를 수행합니다.
CONTROL MyEditor { TYPE icon CONTAINER_NAME Top CONTAINER_TYPE BOX POSITION_HINTS 15 PUSH_RECALL True CLIENT_NAME BestEditor PUSH_ACTION StartMyEditor ICON MyEd }
클라이언트 윈도우 제어 도구는 프론트 패널에 삽입된 응용 프로그램 윈도우입니다. 예를 들어, xload 클라이언트 윈도우 제어 도구를 작성함으로써 프론트 패널에 시스템 로드 미터를 놓을 수 있습니다.
제어 도구를 정의합니다.
다음 필드들을 사용하여 제어 도구의 동작을 정의하십시오.
TYPE: client로 설정합니다.
CLIENT_NAME: 시작할 클라이언트를 지정합니다.
CLIENT_NAME의 값이 응용 프로그램의 최상위 윈도우에 있는 WM_CLASS 특성의 첫번째 문자열(res_name)과 일치해야 합니다. 자세한 정보는 xprop(1) 매뉴얼 페이지를 참조하십시오.
작업 공간 메뉴에서 작업 공간 관리자 재시작을 선택하십시오.
터미널 터미널 에뮬레이터 명령 행에서 클라이언트를 시작하십시오.
예를 들면, 다음 제어 도구는 30 * 20 픽셀 로드 미터를 표시합니다.
CONTROL LoadMeter { TYPE client CONTAINER_NAME Top CONTAINER_TYPE BOX CLIENT_NAME xload CLIENT_GEOMETRY 30x20 }
클라이언트가 세션들 사이에 저장되고 복구되지 않을 경우, 사용자는 클라이언트가 누르기로 시작되도록 제어 도구를 구성하고 싶을 수도 있습니다. 예로, 다음과 같은 행을 정의에 추가하여 xload 를 시작하는 로드 미터 제어 도구를 구성할 수 있습니다.
PUSH_ACTION StartXload
활동을 작성하여 위와 같은 로드 미터 제어 도구를 구성할 수 있습니다.
ACTION StartXload { WINDOW_TYPE NO_STDIO EXEC_STRING /usr/contrib/bin/X11/xload }
제어 도구를 누르거나 제어 도구에 객체를 끌어다 놓으면 사용될 일련의 애니메이션 에 접속할 수 있습니다.
일련의 애니메이션을 갖기 위해서는 제어 도구가 다음을 만족해야 합니다.
유형이 icon 이어야 합니다.
PUSH_ACTION 또는 DROP_ACTION 을 가져야 합니다.
ANIMATION 구성요소를 사용하여 일련의 애니메이션을 지정하 십시오.
ANIMATION animation_name { ANIMATION icon1 [milisecond_delay ] ANIMATION icon2 [milisecond_delay ] ... }
여기서, icon1, icon 2 등은 아이콘들의 이름이고,milisecond_delay는 애니메이션 아이콘들 사이의 시간 지연을 밀리초 단위로 나타낸 값입니다. 기본 시간 지연은 200 밀리초입니다.
PUSH_ANIMATION 및/또는 DROP_ANIMATION 필드를 제어 도구 정의에 추가합니다. 값은 ANIMATION의 이름입니다.
예를 들어, 다음 행들은 BestEditor 응용 프로그램을 시작하는 제어 도구를 애니메이트합니다. 아이콘 사이의 시간 지연은 300 밀리초입니다. 이 예에서는 사용자가 아이콘 파일 frame1, frame2 등을 작성했다고 가정합니다.
CONTROL BestEditor { ... PUSH_ANIMATION BestEdAnimation ... }
ANIMATION BestEdAnimation { frame1 300 frame2 ... }
다음 두 가지 방법으로 제어 도구에 대한 도움말이 제공됩니다.
제어 도구 정의에서 도움말 문자열 제공.
사용자가 제어 도구에 대한 항목 도움말을 호출할 때 도움말 문자열이 도움말 표시기에 나타납니다. 도움말 문자열에는 형식(예: 표제) 또는 링크가 포함될 수 없습니다.
도움말 문자열을 제공하려면 제어 도구 정의내에 다음과 같이 도움말 문자열을 지정하십시오.
HELP_STRING help_string