データ型定義は、次の 2 つの方法で作成できます。
アクション作成ツールを使用する。
アクション作成ツールの使用方法については、第 11 章「アクション作成ツールを使ったアクションとデータ型の作成」で説明しています。
手入力でデータ型定義を作成する。
手入力でデータ型を作成するには、データベース・ファイルを編集しなければなりません。
この章では、手入力によるデータ型定義の作成方法について説明します。
データ型の概要については、第 10 章「アクションとデータ型の概要」を参照してください。
データ型定義のリファレンス情報については、dtddsfile(4) のマニュアル・ページを参照してください。
データ型を手入力で作成すると、データ型定義の構文に構築されたすべての機能を使用できます。
次のデータ型の機能を使用する場合は、データ型を手入力で作成する必要があります。
位置 (パス) ベースのデータ型作成
[開く] と [印刷] 以外のデータ型に関連するアクションを指定する機能
同じデータ型に対しての複数の名前、パターン、内容の基準。たとえば、*.abc または *.def という名前のファイルに基づくデータ型
リンクベースのデータ型作成
データ型定義は、次の 2 つの異なるデータベース定義で構成されます。
データ型の名前と、このデータ型のファイルの外観および動作を説明します。
型を作成するための基準を説明します。各基準定義は、基準を適用する DATA_ATTRIBUTES
定義を指定します。
各 DATA_ATTRIBUTES
定義に対して、少なくとも
1 つの DATA_CRITERIA
定義がなければなりません。DATA_ATTRIBUTES
定義は、関連する複数の DATA_CRITERIA
を持つことができます。
たとえば、ファイル・マネージャでの PostScript ファイルの外観と動作を説明する PostScript ファイルの属性定義を作成できます。次に、PostScript データ型の 2 つの異なる基準を作成できます。1 つの基準はファイル名に基づき、もう 1 つはファイル内容に基づきます。
詳細は、データ型のデータ基準の定義を参照してください。
この節では、データ型構成ファイルの作成方法を説明します。
データ型定義を含む構成ファイルの要件は次のとおりです。
ファイルが name.dt という命名規則を使用していること
ファイルがデータベース検索パス上にあること。デフォルトの検索パスは次のとおりです。
個人用データ型 — HomeDirectory/.dt/types
システム共通データ型 — /etc/dt/appconfig/types/language
組み込みデータ型 — /usr/dt/appconfig/types/language。このディレクトリは使用しないでください。
データベース検索パスの変更については、検索パスの値の設定を参照してください。
既存のデータベース・ファイルを開くか、新しいファイルを作成します。
詳細は、データ型の構成ファイルを参照してください。
次の構文を使って、データ型のデータ属性を定義します。
DATA_ATTRIBUTES data_type_name { ICON image_name DESCRIPTION string attribute_field attribute_field … }
それぞれの意味は次のとおりです。
data_type_name — このデータ型に指定する固有の名前
image_name — アイコン・ファイルのファイル名またはパス。ファイルのベース名を使用します。たとえば、myimage.m.pm と myimage.t.pm というアイコン・ファイルには、myimage を使用します。
attribute_field — データ型の外観と動作を定義するフィールド
string — 文字列。内容はデータ型のアイテムヘルプです。
詳細は、パーソナル・アクションとデータ型の作成例を参照してください。
次の構文を使って、データ型のデータ基準を定義します。
DATA_CRITERIA criteria_name { DATA_ATTRIBUTES_NAME data_type_name criteria_field criteria_field … }
それぞれの意味は次のとおりです。
criteria_name — この基準定義の固有の名前
data_type_name — DATA_ATTRIBUTES
定義で使用する名前
criteria_field — ファイルをこのデータ型に割り当てるための基準を定義するのに使用するフィールド
詳細は、データ型のデータ基準の定義を参照してください。
データベース・ファイルを保存します。
データ型のアイコンを作成します。
詳細は、データ型に使用するアイコン・イメージの指定を参照してください。
必要に応じて、属性定義の ACTIONS フィールドにリストされたアクションを作成します。
[デスクトップツール] アプリケーション・グループの [アクションの再読込み] をダブルクリックし、データベースを再読み込みします。
GIF 画像を表示する xgif というアプリケーションがシステムに含まれているとします。通常は、次のように入力してプログラムを実行します。
xgif filename
GIF 画像は、次の 2 つの方法で表示するものとします。
GIF データ・ファイルをダブルクリックする
データ・ファイルを選択し、[選択] メニューからアプリケーションを選択する
新規ファイル HomeDirectory/.dt/types/GifViewer.dt を開きます。
データ型定義を入力します。
DATA_ATTRIBUTES Gif { DESCRIPTION Gif image file. ICON GifIcon ACTIONS View } DATA_CRITERIA Gif_Criteria { DATA_ATTRIBUTES_NAME Gif NAME_PATTERN *.gif }
GifViewer アクションのアクション定義を入力します。
ACTION GifViewer { EXEC_STRING xgif %(File)Arg_1"Gif file to view:" WINDOW_TYPE NO_STDIO DESCRIPTION Double-click or drop a file to \ start the Gif viewer. }
定義に ICON フィールドは含まれないので、アクションはシステムのデフォルト・アイコンを使用します。
次のマップ・アクションを入力し、GifViewer アクションを、データ型定義にリストされた View アクションに接続します。この表示アクションを Gif 型ファイルに制限するには ARG_TYPE フィールドを使用します。
ACTION View { ARG_TYPE Gif TYPE MAP MAP_ACTION GifViewer }
ファイルを保存します。
[デスクトップツール] アプリケーション・グループの [アクションの再読込み] をダブルクリックし、データベースを再読み込みします。
DATA_ATTRIBUTES
定義は、データ型の外観と動作を定義します。データ型名を指定し、次の内容を指定する機能を提供します。
ファイル・マネージャ・アイコン (ICON フィールド)
[選択] メニューのダブルクリック動作と内容 (ACTIONS フィールド)
ICON フィールドを使用して、ファイル・マネージャで使用するアイコンを指定します。アイコン・イメージを指定しないと、ファイル・マネージャはラベルだけを表示します。
ベース・ファイル名は、ファイル名からサイズに関する接尾辞拡張子 (m および t)と、イメージ型に関する接尾辞拡張子 (bm および pm) を除いたアイコン・イメージのファイル名です。たとえば、GameIcon.m.pm および GameIcon.t.pm という名前のファイルは、GameIcon を使用します。
ベース・ファイル名を使用する場合、必ず次のアイコン検索パスのディレクトリにアイコン・ファイルを指定してください。
個人用アイコン: HomeDirectory/.dt/icons
システム共通アイコン: /etc/dt/appconfig/icons/language
完全ファイル名を含むアイコン・ファイルの絶対パス
アイコン・ファイルがアイコン検索パスにない場合のみ、絶対パスを使用してください。たとえば、アイコン・ファイル GameIcon.m.pm がアイコン検索パス上にないディレクトリ /doc/projects にある場合、ICON フィールドの値は /doc/projects/GameIcon.m.pm です。
作成するアイコンのサイズと、対応するファイル名を表 13–1に示します。
表 13–1 データ型アイコンのアイコン名とサイズ
サイズ(ピクセル単位) |
ビットマップ名 |
ピックスマップ名 |
---|---|---|
32x32 |
name.m.bm |
name.m.pm |
16x16 |
name.t.bm |
name.t.pm |
データ型をアクションに関連付けるには、次の 2 つの方法があります。
DATA_ATTRIBUTES
定義の ACTIONS フィールドは、ファイル・マネージャの [選択] メニューに表示されるアクションをリストします。リストの最初のアクションは、デフォルトのダブルクリックアクションです。
たとえば次のデータ型定義は、*.rm という命名規則を使用して、システム管理者が作成した特殊な readme ファイルのデータ型を作成します。
DATA_ATTRIBUTES SysReadmeFile { ICON SysReadMe ACTIONS Open,Respond } DATA_CRITERIA SysReadmeFileCriteria { NAME_PATTERN *.rm DATA_ATTRIBUTES_NAME SysReadmeFile }
特殊な Respond アクションは、ファイルに対して下記のように定義されます。このアクションは、テキスト・エディタで書き込み可能なファイルのコピーを開きます。ファイルを保存してテキスト・エディタを終了すると、ファイルはシステム管理者にメールで送信されます (メール・アドレスは sysadmin@utd です)。
ACTION Respond { ARG_TYPE SysReadmeFile EXEC_STRING /bin/sh -c 'cp %Arg_1% $HOME/readme.temp;\ chmod +w $HOME/readme.temp; \ dtpad $HOME/readme.temp; \ cat $HOME/readme.temp | \ /usr/bin/mailx sysadmin@utd; \ rm $HOME/readme.temp' WINDOW_TYPE NO_STDIO }
ファイルが非表示のデータ型の場合は、ファイル・マネージャには表示されません。
次のように DATA_ATTRIBUTES
定義の PROPERTIES フィールドを使用して、この型のオブジェクトを隠すよう指定します。
PROPERTIES invisible
表 13–2 に示す DATA_ATTRIBUTES
フィールドは、主にアプリケーション・プログラマが使用します。ユーザがさまざまなデスクトップ・アクティビティを実行したときのファイルの動作を指定します。
詳細は、開発者環境向けマニュアルの『Solaris 共通デスクトップ環境 プログラマーズ・ガイド』を参照してください。
表 13–2 DATA_ATTRIBUTES フィールドと説明
フィールド |
説明 |
---|---|
ディレクトリなどのコンテナに対して使用します。このデータ型のコンテナにファイルを移動したときに実行するアクションを指定します。 |
|
ディレクトリなどのコンテナに対して使用します。このデータ型のコンテナにファイルをコピーしたときに実行するアクションを指定します。 |
|
このデータ型のファイルにファイルをリンクしたときに実行するアクションを指定します。 |
|
このデータ型のファイルがテキスト・ボックスに表示できるテキストを含むよう指定します。 |
|
対応する ToolTalk メディア型を指定します。 |
|
対応する MIME 型を指定します。 |
|
対応する X400 型を指定します。 |
DATA_CRITERIA
定義は、オブジェクト型をファイルまたはディレクトリに割り当てるのに使用する基準を定義します。
使用できるオブジェクト型の基準は、表 13–3 のとおりです。
表 13–3 DATA_CRITERIA の基準と説明
基準 |
説明 |
---|---|
ファイル名 | |
ファイル位置 | |
ファイル内容 | |
ファイル・モード |
ファイルは指定したアクセス権 (読み取り、書き込み、実行、ディレクトリ) を所有しなければなりません。MODE フィールドを使用します。 |
リンク名はオブジェクトがリンクするファイルに基づきます。 |
1 つのデータ型に 2 つ以上の基準を使用できます。ただし、NAME_PATTERN と PATH_PATTERN を同じデータ型で使用しないでください。
NAME_PATTERN フィールドを使用して、命名要件を指定します。フィールド値には、次のワイルドカードを指定できます。
? — 任意の 1 つの文字を示します。
[cc…] — 角括弧で囲まれた任意の文字 (c) を示します。
[c–c] — c から c までの範囲の任意の文字を示します。
次のデータ型定義は、ファイル名に基づいたデータ型を作成します。ファイル名は必ず QS で始まり .doc で終わるようにしてください。
DATA_ATTRIBUTES QS_Doc { DESCRIPTION This file contains a document for the QS \ project. ICON Word_Doc ACTIONS Open } DATA_CRITERIA QS_Doc_Criteria { NAME_PATTERN QS*.doc DATA_ATTRIBUTES_NAME QS_Doc }
次の定義は、Demo_n (n は 0 から 9) という名前のディレクトリのデータ型を作成します。
DATA_ATTRIBUTES Demo_directory { DESCRIPTION This is a directory. Double-click to open it. ICON Demo ACTIONS OpenInPlace,OpenNewView } DATA_CRITERIA Demo_directory_criteria { NAME_PATTERN Demo_[0-9] MODE d DATA_ATTRIBUTES_NAME Demo_directory }
PATH_PATTERN フィールドを使用してパスを指定します。NAME_PATTERN と同じワイルドカードを使用できます。
たとえば、次のデータ型はパスに基づいた基準を使用します。
DATA_ATTRIBUTES Project_Graphics { DESCRIPTION Graphics file for the QS project. Double-click the \ icon to see the graphic. ICON QSgraphics } DATA_CRITERIA Project_Graphics_Criteria { DATA_ATTRIBUTES_NAME Project_Graphics PATH_PATTERN */projects/QS/graphics/* }
ファイル名と位置の両方に基づいたデータ型を作成するには、PATH_PATTERN の値に名前を取り込みます。NAME_PATTERN と PATH_PATTERN の両方を同じ基準定義で使用できません。
次に定義する QS_Source_Files データ型は、*/projects/QS のサブディレクトリにある appn.c (n は 1 から 9) という名前のすべてのファイルに適用されます。
DATA_ATTRIBUTES QS_Source_Files { … } DATA_CRITERIA QS_Source_Files_Criteria { PATH_PATTERN */projects/QS/*/app[1-9].c DATA_ATTRIBUTES_NAME QS_Source_Files }
次のデータ型は、/doc/project1 ディレクトリの chnn.xxx (n は 0 から 9、xxx は任意の 3 文字のファイル名の拡張子) という名前のすべてのファイルに適用されます。
DATA_ATTRIBUTES ChapterFiles { DESCRIPTION Chapter file for the project document. ICON chapter ACTIONS Edit,Print } DATA_CRITERIA Chapter_Criteria { PATH_PATTERN /doc/project1/ch[0-9][0-9].??? DATA_ATTRIBUTES_NAME ChapterFiles }
MODE フィールドを使用して、必須アクセス権を指定します。
通常、モード基準は名前、位置、内容に基づいたデータ型作成の組み合わせで使用します。これらの基準によって、データ型をファイルまたはディレクトリに制限したり、必須の読み取り権、書き込み権、実行権を指定したりできます。
MODE フィールドには、論理演算子 (表 13–4) と文字 (表 13–5) を指定できます。
表 13–4 MODE フィールドの論理演算子と説明
演算子 |
説明 |
---|---|
! | |
& | |
| |
表 13–5 MODE フィールドの文字と説明
文字 |
説明 |
---|---|
ファイルだけに適用されるデータ型 |
|
ディレクトリだけに適用されるデータ型 |
|
r |
任意のユーザが読み取れるファイル |
任意のユーザが書き込めるファイル |
|
任意のユーザが実行できるファイル |
|
リンクであるファイル |
特定モードのデフォルトは、モードには関係ありません。
次のモード・フィールドは、データ型を制限します。
f&!w — 読み専用ファイル
!w — 読み専用ファイルおよび読み専用ディレクトリ
f&x — 実行可能ファイル
f&r&x — 書き込み可能および実行可能ファイル
x|!w — 実行可能ファイルまたは読み専用ファイル
次のデータ型定義は、読み専用で実行可能でないファイルのデータ型を作成します。ファイル名は *.doc という命名規則に従っています。View アクションはデータ型に対して定義されているものとします。
DATA_ATTRIBUTES ReadOnlyDocument { ICON read_only DESCRIPTION This document is not writable. Double- \ clicking runs your editor with a \ read-only copy of the file. ACTIONS View } DATA_CRITERIA ReadOnlyDocument_Criteria { NAME_PATTERN *.doc MODE !d&!x&!w DATA_ATTRIBUTES_NAME ReadOnlyDocument }
CONTENT フィールドを使用して、ファイル内容に基づいたデータ型を作成します。内容に基づいたデータ型の作成には、名前または位置に基づいたデータ型を組み合わせて使用できます。
データ型作成は、ファイルの文字または数字内容に基づいて行われます。ファイルの最初のバイトの番号は 0 です。
ファイルの数字内容には、次の構文を使用します。
CONTENT starting_byte byte number CONTENT starting_byte short number CONTENT starting_byte long number
ディレクトリの内容には、次の構文を使用します。
CONTENT 0 filename "file_name"
8 進数 (先頭が o) と 16 進数 (先頭が oX) には、標準 C 表記を使用します。
内容に基づいたデータ型を作成すると、システム性能が遅くなります。できるだけ、名前または位置に基づいたデータ型を使用してください。
たとえば、次のデータ型 Writable_Wingz は、ファイルの最初に WNGZ 文字列が入っていて、書き込み権を持つすべてのファイルに適用されます。
DATA_ATTRIBUTES Writable_Wingz { … } DATA_CRITERIA Writable_Wingz_Criteria { CONTENT 0 string WNGZ MODE w&!d DATA_ATTRIBUTES_NAME Writable_Wingz }
いくつかの独自の基準を持つデータ型を作成できます。つまり、基準のいずれか (または両方) に一致した場合、ファイルはデータ型に割り当てられます。
たとえば、次の定義は Mif データ型を作成します。データ型は名前または内容に基づき作成します。
DATA_ATTRIBUTES Mif { ICON Frame ACTION_LIST Open,Print } DATA_CRITERIA Mif_Name_Criteria { DATA_ATTRIBUTES_NAME Mif NAME_PATTERN *.mif } DATA_CRITERIA Mif_Content_Criteria { DATA_ATTRIBUTES_NAME Mif CONTENT 1 string MIFFile }
データ型の検索パスには、言語に依存した位置を含みます。デスクトップは LANG の値を使用して、データ型定義を検索する場所を決定します。
ローカライズされたデータ型定義は、アクション検索パス上にある正しい言語依存ディレクトリになければなりません。
デフォルト検索パスは次のとおりです。
個人用アクション: HomeDirectory/.dt/types
システム共通アクション: /etc/dt/appconfig/types/language
組み込みアクション: /usr/dt/appconfig/types/language