表 2–1 にフォント・セットとフォント・リストの形式を示します。
表 2–1 フォント・セットおよびフォント・リストの形式|
リソース型 |
XLFD セパレータ |
終止符 |
FontEntry セパレータ |
|---|---|---|---|
|
*fontSet: (Xlib) |
カンマ |
なし |
なし |
|
*fontList : (Motif) |
セミコロン |
コロン |
カンマ |
app_foo*fontList: -adobe-courier-medium-r-normal--24-240-75-75-m-150-*:
上記の fontList は、ユーザのロケールに適切なものとして、1 つ以上の 24 ポイント Adobe Courier フォントから成るフォント・セットを指定しています。
app_foo*fontList: -adobe-courier-medium-r-normal--18-*; *-gothic-*-18-*:
この fontList は、ユーザのデータの一部の文字には 18 ポイント Courier フォントから成るフォント・セットを指定し、その他の文字には 18 ポイント Gothic フォントを指定しています。
Motif ベースのアプリケーションは、フォント・リストに入っているフォント・セットに直接アクセスする必要が起こる場合があります。たとえば、DrawingArea ウィジェットを使用するアプリケーションは、描画したイメージの 1 つにラベルを付けたいことがあります。次のコード例は、フォント・リストからのフォント・セットの抽出方法を示しています。この例では、タグ XmFONTLIST_DEFAULT_TAG でフォント・セットを探します。XmFONTLIST_DEFAULT_TAG が「ロケールの codeset」を指すためです。アプリケーションでは、ローカライズされたデータを含むすべての文字列に XmFONTLIST_DEFAULT_TAG を使用してください。
XFontSet FontList2FontSet( XmFontList fontlist)
{
XmFontContext context;
XmFontListEntry next_entry;
XmFontType type_return = XmFONT_IS_FONT;
char* font_tag;
XFontSet fontset;
XFontSet first_fontset;
Boolean have_font_set = False;
if ( !XmFontListInitFontContext(&context, fontlist)) {
XtWarning(“fl2fs: can't create fontlist context...”);
exit 0;
}
while ((next_entry = XmFontListNextEntry(context) != NULL) {
fontset = (XFontSet) XmFontListEntryGetFont(next_entry,
&type_return);
if (type_return == XmFONT_IS_FONTSET ) {
font_tag = XmFontListEntryGetTag(next_entry);
if (!strcmp(XmFONTLIST_DEFAULT_TAG, font_tag) {
return fontset;
}
/* Remember the 1st fontset, just in case... */
if (!have_font_set) {
first_fontset = fontset;
have_font_set = True;
}
}
}
if (have_font_set)
return first_fontset;
return (XFontSet)NULL;
}