國際語言環境指南

編輯 Rendition

下列程式碼建立了 TextField widget 以及RenderTable使用單一的 Rendition。包括XmNlayoutAttrObject以及 XmNlayoutModifier兩個虛擬資源都未被指定因此將預設為NULL。這個值表示與Rendition有關聯的版面佈局物件屬於預設語言環境,若其存在的話。

如果要順利執行這個範例,語言環境必須設定成具有整個字碼集是 ISO 8859-6 且其語言環境特定版面佈局模組可以支援 IMPLICIT_BASIC 演算法。 此Rendition LayoutObjectImplicitAlg值已被修改,方式是透過RenditionXmNlayoutModifier虛擬資源。

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);