아이콘 설치 제어 도구에 아이콘을 끌어다 놓음으로써 개인 제어 도구를 작성할 수 있습니다.
이 방법은 사용자 정의 작업을 쉽게 해주는 반면, 이러한 제어 도구가 제공하는 기능은 프론트 패널 제어 도구가 할 수 있는 기능들의 부분 집합입니다. 예를 들어 아이콘 설치 제어 도구를 사용하여 작성한 제어 도구는 다음을 수행할 수 없습니다.
에니메이션 제공
클라이언트 윈도우 표시
이벤트(예를 들어, 새로운 우편의 수신)가 발생할 때 나타나는 모양 변경
이 절에서는 프론트 패널 제어 도구를 수동으로 만드는 방법을 설명합니다.
프론트 패널 제어 도구의 구문에 대한 참조 정보는 dtfpfile(4X) 매뉴얼 페이지를 참조하십시오.
프론트 패널 제어 도구 정의의 구조는 다음과 같습니다.
CONTROL control_name { TYPE control_type CONTAINER_NAME value CONTAINER_TYPE value other fields defining appearance and behavior }
제어 도구 정의의 TYPE 필드는 제어 도구의 기본적인 동작을 지정합니다.
제어 도구 동작
사용자가 제어 도구를 누르거나 제어 도구에 파일을 끌어다 놓을 때 제어 도구가 지정된 활동을 수행합니다.
사용중 표시등. 활동을 호출하면 제어 도구가 깜박거립니다(이미지 전환).
프론트 패널의 클라이언트 윈도우
시계
현재 날짜를 표시합니다.
이 절에서는 제어 도구를 정의하기 위한 일반적인 절차와 다양한 유형의 제어 도구를 작성하는 방법을 설명합니다.
제어 도구가 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