Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ MrmFetchWidgetOverride(3XM) — NEWS-os 4.1C

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

MrmFetchWidget(3XM)

MrmFetchWidgetOverride(3XM)  —  NEWS-OS Programmer’s Manual

名称

MrmFetchWidgetOverride − インデックスのついた (uil 名のついた) アプリケーション widget をフェッチします。 uil でこのアプリケーション widget に指定した引数はオーバーライドされます。

形式

#include <Xm/Intrinsics>
#include <Mrm/MrmPublic.h>
Cardinal MrmFetchWidgetOverride(hierarchy_id, index, parent_widget, override_name,

override_args, override_num_args, widget, class)

MrmHierarchy hierarchy_id;
String index;
Widget parent_widget;
String override_name;
ArgList override_args;
Cardinal override_num_args;
Widget ∗widget;
MrmType ∗class;

解説

MrmFetchWidgetOverride 関数は MrmFetchWidget の拡張版です。 MrmFetchWidget と異なるのは、これを呼び出すと widget の名称や引数をオーバーライドできるという点です。 それに対して MrmFetchWidget は uid ファイルかまたはデフォルトの機構のうちの 1 つからそれらをとってきます。 すなわち、オーバーライド引数リストは uid ファイルで定義された引数に限定されないということです。 オーバーライド引数はこの関数でフェッチされて返される widget のみに適用されます。 その子 (サブツリー) は オーバーライドパラメータを受け取りません。

hierarchy_idインターフェース定義を含む uid 階層構造の ID を指定します。 hierarchy_id は MrmOpenHierarchy を呼び出したときのリターン値です。

indexフェッチする widget の uil 名を指定します。

parent_widget親 widget の ID を指定します。

override_namewidget 名をオーバーライドする名称を指定します。 widget 名をオーバーライドしない場合は、この値に NULL を使ってください。

override_argsオーバーライド引数リストを、XtCreateWidget で与えられるのとまったく同様に (conversion complete など) 指定します。 引数リストをオーバーライドしない場合は、この値に NULL を使ってください。

override_num_args
override_args の引数の数を指定します。

widget生成された widget の ID を返します。 MrmFetchWidgetOverride を呼び出したときにこれが NULL でなかった場合、MRM は widget がすでに生成されたいるものとみなし、MrmFetchWidgetOverride は MrmFAILURE を返します。

classMRM の widget クラスを識別するクラスコードを返します。 たとえば、メインウィンドウ widget の widget クラスコードは MRMwcMainWindow です。 MRM  widget クラスコードを識別するリテラルは Mrm.h で定義されています。

リターン値

この関数は、状態を示す以下の定数のうちのいずれかを返します。

MrmSUCCESS関数が正常に実行された。

MrmNOT_FOUND
widget が uid 階層構造の中に見つからなかった。

MrmFAILURE関数の実行が失敗した。

関連事項

MrmFetchWidget(3XM)

NEWS-OSRelease 4.1C

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026