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 */
}