日本-日本語 |
|
|
|
OpenVMS マニュアル |
|
日本語 OpenVMS
|
目次 | 索引 |
SMG$CHANGE_VIEWPORT |
Change the Viewport Associated with a Virtual Display ルーチンは,仮想ディスプレイ内の既存のビューポートのサイズを変更します。ビューポートに現在表示されているテキストは,新しいサイズに収まるように再マップされます。
SMG$CHANGE_VIEWPORT display-id [,viewport-row-start] [,viewport-column-start] [,viewport-number-rows] [,viewport-number-columns]
OpenVMS 用法 cond_value データ型 longword (unsigned) アクセス write only 受け渡し方 by value
display-id
OpenVMS 用法 identifier データ型 longword (unsigned) アクセス read only 受け渡し方 by reference
変更するビューポートを含む仮想ディスプレイの識別子。display-id 引数は,この識別子を格納した符号なしロングワードのアドレスです。viewport-row-start
OpenVMS 用法 longword_signed データ型 longword (signed) アクセス read only 受け渡し方 by reference
変更後のビューポートの 1 行目となる仮想ディスプレイの行番号(省略可能)。 viewport-row-start 引数は行番号を格納した符号付きロングワードのアドレスです。この引数を省略した場合には,現在の viewport-row-start 引数の値が使用されます。viewport-column-start
OpenVMS 用法 longword_signed データ型 longword (signed) アクセス read only 受け渡し方 by reference
変更後のビューポートで1カラム目となる仮想ディスプレイ内のカラム番号(省略可能)。 viewport-column-start 引数は,カラム番号を格納した符号付きロングワードのアドレスです。この引数を省略した場合には,現在の viewport-column-start 引数の値が使用されます。viewport-column-start 引数で指定されたカラムが,全角文字の右半分であった場合には,そのカラムは表示されません。
viewport-number-rows
OpenVMS 用法 longword_signed データ型 longword (signed) アクセス read only 受け渡し方 by reference
変更後のビューポートの行数(省略可能)。 viewport-number-rows 引数は,行数を格納した符号付きロングワードのアドレスです。この引数を省略した場合には,現在の viewport-number-rows 引数の値が使用されます。viewport-number-columns
OpenVMS 用法 longword_signed データ型 longword (signed) アクセス read only 受け渡し方 by reference
変更後のビューポートのカラム数(省略可能)。 viewport-number-columns 引数は,カラム数を格納した符号付きロングワードのアドレスです。この引数を省略した場合には,現在の viewport-number-columns 引数の値が使用されます。
SMG$CHANGE_VIEWPORT ルーチンを使用すれば,仮想ディスプレイ内の既存のビューポートのサイズを変更できます。このビューポート内に現在表示されているテキストは,新しいサイズに収まるように再マッピングされ,viewport-row-start 引数と viewport-column-start 引数によって指定される位置から始まります。この位置はまた,仮想カーソルの新しい位置も指定します。viewport-column-start 引数で指定されたカラムが,全角文字の右半分であった場合には,そのカラムは表示されません。また,ビューポートが全角文字の左半分で終了した場合にも,そのカラムは表示されません。
SS$_NORMAL 正常終了。 SMG$_INVARG 行数またはカラム数が 0 より小さい値です。 SMG$_INVCOL 指定されたカラム番号に誤りがあります。 SMG$_INVDIS_ID display-id 引数に誤りがあります。 SMG$_INVROW 指定された行番号に誤りがあります。 SMG$_NO_WINASSOC 仮想ディスプレイにビューポートが対応づけられていません。 SMG$_WRONUMARG 引数の数が誤っています。
#1 |
---|
C+ C This FORTRAN example program demonstrates the use of C SMG$CHANGE_VIEWPORT. C- IMPLICIT INTEGER (A-Z) INCLUDE '($SMGDEF)' C Create the virtual display. Give it a border. ROWS = 9 COLUMNS = 50 STATUS = SMG$CREATE_VIRTUAL_DISPLAY 1 (ROWS, COLUMNS, DISPLAY1,SMG$M_BORDER ) IF (.NOT. STATUS) CALL LIB$SIGNAL(%val(STATUS)) C Create the pasteboard. STATUS = SMG$CREATE_PASTEBOARD (PASTE1) IF (.NOT. STATUS) CALL LIB$SIGNAL(%val(STATUS)) C Put data in the virtual display. STATUS = SMG$PUT_CHARS ( DISPLAY1, 1 'This is row 1 in a virtual display with 9 rows.',1,1) IF (.not. STATUS) CALL LIB$SIGNAL(%val(STATUS)) STATUS = SMG$PUT_CHARS ( DISPLAY1, 1 'This is row 2 in a virtual display with 9 rows.',2,1) IF (.not. STATUS) CALL LIB$SIGNAL(%val(STATUS)) STATUS = SMG$PUT_CHARS ( DISPLAY1, 1 'This is row 3 in a virtual display with 9 rows.',3,1) IF (.not. STATUS) CALL LIB$SIGNAL(%val(STATUS)) STATUS = SMG$PUT_CHARS ( DISPLAY1, 1 'This is row 4 in a virtual display with 9 rows.',4,1) IF (.not. STATUS) CALL LIB$SIGNAL(%val(STATUS)) STATUS = SMG$PUT_CHARS ( DISPLAY1, 1 'This is row 5 in a virtual display with 9 rows.',5,1) IF (.not. STATUS) CALL LIB$SIGNAL(%val(STATUS)) STATUS = SMG$PUT_CHARS ( DISPLAY1, 1 'This is row 6 in a virtual display with 9 rows.',6,1) IF (.not. STATUS) CALL LIB$SIGNAL(%val(STATUS)) STATUS = SMG$PUT_CHARS ( DISPLAY1, 1 'This is row 7 in a virtual display with 9 rows.',7,1) IF (.not. STATUS) CALL LIB$SIGNAL(%val(STATUS)) STATUS = SMG$PUT_CHARS ( DISPLAY1, 1 'This is row 8 in a virtual display with 9 rows.',8,1) IF (.not. STATUS) CALL LIB$SIGNAL(%val(STATUS)) STATUS = SMG$PUT_CHARS ( DISPLAY1, 1 'This is row 9 in a virtual display with 9 rows.',9,1) IF (.not. STATUS) CALL LIB$SIGNAL(%val(STATUS)) C Paste the virtual display. STATUS = SMG$COPY_VIRTUAL_DISPLAY(DISPLAY1,DISPLAY2) IF (.NOT. STATUS) CALL LIB$SIGNAL(%VAL(STATUS)) STATUS = SMG$LABEL_BORDER (DISPLAY1, 'Full Display',,,SMG$M_BOLD) IF (.NOT. STATUS) CALL LIB$SIGNAL(%VAL(STATUS)) STATUS = SMG$LABEL_BORDER (DISPLAY2, 'Viewport',,,SMG$M_BOLD) IF (.NOT. STATUS) CALL LIB$SIGNAL(%VAL(STATUS)) STATUS = SMG$PASTE_VIRTUAL_DISPLAY ( DISPLAY1, PASTE1, 2, 10) IF (.NOT. STATUS) CALL LIB$SIGNAL(%VAL(STATUS)) STATUS = SMG$PASTE_VIRTUAL_DISPLAY ( DISPLAY2, PASTE1, 13, 10) IF (.NOT. STATUS) CALL LIB$SIGNAL(%VAL(STATUS)) CALL LIB$WAIT (4.0) STATUS = SMG$CREATE_VIEWPORT ( DISPLAY2, 2, 1, 5, 21) IF (.NOT. STATUS) CALL LIB$SIGNAL(%VAL(STATUS)) CALL LIB$WAIT (4.0) STATUS = SMG$PASTE_VIRTUAL_DISPLAY ( DISPLAY2, PASTE1, 13, 10) IF (.NOT. STATUS) CALL LIB$SIGNAL(%VAL(STATUS)) CALL LIB$WAIT (4.0) STATUS = SMG$CHANGE_VIEWPORT ( DISPLAY2, 4, 8, 3, 15) IF (.NOT. STATUS) CALL LIB$SIGNAL(%VAL(STATUS)) call lib$wait (4.0) END |
この FORTRAN の例で生成される出力は以下の図に示すとおりです。 図 8-1 では,プログラムは初期仮想ディスプレイを, "Viewport" というラベルの付いた 2 番目の仮想ディスプレイにコピーしています。
図 8-1 仮想ディスプレイがペーストされた後に生成される出力
2 つの同じ仮想ディスプレイをペーストした後,プログラムは 2 番目の(コピーした) 仮想ディスプレイにビューポートを作成します。2 番目のディスプレイが "再ペースト" された後,ビューポート内の一部だけが表示される状態になります。この結果は 図 8-2 に示されています。
図 8-2 ビューポートを作成した後に生成される出力
SMG$CHANGE_VIEWPORT ルーチンを呼び出すことにより,仮想ディスプレイの中でビューポートを通じて表示される部分は変化します。これは 図 8-3 に示すとおりです。
図 8-3 SMG$CHANGE_VIEWPORT ルーチンを呼び出した後に生成される出力
SMG$CHANGE_VIRTUAL_DISPLAY |
Change Virtual Display ルーチンは,仮想ディスプレイのサイズ,境界,ビデオ属性を変更します。
SMG$CHANGE_VIRTUAL_DISPLAYdisplay-id [,number-of-rows] [,number-of-columns] [,display-attributes] [,video-attributes] [,character-set]
OpenVMS 用法 cond_value データ型 longword (unsigned) アクセス write only 受け渡し方 by value
display-id
OpenVMS 用法 identifier データ型 longword (unsigned) アクセス read only 受け渡し方 by reference
属性を変更する仮想ディスプレイの識別子。 display-id 引数は,仮想ディスプレイの識別子を格納した符号なしロングワードのアドレスです。この引数は SMG$CREATE_VIRTUAL_DISPLAY ルーチンによって与えられます。
number-of-rows
OpenVMS 用法 longword_signed データ型 longword (signed) アクセス read only 受け渡し方 by reference
仮想ディスプレイの新しい行数。 number-of-rows 引数は,仮想ディスプレイの行数を格納した符号付きロングワードのアドレスです。number-of-columns
OpenVMS 用法 longword_signed データ型 longword (signed) アクセス read only 受け渡し方 by reference
仮想ディスプレイの新しいカラム数。 number-of-columns 引数は,仮想ディスプレイのカラム数を格納した符号付きロングワードのアドレスです。display-attributes
OpenVMS 用法 mask_longword データ型 longword (unsigned) アクセス read only 受け渡し方 by reference
仮想ディスプレイの属性。 display-attributes 引数は,仮想ディスプレイの属性を格納したロングワード・ビット・マスクのアドレスです。この引数に対して指定できる値は次のとおりです。
SMG$M_BORDER 境界付き仮想ディスプレイを指定します。省略した場合は,仮想ディスプレイに境界は表示されません。 SMG$M_BLOCK_BORDER ブロック形の境界付き仮想ディスプレイを指定します。省略した場合は,仮想ディスプレイに境界は表示されません。 SMG$M_DISPLAY_CONTROLS 漢字ターミナルがグラフィック文字をサポートする場合は,キャリッジ・リターンやライン・フィードなどの制御文字をグラフィック文字として表示することを指定します。 SMG$M_TRUNC_ICON 仮想ディスプレイの幅をこえる行を切り捨てた際に,その場所にアイコン(通常は菱形)を表示することを指定します。
video-attributes
OpenVMS 用法 mask_longword データ型 longword (unsigned) アクセス read only 受け渡し方 by reference
仮想ディスプレイの出力に適用される属性のシステム設定値。 video-attributes 引数は,ビデオ属性マスクを格納した符号なしロングワードのアドレスです。特定の出力ルーチンを呼び出さない限り,仮想ディスプレイのすべての出力に適用されます。たとえば,属性を指定して SMG$PUT_CHARS を呼び出した場合は,レンディションのシステム設定値は無効になります。
この引数に対して指定できるビットは次のとおりです。
SMG$M_BLINK 点滅する文字を表示します。 SMG$M_BOLD 通常の輝度より高い輝度で文字を表示します。 SMG$M_REVERSE 文字を反転表示します。つまり,仮想ディスプレイの現在の省略時の属性とは逆の状態で表示します。 SMG$M_UNDERLINE 下線を付けた文字を表示します。 SMG$M_INVISIBLE 表示されない文字を指定します。つまり,仮想ディスプレイに存在していても,ペーストボードに表示されない文字を指定します。 SMG$M_USER1 から SMG$M_USER8 ユーザ定義属性を表示します。
1回の呼び出しで複数の属性の組み合わせを指定できます。他のビットはすべて HP が使用するために予約されており,0 でなければなりません。
character-set
OpenVMS 用法 longword_unsigned データ型 longword (unsigned) アクセス read only 受け渡し方 by reference
仮想ディスプレイに対する文字集合のシステム設定値。 character-set 引数は,文字集合指定子を格納した符号なしロングワードのアドレスです。
値 | 文字集合 (コードセット) |
---|---|
SMG$C_ASCII | ASCII文字集合 |
SMG$C_SPEC_GRAPHICS | DEC特殊文字集合 |
SMG$C_SUPPLEMENTAL | 補助文字集合 1 |
SMG$C_KANJI | DEC漢字文字集合 |
SMG$C_JIS_KANA | JISカタカナ文字集合 |
SMG$C_SDK | Super DEC 漢字コードセット |
SMG$CHANGE_VIRTUAL_DISPLAY ルーチンは,既存の仮想ディスプレイのサイズまたはシステム設定値の属性を変更します。仮想ディスプレイのサイズを変更する場合は,日本語 SMG は新しいサイズ(1行目/1カラム目から始まる)に適合するように,仮想ディスプレイに関連するテキストを再マップします。仮想ディスプレイの新しいサイズが前のサイズより小さい場合は,一部のテキストが切り捨てられる可能性があります。全角文字の右半分が切り捨てられた場合は,その文字の左半分は未定義文字になります。仮想ディスプレイの新しいサイズが前のサイズより大きい場合は,テキストの右側に空白が挿入されることがあります。
仮想ディスプレイのサイズを変更した場合は,仮想ディスプレイの仮想カーソルは, 1行目,1カラム目に移動されます。ラベル付き境界を仮想ディスプレイで使用する際に,サイズの変更された仮想ディスプレイ上にラベルを表示できない場合は,ラベルは削除されます。
オリジナルの SMG ルーチンは,ASCII文字集合と DEC特殊文字集合のみをサポートします。日本語 SMG ではこの他に SMG$C_SUPPLEMENTAL,SMG$C_KANJI,SMG$C_JIS_KANA, SMG$C_SDK が指定できます。
SS$_NORMAL 正常終了。 LIB$_INSVIRMEM 要求されたバッファを再び割り当てるために必要な仮想メモリが不足しています。 SMG$_INVARG ビデオ属性または仮想ディスプレイの属性に誤りがあります。 SMG$_INVDIS_ID display-id 引数が誤っています。 SMG$_WRONUMARG 引数の数が誤っています。
目次 | 索引 |
|