國際語言環境指南

在應用程式中建立 Render 表格

在建立 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);