日本語 HP DECwindows Motif
for OpenVMS Alpha
リリース・ノート


前へ 次へ 目次 索引


B.4.3 Dogs プログラム例

V1.1

このプログラム例では,Dog ウィジェットおよびSquare ウィジェットを使用します。これはユーザ定義機能を使用して新しいウィジェットをUIL ソースに組み込む方法を説明します。

Dogs プログラム例によって, DogNwagTimeおよびSquareNmakeSquareリソースを動的に変更できるようになります。

サウンド発生機能を持ったシステムをお持ちの場合は,吠えるコールバックをXBell()以外のものにすることもできます。

B.4.3.1 dog ウィジェット

V1.1

dog ウィジェット(DogWidget)は,将来のバージョンのMotifとのバイナリ互換性を保つ基本ウィジェットをサブクラスに分ける方法を示すデモです。これは, mResolvePartOffsets()および対応するマクロを使用して, XmResolvePartOffsets マニュアル・ページにある勧告をすべて実行します。

dog ウィジェットは,XmPrimitiveのサブクラスで,吠えたり尾を振ったりできます。もっと面白いしかけが欲しいときは,サブクラスに分けるか,またはup.bm,down.bm,bark.bm をより高度なビットマップに置き換えてください。

dog ウィジェットには,次のリソースがあります。

dog ウィジェットには次のような変換があります。

B.4.3.2 square ウィジェット

V1.1

square ウィジェット(SquareWidget)は,将来のバージョンのMotifとのバイナリ互換性を保つ制約ウィジェットをサブクラスに分ける方法を示すデモです。これは, XmResolveAllPartOffsets()および対応するマクロを使用して, XmResolveAllPartOffsets マニュアル・ページにある勧告をすべて実行します。

square ウィジェットはXmBulletinBoardのサブクラスで,制約リソースを使用して強制的に子をsquare (正方形)にします。

square ウィジェットには SquareNmajorDimension というリソースがあります。このリソースは,子の新しいサイズに使用する寸法を決定します。値は,SquareWIDTHまたはSquareHEIGHTです。

square ウィジェットには SquareNmakeSquare という制約リソースがあります。このリソースは,子を強制的に正方形にするか,好きな形に設定するか決定します。

B.4.4 Helloint プログラム例

V1.2

このプログラム例は, 1つのラベルと1つの押しボタンとからなる簡単な UIL/Xm プログラムです。

本バージョンでは,実行時に kanji (日本語),hebrew (ヘブライ語), french (フランス語),english (英語)のインタフェースを選択することができます。

このプログラムでは,言語特有のインタフェースについてはすべて LOCALSTRINGS.UID ファイルを使用します。言語を変更するには, LOCALSTRINGS_*.UID の各ファイルを DECW$USER_DEFAULTS:LOCALSTRINGS.UID に複写します。続いて,DECW$USER_LANG あるいは xnlLanguage リソースを使用してロケールを設定します。 LOCALSTRINGS 接頭辞およびロケール名には次のもののいずれかを設定してください。

ロケール インタフェース・タイプ
Japan 漢字
Hebrew ヘブライ語
French フランス語
English 標準英語

xnlLanguage リソースを定義するには, DECW$XDEFAULTS.DAT ファイルに次の行を追加してください。


*xnlLanguage:locale

helloint プログラム例には次のフォントが必要です。

Locale Font Name
French -adobe-helvetica-medium-r-normal--12-120-75-75-p-67-iso8859-1
English -adobe-times-medium-r-normal--14-100-100-100-p-74-iso8859-1
Hebrew -Misc-Fixed-Medium-R-Normal--13-120-75-75-C-80-ISO8859-8
Japan -*-JISX0208.1983-1
  -*-JISX0201.1976-0

上記のフォントがシステムにインストールされていない場合は,他のフォントを参照するように UIL ファイルを変更するか, DECW$EXAMPLES ディレクトリに入っている *.DECW$BDF フォントをインストールしてください。新しいフォントをインストールする方法については,『日本語 DECwindows Motif for OpenVMS 環境設定の手引き』を参照してください。

B.4.5 Hellomotif プログラム例

V1.2

このプログラム例は, 1つのラベルと1つの押しボタンとからなる簡単な UIL/Xm プログラムです。

B.4.6 Motifanim プログラム例

V1.1

Motifanimプログラムは,OSF/Motifの次の機能を示すプログラム例です。

Motifanim では,X Window でピクスマップを動画表示できます。ピクスマップは,motifanimによって固定されるのではなく,起動時に既存のUIDファイルから読み込まれます。

すべてのanimation.uid ファイルの構文は, motifanimを使用して動画表示するピクスマップを簡単に追加することができます。動画データ・ファイルのいくつかのツリーの例には次のようなものがあります。

dog.uil
plane.uil

省略時の動画はdogです。他の動画のデモを実行するには次のコマンドを使用してください。


$ SET DEFAULT DECW$EXAMPLES
$ motifanim := "$DECW$EXAMPLES:motifanim"
$ motifanim -anim plane

motiflogo.uil,motifanim.uil,motifanim.cの各ファイルは,プログラムの中核となる構成要素です。

B.4.7 MOTIFGIFおよびPICT表示プログラム

V1.2

次の .gif ファイルが提供されています。

V1.1

motifgifおよびpictはともに作動して, .gifフォーマットされた絵を表示するプログラムです。 motifgif プログラムは Motif 構造内で.gifファイルを表示します。 motifgif プログラムは現在のディレクトリで .gifファイルを探します。

motifgifには次の3つの重要な構成要素があります。

motifgifには次のような問題があります。

B.4.8 Motifshell プログラム例

V1.2

motifshell プログラムは,Motif を使用して作成された環境を示す一例です。プログラム例の目的は,Motif をスタンドアロンの環境で使用する場合,どのように他のプログラムやユーティリティをタスク指名するかを示すことです。

motifshell プログラムは C コードで書かれています。 UIL は参照しません。

注意

ファイルの一覧や処理状態を表示するのは,多少時間がかかります。これらの操作は,SPAWNにより DCL コマンドを起動し,出力をファイルに保管してから,そのファイルを読むことで行われます。

省略時のフォントはプロポーショナル・スペースが使用されています。一覧表の中には,クーリエのような固定スペースを使ったほうが読みやすい場合もあります。別のフォントを選択するには,フォント・オプションを使用します。

B.4.9 Periodic プログラム例

V1.2

periodicプログラムには,Motifの表示可能なウィジェットの例が示されています。このプログラムにより Motifのウィジェットを周期チャート形式で表示します。

B.4.10 Textedit プログラム例

V1.2

textedit プログラムは, XmNsource リソース・ファイルを使用するMotif XmText ウィジェットに基づく,基本的なテキスト・エディタで,重なっている同一テキストを複数表示することができます。

表 B-4 の表で,使用可能な表示メニューのオプションを説明します。

表 B-4 表示メニューのオプション
オプション 説明
Split Pane テキストの独立したスクロールが可能な新しい表示画面を追加します。
Remove Pane 指定画面を消去します。
One Pane 指定画面以外の画面をすべて消去します。

指定画面は次のようにして決定します。

編集メニューでペーストを選択した場合に,クリップボードの内容のペーストが行われるのも指定画面です。

texteditのソース・ファイルは独立した層として別れています。 texteditに含まれるソース・ファイルは 表 B-5 に一覧が掲載されています。

表 B-5 Textedit ソース・ファイル
ファイル名 説明
tfile.c ファイルの読み込み,書き込み,削除のためのコード。オペレーティング・システムまたはファイル・システムに対する依存を隠します。
app.c tfile.c を使用してファイル操作およびこれに関連するバッファのためのあらゆるコードを提供します。このファイルはツールキットに依存します。
tk.c Xm ツールキットへの依存を切り離します。

このファイルの前半では,ユーティリティのルーチンおよびツールキットから独立した (しかし特定のアプリケーションに限定された)インタフェースを提供します。このインタフェースは,アプリケーションのツールキットに依存しないダイアログ層を使用することができます。

ファイルの後半では,すべてのコールバック・ルーチンを定義しています。コールバック・ルーチンの多くは,この層内部の状態更新に使われ,残りが追加動作を行います。これらの動作は,ファイルの前半で定義された特定のツールキットの動作ルーチンとの間に明白に関連しています。明白ではない場合,行うべき動作を決定するために,ツールキットに依存しないダイアログ・層に対してアップコールが行われます。

dlg.c ユーザとの対話を管理するために tk.c を使用します。このコードはツールキットに依存しません。
textedit.c アプリケーションを初期化し,ウィジェットの階層の実例を示します。このコードによりUILおよびMrmの使用を他のアプリケーションから隠します。

注意

ファイルの移動と削除の手段は,現在のところ用意されていません。

B.4.10.1 追加のトランスレーション

V1.2

次のトランスレーションを DECW$XDEFAULTS.DAT ファイルに追加しておくと, emacs を使い慣れたユーザには便利です。


 
*XmText.translations:     Mod1<Btn3Down>: scroll-cursor-vertically()\n\
  Mod1<Btn3Motion>: scroll-cursor-vertically()\n\
 Ctrl<key>a: beginning-of-line()\n\
 Ctrl<key>b: backward-character()\n\
 Ctrl<key>d: delete-next-character()\n\
 Ctrl<key>e: end-of-line()\n\
 Ctrl<key>f: forward-character()\n\
 Ctrl<key>g: beep()\n\
 Ctrl<key>h: delete-previous-character()\n\
 Ctrl<key>i: cut-primary()\n\
 Ctrl<key>j: newline-and-indent()\n\
 Ctrl<key>k: set-anchor() end-of-line() key-select() cut-clipboard()\n\
 Ctrl<key>l: redraw-display()\n\
 Ctrl<key>m: newline()\n\
 Ctrl<key>n: next-line()\n\
 Ctrl<key>o: newline-and-backup()\n\
 Ctrl<key>p: previous-line()\n\
 Ctrl<key>v: next-page()\n\
 Ctrl<key>w: cut-clipboard()\n\
 Ctrl<key>y: paste-clipboard()\n\
 Ctrl<key>z: scroll-one-line-up()\n\
 Mod1<key>b: backward-word()\n\
 Mod1<key>d: delete-next-word()\n\
 Mod1<key>f: forward-word()\n\
 Mod1<key>h: delete-previous-word()\n\
 Mod1<key>i: copy-primary()\n\
 Mod1<key>k: delete-to-end-of-line()\n\
 Mod1<key>v: previous-page()\n\
 Mod1<key>w: copy-clipboard()\n\
 Mod1<key>z: scroll-one-line-down()\n\
 Mod1 Shift<key>greater: end-of-file()\n\
 Mod1<key>less: beginning-of-file()\n\
 Mod1<key>]: forward-paragraph()\n\
 Mod1<key>[: backward-paragraph() 
 

B.4.11 View プログラム例

V1.2

viewプログラムは, Motifの国際化サポートを使用した DCL コマンドの TYPE/PAGE と似ています。このプログラムによって,ファイルを数カ国語で表示することができます。

用意されているコマンド・ファイル DECW$EXAMPLES:FILEVIEW.COM を使用して,各国の言語を選ぶことができます。有効な言語は,フランス語,英語,およびドイツ語です。言語を選択するには,次のコマンドを実行してください。


$ SET DEFAULT DECW$USER_DEFAULTS
$ @DECW$EXAMPLES:FILEVIEW language

このコマンド・ファイルでは, .UID および .DAT の各ファイルを現在のディレクトリに複写するとともに,適切なロケールを設定し,ファイル表示のための view プログラム例を実行します。

アプリケーションが起動されると,1次の最上位のシェルが作成されます。 1次の最上位のシェルから,2次シェルを作成することができます。

各最上位のシェルはメイン・ウィンドウの親に当たります。メイン・ウィンドウの作業領域が PanedWindow です。

メニュー・バーには,次のエントリがあります。

ファイル・メニュー

ファイル・メニューには次のオプションが含まれています。

表示メニュー

表示メニューには,次のオプションが含まれています。

1つのウィンドウ内でもう1つ別のファイルを開こうとすると,アプリケーションは突然終了します。この場合,表示メニューは正常に作動しません。

B.4.12 Xmpiano プログラム例

V1.2

xmpiano プログラムは MIDI (Motif Interface to Dumb Instruments) アプリケーションの書き込み方法を示します。譜表は,楽譜を書くためにも,キーボードのためにも使用することができます。

ウィンドウの下部には,譜表上で使用するための音符のセットがあります。音符ボタンの1つを選択すると,それに従って使用される音符が変わります。選択した音符は,マウスのカーソルとして表示されます。

選択できる音符の種類は制限されたものですが,自然音階のほかに,シャープも選択可能です。プログラムのインタフェースは,フラットの音階をサポートしていません。譜表は,音符が書き加えられて右端を超えると自動的に延長されます。右端を超えたところにある音符は,必要に応じて楽譜のウィンドウをスクロールすることで表示できます。

このアプリケーションを使用するには,表示された譜表の上でマウスの右ボタンを押します。これによって次のメニュー項目が表示されます。

本バージョンでは,音符を操作して編曲することはできません。編曲するには,譜表を消去して再度入力するか,保管ファイルからデータを読み込みます。

音符の色を設定するには,アプリケーションの前景色を変更します。このためにはコマンド・ラインで -fg オプションを使用します。次の例を参照してください。


$ xmpiano :== $DECW$EXAMPLES:xmpiano
$ xmpiano -fg blue


前へ 次へ 目次 索引