Home Home Company Information Email 英語

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