コンストレイントウィジェットはMotifではXmManagerメタクラスを継承した ウィジェットクラスとして実装されます。つまり次のような共通するリソース を持っているということです。
XmNbottomShadowColor/XmNbottomShadowPixmap
XmNforeground
XmNhelpCallback
XmNhighlightColor/XmNhighlightPixmap
XmNinitialFocus 子のうちデフォルトとするものを選ぶ
XmNnavigationType
XmNshadowThickness
XmNstringDirection 文字の方向(右から左/左から右)
XmNtopShadowColor/XmNtopShadowPixmap
XmNtraversalOn
XmNunitType
XmNuserData
説明のないリソースはこれまでに出てきたものです。
コンストレイントという意味は、このウィジェットに子ウィジェットを付け 加えていくときに何らかの規則が働くということです。適当に間をあけて並べ るとか、ウィジェットの寸法を外枠に合わせて調整するとかです。そのやり方 が違うものが別のクラスとして定義されています。
XmDrawingArea 描画用の平面
XmBulletinBoard 単純なジェオメトリー管理
- XmForm 相対位置でのジェオメトリー管理
- XmSelectionBox 項目選択用
- XmFileSelectionBox ファイル選択用
- XmMessageBox メッセージ確認専用
XmFrame 枠を付けるだけ
XmRowColumn 縦横に並べるジェオメトリー管理
XmPanedWindow 縦に並べる
XmScrolledWindow スクロール出来るウィンドウ
- XmMainWindow アプリケーション初期画面用
XmScale スライダー
それぞれに個別のリソースが追加されます。ドローイングエリアは図を表示す るためによく使います。リソースを見ておきましょう。
XmNexposeCallback ウィンドウの再描画が必要になった時のコールバック
XmNinputCallback キーボードやマウスの入力に対応するコールバック
XmNmarginHeight 子ウィジェットを置くときの高さ方向の間
XmNmarginWidth 子ウィジェットを置くときの横方向の間
XmNresizeCallback ウィンドウの寸法が変わった時のコールバック
XmNresizePolicy 親ウィンドウの寸法が変わったときどうするか。