以下に示すプログラム例では、TextField ウィジェットと RenderTable が 1 個の Rendition により作成されます。疑似リソース XmNlayoutAttrObject と XmNlayoutModifier は両方とも未指定の状態になっているため、デフォルト値 NULL が使用されます。このことは Rendition に関連付けされた LayoutObject が存在する場合、その LayoutObject がデフォルトのロケールのものであることを示しています。
サンプルプログラムが正しく機能するためには、使用するロケールのコードセットが 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);