在建立 render 表格之前,應用程式程式必須先建立至少一個該表格中的一個 rendition。 正如其名所示, XmRenderTableAddRenditions()函式也可用新的 rendition 來加強 render 表格。若要建立新的 render 表格,請呼叫XmRenderTableAddRenditions()函式,並以 NULL 引數來替換現有的 render 表格。
下列程式碼將使用 rendition,將 XmNfontType設定至 XmFONT_IS_XOC,來建立 render 表格。
int n;
Arg args[10];
Widget w;
XmString labelString;
XmRendition rendition;
XmStringTag renditionTag;
XmRenderTable renderTable;
/* alef lam baa noon taa - iso8859-6 */
labelString = XmStringGenerate("\307\344\310\346\312\", NULL
XmCHARSET_TEXT, "ArabicShaped");
w = XtVaCreateManagedWidget("a label", xmLabelWidgetClass, parent,
XmNlabelString, labelString,
XmNlabelType, XmSTRING,
NULL);
n = 0;
XtSetArg(args[n], XmNfontName, "-*-*-medium-r-normal-*-24-*-*-*-*-*-*-*");
n++;
XtSetArg(args[n], XmNfontType, XmFONT_IS_XOC); n++;
XtSetArg(args[n], XmNlayoutAttrObject, "ar"); n++;
XtSetArg(args[n], XmNlayoutModifier,
"@ls numerals=nominal:contextual, shapecharset=iso8859-6"); n++;
renditionTag = (XmStringTag) "ArabicShaped";
rendition = XmRenditionCreate(w, renditionTag, args, n);
renderTable =
XmRenderTableAddRenditions(NULL, &rendition, 1, XmREPLACE);
XtVaSetValues(w, XmNrenderTable, renderTable, NULL);