Solaris 공통 데스크탑 환경: 고급 사용자 및 시스템 관리자 안내서

프론트 패널 제어 도구 정의

아이콘 설치 제어 도구에 아이콘을 끌어다 놓음으로써 개인 제어 도구를 작성할 수 있습니다.

이 방법은 사용자 정의 작업을 쉽게 해주는 반면, 이러한 제어 도구가 제공하는 기능은 프론트 패널 제어 도구가 할 수 있는 기능들의 부분 집합입니다. 예를 들어 아이콘 설치 제어 도구를 사용하여 작성한 제어 도구는 다음을 수행할 수 없습니다.

프론트 패널 제어 도구 정의

프론트 패널 제어 도구 정의의 구조는 다음과 같습니다.

CONTROL control_name  
    {
        TYPE   control_type  
        CONTAINER_NAME   value  
        CONTAINER_TYPE  value            other fields defining appearance and behavior  
    }

제어 도구 유형

제어 도구 정의의 TYPE 필드는 제어 도구의 기본적인 동작을 지정합니다.

제어 도구 TYPE

제어 도구 동작

icon (기본값)

사용자가 제어 도구를 누르거나 제어 도구에 파일을 끌어다 놓을 때 제어 도구가 지정된 활동을 수행합니다.

blank

제어 도구의 공간 조정에 사용되는 위치 보유자

busy

사용중 표시등. 활동을 호출하면 제어 도구가 깜박거립니다(이미지 전환).

client

프론트 패널의 클라이언트 윈도우

clock

시계

date

현재 날짜를 표시합니다.

file

파일을 표시합니다. 제어 도구를 선택하면 파일에 대한 기존 활동들이 수행됩니다.

새로운 제어 도구 작성 방법

이 절에서는 제어 도구를 정의하기 위한 일반적인 절차와 다양한 유형의 제어 도구를 작성하는 방법을 설명합니다.

  1. 제어 도구가 PUSH_ACTION 및/또는 DROP_ACTION를 가질 경우, 해당 활동 정의를 작성합니다. 이들 활동이 바로 사용자가 제어를 누르거나 제어로 파일을 끌어 놓을 때 수행되는 활동입니다.

  2. 제어 도구에 대한 아이콘 이미지 파일을 작성하십시오.

    아이콘 크기, 이름 및 위치에 대한 정보는 "아이콘 이미지 파일"을 참조하십시오.

  3. 새로운 프론트 패널 환경설정 파일을 다음 위치에 작성하십시오.

    • 시스템-전체: /etc/dt/appconfig/types/language/*.fp

    • 개인: HomeDirectory/.dt/types/*.fp

  4. 제어 도구 정의를 새 파일에 추가하십시오.

  5. 파일을 저장하십시오.

  6. 작업 공간 메뉴에서 작업 공간 관리자 재시작을 선택하십시오.

누르기로 활동을 수행하는 제어 도구 작성

다음과 같은 필드를 사용하여 제어의 동작을 정의하십시오.

파일을 여는 제어 도구 작성

다음 필드들을 사용하여 제어 도구의 동작을 정의하십시오.

놓기 영역으로 작동할 제어 도구 작성

DROP_ACTION 필드를 사용하여 사용자가 파일을 제어 도구로 끌어다 놓을 때 수행되는 활동을 지정하십시오. 활동이 파일 인수를 수용할 수 있어야 합니다.

제어 도구 정의에는 흔히 PUSH_ACTIONDROP_ACTION 필드 모두가 포함됩니다. 누름과 놓기 활동에 대하여 동일한 활동을 사용할 수 있습니다.

예를 들어, 개인 응용 프로그램 서브패널에 위치한 다음과 같은 제어 도구는 파일 인수를 취하는 X 클라이언트 xwud를 수행합니다.

CONTROL Run_xwud
    {
        CONTAINER_NAME     PerAppsSubpanel
        CONTAINER_TYPE     SUBPANEL
        POSITION_HINTS     2
        ICON               XwudImage
        PUSH_ACTION        RunXwud
        DROP_ACTION        RunXwud
    }  

파일을 감시하는 제어 도구 작성

다음 필드들을 사용하여 제어 도구의 동작을 정의하십시오.

단일 인스턴스(토글) 제어 도구 작성

단일 인스턴스 제어 도구는 PUSH_ACTION가 시작한 프로세스가 이미 수행중인지 여부를 알아보기 위한 점검을 합니다. 프로세스가 수행되고 있지 않으면 PUSH_ACTION이 수행됩니다. 프로세스가 이미 수행되고 있으면 윈도우가 현재 작업 공간에서 윈도우 스택의 맨위로 이동됩니다.

다음 필드들을 사용하여 제어 도구의 동작을 정의하십시오.

클라이언트 윈도우 제어 도구 작성 방법

클라이언트 윈도우 제어 도구는 프론트 패널에 삽입된 응용 프로그램 윈도우입니다. 예를 들어, xload 클라이언트 윈도우 제어 도구를 작성함으로써 프론트 패널에 시스템 로드 미터를 놓을 수 있습니다.

  1. 제어 도구를 정의합니다.

    다음 필드들을 사용하여 제어 도구의 동작을 정의하십시오.

    • TYPE: client로 설정합니다.

    • CLIENT_NAME: 시작할 클라이언트를 지정합니다.

      CLIENT_NAME의 값이 응용 프로그램의 최상위 윈도우에 있는 WM_CLASS 특성의 첫번째 문자열(res_name)과 일치해야 합니다. 자세한 정보는 xprop(1) 매뉴얼 페이지를 참조하십시오.

    • CLIENT_GEOMETRY: 클라이언트 프론트 패널 윈도우에 필요한 크기를 픽셀 단위로 지정합니다.

      xwininfo(1) 매뉴얼 페이지에 윈도우의 크기(픽셀 단위)를 찾는 방법이 설명되어 있습니다.

  2. 작업 공간 메뉴에서 작업 공간 관리자 재시작을 선택하십시오.

  3. 터미널 터미널 에뮬레이터 명령 행에서 클라이언트를 시작하십시오.

    예를 들면, 다음 제어 도구는 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
        }

제어 도구 애니메이션 방법

제어 도구를 누르거나 제어 도구에 객체를 끌어다 놓으면 사용될 일련의 애니메이션 에 접속할 수 있습니다.

일련의 애니메이션을 갖기 위해서는 제어 도구가 다음을 만족해야 합니다.

  1. ANIMATION 구성요소를 사용하여 일련의 애니메이션을 지정하 십시오.

    ANIMATION animation_name  
        {
           ANIMATION   icon1  [milisecond_delay ]  
           ANIMATION   icon2  [milisecond_delay ]  
           ...
        }

    여기서, icon1, icon 2 등은 아이콘들의 이름이고,milisecond_delay는 애니메이션 아이콘들 사이의 시간 지연을 밀리초 단위로 나타낸 값입니다. 기본 시간 지연은 200 밀리초입니다.

  2. PUSH_ANIMATION 및/또는 DROP_ANIMATION 필드를 제어 도구 정의에 추가합니다. 값은 ANIMATION의 이름입니다.

    예를 들어, 다음 행들은 BestEditor 응용 프로그램을 시작하는 제어 도구를 애니메이트합니다. 아이콘 사이의 시간 지연은 300 밀리초입니다. 이 예에서는 사용자가 아이콘 파일 frame1, frame2 등을 작성했다고 가정합니다.

    CONTROL BestEditor
        { 
     	...  
    	PUSH_ANIMATION BestEdAnimation 
    	...  
        }
    ANIMATION BestEdAnimation
        {  
            frame1      300
            frame2
    	...  
        }

프론트 패널 제어 도구에 항목 도움말 제공

다음 두 가지 방법으로 제어 도구에 대한 도움말이 제공됩니다.