7ab #include #include #include #include #include #include void ButtonCB(Widget w, XtPointer client_data, XmPushButtonCallbackStruct *cbs) { printf("Don't push me!\n"); } int main(int argc, char **argv) { Widget top, form, text, button; XtAppContext app; Arg args[20]; int n; char mbs[256]; wchar_t *wcs; int len; XtSetLanguageProc(NULL, NULL, NULL); top = XtVaAppInitialize(&app, "UtfTest", NULL, 0, &argc, argv, NULL, NULL); form = XtVaCreateManagedWidget("form", xmFormWidgetClass, top, XmNmarginWidth, 2, XmNmarginHeight, 2, NULL); button = XtVaCreateManagedWidget("button", xmPushButtonWidgetClass, form, XmNleftAttachment, XmATTACH_FORM, XmNleftOffset, 20, XmNbottomAttachment, XmATTACH_FORM, XmNbottomOffset, 8, NULL); n = 0; XtSetArg(args[n], XmNwidth, 640); n++; XtSetArg(args[n], XmNheight, 480); n++; XtSetArg(args[n], XmNeditMode, XmMULTI_LINE_EDIT); n++; XtSetArg(args[n], XmNwordWrap, True); n++; XtSetArg(args[n], XmNtopAttachment, XmATTACH_FORM); n++; XtSetArg(args[n], XmNleftAttachment, XmATTACH_FORM); n++; XtSetArg(args[n], XmNrightAttachment, XmATTACH_FORM); n++; XtSetArg(args[n], XmNbottomAttachment, XmATTACH_WIDGET); n++; XtSetArg(args[n], XmNbottomWidget, button); n++; XtSetArg(args[n], XmNbottomOffset, 10); n++; text = XmCreateScrolledText(form, "text", args, n); XtManageChild(text); XtAddCallback(button, XmNactivateCallback, (XtCallbackProc)ButtonCB, (XtPointer)text); XtRealizeWidget(top); strcpy(mbs, "Lågőþ"); len = mbstowcs(NULL, mbs, 0) + 1; wcs = (wchar_t*)malloc(len * sizeof(wchar_t)); mbstowcs(wcs, mbs, len); XmTextInsertWcs(text, 0, wcs); XtAppMainLoop(app); } . 0