XsmVideoMap(3X) — NEWS-OS Programmer’s Manual
名称
XsmVideoMap — VideoMap widget クラス
形式
#include <X11/Xsm/VideoMap.h>
解説
VideoMap は、OSF/Motif の VideoMap のサブクラスで、 さまざまな用途に容易に適用することができるビデオ動画の表示機能を 持った widget です。 VideoMap と同様に、グラフィックスを描画する必要のある時 (エクスポージャイベントあるいは widget のリサイズ) や widget が キーボードやマウスから入力を受け取った時に、 アプリケーションに通知します。 また、ビデオ動画の表示が開始されたり、停止された時にも、 コールバックが呼ばれます。 VideoMap の コールバックに対応して、外観と動作を必要に応じて定義するのは、 アプリケーションの責任となります。
VideoMap もまたコンポジット widget であり、複数の子 widget や gadget に対して最小限のジオメトリ管理をサポートする XmManager のサブクラスです。
クラス
VideoMap は Core、Composite、Constraint、XmManager のクラスから動作とリソースを継承します。
クラスポインタは xmVideoMapWidgetClass です。
クラス名は XsmVideoMap です。
新しいリソース
次の表は、データを指定するのに用いる widget リソースの一覧です。 継承されたクラスのリソースの値もまたこの widget の属性として 設定することができます。 .Xdefaults ファイルの中で名前やクラスでリソースを 参照する場合は、語頭の XsmN または XsmC を取り除いた 名称を用いてください。 .Xdefaults ファイルの中でリソースに定義された値を設定するには、 語頭の Xsm を取り除いた名称を用いてください。 (大文字と小文字は区別されませんが、語間のアンダースコアは必要です。) 「アクセス」欄の文字は、与えられたリソースを、widget 生成時に 設定できるか (C)、XtSetValues で 設定できるか (S)、XtGetValues で取り出すことが できるか (G)、あるいは利用できないか (N/A) を示します。
| VideoMap リソース一覧 | ||||
| 名称 | クラス | 型 | デフォルト | アクセス |
| XsmNmaxVideo | XsmCMaxVideo | int | dynamic | G |
| XsmNaccessVideo | XsmCAccessVideo | int | 0 | CSG |
| XsmNgrabVideo | XsmCGrabVideo | Boolean | False | CSG |
| XsmNrenderVideo | XsmCRenderVideo | Boolean | False | CSG |
| XsmNframeRate | XsmCFrameRate | int | 0 | CSG |
| XsmNvideoAdjust | XsmCVideoAdjust | int | 0 | CSG |
| XsmNvideoAreaX | XsmCVideoAreaX | int | 0 | CSG |
| XsmNvideoAreaY | XsmCVideoAreaY | int | 0 | CSG |
| AreaWidth XsmNvideoAreaWidth | AreaWidth XsmCVideoAreaWidth | int | 0 | CSG |
| AreaHeight XsmNvideoAreaHeight | AreaHeight XsmCVideoAreaHeight | int | 0 | CSG |
| XsmNvideoX | XsmCVideoX | int | 0 | CSG |
| XsmNvideoY | XsmCVideoY | int | 0 | CSG |
| XsmNvideoWidth | XsmCVideoWidth | int | 0 | CSG |
| XsmNvideoHeight | XsmCVideoHeight | int | 0 | CSG |
| Callback XsmNrenderVideoCallback | XsmCCallback | List XtCallbackList | NULL | C |
| Callback XsmNstopVideoCallback | XsmCCallback | List XtCallbackList | NULL | C |
XsmNmaxVideo
widget の作成時に、同時に表示できるビデオ動画数が設定されます。 この値は現在使用しているグラフィックボードに依存します。 NWB-254 が使用されている場合は、1 がセットされ、 それ以外のボードが使用されている場合には 0 がセットされます。 この値の設定および変更はできません。
XsmNaccessVideo
利用するビデオ動画表示機能の ID 番号をセットします。 設定できる値は、0 から XsmNmaxVideo - 1 間での値です。 ビデオ動画表示機能のないグラフィックボードの場合、0 がセットされます。
XsmNgrabVideo
XsmNaccessVideo で指定したビデオ動画表示機能をグラブするか どうかを指定します。 グラブを行なう場合は True を、 グラブを解除する場合は、False をセットします。 グラブするとほかの VideoMap からビデオ動画表示機能の 利用要求があっても、無視します。 また逆に、ほかの VideoMap が先にグラブしている場合には、 XtSetValues を使っても、この値を True にすることは できません。
XsmNrenderVideo
ビデオ動画の表示を行なうかどうかを指定します。 表示を行なう場合は True を、 表示を停止する場合には False をセットしてください。 ほかの VideoMap がビデオ動画表示機能をグラブしている場合には、 XtSetValues を使っても、この値を True にすることは できません。
XsmNframeRate
一秒間に表示するビデオ動画のフレーム数を指定します。 フレーム数に 0 を指定するとビデオ動画がフリーズされます。 設定できるフレーム数は、ビデオマップボードに依存します。 後述するコンビニエンス関数 XsmQueryVideo(3X) で調べることが できます。
XsmNvideoAdjust
このリソースを True にしてすると、ビデオ動画を widget ウィンドウの 中央に表示できる最大サイズで表示します。
XsmNvideoAreaX
ビデオ動画の表示エリアの左上隅(マージンを除く)の X 座標を、 表示する widget からの相対位置で指定します。 XsmNvideoAdjust が True の場合、 このリソース値は自動的に設定されます。
XsmNvideoAreaY
ビデオ動画の表示エリアの左上隅(マージンを除く)の Y 座標を、 表示する widget からの相対位置で指定します。 XsmNvideoAdjust が True の場合、 このリソース値は自動的に設定されます。
XsmNvideoAreaWidth
ビデオ動画を表示するエリアの幅をピクセルで指定します。 XsmNvideoAdjust が True の場合、 このリソース値は自動的に設定されます。
XsmNvideoAreaHeight
ビデオ動画を表示するエリアの高さをピクセルで指定します。 XsmNvideoAdjust が True の場合、 このリソース値は自動的に設定されます。
XsmNvideoX
ビデオ動画の表示エリアの左上隅にマップするビデオの X 座標を、 ビデオの左上隅からの相対位置で指定します。 XsmNvideoAdjust が True の場合、 このリソース値は 0 に設定されます。
XsmNvideoY
ビデオ動画の表示エリアの左上隅にマップするビデオの Y 座標を、 ビデオ動画の左上隅からの相対位置で指定します。 XsmNvideoAdjust が True の場合、 このリソース値は 0 に設定されます。
XsmNvideoWidth
ビデオ動画の幅をピクセル数で指定します。 設定できるビデオ動画の幅は、ビデオマップボードに依存します。 後述するコンビニエンス関数 XsmQueryVideo(3) で調べることが できます。 XsmNvideoAdjust が True の場合、 このリソース値は自動的に設定されます。
XsmNvideoHeight
ビデオ動画の高さをピクセル数で指定します。 設定できるビデオ動画の高さは、ビデオマップボードに依存します。 後述するコンビニエンス関数 XsmQueryVideo(3) で調べることが できます。 XsmNvideoAdjust が True の場合、 このリソース値は自動的に設定されます。
XsmNrenderVideoCallback
ビデオ動画が表示が開始された場合に呼び出されコールバック のリストを指定します。
コールバックのリーズンは XsmCR_RENDER_VIDEO です。
XsmNstopVideoCallback
ビデオ動画の表示が停止された場合に呼び出されるコールバック のリストを指定します。
コールバックのリーズンは XsmCR_STOP_VIDEO です。
継承されるリソース
VideoMap は、以下のスーパークラスから動作とリソースを継承します。 これらのリソースの完全な解説については、そのスーパークラスの マニュアルページを参照してください。
| DrawingArea リソース一覧 | ||||
| 名称 | クラス | 型 | デフォルト | アクセス |
| Callback XmNexposeCallback | XmCCallback | List XtCallbackList | NULL | C |
| Callback XmNinputCallback | XmCCallback | List XtCallbackList | NULL | C |
| XmNmarginHeight | XmCMarginHeight | short | 10 | CSG |
| XmNmarginWidth | XmCMarginWidth | short | 10 | CSG |
| Callback XmNresizeCallback | XmCCallback | List XtCallbackList | NULL | C |
| XmNresizePolicy | XmCResizePolicy | unsigned char | XmRESIZE_ANY | CSG |
| XmManager リソース一覧 | ||||
| 名称 | クラス | 型 | デフォルト | アクセス |
| ShadowColor XmNbottomShadowColor | XmCForeground | Pixel | 不定 | CSG |
| ShadowPixmap XmNbottomShadowPixmap | ShadowPixmap XmCBottomShadowPixmap | Pixmap | _PIXMAP XmUNSPECIFIED_PIXMAP | CSG |
| XmNforeground | XmCForeground | Pixel | 不定 | CSG |
| XmNhelpCallback | XmCCallback | kList XtCallbackList | NULL | C |
| Color XmNhighlightColor | XmCforeground | Pixel | 黒 | CSG |
| Pixmap XmNhighlightPixmap | Pixmap XmCHighlightPixmap | Pixmap | 不定 | CSG |
| Thickness XmNshadowThickness | Thickness XmCShadowThickness | short | 0 | CSG |
| Color XmNtopShadowColor | XmCBackground | Pixel | dynamic | CSG |
| Pixmap XmCTopShadowPixmap | Pixmap XmCTopShadowPixmap | Pixmap | _PIXMAP XmUNSPECIFIED_PIXMAP | CSG |
| XmMunitType | XmCUnitType | unsigned char | XmPIXELS | CSG |
| XmNuserData | XmCUserData | caddr_t | NULL | CSG |
| Composite リソース一覧 | ||||
| 名称 | クラス | 型 | デフォルト | アクセス |
| Position XmNinsertPosition | Position XmCInsertPosition | XmRFunction | NULL | CSG |
| Core リソース一覧 | ||||
| 名称 | クラス | 型 | デフォルト | アクセス |
| rators XmNaccelerators | rators XmCAccelerators | lations XtTranslations | NULL | CSG |
| Sensitive XmNancestorSensitive | XmCSensitive | Boolean | True | G |
| XmNbackground | XmCBackground | Pixel | 不定 | CSG |
| Pixmap XmNbackgroundPixmap | XmCPixmap | Pixmap | _PIXMAP XmUNSPECIFIED_PIXMAP | CSG |
| XmNborderColor | XmCBorderColor | Pixel | 黒 | CSG |
| XmNborderPixmap | XmCPixmap | Pixmap | _PIXMAP XmUNSPECIFIED_PIXMAP | CSG |
| XmNborderWidth | XmCBorderWidth | Dimension | 0 | CSG |
| XmNcolormap | XmCColormap | Colormap | FromParent XtCopyFromParent | CG |
| XmNdepth | XmCDepth | int | FromParent XtCopyFromParent | CG |
| Callback XmNdestroyCallback | XmCCallback | List XtCallbackList | NULL | C |
| XmNheight | XmCHeight | Dimension | 0 | CSG |
| WhenManaged XmNmappedWhenManaged | WhenManaged XmCMappedWhenManaged | Boolean | True | CSG |
| XmNscreen | XmCScreen | Pointer | XtCopyScreen | CG |
| XmNsensitive | XmCSensitive | Boolean | True | CSG |
| XmNtransactions | XmCTransactions | XtTransactions | NULL | CSG |
| XmNwidth | XmCWidth | Dimension | 0 | CSG |
| XmNx | XmCPosition | Position | 0 | CSG |
| XmNy | XmCPosition | Position | 0 | CSG |
コールバック情報
次の構造体がコールバックごとに返されます。
typedef struct
{
intreason ;
XEvent∗ event ;
Windowwindow ;
Windowparticipant ;
intframerate ;
Xrectanglevideo ;
Xrectanglevideo_area ;
intreserved[24] ;
} XsmVideoMapCallbackStruct ;
reasonコールバックが起動されたリーズンを示します。 リーズンには、XsmCR_RENDER_VIDEO と XsmCR_STOP_VIDEO があります。
eventコールバックを引き起こした XEvent を指します。
windowwidget ウィンドウに設定されます。
participant
reason が XsmCR_RENDER_VIDEO の場合、直前にビデオ動画表示機能を使用していた ウィンドウがセットされます。 reason が XsmCR_STOP_VIDEO の場合、次にビデオ動画表示機能を使用するウィンドウ がセットされます。 同じ VideoMap で、ビデオ動画のサイズ、表示位置が変更されると、 XsmCR_STOP_VIDEO と XsmCR_RENDER_VIDEO の 2 つのイベントが発生します。 このとき、participant は、window と同じ値がセットされます。
framerateビデオ動画のフレームレートがセットされます。 reason が XsmCR_RENDER_VIDEO の場合は、ビデオ動画を表示するために 設定された値がセットされます。 reason が XsmCR_STOP_VIDEO の場合は、ビデオ動画が停止される前に、 設定された値がセットされます。
videoビデオ動画の原点、サイズがセットされます。 reason が XsmCR_RENDER_VIDEO の場合は、ビデオ動画を表示するために 設定された値がセットされます。 reason が XsmCR_STOP_VIDEO の場合は、ビデオ動画が停止される前に 設定されていた値がセットされます。
video_area
ビデオ動画の表示エリアがセットされます。 reason が XsmCR_RENDER_VIDEO の場合は、ビデオ動画を表示するために 設定した値がセットされます。 reason が XsmCR_STOP_VIDEO の場合は、ビデオ動画が停止される前に 設定されていた値がセットされます。
動作
VideoMap は、DrawingArea の動作を継承します。
デフォルトのトランスレーション
VideoMap は、DrawingArea のデフォルトのトランスレーションを継承します。
キーボードトラバース
キーボードトラバースについての情報は、XmManager(3XM) のマニュアルページと、その「動作」と「デフォルトのトランスレーション」のセクションを参照してください。
制限
ビデオ動画が停止された場合、ビデオ動画の最後のシーンが静止がとして、 ウィンドウ上に残ります。このイメージをクリアしたり、バッキングストアー を行なうのは、アプリケーションの責任となります。
関連項目
XmDrawingArea(3XM), Composite(3XM), Constraint(3XM), Core(3XM), XmManager(3XM), XsmCreateVideoMap(3X), XsmQueryVideo(3X), XsmGetVideoStatus(3X)
NEWS-OSRelease 4.1C