フロントパネル拡張機能のカスタマイズ<IndexTerm><Primary>フロントパネル</Primary><Secondary>カスタマイズ</Secondary></IndexTerm> フロントパネルのポップアップ・メニューと、サブパネルのアイコンのインストール・コントロールを使用して、フロントパネルをカスタマイズすることができます。 本章では、構成ファイルの作成および編集によるフロントパネルのカスタマイズについて説明します。 関連項目 フロントパネル・コントロール構成に関する参照情報は、 dtfpfile(4X) のマニュアル・ページを参照してください。 ワークスペース・マネージャに関する参照情報は、 dtwm(1) と dtwmrc(4) のマニュアル・ページを参照してください。 フロントパネル構成ファイル<IndexTerm><Primary>構成ファイル</Primary><Secondary>フロントパネル</Secondary></IndexTerm><IndexTerm><Primary>フロントパネル</Primary><Secondary>構成ファイル</Secondary></IndexTerm> フロントパネルは、構成ファイルのデータベースで定義されます。 構成ファイルは、フロントパネルをカスタマイズする方法を提供します。次のような変更は、構成ファイルを編集しないと実行できません。 新しいコントロールの位置をメイン・パネルに追加する。 特殊な型のコントロール(クライアントのウィンドウなど)を追加する。 特定のデフォルト動作を変更する。たとえば、フロントパネル・コントロールがシングルクリックとダブルクリックのどちらに反応するか変更するなどです。 パネル構成に最大限の柔軟性を提供するために、構成ファイルは個人用、システム共通、または他のシステムに配置することができます。 フロントパネルは、ワークスペース・マネージャによって作成および管理されます。 デフォルトのフロントパネル構成ファイル デフォルトのフロントパネル構成ファイルは、フロントパネル構成ファイル /usr/dt/appconfig/types/language/dtwm.fp ファイルdtwm.fp で定義されます。 このファイルは変更してはいけません。 フロントパネル構成ファイルの検索パス<IndexTerm><Primary>検索パス</Primary><Secondary>フロントパネルの定義</Secondary></IndexTerm><IndexTerm><Primary>フロントパネル</Primary><Secondary>検索パス</Secondary></IndexTerm> フロントパネル定義は、ローカルに位置するファイルやリモート・システムのファイルに分散することができます。 フロントパネルファイルの命名規則 フロントパネルの定義に使用するファイルは、次の要求事項を満たさなければなりません。 ファイル名が .fp で終わる。例: mail.fp. ファイルがアクション・データベース検索パス上に位置する。 デフォルトのアクション・データベース検索パスには次のディレクトリがあります。次の順番で検索されます。 HomeDirectory/.dt/types 個人用カスタマイズ /etc/dt/appconfig/types/language システム共通カスタマイズ /usr/dt/appconfig/types/language 組み込みパネルおよびコントロール 追加のディレクトリ HomeDirectory/.dt/types/fp_dynamic は、ユーザ・インタフェースで行われる個人用カスタマイズに使用します。このディレクトリを手動のカスタマイズに使用しないでください。 fp_dynamic ディレクトリフロントパネル動的カスタマイズ アクション・データベース検索パスに、システムをネットワーク用に構成するためにディレクトリを追加することもあります。特に、システムがアプリケーション・サーバにアクセスするよう構成する場合は、リモート位置が追加されます。詳細については、 を参照してください。 フロントパネルの構成方法: 優先規則<IndexTerm><Primary>フロントパネル</Primary><Secondary>構成の優先度</Secondary></IndexTerm><IndexTerm><Primary>優先度</Primary><Secondary>フロントパネルの構成</Secondary></IndexTerm> フロントパネルは、アクション・データベース検索パス上のすべての構成ファイルで作成されます。 定義のコンポーネントが競合する場合は、どの定義を使用するかは優先規則が決定します。次の場合、2つのコンポーネントは競合します。 CONTAINER_NAMECONTAINER_TYPE が同じコントロール名である 2つのコンポーネントが同じ位置にある(名前は異なるが、CONTAINER_NAMECONTAINER_TYPE、および POSITION_HINTS が同じである) フロントパネルは次の優先規則を使用します。 コンポーネントのコントロール名、コンテナ名、コンテナ型がすべて同じである場合、先に読み込まれたコンポーネントを使用します。 たとえば、次のフィールドをもつという点以外は異なるシステム共通コントロールと組み込みコントロールの場合、システム共通コントロールが優先されます。 CONTROL TextEditor { CONTAINER_TYPE BOX CONTAINER_NAME Top … } 2つのコンポーネントが同じ位置にある場合は、読み込まれた順番に配置します。 たとえば、メインパネルに新しい個人用コントロール (CONTAINER_TYPE BOX と CONTAINER_NAME Top) を作成して POSITION_HINTS(5) を割り当てた場合、その個人用コントロールは組み込みコントロールとその他の 5 より高い位置番号をもつすべてのコントロールをひとつずつ右へずらします。 新規にシステム共通または個人用のコントロールを作成することによってコントロールを変更する場合は、新しいコントロール定義に同じコントロール名、CONTAINER_NAMECONTAINER_TYPE を指定しなければなりません。そうしないと、既存のコントロールと新しいコントロールの両方が表示されてしまいます。 <IndexTerm><Primary>フロントパネル</Primary><Secondary>動的カスタマイズ</Secondary></IndexTerm>動的に作成されたフロントパネル・ファイル [アイコンのインストール]コントロールとポップアップ・メニューを使用してフロントパネルをカスタマイズすると、ファイルは HomeDirectory/.dt/types/fp_dynamic. ディレクトリに書き込まれます。 フロントパネルは追加のファイル HomeDirectory/.dt/sessions/dtwmfp.session を作成します。このファイルは、カスタマイズしたフロントパネルの状態をセッションごとに保存および復元するのに使用します。 dtwmfp.session ファイル ユーザ・インタフェースのカスタマイズの管理 コントロールのポップアップ・メニューと[アイコンのインストール]コントロールを使用して、フロントパネルを大規模にカスタマイズすることができます。 この節では、次のことを説明します。 特定の個人用カスタマイズを回避する方法。たとえば、ユーザがコントロールを削除できないようにする方法など。 個人用カスタマイズを元に戻す方法。たとえば、うっかり削除してしまったひとつのコントロールを復元するよう他のユーザが要求してきた場合の方法など。 個人用カスタマイズを回避するには<IndexTerm><Primary>フロントパネル</Primary><Secondary>個人用カスタマイズの管理</Secondary></IndexTerm><IndexTerm><Primary>フロントパネル</Primary><Secondary>コントロール、「コントロール<$nopage>」を参照してください</Secondary></IndexTerm> コントロールが組み込みコントロールの場合は、定義を /usr/dt/appconfig/types/language/dtwm.fp から /etc/dt/appconfig/types/language/name.fp. へコピーします。 次の行をコントロール定義に追加します。 LOCKED True 変更されたフロントパネル、削除されたコントロールまたはサブパネルを復元するには<IndexTerm><Primary>サブパネル</Primary><Secondary>削除されたものの復元</Secondary></IndexTerm><IndexTerm><Primary>コントロール</Primary><Secondary>復元</Secondary></IndexTerm> [デスクトップツール]アプリケーション・グループの[フロントパネルの復元]アクションは、ユーザ・インタフェースで行われたフロントパネルのカスタマイズをすべて削除します。このアクションを使用して、フロントパネルのポップアップ・メニューで行った個人用カスタマイズをすべて削除できます。 [フロントパネルの復元]アクションコントロールロックLOCKED フィールド 個々のコントロールを復元するには次の手順にしたがってください。 HomeDirectory/.dt/types/fp_dynamic ディレクトリで、コントロールを削除したときに作成されたファイルを削除します。コントロールは、削除された元のコントロールと同じ名前になります。 たとえば、アイコン・エディタ・コントロールを削除した場合、fp_dynamic ディレクトリのファイルの内容は次のようになります。 IconEditor { … DELETE True } DELETE フィールド サブパネルを削除すると、そのサブパネルとサブパネルの各コントロールに対して、別の動的ファイルが作成されます。 関連情報については、 を参照してください。 フロントパネル定義の構成<IndexTerm><Primary>フロントパネル</Primary><Secondary>定義の編成</Secondary></IndexTerm> フロントパネルは、フロントパネルのコンポーネントの定義を集めて構築されます。各コンポーネントは、フロントパネル上のコンポーネントの配置、コンポーネントの外観および動作を定義する構文が必要です。 フロントパネル・コンポーネント<IndexTerm><Primary>フロントパネル</Primary><Secondary>コンポーネント</Secondary></IndexTerm>
フロントパネルのコンポーネント
フロントパネルは次のように構成されます。 PANEL 定義PANEL は、フロントパネル全体のトップレベルのコンテナ(親)です。 PANEL はひとつ以上の BOX のコンテナです。 BOX 定義BOX はひとつ以上の CONTROL のコンテナです。 特別なコンテナは2種類あります。 SUBPANEL 定義SUBPANEL は、特定のコントロールと関連付けられています(このコントロールはサブパネルのコンテナです)。サブパネルは、関連付けられているコントロールから上方に「スライド」して表示されます。 ワークスペース・スイッチ定義 SWITCH には、ワークスペースを変更するボタンと追加のコントロールが入っています。
フロントパネル定義の一般的な構文<IndexTerm><Primary>フロントパネル</Primary><Secondary>構文</Secondary></IndexTerm> フロントパネルの各コンポーネントは、次の構文を使用して別々に定義されます。 COMPONENT name { KEYWORD value KEYWORD value … } キーワードには必須なものとオプションのものがあります。詳細については、 dtfpfile(4X) のマニュアル・ページを参照してください。 <IndexTerm><Primary>PANEL 定義</Primary><Secondary>構文</Secondary></IndexTerm>PANEL 定義 PANEL はトップレベルのコンポーネントです。定義には次のものが含まれます。 フロントパネル名 フロントパネル全体の一般的な外観と動作 PANEL front_panel_name { KEYWORD value KEYWORD value front_panel_name はフロントパネルに固有の名前です。デフォルトの名前は「FrontPanel」です。 <IndexTerm><Primary>BOX 定義</Primary><Secondary>構文</Secondary></IndexTerm>BOX 定義 BOX 定義には次のものが含まれます。 BOX ボックスが入っている PANEL (CONTAINER_NAME フィールドCONTAINER_NAME) PANEL 内のボックスの位置 (POSITION_HINTS) ボックス全体に適用する外観と動作を記述するフィールド BOX box_name { CONTAINER_NAME front_panel_name POSITION_HINTS position KEYWORD value KEYWORD value … } <IndexTerm><Primary>CONTROL 定義、構文</Primary></IndexTerm>CONTROL 定義 CONTROL 定義には次のものが含まれます。 CONTROL コントロールがボックス、サブパネル、スイッチのいずれにあるか (CONTAINER_TYPE フィールドCONTAINER_TYPE) コントロールがどのボックス、サブパネル、スイッチに入っているか (CONTAINER_NAME フィールドCONTAINER_NAME) 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 … } サブパネル定義 サブパネル構文 <IndexTerm><Primary>サブパネル</Primary><Secondary>構文</Secondary></IndexTerm>SUBPANEL 定義 SUBPANEL 定義には次のものが含まれます。 SUBPANEL サブパネルに関連付けるコントロール名サブパネルコンテナ (CONTAINER_NAME フィールドCONTAINER_NAME) サブパネルに固有の外観と動作を記述するフィールド SUBPANEL subpanel_name { CONTAINER_NAME control_name KEYWORD value KEYWORD value … } <IndexTerm><Primary>SWITCH 定義</Primary></IndexTerm><IndexTerm><Primary>ワークスペース・スイッチ</Primary><Secondary>定義の構文</Secondary></IndexTerm>SWITCH 定義 SWITCH 定義には次のものが含まれます。 SWITCH SWITCH が入っている BOX (CONTAINER_NAME フィールドCONTAINER_NAME) BOX 内の SWITCH の位置 (POSITION_HINTS) SWITCH の外観と動作を記述するフィールド SWITCH switch_name { CONTAINER_NAME box_name POSITION_HINTS position KEYWORD value KEYWORD value … }
メイン・パネルの変更<IndexTerm><Primary>フロントパネル</Primary><Secondary>変更</Secondary></IndexTerm> メイン・パネルは、サブパネルを除くフロントパネルのウィンドウです。
メイン・パネルのコンテナ
次の変更を行うことができます。 コントロールの追加または削除 コントロールの位置の交換 メイン・パネルにコントロールを追加するには<IndexTerm><Primary>コントロール</Primary><Secondary>メイン・パネルへの追加</Secondary></IndexTerm> フロントパネル構成ファイルを作成します。 システム共通: /etc/dt/appconfig/types/language/*.fp 個人用: HomeDirectory/.dt/types/*.fp ファイルにコントロールを定義します。 コントロールのコンテナを指定するために、CONTAINER_NAME フィールドと CONTAINER_TYPE フィールドを使用します。 CONTAINER_NAME Top CONTAINER_TYPE BOX コントロールの配置を左から右へ指定するために POSITION_HINTS を使用します。カスタマイズは組み込みコントロールに優先するので、新しいコントロールが入ると同じ位置にあった既存のコントロールは、ひとつずつ右へずれます。 構成ファイルを保存します。 フロントパネル・コントロールのアイコンを作成します。 を参照してください。 [ワークスペース]メニューから[ワークスペースマネージャの再起動]を選択します。 たとえば、ファイル /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 } コントロールを削除するには<IndexTerm><Primary>コントロール</Primary><Secondary>フロントパネルからの削除</Secondary></IndexTerm> フロントパネル構成ファイルを作成します。 システム共通: /etc/dt/appconfig/types/language/name.fp 個人用: HomeDirectory/.dt/types/name.fp 削除したいコントロールの定義を新しいファイルにコピーします。 削除したいコントロールが組み込みの場合、定義はファイル /usr/dt/appconfig/types/language/dtwm.fp にあります。 定義全体をコピーする必要はありません。しかし、必ず CONTAINER_NAMECONTAINER_TYPE のフィールドを含む範囲をコピーしてください。 定義に DELETE フィールドを追加します。 DELETE True 構成ファイルを保存します。 [ワークスペース]メニューから[ワークスペースマネージャの再起動]を選択します。 たとえば、ファイル /etc/dt/appconfig/types/language/TrashCan.fp にある次のコントロール定義は、[ごみ箱]コントロールを削除します。 CONTROL Trash { CONTAINER_NAME Top CONTAINER_TYPE BOX DELETE True } コントロールを変更するには<IndexTerm><Primary>コントロール</Primary><Secondary>変更</Secondary></IndexTerm> コントロール定義を変更する必要がある場合(たとえば、アイコン・イメージを変更する場合など)は、次の手順を行います。 コントロール定義全体を /usr/dt/appconfig/types/language/dtwm.fp から次のファイルにコピーします。 システム共通: /etc/dt/appconfig/types/language/name.fp 個人用: HomeDirectory/.dt/types/name.fp 変更したいフィールドを編集します。フィールドを追加することもできます。 ファイルを保存します。 [ワークスペース]メニューから[ワークスペースマネージャの再起動]を選択します。 コントロールの位置を交換するには<IndexTerm><Primary>コントロール</Primary><Secondary>他のコントロールとの交換</Secondary></IndexTerm> 位置を変更したいコントロールの定義を /usr/dt/appconfig/types/language/dtwm.fp から次のファイルにコピーします。 システム共通: /etc/dt/appconfig/types/language/name.fp 個人用: HomeDirectory/.dt/types/name.fp 移動したいコントロールごとにコントロール定義全体をコピーしなければなりません。 コントロール定義の POSITION_HINTS フィールドPOSITION_HINTS フィールドの値を交換します。 ファイルを保存します。 [ワークスペース]メニューから[ワークスペースマネージャの再起動]を選択します。 たとえば、ファイル /etc/dt/appconfig/types/C/MailInfo.fp にある次のコントロール定義は、[メール]と[ヘルプ・マネージャ]のコントロールの位置を交換し、それらのコントロールを個人の変更に対してロックします。 CONTROL Mail { POSITION_HINTS 12 LOCKED True … the rest of the control definition } CONTROL InfoManager { POSITION_HINTS 5 LOCKED True … the rest of the control definition } フロントパネル・コントロールを置換するには<IndexTerm><Primary>コントロール</Primary><Secondary>置換</Secondary></IndexTerm> 次のものを同じにして別のコントロール定義を作成します。 control_name CONTAINER_NAME フィールドCONTAINER_NAME の値 たとえば、次の2つのコントロールは異なる2つの構成ファイルで定義されます。これらのコントロールはコントロール名とコンテナ名が同じなので、同一コントロールとみなされます。 /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 に配置されます。 コントロールが使用するアイコンの指定<IndexTerm><Primary>コントロール</Primary><Secondary>外観</Secondary></IndexTerm><IndexTerm><Primary>コントロール</Primary><Secondary>アイコン</Secondary></IndexTerm><IndexTerm><Primary>アイコン</Primary><Secondary>フロントパネル</Secondary></IndexTerm> コントロール定義の ICON フィールドフロントパネルにおけるICON フィールドは、コントロールが使用するアイコン・イメージを定義します。 ICON フィールドの値は次のいずれかになります。 ベース・ファイル名 ベース・ファイル名は、アイコン・イメージを格納しているファイルの名前から、サイズの拡張子 (mt) とイメージ型 (bmpm) を除いたものです。たとえば、ファイル名が MyGame.l.pmMyGame.m.pm の場合、MyGame を使用します。 ベース・ファイル名を使用する場合は、アイコン・ファイルはアイコン検索パス上のディレクトリになければなりません。 個人用アイコン: HomeDirectory/.dt/icons システム共通アイコン: /etc/dt/appconfig/icons/language 完全なファイル名を含む、アイコン・ファイルへの絶対パス アイコン・ファイルへの絶対パスは、アイコン・ファイルがアイコン検索パス上にない場合のみ使用するようにしてください。 必要なアイコンのサイズは、コントロールの位置によって決まります。 位置 サイズ メイン・パネル 48 × 48 pixels (name.l.pm または name.l.bm) サブパネル 32 × 32 pixels (name.m.pm または name.m.bm) アイコン・ファイルを次のいずれかに配置します。 個人用アイコン: HomeDirectory/.dt/icons システム共通アイコン: /etc/dt/appconfig/icons/language
サブパネルの作成と変更<IndexTerm><Primary>サブパネル</Primary><Secondary>作成</Secondary></IndexTerm><IndexTerm><Primary>サブパネル</Primary><Secondary>変更</Secondary></IndexTerm> フロントパネルのポップアップ・メニューを使用して、サブパネルの作成および変更ができます。 この節では、システム共通のカスタマイズの方法を説明します。それにはフロントパネル構成ファイルを変更する必要があります。 サブパネルは、メイン・パネル内のコントロールに「接続」されています。
サブパネルのコンテナはそのサブパネルが接続されているコントロール
サブパネルメイン・パネルとの関連付け 接続はサブパネルの定義で行われます。CONTAINER_NAME フィールドは、サブパネルが接続されるコントロールを指定します。 CONTROL control_name { … } SUBPANEL subpanel_name { CONTAINER_NAME control_name … } 新しいシステム共通サブパネルを作成するには<IndexTerm><Primary>サブパネル</Primary><Secondary>システム共通のカスタマイズ</Secondary></IndexTerm><IndexTerm><Primary>サブパネル</Primary><Secondary>新しい</Secondary></IndexTerm> メイン・パネル上の、サブパネルを接続したいコントロールの control_name を検出します。 コントロールが組み込みの場合、定義はファイル /usr/dt/appconfig/types/language/dtwm.fp にあります。 新しいファイル /etc/dt/appconfig/types/language/*.fp を作成します。 サブパネルを定義します。 SUBPANEL subpanel_name{ CONTAINER_NAME control_name TITLE value KEYWORD value … } 新しい構成ファイルを保存します。 [ワークスペース]メニューから[ワークスペースマネージャの再起動]を選択します。 組み込みサブパネルのカスタマイズ<IndexTerm><Primary>サブパネル</Primary><Secondary>組み込みパネルのカスタマイズ</Secondary></IndexTerm> 組み込みサブパネルの一般的な属性(タイトルなど)と内容を変更することができます。 組み込みサブパネルの一般的な属性を変更するには 新しいフロントパネル構成ファイルを作成します。 システム共通: /etc/dt/appconfig/types/language/name.fp 個人用: HomeDirectory/.dt/types/name.fp デフォルトの SUBPANEL 定義全体を /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 … } を参照してください。 構成ファイルを保存します。 [ワークスペース]メニューから[ワークスペースマネージャの再起動]を選択します。 たとえば、新しいファイル /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 } 組み込みサブパネルからコントロールを削除するには メイン・パネルのコントロールを削除する方法と同じです。 を参照してください。 <IndexTerm><Primary>[アイコンのインストール]のコントロール、削除</Primary></IndexTerm>アイコンのインストールのコントロールを削除するには 次のフィールドをサブパネル定義に追加します。 CONTROL_INSTALL False サブパネルの自動的に閉じる動作を変更するには<IndexTerm><Primary>サブパネル</Primary><Secondary>自動的に閉じる動作の変更</Secondary></IndexTerm> デフォルトでは、サブパネルを元の位置から移動させていない限り、コントロールを選択するとサブパネルも閉じます。 サブパネルを明示的に閉じるまでサブパネルを開いておくようにフロントパネルを構成できます。 フロントパネル構成ファイルを作成します。 システム共通: /etc/dt/appconfig/types/language/*.fp 個人用: HomeDirectory/.dt/types/*.fp デフォルトの PANEL 定義を /usr/dt/appconfig/types/language/dtwm.fp から新しいファイルへコピーします。 PANEL FrontPanel { … } 次のフィールドを PANEL 定義に追加します。 SUBPANEL_UNPOST False 新しい構成ファイルを保存します。 [ワークスペース]メニューから[ワークスペースマネージャの再起動]を選択します。
フロントパネル・コントロール定義<IndexTerm><Primary>コントロール</Primary><Secondary>定義</Secondary></IndexTerm> アイコンを[アイコンのインストール]コントロールにドロップすることで、個人用のコントロールを作成できます。 この方法によって簡単にカスタマイズできますが、提供される機能はフロントパネル・コントロールの機能のサブセットになります。たとえば、[アイコンのインストール]コントロールを使用して作成されたコントロールは、次のことが行えません。 アニメーション機能 クライアント・ウィンドウの表示 イベント発生時に外観を変更すること(たとえば新しいメールを受け取った場合など) この節では、手動でフロントパネル・コントロールを作成する方法を説明します。 フロントパネル・コントロールの構文に関する参照情報は、 dtfpfile(4X) のマニュアル・ページを参照してください。 フロントパネル・コントロール定義 フロントパネル定義の構造は次のとおりです。 CONTROL control_name { TYPE control_type CONTAINER_NAME value CONTAINER_TYPE value other fields defining appearance and behavior } <IndexTerm><Primary>コントロール</Primary><Secondary>型</Secondary></IndexTerm>コントロールの型 コントロール定義の TYPE フィールドTYPE フィールドは、コントロールの基本的な動作を指定します。 コントロールの TYPE コントロールの動作 iconアイコン・フロントパネル・コントロール (デフォルト) コントロールは、コントロールをクリックするかフィイルをコントロール上にドロップすると、指定されたアクションを実行します。 blankブランク型コントロール コントロールの間隔を調節するためのプレースホルダです。 ビジービジー型コントロール ビジー・ライト。アクションが起動されると、コントロールが点滅します(イメージを切り替えます)。 clientクライアント型コントロール フロントパネルのクライアント・ウィンドウ clockクロック型コントロール 時計です。 date日付型コントロール 現在の日付を表示します。 fileファイル型コントロール ファイルを表します。コントロールを選択すると、フィイルのデフォルト・アクションを実行します。 新しいコントロールを作成するには<IndexTerm><Primary>コントロール</Primary><Secondary>作成</Secondary></IndexTerm> この節では、コントロールを定義する一般的な手順と、さまざまな型のコントロールの作成方法を説明します。 コントロールに、PUSH_ACTION または DROP_ACTION、あるいはその両方が関連付けられている場合は、アクション定義を作成します。これらは、コントロールをクリックする、またはファイルをコントロール上にドロップすると実行されるアクションです。 コントロールのアイコン・イメージ・ファイルを作成します。 アイコンのサイズ、名前、位置については、 を参照してください。 新しいフロントパネル構成ファイルを作成します。 システム共通: /etc/dt/appconfig/types/language/*.fp 個人用: HomeDirectory/.dt/types/*.fp ファイルにコントロール定義を追加します。 ファイルを保存します。 [ワークスペース]メニューから[ワークスペースマネージャの再起動]を選択します。 クリックするとアクションを実行するコントロールの作成 コントロールの動作を定義するには、次のフィールドを使用します。 TYPE: icon に設定します PUSH_ACTION フィールドPUSH_ACTION: 実行するアクション名を指定します たとえば、[個人アプリケーション]サブパネルに入る次のコントロールは、ユーザが獲得したゲームを実行します。 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 } <IndexTerm><Primary>コントロール</Primary><Secondary>ファイルを開く〜</Secondary></IndexTerm>ファイルを開くコントロールの作成 コントロールの動作を定義するには、次のフィールドを使用します。 TYPE: file に設定します FILE_NAME フィールドFILE_NAME: 開くファイルのパスを指定します PUSH_ACTION: Open に設定します ファイルのデータ型に 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 } ドロップ領域として動作するコントロールの作成<IndexTerm><Primary>ドロップ領域</Primary><Secondary>フロントパネル・コントロール</Secondary></IndexTerm><IndexTerm><Primary>フロントパネル</Primary><Secondary>ドロップ領域コントロール</Secondary></IndexTerm><IndexTerm><Primary>コントロール</Primary><Secondary>ドロップ領域</Secondary></IndexTerm> ファイルをコントロール上にドロップしたときに実行されるアクションは、DROP_ACTION フィールド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 } ファイルを監視するコントロールの作成<IndexTerm><Primary>コントロール</Primary><Secondary>監視</Secondary></IndexTerm> コントロールの動作を定義するには、次のフィールドを使用します。 TYPE: 次のいずれかの値を指定します。 iconアイコン型コントロール コントロールに PUSH_ACTION、または DROP_ACTION、あるいはその両方を指定したい場合は、この型を使用します。 fileファイル型コントロール コントロールを選択したときに、ファイル・マネージャでファイル・アイコンをダブルクリックしたときのような動作を行いたい場合は、この型を使用します。 ICON および ALTERNATE_ICON フィールドALTERNATE_ICON:監視するファイルの、変更なしの状態と変更ありの状態を示すイメージを記述します。 MONITOR_TYPE フィールドMONITOR_TYPE: イメージを変化させる条件を記述します。次のいずれかの値を使用します。 mailコントロールの監視型メール型コントロール コントロールは、ファイルに情報が追加されると外観が変わります。 file コントロールは、指定されたファイルが空でなくなると外観が変わります。 FILE_NAMEFILE_NAME フィールド: ファイルを監視するように指定します。 たとえば、次のコントロールは、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インスタンス(切り替え)コントロール<IndexTerm><Primary>コントロール</Primary><Secondary>切り替え</Secondary></IndexTerm><IndexTerm><Primary>コントロール</Primary><Secondary>1インスタンス</Secondary></IndexTerm> 1インスタンス・コントロールは、PUSH_ACTION によって起動されたプロセスがすでに実行中であるかどうかをチェックします。プロセスが実行中でない場合は、PUSH_ACTION が実行されます。プロセスがすでに実行中の場合は、ウィンドウが現在のワークスペースのウィンドウの重なりのいちばん上に移動します。 コントロールの動作を定義するには、次のフィールドを使用します。 PUSH_RECALL: True に設定します。 CLIENT_NAME フィールド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 } クライアントのウィンドウ・コントロールを作成するには<IndexTerm><Primary>フロントパネル</Primary><Secondary>〜のクライアント</Secondary></IndexTerm><IndexTerm><Primary>クライアント</Primary><Secondary>フロントパネルのウィンドウ</Secondary></IndexTerm><IndexTerm><Primary>コントロール</Primary><Secondary>クライアント</Secondary></IndexTerm> クライアント・ウィンドウ・コントロールは、フロントパネルにはめ込まれたアプリケーション・ウィンドウです。たとえば、xload クライアントのウィンドウ・コントロールを作成することで、システム負荷メータをフロントパネルに入れることができます。 コントロールを定義します。 コントロールの動作を定義するには、次のフィールドを使用します。 TYPE: client に設定します。 CLIENT_NAME フィールドCLIENT_NAME: 起動するクライアントを指定します。 CLIENT_NAME の値は、アプリケーションのトップレベル・ウィンドウの WM_CLASS 属性の一番目の文字列 (res_name) に一致しなければなりません。詳細については、xprop(1) のマニュアル・ページを参照してください。 CLIENT_GEOMETRY フィールドCLIENT_GEOMETRY: クライアントのフロントパネル・ウィンドウで必要なサイズをピクセル単位で指定します。 xwininfo(1) のマニュアル・ページで、ピクセル単位のウィンドウ・サイズを調べる方法を説明しています。 [ワークスペース]メニューから[ワークスペースマネージャの再起動]を選択します。 端末エミュレータのコマンド行からクライアントを起動します。 たとえば、次のコントロールは 30 × 20 ピクセルの負荷メータを表示します。 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 } コントロールをアニメーション化するには<IndexTerm><Primary>コントロール</Primary><Secondary>アニメーション</Secondary></IndexTerm><IndexTerm><Primary>フロントパネルのアニメーション</Primary></IndexTerm><IndexTerm><Primary>フロントパネル</Primary><Secondary>アニメーション</Secondary></IndexTerm> アニメーション・シーケンスを接続してコントロールを選択するか、またはオブジェクトをコントロール上にドロップしたときに使用することができます。 アニメーション・シーケンスを指定するためには、コントロールは次の条件が必要です。 型が icon であること PUSH_ACTION または DROP_ACTION をもっていること ANIMATION 定義ANIMATION コンポーネントを使用して、アニメーション・シーケンスを指定します。 ANIMATION animation_name { ANIMATION icon_image [delay] ANIMATION icon_image [delay] … } delay は、アニメーション・アイコン間のミリ秒単位の遅延時間です。 PUSH_ANIMATION フィールドPUSH_ANIMATION および DROP_ANIMATION フィールドDROP_ANIMATION フィールド、またはそのいずれかをコントロール定義に追加します。値は ANIMATION シーケンス名です。 たとえば、次の行は BestEditor アプリケーションを起動するコントロールをアニメーション化します。アイコン間の遅延時間は 300 ミリ秒です。この例では、アイコン・ファイル frame1frame2 などが作成済みであることを仮定しています。 CONTROL BestEditor { … PUSH_ANIMATION BestEdAnimation … } ANIMATION BestEdAnimation { ANIMATION frame1 300 ANIMATION frame2 … } フロントパネル・コントロールのアイテムヘルプを提供する<IndexTerm><Primary>ヘルプ</Primary><Secondary>フロントパネル</Secondary></IndexTerm><IndexTerm><Primary>フロントパネル</Primary><Secondary>ヘルプ</Secondary></IndexTerm><IndexTerm><Primary>コントロール</Primary><Secondary>アイテムヘルプについて</Secondary></IndexTerm> コントロールにヘルプを提供するには次の2つの方法があります。 コントロール定義にヘルプ文字列を提供する コントロールのアイテムヘルプを起動すると、ヘルプ文字列がヘルプ・ビューアに表示されます。ヘルプ文字列にはフォーマット(ヘッダなど)やリンクを指定できません。 ヘルプ文字列を表示するには、コントロール定義にヘルプ文字列を指定します。 HELP_STRING help_string HELP_STRING フィールド 登録済みヘルプ・ボリュームにヘルプ・トピックを指定する ヘルプ・トピックは、ヘルプ・システムの全機能を使用して作成された情報です。ヘルプ・トピックを記述するには、デスクトップのヘルプ開発者用キットを使用する必要があります。 ヘルプ・トピックを表示するには、ヘルプ・ボリュームとトピックIDをコントロール定義に指定します。 HELP_VOLUME help_volume_name HELP_TOPIC topic_id HELP_VOLUME フィールド HELP_TOPIC フィールド ワークスペース・スイッチのカスタマイズ<IndexTerm><Primary>ワークスペース・スイッチ</Primary><Secondary>カスタマイズ</Secondary></IndexTerm><IndexTerm><Primary>スイッチ、「ワークスペース・スイッチ<$nopage>」を参照してください</Primary></IndexTerm> ワークスペース・スイッチをカスタマイズするにはいくつかの方法があります。 ワークスペースの数を変更する スイッチの配置を変更する スイッチのコントロールを変更する ワークスペースのデフォルト数を変更するには<IndexTerm><Primary>ワークスペース</Primary><Secondary>デフォルト数の変更</Secondary></IndexTerm><IndexTerm><Primary>ワークスペース・スイッチ</Primary><Secondary>ワークスペースの数</Secondary></IndexTerm> 次のワークスペース・マネージャ・リソースを変更します。 Dtwm*workspaceCount: n 詳細については、 を参照してください。 スイッチの列の数を変更するには<IndexTerm><Primary>ワークスペース・スイッチ</Primary><Secondary>列の数</Secondary></IndexTerm> SWITCH 定義の NUMBER_OF_ROWS フィールドNUMBER_OF_ROWS フィールドを変更します。 たとえば、次の例は3列のスイッチを定義します。 SWITCH Switch { CONTAINER_NAME box_name NUMBER_OF_ROWS 3 … } ワークスペース・スイッチのコントロールを変更および追加するには<IndexTerm><Primary>ワークスペース・スイッチ</Primary><Secondary>コントロールの追加</Secondary></IndexTerm><IndexTerm><Primary>コントロール</Primary><Secondary>ワークスペース・スイッチ</Secondary></IndexTerm> フロントパネル構成ファイルをコントロール定義とともに作成します。 コントロールをスイッチの内側に指定します。 CONTAINER_NAME Switch CONTAINER_TYPE SWITCH スイッチ内での位置を指定します。 POSITION_HINTS n n は整数です。位置は左から右、上から下の順に番号が付けられています(デフォルトの2列スイッチの場合、位置は 1 から 4 です)。 コントロールのアイコンを作成します。16 × 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/types/language/dtwm.fp から新しいファイルにコピーします。 PANEL 記述を編集します。 新しい PANEL 記述は、デフォルトに優先します。 デフォルトのフロントパネル位置を変更するには<IndexTerm><Primary>フロントパネル</Primary><Secondary>画面上の位置</Secondary></IndexTerm> 位置を変更するには、PANEL 定義の PANEL_GEOMETRY フィールドPANEL_GEOMETRY フィールドを使用します。 たとえば、次のパネルは右上端にあります。 PANEL SpecialFrontPanel { PANEL_GEOMETRY -1+1 … } メインパネルのコントロールにラベルを付けるには<IndexTerm><Primary>ラベル</Primary><Secondary>フロントパネル・コントロール</Secondary></IndexTerm><IndexTerm><Primary>フロントパネル</Primary></IndexTerm><IndexTerm><Primary>ラベル付けコントロール</Primary></IndexTerm><IndexTerm><Primary>コントロール</Primary><Secondary>ラベル付け</Secondary></IndexTerm> PANEL 定義に次の行を追加します。 DISPLAY_CONTROL_LABELS True 各コントロールに LABEL フィールドを追加します。 LABEL が指定されていない場合は、control_name を使用します。 コントロールのクリック動作を変更するには<IndexTerm><Primary>コントロール</Primary><Secondary>クリック対ダブルクリック</Secondary></IndexTerm> コントロールの PUSH_ACTION を実行する方法を指定するには、PANEL 定義の CONTROL_BEHAVIOR フィールドCONTROL_BEHAVIOR フィールドを使用します。指定可能な値は次のとおりです。 single_click コントロールをクリックして、PUSH_ACTION を実行します。 double_click コントロールをダブルクリックして PUSH_ACTION を実行します。 まったく新しいフロントパネルを作成するには<IndexTerm><Primary>フロントパネル</Primary><Secondary>新しい</Secondary></IndexTerm> 多数の変更を行いたい場合は、新しいフロントパネルを作成したほうがよいでしょう。 組み込みのフロントパネル・コンポーネントとの競合を避けるために、完全に新しいフロントパネルでは、パネルとその他のコンテナに新しい名前を付けます。 新しいフロントパネル用の PANEL パネル・コンポーネントを作成します。一意の名前を指定します。 PANEL front_panel_name { … } 新しいコンテナ名を使用して、新しいボックスとコントロールを作成します。 既存のコンポーネントを使用したい場合は、それらの定義をコピーしてから CONTAINER_NAME の値を変更する必要があります。 [ワークスペース]メニューから[ワークスペースマネージャの再起動]を選択します。 3列の個人用フロントパネルの作成例<IndexTerm><Primary>フロントパネル</Primary><Secondary>列の追加</Secondary></IndexTerm> 次の例は、デフォルトのフロントパネルを、コントロールが3列になるように変更します。 /usr/dt/appconfig/types/language/dtwm.fpHomeDirectory/.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_NAMENewFrontPanelTop に変更します。 [時計] [日付] [ホーム] [テキストエディタ] [メール] 次のコントロールの CONTAINER_NAMENewFrontPanelBottom に変更します。 [プリンタ] [スタイル] [アプリケーション] [インフォメーション] [ごみ箱] スイッチの CONTAINER_NAMENewFrontPanelMiddle に変更します。 リソースを設定します。 Dtwm*frontPanel*name: NewFrontPanel [ワークスペース]メニューから[ワークスペースマネージャの再起動]を選択します。