共通デスクトップ環境 ToolTalk メッセージの概要

ttdt_sender_imprint_on

Tt_status   ttdt_sender_imprint_on(     const char *    handler,
                                        Tt_message      contract,
                                        char **         display,
                                        int *           width,
                                        int *           height,
                                        int *           xoffset,
                                        int *           yoffset,
                                        XtAppContext    app2run,
                                        int             ms_timeout);

ttdt_sender_imprint_on() 関数を呼び出すと、呼び出し側ツール (以下、ツール B とします) で別のツール (以下ツール A とします) の動作と特定の特性が採用されます。ツール B は、ツール A の X11 ディスプレイ、ロケール、現在の作業ディレクトリを採用します。さらに、自身を正しい位置に置くためにツール A の X11 ジオメトリを取得します。

display パラメータが NULL の場合、環境変数 $DISPLAY はツール A のディスプレイに設定されます。display パラメータが NULL でない場合、ツール A のディスプレイがこのパラメータに返されます。戻り値は、ToolTalk の tt_free() 関数で解放できる文字列です。

この関数は、Get_Geometry 要求をツール A に送信します。ツール A がジオメトリ・パラメータに対して値を返さない場合は、次のようになります。

ttdt_sender_imprint_on() 関数の width パラメータ、height パラメータ、xoffset パラメータ、および yoffset パラメータすべてに NULL を設定すると、Get_Geometry 要求はツール A に送信されません。

app2run パラメータと ms_timeout パラメータは、この関数が送信する Get_Geometry 要求への応答をブロックするために、tttk_block_while() 関数に渡されます。

表 A-15 は、この関数が返す可能性のあるエラーの一覧です。

表 A-15 ttdt_sender_imprint_on が返す可能性のあるエラー

エラーの値 

説明 

TT_DESKTOP_ETIMEDOUT

指定されたタイムアウト時間内に送信された要求の一部が完了しませんでした。 

TT_ERR_NOMP

ttsession プロセスを使用できません。ToolTalk サービスは、ttsession が実行されていない場合はその再起動を試みます。このエラーは、ToolTalk サービスがインストールされていないか、正しくインストールされていないかのどちらかを示します。 

TT_ERR_PROCID

指定されたプロセス識別子が旧式か、無効です。 

TT_ERR_NOMEM

オペレーションを実行するのに十分なメモリがありません。 

TT_ERR_OVERFLOW

ToolTalk サービスが受信したメッセージの数が、正しく処理可能なアクティブ・メッセージの最大数 (2000) に達しました。