/// <summary>フォントをオープンする。</summary> /// <remarks> /// <para> /// 指定するのは、フォント名。 /// indexは、ttc(true type collection=ttfが複数入ったフォントファイル)の /// ときに、何番目のものかを指定する。0番から始まる番号。 /// </para> /// <para> /// Windowsならフォルダは決まっているので、カレントとパスの通っている /// ところに無ければ、そこから取得する。 /// </para> /// <para> /// Linuxのほうは、カレント、あとパスの通っているところから取得する。 /// </para> /// </remarks> /// <example> /// 例) /// Windowsでは、 /// <list type=""> /// msgothic.ttc : MSゴシック /// msmincho.ttc : MS明朝 /// </list> /// <para> /// Linuxの場合、日本語フォントを用いる場合は、 /// GT書体 (東京大学多国語処理研究会) /// http://www.l.u-tokyo.ac.jp/GT/ /// などから持ってきて、msgothic.ttcやmsmincho.ttcとリネームして /// カレントフォルダに配置しておくようにしてください。</para> /// /// <para> /// フォントフォルダの検索に用いているAPIは、 /// win95の場合はIE4.0以降をインストールしてないとダメ /// win98以降は使える。 /// </para> /// </example> public YanesdkResult Load(string fontname, int fontsize, int index) { Release(); YanesdkResult hr = Load(FileSys.ReadRW(fontname), fontsize, index); if (hr != YanesdkResult.NoError) { // カレントにないので、SHGetSpecialFolderPath関数を使って // フォントディレクトリを取得して頑張ってみる。 string fontpath; switch (System.Platform.PlatformID) { case Yanesdk.System.PlatformID.Windows: fontpath = FileSys.ConcatPath(Environment.SystemDirectory, @"..\fonts"); break; case Yanesdk.System.PlatformID.Linux: fontpath = "/usr/share/fonts/ja/TrueType/"; break; case Yanesdk.System.PlatformID.MacOS: fontpath = "/System/Library/Fonts/"; break; default: throw null; } hr = Load(FileSys.ReadRW(FileSys.MakeFullName(fontpath, fontname)), fontsize, index); } if (hr == YanesdkResult.NoError) { fileName = fontname; // もし、ローダー以外からファイルを単に読み込んだだけならば、Reconstructableにしておく。 if (constructInfo == null) { constructInfo = new FontConstructAdaptor(fontname, fontsize, index); } } return(hr); }
protected override YanesdkResult OnReconstruct(object param) { FontConstructAdaptor info = param as FontConstructAdaptor; return(Load(info.FileName, info.FontSize, info.FontIndex)); }