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