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

새로운 제어도구 작성 방법

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

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

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

    아이콘 크기, 이름, 위치 등에 관한 내용은 223 페이지의 "아이콘 이미지 파일"을 참조하십시오.

  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 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
    }

제어도구 애니메이션 방법

제어도구를 누르거나 제어도구에 객체를 끌어 놓을 때 사용될 일련의 애니메이션을 추가할 수 있습니다.

일련의 애니메이션을 가지려면 제어도구가 다음의 조건을 만족해야 합니다.

  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
        ...
    }

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

제어도구의 도움말을 제공하는 방식은 두 가지가 있습니다.