下列程式碼建立了 TextField widget 以及RenderTable使用單一的 Rendition。包括XmNlayoutAttrObject以及 XmNlayoutModifier兩個虛擬資源都未被指定因此將預設為NULL。這個值表示與Rendition有關聯的版面佈局物件屬於預設語言環境,若其存在的話。
如果要順利執行這個範例,語言環境必須設定成具有整個字碼集是 ISO 8859-6 且其語言環境特定版面佈局模組可以支援 IMPLICIT_BASIC 演算法。 此Rendition的 LayoutObject的ImplicitAlg值已被修改,方式是透過Rendition的XmNlayoutModifier虛擬資源。
int n;
Arg args[10];
Widget w;
XmRendition rendition;
XmStringTag renditionTag;
XmRenderTable renderTable;
w = XmCreateTextField(parent, "text field", args, 0);
n = 0;
XtSetArg(args[n], XmNfontName, "-*-*-medium-r-normal-*-24-*-*-*-*-*-*-*");
n++;
XtSetArg(args[n], XmNfontType, XmFONT_IS_XOC); n++;
renditionTag = (XmStringTag) "ArabicShaped";
rendition = XmRenditionCreate(w, renditionTag, args, n);
renderTable =
XmRenderTableAddRenditions(NULL, &rendition, 1, XmREPLACE_MERGE);
XtVaSetValues(w, XmNrenderTable, renderTable, NULL);
....
n = 0;
XtSetArg(args[n], XmNlayoutModifier, "@ls implicitalg=basic");
n++;
XmRenditionUpdate(rendition, args, n);