XRT/field FAQ
picklistの背景/前景色はどのように変更しますか?
XmNxrtFldMenuListを使用してpicklistのウィジェットIDを取得し、XmNforeground / XmNbackground を指定したい色にセットしてください。
フィ-ルド・ウィジェットのスクロ-ルバ-の表示はどのようにコントロ-ルしますか?
XRT/fieldでScrollBarのサイズを変更することはできませんので、Motifのスクロ-ル・ウィンドウを作成し、XRT/fieldをその子ウィジェットとしてください。 スクロ-ル・ウィンドウがXRT/fieldのスクロ-ルをコントロ-ルすることができます。 ScrollBarのウィジェットIDはXtGetValues()で取得することができます。(下記プログラム参照)
#include <Xm/Xm.h> #include <Xm/Text.h> #include <Xm/RowColumn.h> #include <Xm/XrtField.h> #include <Xm/ScrolledW.h> main(int argc, char *argv[]) { XtAppContext app_context; Widget toplevel, simple, vertbar; Widget temp; Widget sw; toplevel = XtVaAppInitialize(&app_context, "Example", NULL, 0, &argc, argv, NULL, NULL); sw = XtVaCreateManagedWidget("scrolled window", xmScrolledWindowWidgetClass, toplevel, XmNscrollingPolicy, XmAUTOMATIC, XmNwidth, 280, XmNheight, 60, NULL); XtRealizeWidget(toplevel); XtAppMainLoop(app_context); }
YYMMDD が、デ-タフィ-ルドでFormatStringとして機能しません。
YY、MM、DDはそれぞれ離してください。(P80参照)
フィ-ルドに空白を指定することはできますか?
XmNxrtFldAllowNullをTrueにセットしてください。
デ-タフィ-ルドに空白を指定できません。
XmNxrtFldAllowNullがTrueでも、FldMaskを使用していると、デ-タフィ-ルドは、エラ-としてしまいます。 " / / "または " : "等のフォ-マットがあると、フィ-ルドは、NULLではないからです。 次のようにして処理してください。
XtAddCallback(field, XmNxrtFldErrorCallback, errorCB, NULL); ... void errorCB(Widget w, XtPointer client_data, XrtFldErrorCallbackStruct *ecs) { if (strcmp(ecs->text->ptr, " / / :") == 0 ) ecs->error = XRTFLD_ERROR_NONE; /* turn the error off */ }