이 절에서는 제어도구를 정의하기 위한 일반적인 절차와 다양한 유형의 제어도구를 작성하는 방법을 설명합니다.
제어도구가 PUSH_ACTION 및/또는 DROP_ACTION을 가질 경우, 해당 활동 정의를 작성합니다. 이러한 활동이 바로 사용자가 제어도구를 누르거나 제어도구로 파일을 끌어 놓을 때 실행되는 활동입니다.
제어도구에 대한 아이콘 이미지 파일을 작성하십시오.
아이콘 크기, 이름, 위치 등에 관한 내용은 아이콘 이미지 파일를 참조하십시오.
새로운 프론트 패널 환경설정 파일을 다음 위치에 작성하십시오.
시스템 전체: /etc/dt/appconfig/types/language/*.fp
개인: HomeDirectory/.dt/types/*.fp
파일에서 제어도구를 정의하십시오.
파일을 저장하십시오.
작업 공간 메뉴의 윈도우에서 작업 공간 관리자 재시작을 선택하십시오.
다음 필드를 사용하여 제어도구의 동작을 정의하십시오.
TYPE: icon으로 설정
PUSH_ACTION: 실행할 활동의 이름을 지정합니다.
예를 들어, 응용프로그램 서브패널에 놓일 다음과 같은 제어도구는 사용자가 가지고 있는 게임을 실행합니다.
CONTROL Ball { TYPE icon CONTAINER_NAME PerAppsSubpanel CONTAINER_TYPE SUBPANEL ICON ball PUSH_ACTION RunBallGame HELP_STRING "게임을 시작하려면 이 제어도구를 선택하십시오." }
다음 제어도구는 스위치의 왼쪽 상단에 놓입니다. 이 제어도구는 CutDisp라는 활동을 실행합니다.
CONTROL StartCutDisp { TYPE icon CONTAINER_NAME Switch CONTAINER_TYPE SWITCH POSITION_HINTS first ICON cutdisp HELP_STRING "cutdisp를 실행하려면 이 제어도구를 선택하십시오." PUSH_ACTION CutDisp }
다음 필드를 사용하여 제어도구의 동작을 정의하십시오.
TYPE: file로 설정
PUSH_ACTION: Open으로 설정
파일의 데이터 유형에 열기 활동이 정의되어 있어야 합니다.
예를 들어, 다음 제어도구는 기본 패널의 오른쪽 끝에 놓이게 됩니다. 이 제어도구는 데이터 파일 /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 "Ellen의 전화번호 목록을 표시하려면 이 제어도구를 누르십시오." 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: True로 설정.
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 x 20 픽셀 로드 측정기를 표시합니다..
CONTROL LoadMeter { TYPE client CONTAINER_NAME Top CONTAINER_TYPE BOX CLIENT_NAME xload CLIENT_GEOMETRY 30x20 }
클라이언트가 세션 사이에 저장되고 복구되지 않을 경우, 사용자가 눌렀을 때 클라이언트를 시작하는 제어도구를 구성할 수도 있습니다. 예를 들어, 다음과 같은 행을 정의에 추가하여 xload 를 시작하는 LoadMeter 제어도구를 구성할 수 있습니다.
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