Solaris 共通デスクトップ環境 上級ユーザ及びシステム管理者ガイド

フロントパネル・コントロール定義

アイコンを [アイコンのインストール] コントロールにドロップすることで、個人用のコントロールを作成できます。

この方法によって簡単にカスタマイズできますが、提供される機能はフロントパネル・コントロールの機能のサブセットになります。たとえば、[アイコンのインストール] コントロールを使用して作成されたコントロールでは、次の作業は実行できません。

この節では、手動でフロントパネル・コントロールを作成する方法を説明します。

フロントパネル・コントロールの構文については、dtfpfile(4X) のマニュアル・ページを参照してください。

フロントパネル・コントロール定義

フロントパネル定義の構造は次のとおりです。

CONTROL control_name
{
  TYPE            control_type
  CONTAINER_NAME  value
  CONTAINER_TYPE  value
  外観と動作を定義している他のフィールド
}

コントロールの型

コントロール定義の TYPE フィールドは、コントロールの基本的な動作を指定します。

TYPE フィールド 

コントロールの動作 

icon

(デフォルト) コントロールは、コントロールをクリックするかファイルをコントロール上にドロップすると、指定されたアクションを実行します。 

blank

コントロールの間隔を調節するためのプレースホルダ

busy

ビジー・ライト。アクションが起動されると、コントロールが点滅します (イメージを切り替えます)。 

client

フロントパネルのクライアント・ウィンドウ

clock

時計

date

現在の日付を表示します。

file

ファイルを表します。コントロールを選択すると、ファイルのデフォルト・アクションを実行します。

新しいコントロールを作成するには

この節では、コントロールを定義する一般的な手順と、さまざまな型のコントロールの作成方法を説明します。

  1. コントロールに PUSH_ACTIONDROP_ACTION のいずれかが関連付けられている場合は、アクション定義を作成します。

    これらは、コントロールをクリック、またはファイルをコントロール上にドロップすると実行されるアクションです。

  2. コントロールのアイコン・イメージ・ファイルを作成します。

    アイコンのサイズ、名前、および位置については、「アイコン・イメージ・ファイル」を参照してください。

  3. 新しいフロントパネル構成ファイルを作成します。

    • システム共通: /etc/dt/appconfig/types/language/*.fp

    • 個人用: HomeDirectory/.dt/types/*.fp

  4. ファイルにコントロール定義を追加します。

  5. ファイルを保存します。

  6. ワークスペース・メニューから [ワークスペースマネージャの再起動] を選択します。

クリックするとアクションを実行するコントロールの作成

コントロールの動作を定義するには、次のフィールドを使用します。

たとえば、[個人アプリケーション] サブパネルに入る次のコントロールは、ユーザが獲得したゲームを実行します。

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
 }

ファイルを開くコントロールの作成

コントロールの動作を定義するには、次のフィールドを使用します。

ファイルのデータ型に Open アクションが定義されていなければなりません。

たとえば、次のコントロールはメイン・パネルの右側奥に配置されます。このコントロールは、テキスト・エディタをデータファイル /users/ellen/PhoneList.txt で起動します。*.txt ファイルの Open アクションは、デフォルト・アクション・データベースの一部です。

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
 }

ファイルを監視するコントロールの作成

コントロールの動作を定義するには、次のフィールドを使用します。

たとえば、次のコントロールは、anonymous 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
 }

1 インスタンス (切り替え) コントロール

1 インスタンス・コントロールは、PUSH_ACTION によって起動されたプロセスがすでに実行中かどうかをチェックします。プロセスが実行中でない場合は、PUSH_ACTION が実行されます。プロセスが実行中の場合は、ウィンドウが現在のワークスペースのウィンドウの重なりの一番上に移動します。

コントロールの動作を定義するには、次のフィールドを使用します。

たとえば次のコントロールは、MyEditor という名前のアクションを持つアプリケーションのインスタンスを 1 つ実行します。

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 クライアントのウィンドウ・コントロールを作成することで、システム負荷メータをフロントパネルに入れることができます。

  1. コントロールを定義します。

    コントロールの動作を定義するには、次のフィールドを使用します。

    • TYPE - client に設定します。

    • CLIENT_NAME - 起動するクライアントを指定します。

      CLIENT_NAME の値は、アプリケーションのトップレベル・ウィンドウの WM_CLASS 属性の一番目の文字列 (res_name) に一致しなければなりません。詳細は、xprop(1) のマニュアル・ページを参照してください。

    • CLIENT_GEOMETRY - クライアントのフロントパネル・ウィンドウで必要なサイズをピクセル単位で指定します。

      xwininfo(1) のマニュアル・ページで、ピクセル単位のウィンドウ・サイズを調べる方法を説明しています。

  2. ワークスペース・メニューから [ワークスペースマネージャの再起動] を選択します。

  3. 端末エミュレータのコマンド行からクライアントを起動します。

たとえば、次のコントロールは 30x20 ピクセルの負荷メータを表示します。

CONTROL LoadMeter
 {
 	TYPE							client
 	CONTAINER_NAME				Top
 	CONTAINER_TYPE				BOX
 	CLIENT_NAME					xload
 	CLIENT_GEOMETRY			30x20
 }

セッション中にクライアントが保存および復元されない場合、コントロールをクリックすると、そのコントロールがクライアントを起動するように構成するとします。たとえば、次の行を定義に追加すると LoadMeter コントロールが 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]
     		...
        }

    icon1icon 2 は、アイコン名で、milisecond_delay は、アニメーション・アイコン間のミリ単位の遅延時間です。デフォルトの遅延時間は 200 ミリ秒です。

  2. PUSH_ANIMATION フィールドと DROP_ANIMATION フィールド、またはそのどちらかをコントロール定義に追加します。値は ANIMATION シーケンス名です。

たとえば次の行は、BestEditor アプリケーションを起動するコントロールをアニメーション化します。アイコン間の遅延時間は 300 ミリ秒です。この例では、アイコン・ファイル frame1frame2 などを作成してあると想定しています。

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

フロントパネル・コントロールのアイテムヘルプを提供する

コントロールにヘルプを提供するには、次の 2 つの方法があります。