新規データ・ファイルを作成した場合、ファイル・マネージャのファイルアイコン外観と動作は、作成したデータ・ファイルの型によって異なります。ファイルとディレクトリの外観および動作をカスタマイズするこの機能は、デスクトップのデータ型作成機能によって提供されます。
データ型は、デスクトップ・データベース内で定義される構造です。次に例として、XWD データ型の定義を示します。定義は、構成ファイル /usr/dt/appconfig/types/language/xclients.dt にあります。
DATA_ATTRIBUTES XWD { ACTIONS Open,Print ICON Dtxwd NAME_TEMPLATE %s.xwd MIME_TYPE application/octet-stream SUNV3_TYPE xwd-file DESCRIPTION This file contains a graphics image in the XWD ¥ format. These files are typically created by ¥ taking snapshots of windows using the XwdCapture ¥ action. Its data type is named XWD. XWD files ¥ have names ending with `.xwd' or `.wd'. }
DATA_CRITERIA XWD1 { DATA_ATTRIBUTES_NAME XWD MODE f NAME_PATTERN *.xwd } DATA_CRITERIA XWD2 { DATA_ATTRIBUTES_NAME XWD MODE f NAME_PATTERN *.wd }
それぞれのデータ型定義には、次の 2 つの部分があります。
DATA_ATTRIBUTES - データ型の外観と動作を説明します。
DATA_CRITERIA - そのデータ型に属するファイルをカテゴリに分類するための (命名および内容に関する) 規則を指定します。
DATA_ATTRIBUTES_NAME フィールドは、条件を属性に接続します。
1 つの DATA_ATTRIBUTE に対して複数の DATA_CRITERIA が存在することも可能です。たとえば XWD データ型には、.xwd または .wd で終わる名前という 2 つの異なる命名条件 (NAME_PATTERN) を指定する 2 つの基準があります。
XWD データ型を想定してください。ファイルに 2 つのファイル名拡張子 .xwd または .wd のいずれかを指定することにより、XWD 型のファイルを作成します。デスクトップは、その型のファイルを設計するための「基準」としてファイル名を使用します。
XWD データ型は、次の内容を備えるデータ型の各ファイルを提供します。
データ・ファイルを認識するのに役立つ一意のアイコン・イメージ
データ型を通知する [アイテムヘルプ]
[開く] および [印刷] アクションを含むファイル・マネージャでカスタマイズされた [選択] メニュー。XWD ファイルの [開く] アクションは、Xwud アクションを実行します。
ファイル・マネージャの [選択] メニューは、ファイルまたはディレクトリが選択された場合にのみ使用できます。[選択] メニューの下のコマンドは、データ型によって異なります。たとえば XWD ファイルを選択すると、[選択] メニューには [開く] と [印刷] という項目が含まれます。
データ型定義の ACTIONS フィールドは、データ型の [選択] メニューの下に追加されるコマンドを指定します。
DATA_ATTRIBUTES XWD { ACTIONS Open,Print ... }
[選択] メニューの内容はデータ型に依存しますが、[開く] アクションはほとんどのデータ型にあります。つまり、ファイル・マネージャの特定のデータ型のファイルを選択して、[選択] メニューを表示すると、[開く] コマンドが表示されます。
[開く] アクションは、通常データ・ファイルが関連しているアプリケーションを実行します。たとえば、XWD ファイルを開くと Xwud アクションが実行されます。このアクションは、順番に xwud X クライアントを実行して画面イメージを表示します。つまり XWD データ型の場合、[開く] アクションは Xwud アクションと同じです。同様に、TEXTFILE データ型のファイルを開くとテキスト・エディタが実行され、BM (ビットマップ) ファイルまたは PM (ピックスマップ) ファイルを開くとアイコン・エディタが実行されます。
異なる動作を行うさまざまな [開く] アクションを作成する機能は、アクション定義の次の 2 つの機能によって実現されます。
アクション・マッピングにより、直接コマンドを実行せずに、他のアクションを実行するアクションを作成できます。たとえば、Xwud アクションにマップ (して実行) する [開く] アクションを作成できます。
アクション定義には、あるデータ型にのみアクションを制限する ARG_TYPE フィールドを指定できます。たとえば、Xwud アクションにマップする [開く] アクションを XWD データ型のファイルだけに適用するよう指定できます。
[開く] アクションを XWD データ型の Xwud アクションにマップするアクションの定義を次に示します。この定義は、データベース構成ファイル /usr/dt/appconfig/types/C/xclients.dt にあります。
ACTION Open { LABEL Open ARG_TYPE XWD TYPE MAP MAP_ACTION Xwud }
TYPE フィールドは、このアクションがマップ・アクションであることを指定します。MAP_ACTION フィールドは、このアクションが Xwud アクションを実行することを指定します。ARG_TYPE フィールドは、このアクションが XWD データ型のファイルだけに適用されることを指定します。
上記の定義と対照的な定義を次に示します。これはデータベース・ファイル /usr/dt/appconfig/types/C/dt.dt にあります。
ACTION Open { LABEL Open ARG_TYPE BM TYPE MAP MAP_ACTION Dticon }
この定義は、ARG_TYPE データ型の BM (ビットマップ・ファイル) に適用されます。定義は [開く] アクションを、アイコン・エディタを実行する Dticon アクションにマップします。
データ型のダブルクリック動作は、ACTIONS フィールドの最初のエントリで定義します。たとえば XWD データ型をダブルクリックすると、Xwud アクションを順番に実行する [開く] アクションを実行します。
データ・ファイルをアクション・アイコンへドロップすると、データ・ファイルをアクションの引き数としてシステムはアクションを実行します (詳細は、「アクションがデータ・ファイルを引き数として使用する方法」を参照してください)。
たとえば、XWD データ・ファイルを [Xwd 表示] アイコンへドロップすると、データ・ファイルを引き数として Xwud アクションが実行されます。これにより、そのデータ・ファイルとともに xwud X クライアントが実行されます。
デスクトップ印刷は、データ・ファイルを印刷する次の 2 つの方法を提供します。
使用可能な場合は、ファイル・マネージャの [選択] メニューの [印刷] コマンドを使用する
データ・ファイルをデスクトップ・プリンタ・ドロップ領域 (フロントパネル・プリンタ・コントロールまたは印刷マネージャのプリンタ・アイコン) にドロップする
デスクトップ印刷の他にも、たくさんのアプリケーションがアプリケーション内から印刷する方法を提供しています。
デスクトップ印刷は、[印刷] という名前のアクションを使用します。[印刷] は [開く] のように、さまざまなデータ型に使用されるアクション名です。したがって、[印刷] アクションは、アクション・マッピングと ARG_TYPE フィールドを使用し、各データ型の印刷をカスタマイズします。
次に例として、XWD データ型の [印刷] アクションを示します。定義は /usr/dt/appconfig/types/language/xclients.dt にあります。
ACTION Print { LABEL Print ARG_TYPE XWD TYPE MAP MAP_ACTION NoPrint }
この [印刷] アクションは XWD ファイルに固有で、NoPrint アクションにマップされます。NoPrint は、/usr/dt/appconfig/types/language/dt.dt で定義される特殊アクションです。NoPrint アクションは、このデータ型が印刷できないことをユーザに通知するダイアログ・ボックスを表示します。
XWD の [印刷] アクションを、次の PCL ファイルの [印刷] アクションと比較します。
ACTION Print { LABEL Print ARG_TYPE PCL TYPE MAP MAP_ACTION PrintRaw }
PrintRaw アクションは、PCL ファイルを印刷するコマンド行が入っている構成ファイル /usr/dt/appconfig/types/language/print.dt で定義されています。
ACTION PrintRaw { TYPE COMMAND WINDOW_TYPE NO_STDIO EXEC_STRING /usr/dt/bin/dtlp -w %(File)Arg_1% }