사용자는 서브패널의 팝업 메뉴와 아이콘 설치 제어도구를 사용하여 프론트 패널을 사용자 정의할 수 있습니다.
이 장에서는 환경설정 파일을 작성하고 편집하여 프론트 패널을 사용자 정의하는 방법을 설명합니다.
프론트 패널 제어도구 및 구성에 대한 참조 정보는 dtfpfile(4X) 매뉴얼 페이지를 참조하십시오.
작업 공간 관리자에 대한 참조 정보는 dtwm(1)과 dtwmrc(4) 매뉴얼 페이지를 참조하십시오.
프론트 패널은 환경설정 파일 데이터베이스에 정의됩니다.
환경설정 파일은 프론트 패널을 사용자 정의하는 방법을 제공합니다. 다음과 같은 유형의 수정은 환경설정 파일의 편집을 통해서만 가능합니다.
새로운 제어도구 위치 추가.
클라이언트 윈도우와 같은 특별한 제어도구 유형 추가.
일정한 기본 동작 변경-예를 들어, 프론트 패널 제어도구가 한 번 누르기에 응답할지 또는 두 번 누르기에 응답할지 여부.
패널 구성의 유연성을 최대화하기 위해, 이러한 파일은 개인 파일이나 시스템 전체 파일이 될 수 있고, 또는 다른 시스템에 있을 수도 있습니다.
프론트 패널은 작업 공간 관리자가 작성하고 관리합니다.
기본 프론트 패널은 프론트 패널 환경설정 파일인 /usr/dt/appconfig/types/language/dtwm.fp에서 정의됩니다.
이 파일은 변경할 수 없습니다.
프론트 패널 정의는 지역적으로 위치하거나 원격 시스템에 있는 많은 파일에 분산될 수 있습니다.
프론트 패널을 정의하기 위해 사용되는 파일은 다음과 같은 요구사항을 만족해야 합니다.
파일 이름은 mail.fp와 같이 .fp로 끝나야 합니다.
파일이 활동 데이터베이스 검색 경로상에 있어야 합니다.
기본 활동 데이터베이스 검색 경로에는 다음과 같은 디렉토리가 포함되며 나열된 순서대로 검색됩니다.
개인 사용자 정의-HomeDirectory/.dt/types
시스템 전체 사용자 정의-/etc/dt/appconfig/types/language
내장 패널 및 제어도구-/usr/dt/appconfig/types/language
추가 디렉토리 HomeDirectory /.dt/types/fp_dynamic은 사용자 인터페이스에서 작업하는 개인 사용자 정의에 사용됩니다. 이 디렉토리를 수동 사용자 정의에는 사용하지 마십시오.
활동 데이터베이스 검색 경로에 네트워킹을 위한 시스템 구성을 위해 추가된 디렉토리들이 추가로 포함될 수 있습니다. 특히, 응용 프로그램 서버를 액세스하기 위해 시스템을 구성하는 경우, 추가 원격 위치가 추가됩니다. 자세한 내용은 142 페이지의 "데이터베이스(활동/데이터 유형) 검색 경로"를 참조하십시오.
프론트 패널은 활동 데이터베이스 검색 경로상에 위치한 모든 환경설정 파일로부터 조합됩니다.
정의의 구성요소 간에 충돌이 있을 경우, 우선순위 규칙이 사용될 정의를 결정합니다. 두 구성요소는 다음과 같은 경우 서로 충돌합니다.
두 구성요소의 제어 이름, CONTAINER_NAME
및 CONTAINER_TYPE
가 동일한 경우.
같은 위치를 두고 경쟁할 경우(이름은 다르지만 동일한 CONTAINER_NAME
, CONTAINER_TYPE
및 POSITION_HINTS
)를 갖는 경우).
프론트 패널은 다음과 같은 우선순위 규칙을 사용합니다.
구성요소의 제어도구명, 보관소명, 유형이 모두 같은 경우, 먼저 읽은 구성요소가 사용됩니다.
예를 들어, 시스템 전체 제어도구와 내장 제어도구 두 가지 모두 다음 필드를 갖고 있지만 그 외의 것은 서로 다른 경우,
CONTROL TextEditor { CONTAINER_TYPE BOX CONTAINER_NAME Top ... }
시스템 전체 제어 도구가 우선권을 갖습니다.
두 구성요소가 같은 위치를 두고 경쟁하는 경우, 읽은 순서대로 놓입니다.
예를 들어, 주 패널(CONTAINER_TYPE
상자와 CONTAINER_NAME
상단)에 대해 새로운 개인 제어도구를 만들고, 거기에 POSITION_HINTS
5를 지정하면, 개인 제어도구가 내장 제어도구와 위치 번호가 더 높은 다른 제어도구의 위치를 오른쪽으로 한 자리 밀어냅니다.
제어도구의 새로운 시스템 전체 또는 개인 버전을 작성하여 해당 제어도구를 수정하는 경우, 새로운 제어도구 정의에 동일한 제어도구명 CONTAINER_NAME
과 CONTAINER_TYPE
을 지정해야 합니다. 그렇지 않으면 새로운 제어도구가 기존의 제어도구에 추가되어 나타납니다.
아이콘 설치 제어도구나 팝업 메뉴를 사용하여 프론트 패널을 사용자 정의할 때, 파일은 디렉토리 HomeDirectory/.dt/types/fp_dynamic에 기록됩니다.
프론트 패널은 각 세션에 대해 사용자 정의된 프론트 패널의 상태를 저장 및 복원하기 위해 사용되는 추가 파일 HomeDirectory/.dt/sessions/dtwmfp.session을 작성합니다.
사용자는 프론트 패널의 팝업 메뉴와 아이콘 설치 제어도구를 사용하여 프론트 패널을 광범위하게 사용자 정의할 수 있습니다.
이 절에서는 다음과 같은 내용을 설명합니다.
개인 사용자 정의를 금지하는 방법 예를 들어, 임의의 사용자가 제어도구를 삭제하지 못하도록 만들 수 있습니다.
개인 사용자 정의의 취소. 예를 들어, 실수로 삭제한 제어도구를 복원하도록 요청할 수 있습니다.
제어도구가 내장 제어도구인 경우, 제어도구 정의를 /usr/dt/appconfig/types/language/dtwm.fp에서 /etc/dt/appconfig/types/language/name.fp로 복사하십시오.
다음과 같은 명령행을 제어도구 정의에 추가하십시오.
LOCKED True
데스크탑_제어기의 추가 폴더에 있는 프론트 패널 복구 활동은 사용자 인터페이스를 사용하여 수행한 모든 프론트 패널 사용자 정의를 제거합니다. 이 활동을 사용하여 프론트 패널의 팝업 메뉴를 사용하여 수행한 모든 개인 사용자 정의를 제거할 수 있습니다.
다음 절차를 사용하여 개별 제어도구를 복구하십시오.
HomeDirectory/.dt/types/fp_dynamic 디렉토리에서 제어도구를 삭제할 때 작성된 파일을 제거하십시오. 제어도구는 삭제된 원래 제어도구와 같은 이름을 갖게 될 것입니다.
예를 들어, 아이콘 편집기 제어도구를 삭제한 경우, fp_dynamic 디렉토리에 있는 파일에는 다음 내용이 포함될 것입니다.
CONTROL IconEditor { ... DELETE True }
사용자가 서브패널을 삭제하면, 해당 서브패널과 서브패널의 각 제어도구에 대해 별도의 동적 파일이 작성됩니다.
프론트 패널은 구성요소의 정의를 조합하여 작성됩니다. 각 구성요소에는 프론트 패널에서 요소가 놓이는 위치, 외적인 모양 및 동작을 정의하는 구문이 필요합니다.
프론트 패널은 바깥쪽에서 안쪽으로 조합됩니다.
프론트 패널의 각 구성요소는 다음과 같은 구문을 사용하여 개별적으로 정의됩니다.
COMPONENT name { KEYWORD value KEYWORD value ... }
필수적인 키워드도 있고 선택적인 키워드도 있습니다. 자세한 내용은 dtfpfile(4X) 매뉴얼 페이지를 참조하십시오.
PANEL은 최상위 구성요소입니다. 정의에는 다음과 같은 내용이 포함됩니다.
프론트 패널 이름
전체 프론트 패널의 일반적인 모양 및 동작을 설명하는 필드
PANEL front_panel_name { KEYWORD value KEYWORD value ... }
front_panel_name은 프론트 패널의 고유 이름입니다. 기본 이름은 "FrontPanel"입니다.
BOX 정의에는 다음과 같은 내용이 포함됩니다.
BOX 이름
PANEL에서 상자의 위치(POSITION_HINTS)
전체 상자에 적용되는 모양과 동작을 설명하는 필드
BOX box_name { CONTAINER_NAME front_panel_name POSITION_HINTS position KEYWORD value KEYWORD value ... }
CONTROL 정의에는 다음과 같은 내용이 포함됩니다.
CONTROL 이름
BOX에서 CONTROL의 위치(POSITION_HINTS)
제어도구의 모양과 동작을 설명하는 필드
CONTROL control_name { CONTAINER_TYPE BOX or SUBPANEL or SWITCH CONTAINER_NAME box_name or subpanel_name or switch_name TYPE control_type POSITION_HINTS position KEYWORD value KEYWORD value ... }
SUBPANEL 정의에는 다음과 같은 내용이 포함됩니다.
SUBPANEL 이름
서브패널 고유의 모양과 동작을 설명하는 필드
SUBPANELsubpanel_name { CONTAINER_NAME control_name KEYWORD value KEYWORD value ... }
SWITCH 정의에는 다음과 같은 내용이 포함됩니다.
SWITCH 이름
BOX 내의 SWITCH 위치(POSITION_HINTS)
SWITCH의 모양과 동작을 설명하는 필드
SWITCH switch_name { CONTAINER_NAME box_name POSITION_HINTS position KEYWORD value KEYWORD value ... }
주 패널은 서브패널을 제외한 프론트 패널 윈도우입니다.
수정할 수 있는 사항은 다음과 같습니다.
제어도구의 추가 또는 제거
제어도구 위치 교환
프론트 패널 환경설정 파일을 작성하십시오.
시스템 전체:/etc/dt/appconfig/types/language/*.fp
개인:HomeDirectory/.dt/types/*.fp
파일에서 제어도구를 정의하십시오.
CONTAINER_NAME과 CONTAINER_TYPE 필드를 사용하여 제어도구의 보관소를 지정하십시오.
CONTAINER_NAME Top CONTAINER_TYPE BOX
POSITION_HINTS를 사용하여 제어도구를 왼쪽에서 오른쪽으로 배치하십시오. 사용자 정의가 내장 제어도구보다 우선권을 가지므로, 새로운 정의가 기존의 제어도구의 위치를 오른쪽으로 한 자리 "밀어냅니다".
환경설정 파일을 저장하십시오.
프론트 패널 제어도구에 대한 아이콘을 작성하십시오.
243 페이지의 "제어도구가 사용하는 아이콘 지정"을 참조하십시오.
작업 공간 메뉴의 윈도우에서 작업 공간 관리자 재시작을 선택하십시오.
예를 들어, 파일 /etc/dt/appconfig/types/language/audio.fp에 있는 다음과 같은 제어도구 정의는 시계와 캘린더 제어도구 사이에 오디오 응용 프로그램을 삽입합니다.
CONTROL AudioApplication { TYPE icon CONTAINER_NAME Top CONTAINER_TYPE BOX ICON AudioApp POSITION_HINTS 2 PUSH_ACTION StartAudioApplication PUSH_RECALL true }
프론트 패널 환경설정 파일을 작성하십시오.
시스템 전체:/etc/dt/appconfig/types/language/name.fp
개인:HomeDirectory/.dt/types/name.fp
삭제하려는 제어도구의 정의를 새 파일에 복사하십시오.
내장 제어도구의 경우, 제어도구 정의는 /usr/dt/appconfig/types/ language/dtwm.fp에 있습니다.
사용자가 전체 정의를 복사할 필요는 없습니다. 그러나 사용자가 복사하는 부분에는 CONTAINER_NAME과 CONTAINER_TYPE 필드가 있어야 합니다.
DELETE 필드를 정의에 추가하십시오.
DELETE True
환경설정 파일을 저장하십시오.
작업 공간 메뉴의 윈도우에서 작업 공간 관리자 재시작을 선택하십시오.
예를 들어, 파일 /etc/dt/appconfig/types/language/TrashCan.fp에 있는 다음과 같은 제어도구 정의는 프론트 패널에서 휴지통 제어 도구를 제거합니다.
CONTROL Trash { CONTAINER_NAME Top CONTAINER_TYPE BOX DELETE True }
아이콘 이미지를 변경하는 것과 같이 제어도구 정의를 수정하려는 경우에는 다음 절차를 사용하십시오.
전체 제어도구 정의를 /usr/dt/appconfig/types/language/dtwm.fp에서 다음의 위치로 복사하십시오.
시스템 전체: /etc/dt/appconfig/types/language/name.fp
개인: HomeDirectory/.dt/types/name.fp.
변경하려는 필드를 편집하십시오. 다른 필드를 추가할 수도 있습니다.
파일을 저장하십시오.
작업 공간 메뉴의 윈도우에서 작업 공간 관리자 재시작을 선택하십시오.
위치를 변경하려는 제어도구의 정의를 /usr/dt/appconfig/types/language/dtwm.fp에서 다음의 위치로 복사하십시오.
시스템 전체: /etc/dt/appconfig/types/language/name.fp
개인: HomeDirectory/.dt/types/name.fp.
이동될 각 제어도구의 전체 제어도구 정의를 복사해야 합니다.
파일을 저장하십시오.
작업 공간 메뉴의 윈도우에서 작업 공간 관리자 재시작을 선택하십시오.
예를 들어, 파일 /etc/dt/appconfig/types/C/MailHelp.fp에 있는 다음과 같은 정의는 우편 관리자와 도움말 관리자 제어도구의 위치를 교환하고, 이 제어 도구의 개인적인 변경이 불가능하도록 잠급니다.
CONTROL Mail { POSITION_HINTS 12 LOCKED True ...the rest of the control definition }
CONTROL Help { POSITION_HINTS 5 LOCKED True ...the rest of the control definition }
다음 사항이 동일한 다른 제어도구 정의를 작성하십시오.
control_name
예를 들어, 다음과 같은 두 개의 제어 도구는 서로 다른 두 환경설정 파일에 정의됩니다. 이 제어도구는 동일한 제어도구 이름과 보관소 이름을 가지므로 같은 제어도구로 간주됩니다.
/etc/dt/appconfig/types/C/SysControls.fp에서의 정의:
Control ImportantApplication { CONTAINER_NAME Top CONTAINER_TYPE BOX POSITION_HINTS 2 ... }
HomeDirectory/.dt/types/MyControls.fp에서의 정의:
Control ImportantApplication { CONTAINER_NAME Top CONTAINER_TYPE BOX POSITION_HINTS 6 ... }
개인 제어도구가 우선권을 가지므로 이 제어 도구가 위치 6에 놓입니다.
제어도구 정의의 ICON 필드는 제어도구에 사용되는 아이콘 이미지를 정의합니다.
가능한 ICON 필드의 값은 다음과 같습니다.
기본 파일 이름
기본 파일 이름은 아이콘 이미지를 포함하는 파일 이름에서 크기(m과 t)와 이미지 유형(bm과 pm)에 대한 파일 이름 접미사를 뺀 이름입니다. 예를 들어, 파일 이름이 MyGame.l.pm 과 MyGame.m.pm인 경우, MyGame이 사용됩니다.
기본 파일 이름을 사용하는 경우에는 아이콘 파일이 다음과 같은 아이콘 검색 경로의 디렉토리에 위치해야 합니다.
개인 아이콘: HomeDirectory/.dt/icons
시스템 전체 아이콘: /etc/dt/appconfig/icons/language
전체 파일 이름을 포함하는 아이콘 파일의 절대 경로.
절대 경로는 아이콘 파일이 아이콘 검색 경로에 없을 경우에만 사용해야 합니다.
필요한 크기의 아이콘은 다음과 같이 제어도구의 위치에 따라 달라집니다.
위치 크기
주 패널-48x48 픽셀(name.l.pm or name.l.bm)
서브패널-24x24 픽셀(name.s.pm or name.s.bm)
아이콘 파일을 다음과 같은 위치에 놓으십시오.
개인 아이콘: HomeDirectory/.dt/icons
시스템 전체 아이콘: /etc/dt/appconfig/icons/language
서브패널은 프론트 패널의 팝업 메뉴를 사용하여 작성하고 수정할 수 있습니다.
이 절에서는 프론트 패널 환경설정 파일을 수정해야 하는 시스템 전체 사용자 정의를 제공하는 방법을 설명합니다.
서브패널은 기본 패널의 제어도구에 "연결"됩니다.
연결은 서브패널 정의에서 수행됩니다. CONTAINER_NAME 필드가 서브패널이 연결되는 제어도구를 지정합니다.
CONTROL control_name { ... } SUBPANEL subpanel_name { CONTAINER_NAME control_name ... }
서브패널을 연결하려는 기본 패널의 제어도구 control_name을 찾으십시오.
제어도구가 내장 제어도구 중 하나인 경우, 제어도구의 정의는 /usr/dt/appconfig/types/language/dtwm.fp에 있습니다.
새 파일 /etc/dt/appconfig/types/language/*.fp를 작성하십시오.
서브패널을 정의하십시오.
SUBPANELsubpanel_name { CONTAINER_NAME control_name TITLE value KEYWORD value ... }
새로운 환경설정 파일을 저장하십시오.
작업 공간 메뉴의 윈도우에서 작업 공간 관리자 재시작을 선택하십시오.
내장 서브패널의 일반 특성(제목 등)과 내용을 수정할 수 있습니다.
새로운 프론트 패널 환경설정 파일을 작성하십시오.
시스템 전체: /etc/dt/appconfig/types/language/name.fp
개인: HomeDirectory/.dt/types/name.fp.
전체 기본 서브패널 정의를 /usr/dt/appconfig/types/language/dtwm.fp에서 새 파일로 복사하십시오.
SUBPANEL subpanel_name { ... }
서브패널 정의를 수정하십시오.
새로운 환경설정 파일을 저장하십시오.
작업 공간 메뉴의 윈도우에서 작업 공간 관리자 재시작을 선택하십시오.
예를 들어, 파일 /users/janice/.dt/types/PerApps.fp에 있는 다음과 같은 정의는 응용프로그램 서브패널의 이름을 변경합니다.
SUBPANEL PersAppsSubpanel { CONTAINER_NAME TextEditor TITLE Janice's Applications }
프론트 패널 환경설정 파일 /etc/dt/appconfig/types/ language/name.fp를 작성하십시오.
파일에 시스템 전체 제어도구를 정의하십시오.
다음과 같이 CONTAINER_NAME과 CONTAINER_TYPE 필드를 사용하여 제어도구의 보관소를 지정하십시오.
CONTROL control_name { CONTAINER_NAME subpanel_name CONTAINER_TYPE SUBPANEL ... }
248 페이지의 "프론트 패널 제어도구 정의"를 참조하십시오.
환경설정 파일을 저장하십시오.
작업 공간 메뉴의 윈도우에서 작업 공간 관리자 재시작을 선택하십시오.
예를 들어, 파일 /etc/dt/appconfig/types/language/DigitalClock.fp에 정의된 다음과 같은 제어 도구는 디지털 시계(데스크탑_도구에 있음)를 모든 사용자를 위한 응용프로그램 서브패널에 추가합니다.
CONTROL DigitalClockControl { TYPE icon CONTAINER_NAME PerAppsSubpanel CONTAINER_TYPE SUBPANEL ICON Dtdgclk PUSH_ACTION DigitalClock PUSH_RECALL True }
주 패널 제어도구 삭제를 위한 절차와 동일한 방법을 사용하십시오. 240 페이지의 "제어도구 삭제 방법"를 참조하십시오.
다음 필드를 서브패널 정의에 추가하십시오.
CONTROL_INSTALL False
사용자가 서브패널을 원래 위치에서 옮기지 않는 한, 제어도구를 선택하면 서브패널이 닫히는 것이 서브패널의 기본 동작입니다.
사용자가 명시적으로 닫을 때까지 서브패널을 열어 두도록 프론트 패널을 구성할 수 있습니다.
다음 위치에 새로운 프론트 패널 환경설정 파일을 작성하십시오.
시스템 전체: /etc/dt/appconfig/types/language/*.fp
개인: HomeDirectory/.dt/types/*.fp
기본 패널 정의를 다음과 같이 /usr/dt/appconfig/types/language/dtwm.fp에서 새 파일로 복사하십시오.
PANEL FrontPanel { ... }
다음 필드를 패널 정의에 추가하십시오.
SUBPANEL_UNPOST False
새로운 환경설정 파일을 저장하십시오.
작업 공간 메뉴의 윈도우에서 작업 공간 관리자 재시작을 선택하십시오.
아이콘 설치 제어도구에 아이콘을 끌어 놓음으로써 개인 제어도구를 작성할 수 있습니다.
이 방법은 사용자 정의 작업을 쉽게 해주며, 이러한 제어도구가 제공하는 기능은 프론트 패널 제어도구가 수행할 수 있는 기능의 부분 집합입니다. 예를 들어, 아이콘 설치 제어도구를 사용하여 작성한 제어도구는 다음 작업을 수행할 수 없습니다.
애니메이션 제공
클라이언트 윈도우의 표시
이벤트가 발생할 때(예를 들어, 새로운 우편 수신) 모양 변경
이 절에서는 프론트 패널 제어도구를 수동으로 작성하는 방법을 설명합니다.
프론트 패널 제어도구의 구문에 대한 참조 정보는 dtfpfile(4X) 매뉴얼 페이지를 참조하십시오.
프론트 패널 제어도구 정의의 구조는 다음과 같습니다.
CONTROL control_name { TYPE control_type CONTAINER_NAME value CONTAINER_TYPE value 모양과 동작을 정의하는 다른 필드 }
제어도구 정의의 TYPE 필드는 제어도구의 기본적인 동작을 지정합니다.
제어도구 동작
사용자가 제어도구를 누르거나 제어도구에 파일을 끌어 놓을 때 제어도구가 지정된 활동을 실행합니다.
작업 중임을 표시하는 등. 활동을 호출하면 제어도구가 깜박입니다(이미지 전환).
프론트 패널의 클라이언트 윈도우.
시계.
현재 날짜를 표시합니다.
이 절에서는 제어도구를 정의하기 위한 일반적인 절차와 다양한 유형의 제어도구를 작성하는 방법을 설명합니다.
제어도구가 PUSH_ACTION 및/또는 DROP_ACTION을 가질 경우, 해당 활동 정의를 작성합니다. 이러한 활동이 바로 사용자가 제어도구를 누르거나 제어도구로 파일을 끌어 놓을 때 실행되는 활동입니다.
제어도구에 대한 아이콘 이미지 파일을 작성하십시오.
아이콘 크기, 이름, 위치 등에 관한 내용은 223 페이지의 "아이콘 이미지 파일"을 참조하십시오.
새로운 프론트 패널 환경설정 파일을 다음 위치에 작성하십시오.
시스템 전체: /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
등록된 도움말 볼륨에 도움말 항목 지정.
도움말 항목은 도움말 시스템의 모든 기능을 사용하여 작성한 정보입니다. 도움말 항목을 작성하려면 데스크탑 도움말 개발자 키트를 사용해야 합니다.
도움말 항목을 제공하려면 제어도구 정의에 도움말 볼륨과 항목 ID를 지정하십시오.
HELP_VOLUME help_volume_name HELP_TOPIC topic_id
작업 공간 스위치는 여러 방법으로 사용자 정의할 수 있습니다.
작업 공간 수 변경
스위치 레이아웃 변경
스위치 제어도구 변경
다음과 같이 작업 공간 관리자 자원을 수정하십시오.
Dtwm*workspaceCount: n
자세한 내용은 264 페이지의 "시스템 전체의 작업 공간 수를 변경하는 방법"을 참조하십시오.
예를 들어, 다음과 같은 정의는 3행의 스위치를 정의합니다.
SWITCH Switch { CONTAINER_NAME box_name NUMBER_OF_ROWS 3 ... }
제어도구 정의를 사용하여 프론트 패널 환경설정 파일을 작성하십시오.
제어도구에 대한 아이콘을 작성하십시오. 권장하는 크기는 16 x 16 픽셀입니다.
예를 들어, 다음의 제어도구는 터미널 제어도구를 스위치에 넣습니다.
CONTROL SwitchTerminal { TYPE icon CONTAINER_NAME Switch CONTAINER_TYPE SWITCH POSITION_HINTS 3 ICON Fpterm LABEL Terminal PUSH_ACTION Dtterm HELP_TOPIC FPOnItemTerm HELP_VOLUME FPanel }
제어도구는 내장 아이콘과 응용프로그램 서브패널의 터미널 제어도구가 사용하는 도움말 항목을 사용합니다.
프론트 패널의 PANEL 구문을 통해 다음과 같은 사항을 수행할 수 있습니다.
프론트 패널의 위치를 변경할 수 있습니다.
윈도우 장식을 변경할 수 있습니다.
제어도구의 일반적인 모양과 동작을 설정할 수 있습니다.
기본 PANEL 설명은 /usr/dt/appconfig/types/language/dtwm.fp에 있습니다.
추가 정보는 dtfpfile(4X) 매뉴얼 페이지를 참조하십시오.
/etc/dt/appconfig/types/language 또는HomeDirectory/.dt/types에 새로운 프론트 패널 환경설정 파일을 작성하십시오.
기본 PANEL 설명을/usr/dt/appconfig/types/language/dtwm.fp에서 새 파일로 복사하십시오.
PANEL 설명을 편집하십시오.
새로 만든 PANEL 설명이 기본 설명보다 우선권을 갖습니다.
예를 들어, 다음과 같은 패널은 오른쪽 상단에 놓입니다.
PANEL SpecialFrontPanel { PANEL_GEOMETRY -1+1 ... }
다음과 같은 명령행을 PANEL 정의에 추가하십시오.
DISPLAY_CONTROL_LABELS True
LABEL 필드를 각 제어도구에 추가하십시오.
LABEL이 지정되지 않으면 control_name이 사용됩니다.
PANEL 정의에 있는 CONTROL_BEHAVIOR 필드를 사용하여 제어도구의 PUSH_ACTION을 실행하는 방법을 지정하십시오. 이 필드에는 다음과 같은 값을 사용할 수 있습니다.
single_click-제어도구를 한 번 눌러 PUSH_ACTION을 실행합니다.
double_click-제어도구를 두 번 눌러 PUSH_ACTION을 실행합니다.
새 프론트 패널의 작성은 광범위한 변경을 수행하고자 할 때 선택할 수 있는 좋은 방법입니다.
내장 프론트 패널 구성요소가 충돌하는 것을 피하기 위해 완전히 새로운 프론트 패널은 PANEL 및 기타 보관소에 새로운 이름을 사용해야 합니다.
새 프론트 패널에 대한 PANEL 구성요소를 작성하십시오. 다음과 같이 고유한 이름을 지정하십시오.
PANEL front_panel_name { ... }
새로운 보관소 이름을 사용하여 새로운 상자와 제어도구를 작성하십시오.
기존의 구성요소를 사용하려면 해당 구성요소의 정의를 복사한 후에 CONTAINER_NAME 값을 변경해야 합니다.
작업 공간 메뉴의 윈도우에서 작업 공간 관리자 재시작을 선택하십시오.
다음 예는 기본 프론트 패널을 변경하여 제어도구가 3행으로 구성되도록 합니다.
/usr/dt/appconfig/types/language/dtwm.fp를 HomeDirectory/.dt/types/MyFrontPanel.fp로 복사하십시오. 파일 쓰기 권한을 부여하십시오.
이 파일이 새로운 프론트 패널을 제공하기 위해 편집할 파일입니다.
프론트 패널 이름을 변경하십시오.
PANEL NewFrontPanel
Top이라는 상자의 이름을 변경하고 보관소 이름을 편집하십시오.
BOX NewFrontPanelTop { CONTAINER_NAME NewFrontPanel POSITION_HINTS first ... }
중간 행 및 하단 행에 대한 상자 정의를 추가하십시오.
BOX NewFrontPanelMiddle { CONTAINER_NAME NewFrontPanel POSITION_HINTS second }
BOX NewFrontPanelBottom { CONTAINER_NAME NewFrontPanel POSITION_HINTS second }
다음 제어도구의 CONTAINER_NAME을 NewFrontPanelTop으로 변경하십시오.
시계
날짜
홈
문서 편집기
우편
다음 제어도구의 CONTAINER_NAME을 NewFrontPanelBottom으로 변경하십시오.
프린터
스타일
응용 프로그램
도움말
휴지통
스위치의 CONTAINER_NAME을 NewFrontPanelMiddle로 변경하십시오.
작업 공간 메뉴의 윈도우에서 작업 공간 관리자 재시작을 선택하십시오.