前へ | 次へ | 目次 | 索引 |
V1.2
日本語 DECwindows Motif for OpenVMS V1.2 ソフトウェアに付いてくる X Window と OSF/Motif ライブラリは,以前のバージョンで配布されたものとは互換性がありません。ランタイムの互換性は維持されていますが,プログラミング環境には互換性はありません。
DECwindows Motifの旧バージョンで提供されていた XUIあるいはMotif リリース 1.1.3のプログラミング環境は,日本語 DECwindows Motif for OpenVMS V1.2 ではサポートされていません。しかし,インストレーションの際にすでに使用しているシステムに入っているプログラミング・ファイルを保管するオプションがあります。既存のプログラミング・ファイルの保管を選択する場合,これらのファイルはサブディレクトリに移され,プログラミングを行う際にアクセスすることができます。具体的にいうと,インストレーションの過程で, 表 B-3 の表に記載された各ディレクトリに [.DECW$113]というサブディレクトリが作成されて,既存のファイルをこの新しいサブディレクトリに移動します。
既存のプログラミング・ファイルの保管についての詳細は,『日本語 DECwindows Motif for OpenVMS インストレーション・ガイド』を参照してください。
ディレクトリ | 内容 | 新しい位置 |
---|---|---|
DECW$INCLUDE | C ヘッダ・ファイル | SYS$SYSROOT:[DECW$INCLUDE.DECW$113] |
SYS$SYSTEM | UIL コンパイラ | SYS$SYSROOT:[SYSEXE.DECW$113] |
SYS$LIBRARY | 非 C 言語バインディング | SYS$SYSROOT:[SYSLIB.DECW$113] |
これらのファイルを使用してプログラミングを行うには,新しい[.DECW$113]サブディレクトリを各論理名の検索パスに含めます。次の例を参照してください。
$ SHOW LOGICAL DECW$INCLUDE "DECW$INCLUDE" = "SYS$SYSROOT:[DECW$INCLUDE]" (DECW$LOGICAL_NAMES) = "SYS$SYSROOT:[DECW$INCLUDE.EXTENSIONS]" $ DEFINE/EXECUTIVE/TABLE=DECW$LOGICAL_NAMES DECW$INCLUDE - SYS$SYSROOT:[DECW$INCLUDE.DECW$113], - SYS$SYSROOT:[DECW$INCLUDE], - SYS$SYSROOT:[DECW$INCLUDE.EXTENSIONS] |
今回のリリースで更新されたファイルには, [.DECW$113]サブディレクトリに移されたファイルと同じ名前を持っているものも多くあります。したがって,まず検索リストに新しいサブディレクトリ[.DECW$113]を入れます。これによって[.DECW$113]の中のファイルをソフトウェア開発用に使用することができます。
SYS$MANAGER:DECW$PRIVATE_APPS_SETUP.COMのコマンド・プロシージャで DECW$INCLUDE が再定義された場合は,それに従って上記の指示を変更してください。
XUI または OSF/Motif リリース 1.1.3 で UIL コンパイラを使用するには,次のようにします。
define type trace_keywords keyword tokens keyword symbols define type warning_keywords keyword nowarnings keyword noinformationals define type version_keywords keyword V1, syntax=xui_uil keyword V2, syntax=xui_uil, default keyword MOTIF11, syntax=motif_uil define syntax xui_uil image decw$uilcompiler define syntax motif_uil image decw$uilmotif define verb uil image decw$uilcompiler parameter p1, label=source_file, prompt="File", value(required,noconcatenate,type=$infile) qualifier trace, label=trace_qual, value(list,noconcatenate,type=trace_keywords), nonnegatable qualifier warnings, label=warnings_qual, value(list,noconcatenate,type=warning_keywords) qualifier list, label=listing_file, batch, value(type=$outfile) qualifier machine, label=machine_qual, qualifier output, label=resource_file, default, value(type=$outfile) qualifier version, label=version_qual, default, value(type=version_keywords), nonnegatable qualifier XUI, default, nonnegatable, syntax=xui_uil qualifier MOTIF, nonnegatable, syntax=motif_uil qualifier widget_meta_description, label=widget_qual, value(required, noconcatenate, type=$infile) disallow XUI and MOTIF |
$ SET COMMAND SYS$SYSROOT:[SYSEXE.DECW$113]DECW$UILCOMPILER.CLD |
UIL コマンドの定義を前の状態に戻すには,次のコマンドを実行します。
|
この節では,DECwindows OSF/Motif ツールキットの注意,制限,チューニングなどに関する事項を説明します。
B.3.1 呼び出し可能 OSF/Motif UIL コンパイラ
OSF/Motif リリース 1.2.2 Toolkit には,呼び出し可能 UIL (User Interface Language) コンパイラが含まれています。現在では,リンク・オプションに次の1 行を含めると,このイメージに対してリンクすることができます。
SYS$SHARE:DECW$UILSHR/SHARE |
呼び出し可能インタフェースについての詳細は, Prentice Hall から出版されている『OSF/Motif Programmer's Guide』を参照してください。
B.3.2 Motif テキスト・ウィジェットの変換
仮想バインディングを実現するには,弊社が省略時のXmText および XmTextField の変換マネージャ構文を変更する必要がありました。特に,次の設定が削除されています。
Shift ~Ctrl ~Meta ~Alt <Key>osfDelete: cut-clipboard() |
osfCut仮想keysymがバインドされていない仮想バインディングを使用すると,省略時の設定で,cut-clipboard 動作のキー・シーケンスはバインドされません。この制約に対処するには, DECW$XDEFAULTS.DATファイルでXmTextおよびXmTextField のトランスレーションをオーバーライドしてください。
B.3.3 上位互換性
DECW$DWTLIBSHR,DECW$DWTSHR,DECW$XTSHRの各共有可能イメージの組み合わせは,以前のDECW$DWTLIBSHR共有可能イメージとの,バイナリで上位互換性があるようになっています。例外と考えられるのは, LIB$ FIND_IMAGE_SYMBOLを使用してイメージDECW$DWTLIBSHRを動的に起動するアプリケーションです。動的なイメージの起動の問題は,固有のセマンティクスが X ツールキット・イントリンシック・リリース 3 から, MIT X11 リリース 4 になるときに大幅に変わっていることです。以前リンクされたXUIアプリケーションは, X ツールキット・リリース 3 の固有のセマンティクスを使用する XUI転送ベクトルのエントリを通じて呼び出しを行います。ただし,そのアプリケーションが再リンクされる (または動的にDECW$DWTLIBSHRを起動する)とすぐに, MIT X ツールキット・イントリンシック・リリース 4 固有のセマンティクスを使用します。
動的にDECW$DWTLIBSHRを起動するアプリケーションは, DECW$DWTLIBSHRに対して直接にリンクするように変更する必要があります。 DECW$DWTLIBSHR は現在は小型薄層の共有可能イメージとなり,必要なときだけツールキットの大部分のコードを自動的に動的に起動します。このためアプリケーションがDECW$DWTLIBSHRを動的に起動し続けることはありません。
今後弊社では,ツールキット共有可能イメージを動的に起動するアプリケーションに対するバイナリで上位互換性を保証できません。 DECwindows ツールキット(XUI と Motif)は,弊社の管轄外の基準に基づいています。この基準に互換性のない変更が行われた場合は,弊社はそれに従うようツールキットを変更します。ただし,現在の実行可能イメージが変わらずに実行されるようにコードを追加していく意向です。
B.3.3.1 Motif ウィジェットと XUI ウィジェットの混合に関する制約
MotifウィジェットとXUIのウィジェットの混合には制限があります。問題の原因は, XUIとMotifの両方がそれぞれ独自のVendor Shell ウィジェット・クラスを持っていることにあります。アプリケーションがMotifではなくXUIに対してリンクされると, XUI Vendor Shell ウィジェット・クラスが, DECwindows XUIとの互換性を保つために使用されます。アプリケーションがMotifに対してリンクされたときは, Motif Vendor Shell ウィジェット・クラス使用されます。 Motif ウィジェットはMotif Vendor Shellを必要とし, XUI ウィジェットはMotif Vendor Shellとの互換性があります。問題が発生するのは, XUI専用アプリケーションがMotifを使用する共有可能イメージを (LIB$FIND_IMAGE_SYMBOLを使用して)動的に起動したときです。ツールキットが初期化されたときに,動的に起動された共有可能イメージでMotif ウィジェットが動かない場合は,ツールキットは XUI Vendor Shellを使用するよう決定します。
この問題に対処するには,アプリケーション・イメージ名をDECW$USE_XM_VENDOR_SHELL論理名に加える方法があります。この論理名には,ツールキットがMotif Vendor Shellを使用するイメージ名を,コンマで区切って並べてあります。 DECW$USE_XM_VENDOR_SHELL 論理名の値は省略時の設定でNOTES$MAINとなっています。さらにイメージ名をこの論理名に追加するには,次のコマンドを入力します。
$ DEFINE DECW$USE_XM_VENDOR_SHELL "NOTES$MAIN,- _$ yourimage1,yourimage2,..." |
Motifを使用するアプリケーションは,すでにMotif Vendor Shellを使用しているため, DECW$USE_XM_VENDOR_SHELLの影響は受けないことに注意してください。
B.3.4 Motifヘッダ・ファイルでのコンパイル時の非互換性
V1.2--3
OSF/Motifプログラミング・サポートで Motifヘッダ・ファイルからマクロ定義がいくつか削除されています。この変更は次のヘッダ・ファイルに影響します。
上記マクロに代えて,次のマクロが同じヘッダ・ファイルに挿入されています。
MAXINTの定義はオペレーティング・システムに依存します。次のいずれかの方法でアプリケーションにこの定義を組み込んでください。
この節では, DECwindows Motif for OpenVMS Version 1.2 ソフトウェアに含まれている OSF (Open Softoware Foundation) のプログラム例について説明します。
B.4.1 Cutpaste のプログラム例
この例では,Motif のクリップボードの使用法が示されています。アプリケーションによって定義されたデータ・フォーマットは, XmClipboard API を使用してカット・アンド・ペーストを行うことができます。
2つのcutpasteのクライアント・プログラムを実行して,グラフの値をプルダウン・メニューとポップアップ・メニューを使用して移動してください。
B.4.2 DNDDemo プログラム例
この例では,ドラッグ・ドロップ機能の典型的な使用法が示されています。
このプログラム例の起動時には,有効なドロップ先はありません。色をドラッグして移動するためのドラッグ元を示す異なったカラーの四角形がまず表示されます。ドロップ先は,次のようにして決めます。
描画領域の内側に作成された四角が色の有効なドロップ先です。たとえば黄色の四角からドラッグを開始して,描画領域の内側にある四角な囲みケイの 1 つまでドラッグしていき,そこでMB2を放すことで,これを確認することができます。
ドラッグを開始するには,ポインタをドラッグ元の上に移動し, BTransferを押したままマウスを移動します (BTransferは省略時の設定では MB2 になります)。カーソルがドラッグ元の四角の色と同じ色のパレットの形に変わったことを確認してください。
ドラッグ中には,次の点に注目してください。
ドロップを行うには MB2を放します。描画領域内の四角な囲みケイの外側やルート・ウィンドウ上でMB2を放すと,ドラッグ・アイコンは一瞬ドラッグ開始のためのポインタに変わってから,消えます。これによって実行しようとしたドロップが失敗したことが分かります。ポインタが描画領域内のいずれかの四角な囲みケイの内側にあるときに, MB2 を放すと,ドラッグ・アイコンは背景に吸い込まれるように消えます。これによってドロップが成功したことが分かります。ドロップが実行された四角な囲みケイの中は,ドラッグされた色で塗りつぶされます。
描画領域内の四角な囲みケイの中は,ドラッグ元として使用することができます。ポインタをいずれかの四角な囲みケイの中からドラッグを開始すると,カーソルが四角形に変わります (四角形の大きさは X カーソルのサイズ制限内で,囲みと同じ大きさか,より小さいものになります)。四角形のカーソルをドラッグして,描画領域内の別の場所にドロップしてください。このようにして元の四角形を新しい場所に移動することができます。
四角形を新しい場所に複写する場合は,ドラッグ中またはドロップを行うときに,適切な変更キーを使用します (現在のところは,Ctrlキーが複写への変更キーとして設定されています)。四角形を変更キーを押さないでドラッグした場合,またはShiftキーを押した場合には,ドラッグを開始した塗りつぶされた四角形は,点線の囲みケイに変わります。この状態は,ドラッグを行っている間中,またはCtrlキーを押して複写モードに変更するまで継続します。 Ctrlキーが押されると点線の囲みケイは,元の四角形に戻ります。
ドラッグ中に取消キー(F11)を押すと,ドラッグを中止することができます。また,Helpキーを押せば,ドロップの成否や可能なドロップ操作についての情報が表示されます。 |
前へ | 次へ | 目次 | 索引 |