共通デスクトップ環境 プログラマ概要

ToolTalk メッセージ・サービス

共通デスクトップ環境は、メッセージ・セットと呼ばれる 2 つの標準 ToolTalk プロトコルを定義します。メッセージ・セットは、送信側プロセスと処理側プロセスとで交換できるメッセージの集まりです。これらのメッセージは、関連する要求および通知を記述するものごとにグループ化されています。送信者および受信者は同じプロセスにあっても異なるホストにあってもかまいません。メッセージ・セットには、ローレベルの詳細に気をとられることなくプロトコルのセマンティクスだけに集中できるようにする関連ユーティリティ機能があります。機能の中には、簡単にデフォルト動作に従えるようにするものもあります。

デスクトップ・メッセージ・セットには次の 3 つの領域があります。

ウィンドウ動作の詳細は、「デスクトップの処理」および 「デスクトップの送信」の項を参照してください。ファイル・アクセスおよびファイルの短期ライフサイクル制御の詳細は、「デスクトップ・ファイル」の項を参照してください。Do_Command 要求の実装はアプリケーションの拡張言語に固有のもので、ToolTalk メッセージ・サービスではサポートしません。

メディア・メッセージ・セットにより、アプリケーションが、任意のメディアのコンテナまたはそのようなコンテナから起動できるメディア・プレイヤおよびエディタとなることができます。メディア・メッセージ・セットによって、コンテナ・アプリケーションは、該当するメディアの型のフォーマットを知らなくても任意のメディアのドキュメントを作成、表示、編集、印刷できます。ToolTalk メッセージ・サービスは、コンテナの要求を、指定されたメディアの型とオペレーション用のツールへ渡します。すでに実行中のツールのインスタンスがその要求を処理するのに最適であれば、そのインスタンスが要求されます。「メディアの送信」および 「メディアの処理」を参照してください。

デスクトップ・メッセージ・セット

ToolTalk メッセージ・サービスは次のようなメッセージ・セットをサポートします。

デスクトップの処理

デスクトップ要求の処理は、メッセージング統合の中で最も基本的なものです。ToolTalk メッセージを送信するアプリケーションは、tt_message_send() または DtActionInvoke() のいずれを呼び出す場合も、デスクトップ要求を処理します。これによって、アプリケーションの現在のディレクトリ、アイコンの状態、$DISPLAY などを他のアプリケーションが設定または照会できます。詳細は、ttdt_open()ttdt_session_join()ttdt_session_quit()ttdt_close() のマニュアル・ページを参照してください。

デスクトップの送信

アプリケーションを ttsession で起動し、ToolTalk 要求を処理するようにすると、このアプリケーションは要求送信者ではなく ttsession の子になります。アプリケーションは通常、送信者と同じ X の表示セッションで起動されますが、同じ X11 画面または同じ現在のディレクトリ・コンテキストにある必要はありません。アプリケーションがサーバ・プロセスとして実装された場合、すでに特定の画面または特定のディレクトリ・コンテキストに表示されています。

デスクトップ要求を使用すると、アプリケーションの操作は、デスクトップ以外でコマンド行の起動で継承される送信者の属性から継承できます。このようにデスクトップ・メッセージ・セットを使用し、ハンドラのロケール、現在の作業ディレクトリ、$DISPLAY をリセットしてください。これにより、入念にコード化された受信アプリケーションが送信者として同じ X11 画面に表示されます。要求ハンドラは要求送信者の現在のディレクトリとウィンドウのジオメトリを見つけることもできます。ウィンドウのジオメトリを知っていると、要求ハンドラのウィンドウが要求送信者のウィンドウをできる限り隠さないようにできます。詳細は、ttdt_sender_imprint_on() のマニュアル・ページを参照してください。

メディアの処理

ToolTalk メッセージ・サービスは、エディタが処理するメディアの型に対する標準メディア要求を、処理しやすくします。詳細は次のマニュアル・ページを参照してください。

ttmedia_ptype_declare()ttdt_message_accept()ttmedia_load_reply()ttmedia_Deposit()

メディアの送信

ToolTalk メッセージ・サービスは、コンテナのメディア要求送信と、ハンドラが返す一連のドキュメントの管理を容易にします。コンテナがメディア・ハンドラで 実行中の ToolTalk ダイアログを処理していない場合は、ToolTalk API を直接使用するのではなく、アクション API を使用してください。相当するアクション ([開く] と [印刷]) は、ToolTalk および ToolTalk 以外が検知するメディア・ハンドラと同等のハンドラをサポートする上位の概念を示します。詳細は、ttmedia_load() および ttdt_subcontract_manage() のマニュアル・ページを参照してください。ほとんどの場合、コンテナ・アプリケーションは ttmedia_load() ではなく DtActionInvoke() を使用してオブジェクトのオペレーションを実行するので注意してください。アクションによって ToolTalk アプリケーションを起動する方法の詳細は、『ToolTalk メッセージの概要』を参照してください。

デスクトップ・ファイル

ToolTalk メッセージ・サービスは、ファイルに関するデスクトップのメッセージを送受信しやすくします。これらのメッセージにより、アプリケーションがファイルへのアクセスを調整できるようになります。詳細は次のマニュアル・ページを参照してください。

ttdt_file_join()ttdt_file_quit()ttdt_file_event()ttdt_Get_Modified()ttdt_Save()ttdt_Revert()

ToolTalk メッセージ・サービスをすでに使用しているアプリケーションの例は、共通デスクトップ環境のアイコン・エディタ、メール・プログラム、テキスト・エディタ、カレンダなどです。共通デスクトップ環境の他の部分では、メッセージを送信するアクションを定義することにより、ToolTalk メッセージ・サービスを間接的に使用しています。

ライブラリおよびヘッダ・ファイル

ToolTalk メッセージ・ライブラリは libtt と呼ばれます。libtt ヘッダ・ファイルは次のとおりです。

デモ・プログラム

ToolTalk メッセージ・サービスのデモは /usr/dt/examples/tt にあります。デモの詳細は README ファイルを参照してください。

関連マニュアル

ToolTalk メッセージ・サービスの詳細は、関連するマニュアル・ページと『ToolTalk メッセージの概要』を参照してください。