表 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; }