diff --git a/README.md b/README.md index 045f176a8..02ce17f1e 100644 --- a/README.md +++ b/README.md @@ -1,63 +1,98 @@ -# Gnuplot 4.4.3 for Windows CE Rev. 2 - -![](image.png) - -This is a *Windows CE only partial* port of Gnuplot 4.4.3. This port is as destructive as dropping support for environments except for Windows Mobile 5.0 Pocket PC SDK on Visual Studio 2005/2008, and implementing only basic features. This is a slight update to the version made by [skawamoto0](https://github.com/skawamoto0) distributed [here](https://kawamoto.no-ip.org/henteko/myapp/gplotwce4431.zip), incorporating some fixes and small improvements. - -## How To Run - -Download from [Releases](../../releases), extract it into a ASCII-only path (the top folder is recommended), and run `wgnuplot.exe` on your device. - -The console screen expects "MS Gothic" font to be available. While this app should run without it, you might face some issues in that case. - -`wgnuplot.ini` is not supported. - -The charset recognized for this software is UTF-8, thus write `.plt` file in UTF-8. You can use non-ASCII characters on the console although they don't show up while on console. - -You must set a font with required glyphs with commands like `set title font` to correctly render a graph contains non-ASCII characters. +# Gnuplot 4.4.3 for Windows CE Rev. 3 + +

+ + +

+ +This is a _Windows CE only partial_ port of Gnuplot 4.4.3. This port is as destructive as dropping the support for environments other than Windows Mobile 5.0 Pocket PC SDK on Visual Studio 2005/2008, and implementing only basic features. This is a slight update incorporating some fixes and small improvements to the [Rev. 1](https://kawamoto.no-ip.org/henteko/myapp/gplotwce4431.zip) made by [Suguru Kawamoto](https://github.com/skawamoto0). + +## How To Use + +Download from [Releases](../../releases), extract it into a ASCII-only path (the top folder is recommended), and run `wgnuplot.exe` on your device. Notable things about this port follows: + +- Devices with Windows CE 5.0 or later OS and Armv5 CPU are supported +- Default font for the console screen is `MS Gothic` +- On console and graph screens, you can change the font from the right-click menu + - Use `app` key on a screen keyboard app on devices where right-clicking is not possible + - If the console screen is not displayed correctly, use this feature to change the font +- Font anti-aliasing is enabled on console and graph screens +- Character encoding is UTF-8 + - You can use international characters on the menu bar and in `.plt` files, by making them in UTF-8 + - You can use non-ASCII characters on the console although they don't show up while on there + - To correctly render a graph contains non-ASCII characters, you must set a font that has needed glyphs +- Fixed an issue from Rev. 1 where the overflowed area of the menu bar did not appear when the width of the console screen was narrow, even if the window was expanded +- Fixed some warnings from Rev. 1 in the source code + +Following features which were not available in Rev. 1, are still not supported: + +- Current directory +- Outputting a graph to a file +- Printing +- Selecting a different output device +- Opening a DOS window +- Help +- Dump +- `wgnuplot.ini` +- Buttons under the menu bar ## How To Build -Use the `.sln` file located in `vs2005`/`vs2008` on Visual Studio 2005/2008. "Smart Device Programability" and [Windows Mobile 5.0 Pocket PC SDK](https://www.microsoft.com/en-us/download/details.aspx?id=42) must be installed to build this project. +Use the `.sln` file located in `vs2005`/`vs2008` on Visual Studio 2005/2008. "Smart Device Programability" and [Windows Mobile 5.0 Pocket PC SDK](https://www.microsoft.com/en-us/download/details.aspx?id=42) must be installed to build this project. Also, you must specify a `commdlg.lib` file which comes with a Windows CE SDK (Windows CE 5.0 recommended, which is available from [Microsoft](https://www.microsoft.com/en-us/download/details.aspx?id=17310) and [Toradex](https://docs.toradex.com/102479)) at "Linker > Input > Additional Dependencies" in the Project Properties dialog. This file is usually present in `Lib\ARMV4I` in the SDK. ## License -My ([watamario15](https://github.com/watamario15)'s) modifications are provided as public domain. If you want more formal license, I will license my modifications under the terms of the [CC0-1.0](https://creativecommons.org/publicdomain/zero/1.0/) license. - -However, this work is just a modification of another piece of software. Carefully read original documents (especially [Copyright](Copyright)) and [skawamoto0's readme](readme-kawamoto.txt) before using this software. +My ([watamario15](https://github.com/watamario15)'s) modifications are provided as public domain. If you want more formal license, I will license my modifications under the terms of the [CC0-1.0](https://creativecommons.org/publicdomain/zero/1.0/) license. However, this work is just a modification of another piece of software. Carefully read original documents (especially [Copyright](Copyright)) and [Suguru's readme](readme-kawamoto.txt) before using this software. My contact information can be obtained by invoking the `git log` command within the Git repository. ----- +--- -# Gnuplot 4.4.3 for Windows CE Rev 2 +# Gnuplot 4.4.3 for Windows CE Rev. 3 -![](image-ja.png) +

+ + +

-これは **Windows CE 専用で部分的な** Gnuplot 4.4.3 の移植版です。破壊的な移植なので、Visual Studio 2005/2008 上の Windows Mobile 5.0 Pocket PC SDK のみに対応し、実装されている機能も最低限です。[skawamoto0](https://github.com/skawamoto0) 氏が[こちら](https://kawamoto.no-ip.org/henteko/myapp/gplotwce4431.zip)で公開されているものに対し、修正や少しの改良を施した版となります。 +これは **Windows CE 専用で部分的な** Gnuplot 4.4.3 の移植版です。破壊的な移植なので、Visual Studio 2005/2008 上の Windows Mobile 5.0 Pocket PC SDK のみに対応し、実装されている機能も最低限です。[川本優](https://github.com/skawamoto0)氏の [Rev. 1](https://kawamoto.no-ip.org/henteko/myapp/gplotwce4431.zip) に対し、修正や少しの改良を施した版となります。 ## 実行方法 -[Releases](../../releases) からダウンロード・展開し、日本語などの非 ASCII 文字を含まない場所(最上層を推奨)に配置します。その後、`wgnuplot.exe` を直接起動します。日本語を含むパスに配置できない制約から「アプリ」フォルダに配置できないので、辞書アプリからの起動には対応しません。Explorer や ceOpener などを用いてください。 - -コンソール画面には「MS Gothic」フォントを用いるように指定しているので、このフォントを導入した環境での利用を推奨します。 - -日本語化済みの環境では、元の `wgnuplot.mnu` を削除・移動・改名などした上で `wgnuplot-ja.mnu` を `wgnuplot.mnu` に改名することで、メニューを日本語表示にできます。 - -`wgnuplot.ini` の読み込みには対応しません。 - -このソフトウェアは UTF-8 でファイルの入出力を行います。そのため、`.plt` ファイルは UTF-8 で作成してください。コンソール画面での直接入力でも日本語等を使用できますが、コンソール上では ASCII 文字のみが表示されます。 - -グラフにおいて日本語などの非 ASCII 文字を表示する場合は、`set title font` コマンドなどを用いて必要なグリフを持つフォントを指定する必要があります。 +[Releases](../../releases) からダウンロード・展開し、日本語などの非 ASCII 文字を含まない場所(最上層を推奨)に配置します。その後、`wgnuplot.exe` を直接起動します。日本語を含むパスに配置できない制約から `アプリ` フォルダに配置できないので、辞書アプリからの起動には対応しません。Explorer や ceOpener などを用いてください。この移植版には以下の性質があります。 + +- Armv5 CPU を搭載する Windows CE 5.0 以降の端末で動作します +- コンソール画面のデフォルトフォントは `MS Gothic` です +- コンソール画面とグラフ画面において、右クリックメニューからフォント変更が可能です + - 右クリックできない環境では Screen Keyboard の `app` キーなどを用います + - コンソール画面が正しく表示されていない場合は、ここでフォントを変更してください +- コンソール画面とグラフ画面でフォントアンチエイリアスを有効化しています +- 文字コードは UTF-8 です + - 日本語を表示できる環境では、元の `wgnuplot.mnu` を削除・移動・改名などした上で `wgnuplot-ja.mnu` を `wgnuplot.mnu` に改名するとメニューを日本語化できます + - UTF-8 で作成すれば `.plt` ファイルで日本語が使えます + - コンソール画面での直接入力でも日本語等を使用できますが、コンソール上では ASCII 文字のみが表示されます + - グラフにおいて日本語などの非 ASCII 文字を表示する場合は、必要なグリフを持つフォントを指定する必要があります +- Rev. 1 に存在した、コンソール画面の幅が狭いとき、ウィンドウを広げてもメニューバーのはみ出した領域が現れない不具合を修正しています +- Rev. 1 に存在した、プログラム上の警告などをある程度修正しています + +Rev. 1 が対応しない以下の機能は、この版でも使用できません。 + +- カレントディレクトリ +- グラフのファイル出力 +- 印刷 +- 出力デバイスの選択 +- DOS 窓 +- ヘルプ +- ダンプ +- `wgnuplot.ini` +- メニューバーの下のボタン ## ビルド方法 -Visual Studio 2005/2008 を用いて `vs2005`/`vs2008` フォルダ内の `.sln` ファイルを開き、ビルドします。「スマート デバイス プログラマビリティ」と [Windows Mobile 5.0 Pocket PC SDK](https://www.microsoft.com/en-us/download/details.aspx?id=42) が必須です。 +Visual Studio 2005/2008 を用いて `vs2005`/`vs2008` フォルダ内の `.sln` ファイルを開き、ビルドします。「スマート デバイス プログラマビリティ」と [Windows Mobile 5.0 Pocket PC SDK](https://www.microsoft.com/en-us/download/details.aspx?id=42) が必須です。さらに、プロジェクトプロパティの「リンカ > 入力 > 追加の依存ファイル」にて通常の Windows CE SDK([Microsoft](https://www.microsoft.com/en-us/download/details.aspx?id=17310) や [Toradex](https://docs.toradex.com/102479) から入手できる Windows CE 5.0 用のものを推奨)に含まれる `commdlg.lib` を指定する必要があります。このファイルは大抵 SDK 内の `Lib\ARMV4I` にあります。 ## ライセンス -私([watamario15](https://github.com/watamario15))の変更分に関しては public domain とします。より正式なライセンスが必要な場合は [CC0-1.0](https://creativecommons.org/publicdomain/zero/1.0/) でライセンスします。 - -ただし、本ソフトウェアはあくまでも既存ソフトウェアへの修正に過ぎないことに注意し、元の Gnuplot の文書(特に [Copyright](Copyright))や [skawamoto0 氏の readme](readme-kawamoto.txt) を必ず確認してください。 +私([watamario15](https://github.com/watamario15))の変更分に関しては public domain とします。より正式なライセンスが必要な場合は [CC0-1.0](https://creativecommons.org/publicdomain/zero/1.0/) でライセンスします。ただし、本ソフトウェアはあくまでも既存ソフトウェアへの修正に過ぎないことに注意し、元の Gnuplot の文書(特に [Copyright](Copyright))や[川本氏の readme](readme-kawamoto.txt) を必ず確認してください。 私への連絡先は、Git リポジトリ内で `git log` コマンドを打つことで取得できます。 diff --git a/graph-ja.png b/graph-ja.png new file mode 100644 index 000000000..efd3d9ad2 Binary files /dev/null and b/graph-ja.png differ diff --git a/graph.png b/graph.png new file mode 100644 index 000000000..64b4d14bb Binary files /dev/null and b/graph.png differ diff --git a/image-ja.png b/image-ja.png index efd3d9ad2..699702e02 100644 Binary files a/image-ja.png and b/image-ja.png differ diff --git a/image.png b/image.png index 64b4d14bb..49c9d7a87 100644 Binary files a/image.png and b/image.png differ diff --git a/src/win/README.win-ja b/src/win/README.win-ja index a01532ac2..9650adadb 100644 --- a/src/win/README.win-ja +++ b/src/win/README.win-ja @@ -2,343 +2,343 @@ # a Japanized kit of wgnuplot # Shigeharu TAKENO # -wgnuplot ̓{ꉻɂ‚ +wgnuplot の日本語化について Shigeharu TAKENO -1. ͂߂ +1. はじめに ----------- -ɂ́Agnuplot ɕt}jA̓{󂪒uĂ -B̃t@Cł́AɒuĂȉ̃t@CɊւ - (MS-Windows p gnuplot oCi̊ȈՓ{ꉻ) s܂B +ここには、gnuplot に付属するマニュアル等の日本語訳が置かれていま +す。このファイルでは、ここに置かれている以下のファイルに関する説 +明 (MS-Windows 用の gnuplot バイナリの簡易日本語化) を行います。 -[a] wgnuplot-ja.mnu: wgnuplot ̃j[bZ[W̓{ -[b] wgnuplot-ja.hlp: wgnuplot p̓{IC}jA -[c] README.win-ja: ̃t@C (MS-Windows [Uւ̐) +[a] wgnuplot-ja.mnu: wgnuplot のメニューメッセージの日本語訳 +[b] wgnuplot-ja.hlp: wgnuplot 用の日本語オンラインマニュアル +[c] README.win-ja: このファイル (MS-Windows ユーザへの説明書) -ȂA[b] ̓oCit@CŁA[a],[c] ͓{eLXgt@C -łAR[h Shift_JIS ɂȂĂ܂BKvȂΓKɕ -ĂpB +なお、[b] はバイナリファイルで、[a],[c] は日本語テキストファイル +ですが、漢字コードは Shift_JIS になっています。必要ならば適当に変 +換してご利用ください。 -̃t@C ( Unix [Uւ̐) ɊւẮAREADME.ja -B +他のファイル (主に Unix ユーザへの説明書) に関しては、README.ja +をご覧ください。 -̓{̍ŐVł₱̖Ɋւ钍ӓ͈ȉ WWW y[WɌf -ڂĂ\ł̂łQƂĉB +この日本語訳の最新版やこの訳に関する注意等は以下の WWW ページに掲 +載していく予定ですのでそちらも参照して下さい。 http://takeno.iee.niit.ac.jp/~foo/gp-jman/ -gnuplot ̃}jA{ PDF PSALaTeX Ȃǂ̑̃tH[ -}bǧ`ɕϊt@CɒuĂ܂B +gnuplot のマニュアル日本語訳を PDF や PS、LaTeX などの他のフォー +マットの形式に変換したファイルもそこに置いてあります。 -2. CXg[ +2. インストール --------------- - MS-Windows ͑SRڂ͂Ȃ̂łAȉ̂悤ɂ΂ -Ǝv܂BȂAȉ͂ł MS-Windows XP ŎsmF -܂B +私は MS-Windows は全然詳しくはないのですが、以下のようにすればい +いと思います。なお、以下はうちでは MS-Windows XP で実行を確認して +います。 -[1] MS-Windows poCi̓WJ +[1] MS-Windows 用バイナリの展開 -܂AMS-Windows poCiKȃfBNgɓWJ܂BKv -Ȃ̂́A̓{ꉻLbg MS-Windows p gnuplot {̂łB -MS-Windows p gnuplot ́AKvȂ gnuplot ̌z[y[W +まず、MS-Windows 用バイナリを適当なディレクトリに展開します。必要 +なものは、この日本語化キットと MS-Windows 用の gnuplot 本体です。 +MS-Windows 用の gnuplot は、必要ならば gnuplot の公式ホームページ http://www.gnuplot.info/ -炽ǂĎ擾ĂB +からたどって取得してください。 -ȂAgnuplot MS-Windows poCíAقɂp쐬 -̂c쐬̂̂Ȃǂ܂B +なお、gnuplot の MS-Windows 用バイナリは、ほかにも角藤さん作成の +ものや尾田さん作成のものなどがあります。 http://www.fsci.fuk.kindai.ac.jp/~kakuto/win32-ptex/web2c75.html http://www.yama-ga.com/gnuplot/ -̓{ꉻLbǵAPɃj[t@Cƃwvt@C{ -̂̂ɒu邾ł̂ŁA񂻂̔łłgpł -܂BĂ邱ƂƎ̂̋@\̂CɂȂ΁Agnuplot -̃o[WĂAقږȂpłƎv܂B +この日本語化キットは、単にメニューファイルとヘルプファイルを日本 +語のものに置き換えるだけですので、もちろんそれらの版でも使用でき +ます。書かれていることと実体の機能のずれを気にしなければ、gnuplot +のバージョンが多少違っても、ほぼ問題なく利用できると思います。 -IWiTCg gnuplot oCȉꍇ́Abin/ ȉɎsoC -ipł̃wvt@C⃁j[t@C܂܂ĂƎv -܂B +オリジナルサイトの gnuplot バイナリの場合は、bin/ 以下に実行バイ +ナリや英語版のヘルプファイルやメニューファイルが含まれていると思 +います。 -ł΁AIWĩwvt@C (wgnuplot.hlp) ƃj[t -@C (wgnuplot.mnu) 𖼑OςĕۑĂƂł傤B +できれば、オリジナルのヘルプファイル (wgnuplot.hlp) とメニューフ +ァイル (wgnuplot.mnu) を名前を変えて保存しておくといいでしょう。 > cd bin > copy wgnuplot.mnu wgnuplot-en.mnu > copy wgnuplot.hlp wgnuplot-en.hlp -[2] {ꉻLbg̃Rs[ +[2] 日本語化キットのコピー -wgnuplot-ja.mnu wgnuplot-ja.hlp X wgnuplot.mnu, -wgnuplot.hlp ̑ɃRs[܂B +wgnuplot-ja.mnu と wgnuplot-ja.hlp を元々の wgnuplot.mnu, +wgnuplot.hlp の代わりにコピーします。 -ȂA‹ϐ𗘗pē{̃wvt@CƉp̃wvt@ -CĐؑւ邱Ƃ”\łBɊւĂ̓wvt@ -CQƂĂB +なお、環境変数を利用して日本語のヘルプファイルと英語のヘルプファ +イルを共存させて切替えることも可能です。それに関してはヘルプファ +イルを参照してください。 -[3] wgnuplot ̃tHg̐ݒ +[3] wgnuplot のフォントの設定 -(1) ܂ wgnuplot N܂Bwgnuplot.ini ܂Ȃꍇ (ߋ - wgnuplot ̐ݒsȂƂȂꍇ)Ał߂ȕ -Ԃ̃EBhEオƎv܂B +(1) まず wgnuplot を起動します。wgnuplot.ini がまだない場合 (過去 +に wgnuplot の設定を行なったことがない場合)、でたらめな文字が並ん +だ状態のウィンドウが立ち上がると思います。 -(2) ̗オEBhEŃ}EX̉ENbNsȂA -uChoose FontvIAK؂ȓ{tHgݒ肵܂B +(2) その立ち上がったウィンドウでマウスの右クリックを行ない、 +「Choose Font」を選択し、適切な日本語フォントを設定します。 -(3) ݒ肪IAĂу}EX̉ENbNsȂAuUpdate -wgnuplot.inivIAwgnuplot.ini XV܂BŁAʂ -\Ǝv܂B +(3) 設定が終ったら、再びマウスの右クリックを行ない、「Update +wgnuplot.ini」を選択し、wgnuplot.ini を更新します。これで、画面に +文字が正しく表示されると思います。 -[4] Window terminal ̃tHgݒ +[4] Window terminal のフォント設定 -̓Otʂ̃tHgݒsȂ܂BɂAOt -ɓ{\ł悤ɂȂ܂B[3] wgnuplot ̋Nʂ -\Ă gnuplot vvg +次はグラフ画面のフォント設定を行ないます。これにより、グラフ画面 +に日本語も表示できるようになります。[3] の wgnuplot の起動画面に +表示されている gnuplot プロンプト gnuplot> -Ɉȉ̂悤ɓ͂ăOt܂B +に以下のように入力してグラフを一つ書かせます。 gnuplot> plot sin(x) -sin(x) ̃OtĂ郁j[ŁAĂ [3] Ɠ悤 -}EXENbŃuChoose FontvŃtHgݒ肵āAuUpdate -wgnuplot.inivsȂ̂łÂ܂ܕʂɃ}EXENbN -ƃ}EX@\זăv_Ej[\܂B +sin(x) のグラフが書かれているメニュー上で、再び [3] と同じように +マウス右クリックの「Choose Font」でフォントを設定して、「Update +wgnuplot.ini」を行なうのですが、このまま普通にマウス右クリックす +るとマウス機能が邪魔をしてプルダウンメニューが表示されません。 -}EX@\ ON/OFF ɂɂ́AOtʂ m ܂Bꂩ -̂悤ɃtHg̐ݒsȂĂB +マウス機能を ON/OFF にするには、グラフ画面で m を押します。それか +ら上のようにフォントの設定を行なってください。 -ȂÃ}EX@\ ON/OFF ͈ȉ̂悤ɂĂł܂B +なお、このマウス機能の ON/OFF は以下のようにしてもできます。 gnuplot> unset mouse <-- OFF gnuplot> set mouse <-- ON -܂A}EX@\ ON ɂ܂܃v_Ej[\ -́A}EX@\̓Ot̕`ʈȊOAႦΕ`EBhE -̃o[EBhEACRNbNĂł悤łB +また、マウス機能を ON にしたままプルダウンメニューを表示させるに +は、マウス機能の働くグラフの描画画面以外、例えば描画ウィンドウの +上のバーやウィンドウアイコンをクリックしてもできるようです。 -[5] eXg +[5] テスト -܂́AOtɓ{\eXgĂ݂܂傤B +まずは、グラフに日本語を表示するテストをしてみましょう。 - gnuplot> set title '{\ł܂' + gnuplot> set title '日本語も表示できます' gnuplot> plot cos(x) -ƂĂ݂ĂBȂAgnuplot vvg͎ɂ͐{ -ꂪ\Ȃ܂񂪁A͌ɓ͉ʂtbV -ƕ\܂BOtʂɂňꉞ{ꂪ\ -v܂B +としてみてください。なお、gnuplot プロンプト入力時には正しく日本 +語が表示されないかもしれませんが、入力後に入力画面をリフレッシュ +すると表示されます。グラフ画面にもそれで一応日本語が表示されると +思います。 -A{ꂪ܂oȂꍇ́A{tHg̐ݒL̍ -Ǝ菇A܂ gnuplot oCĩo[WmFĂ݂Ă -B +もし、日本語がうまく出ない場合は、日本語フォントの設定や上記の作 +業手順、または gnuplot バイナリのバージョン等を確認してみてくださ +い。 -܂A[2] ɂĊɋNʂ̃j[͓{ŕ\Ă -Ǝv܂Aꉞ̃Tuj[̓{\mFĂ -ĂB +また、[2] によって既に起動画面のメニュー等は日本語で表示されてい +ると思いますが、一応そのサブメニュー等の日本語表示も確認しておい +てください。 -ŌɁAwv̓{\mFĂ݂ĂBuCg_N -Vv̒g{ŕ\Ă OK ł傤Bwv́A -Nʂ̏̃j[QƂ邱Ƃł܂A +最後に、ヘルプの日本語表示を確認してみてください。「イントロダク +ション」の中身が日本語で表示されていれば OK でしょう。ヘルプは、 +起動画面の上のメニューから参照することもできますが、 gnuplot> help introduction -̂悤ɂĎQƂ邱Ƃ”\łB +のようにして参照することも可能です。 -3. +3. 注意 ------- -‚ӂqׂ܂BȂ‚ Gnuplot Q&A f - +いくつか注意を述べます。なお、そのうちいくつかは Gnuplot Q&A 掲示 +版 http://ayapin.film.s.dendai.ac.jp/cgi-bin/trees.cgi -瓾ɏĂ̂łBڂ͂ -B +から得た情報を元に書いているものです。詳しくはそちらをご覧くださ +い。 -[1] MS-Windows gnuplot Ɋւ鎿ⓙ +[1] MS-Windows 版 gnuplot に関する質問等 -gAMS-Windows ͕ipĂ킯ł͂ȂA񎎂Ɏg -Ă݂āA{ꉻeՂɂłƂƂł -̂ŁAMS-Windows ̖̂AMS-Windows gnuplot L̖ -ւĂ͂܂ŏڂ͂܂BāAɊւ鎿 -lIɑĂΉ͂ł˂܂Aĝ񓚂”\ -Ƃ͎v܂̂ŁA gnuplot ̎̏pB +私自身、MS-Windows は普段利用しているわけではなく、今回試しに使っ +てみて、日本語化が容易にできそうだということでこれを作っただけな +ので、MS-Windows 自体の問題や、MS-Windows 版 gnuplot 特有の問題に +関してはまるで詳しくはありません。よって、そういった件に関する質 +問を個人的に送られても対応はできかねますし、身のある回答が可能だ +とは思えませんので、より公の gnuplot の質問の場をご利用ください。 -݂̂悤ȏƂāA +現在そのような場として、 -E[OXg (Visualize ML) +・メーリングリスト (Visualize ML) http://ayapin.film.s.dendai.ac.jp/~matuda/Gnuplot/visualize.html -EGnuplot Q&A f (cd@ ) +・Gnuplot Q&A 掲示版 (松田@東京電機大 さん) http://ayapin.film.s.dendai.ac.jp/cgi-bin/trees.cgi -EUsenet j[XO[v (comp.graphics.apps.gnuplot; p) +・Usenet ニュースグループ (comp.graphics.apps.gnuplot; 英語) -Ȃǂ܂B +などがあります。 -܂AQandA WƂāAȉ̂悤Ȃ̂܂B +また、QandA 集として、以下のようなものがあります。 -Egnuplot t FAQ (̓{) +・gnuplot 付属の FAQ (の日本語訳) http://takeno.iee.niit.ac.jp/~shige/unix/gnuplot/gnuplot.html#gp-FAQ-j -EN\tgEFA FAQ +・佐藤哲@ソフトウェア研 さん作の FAQ http://takeno.iee.niit.ac.jp/~foo/gp-jman/data/gnuplotjp-1.3.txt -EuGNUPLOT 邳񂿂܂vɂ QandA +・「GNUPLOT るさんちまん」にある QandA http://mibai.tec.u-ryukyu.ac.jp/~oshiro/Doc/gnuplot_primer/gnuplot_memo.html -E͖쁗XAX ́unot so Frequently Asked Questionsv +・河野@ロスアラモス研 さんの「not so Frequently Asked Questions」 http://t16web.lanl.gov/Kawano/gnuplot/ -Ecd@ gnuplot Tips W +・松田@東京電機大 さんの gnuplot Tips 集 http://ayapin.film.s.dendai.ac.jp/~matuda/Gnuplot/Tips/tips.html -Egnuplot }jǍT[rX +・gnuplot マニュアル等からの検索サービス http://takeno.iee.niit.ac.jp/~foo/gp-jman/gp-jman.html#search -[2] Shift_JIS L̖ +[2] Shift_JIS 特有の問題 -wgnuplot ̂{R[h (Shift_JIS) ɊSɑΉĂ킯 -ł͂Ȃ̂ŁAShift_JIS ‹ł Shift_JIS L̖肪邱 -ƂmFĂ܂BႦ΁A +wgnuplot 自体が日本語コード (Shift_JIS) に完全に対応しているわけ +ではないので、Shift_JIS 環境では Shift_JIS 特有の問題が発生するこ +とが確認されています。例えば、 - set title '͏\ł' + set title 'これは十勝です' -́ÂłA +は、いいのですが、 - set title "͏\ł" + set title "これは十勝です" -́AOtEBhEł͕܂B́Au\v 2 byte -ڂ 5Ch (= '\') łAgnuplot "" ň͂܂ꂽ '\' -ʂɈƂ痈錻ۂłB{ꕶOt\Ɏg -́A͂ވp "" ł͂Ȃ '' g悤ɂĂ -B +は、グラフウィンドウでは文字化けします。これは、「十」の 2 byte +目が 5Ch (= '\') であり、gnuplot が "" で囲まれた文字列の '\' を +特別に扱うことから来る現象です。日本語文字列をグラフ表示に使う場 +合は、文字列を囲む引用符は "" ではなく '' を使うようにしてくださ +い。 -cf. Gnuplot Q&A f +cf. Gnuplot Q&A 掲示版 http://ayapin.film.s.dendai.ac.jp/cgi-bin/trees.cgi -63u{ꃉxvn܂Xbh +63「日本語ラベル」から始まるスレッド -[3] terminal ̓{ꉻ +[3] terminal の日本語化 -̓{ꉻLbǵAPɋNʂ̃j[ƃwvt@C -{ꉻ邾ŁA̓IWi gnuplot ̋@\ɔCĂ邾 -Ȃ̂ŁAႦ gnuplot T|[g鑽̏o terminal ł͂ -炸{͎g܂񂵁Agnuplot+ ̂悤ɂ̓_ǂ -̂ł͂܂B +この日本語化キットは、単に起動画面のメニューとヘルプファイルを日 +本語化するだけで、後はオリジナルの gnuplot の機能に任せているだけ +なので、例えば gnuplot がサポートする多くの出力 terminal ではあい +かわらず日本語は使えませんし、gnuplot+ のようにその点を改良するも +のではありません。 -ȂA PostScript terminal ł́Agnuplot+ pb`𓖂ĂȂ -{tHgw肷邱Ƃœ{ꂪg܂B +なお、現在 PostScript terminal では、gnuplot+ パッチを当てなくて +も日本語フォントを指定することで日本語が使えます。 http://ayapin.film.s.dendai.ac.jp/~matuda/Gnuplot/Feature38i/kanji.html -ɂ Unix ‹ł̗ႪĂ܂AMS-Windows ł +にも Unix 環境での例が書かれていますが、MS-Windows でも - set title '͏\ł' font "Ryumin-Light-83pv-RKSJ-H,32" + set title 'これは十勝です' font "Ryumin-Light-83pv-RKSJ-H,32" set terminal postscript eps set output "kanji.eps" plot sin(x) w l -̂悤ȎwsȂ΂悤łB +のような指定を行なえばいいようです。 -[4] {̊܂܂ĂpX +[4] 日本語の含まれているパス -wgnuplot ́AOS ɂĂ͓{ꂪ܂܂ĂpX𐳏Ɉ -ɗ邱Ƃ悤łBwgnuplot ̍ƃfBNgAуC -Xg[͂Ƃ肠͓{̊܂܂ȂpXɂ̂ǂ -łB +wgnuplot は、OS によっては日本語が含まれているパスを正常に扱えず +に落ちることがあるようです。wgnuplot の作業ディレクトリ、およびイ +ンストール先はとりあえずは日本語の含まれないパスにするのが良さそ +うです。 -cf. Gnuplot Q&A f +cf. Gnuplot Q&A 掲示版 http://ayapin.film.s.dendai.ac.jp/cgi-bin/trees.cgi -313uGnuplot Ă܂ہvn܂Xbh +313「Gnuplot が落ちてしまう現象」から始まるスレッド -4. ҂ƃCZX +4. 訳者とライセンス ------------------- -̓{ꉻLbg͖ۏ؂łBȀĆAΉł -͍̂s\ł̂ŁA̕񍐁AӌȂǂ͊}܂B -͉L[AhXւ肢v܂B܂AéA -L WWW page Ɍfڂ\łB +この日本語化キットは無保証です。しかし誤植等の修正は、対応できる +ものは行う予定ですので、それらの報告、意見などは歓迎します。報告 +等は下記メールアドレスへお願い致します。また、各種情報は、順次下 +記 WWW page に掲載する予定です。 e-mail: shige@iee.niit.ac.jp WWW page: http://takeno.iee.niit.ac.jp/~foo/gp-jman/ -zzCZX́AIWi gnuplot ̃CZXɏ]܂B -QƂĂB +配布ライセンスは、オリジナルの gnuplot のライセンスに従います。そ +ちらを参照してください。 -҂͈ȉ̒ʂłB +訳者は以下の通りです。 [a] wgnuplot-ja.mnu: - gnuplot 3.7.2 ܂: Rꐳl (gnuplot+) - gnuplot 4.0 ȍ~: |Ύ + gnuplot 3.7.2 まで: 山賀正人 (gnuplot+) + gnuplot 4.0 以降: 竹野茂治 [b] wgnuplot-ja.hlp: - gnuplot 3.2 p: c۔ - gnuplot 3.5 p: J۔ - gnuplot 3.7 p: 㒼A؋`ADAn糐LA - wAΓcAVmAXؓOACєlA - ĐMYA{A{mAROAR݊A|Ύ - gnuplot 3.8 p: cA|Ύ - gnuplot 4.0 ȍ~: |Ύ - -{ꃁj[t@ĆAX gnuplot+ ̍҂łRꐳl -̍ꂽ̂łBAς̂ɊւJ -Ē܂BX gnuplot+ oCiɕt钘쌠Ɋւ -镶p܂B - ------ (gnuplot plus patch Copyright.plus.txt) ----- + gnuplot 3.2 用: 田丸博晴 + gnuplot 3.5 用: 升谷保博 + gnuplot 3.7 用: 井上直大、鈴木義利、船橋崇将、渡邉伸征、 + 藤井学、石田大輔、唐澤洋介、佐々木徹也、東海林隼人、 + 柴信一郎、松本賢一、宮入洋介、山岡薫、山岸寛、竹野茂治 + gnuplot 3.8 用: 田村大輔、竹野茂治 + gnuplot 4.0 以降: 竹野茂治 + +日本語メニューファイルは、元々 gnuplot+ の作者である山賀正人さん +の作られたものです。今回、それを改変したものに関する公開を快く了 +承して頂きました。元々の gnuplot+ バイナリに付属する著作権に関す +る文書を引用します。 + +----- ここから (gnuplot plus patch Copyright.plus.txt) ----- Copyright (C) 1993 - 2001 Masahito Yamaga -̃pb`pbP[Wт̃hLg̎gp, , Ĕzz͖ړÎ -ɂ炸RɍsȂč\܂. , K̕YtĂ. +このパッチパッケージおよびそのドキュメントの使用, 複製, 再配布は目的のいかん +によらず自由に行なって構いません. ただし, 必ずこの文書を添付してください. -̃pbP[W̕ύXRɍsȂč\܂, ύX̂zz -ꍇ͎R(ma@yama-ga.com)܂œdq[łA. +このパッケージの変更も自由に行なって構いませんが, 変更したものを配布する +場合は山賀(ma@yama-ga.com)まで電子メールでご連絡下さい. -̃pbP[W͊Sɖۏ؂ł. gpɂĂ͂̐ӔCł肢܂. +このパッケージは完全に無保証です. 使用にあたってはご自分の責任でお願いします. -̃pbP[W̒쌠͎Rꐳl(Masahito Yamaga)ɂ܂, IWi -gnuplot ̒쌠 Thomas Williams Colin Kelley ɂ܂. -(IWi gnuplot ̃\[XpbP[WɓYt Copyright Q) +このパッケージの著作権は山賀正人(Masahito Yamaga)にありますが, オリジナルの +gnuplot の著作権は Thomas Williams 氏と Colin Kelley 氏にあります. +(オリジナルの gnuplot のソースパッケージに添付の Copyright を参照) -̃pb`ĂԂł gnuplot (ɃoCi) ̔zz͐TdɍsȂ -. ڂƂ̓IWi gnuplot \[XpbP[WɓYtĂ -Copyright . +このパッチをあてた状態での gnuplot (特にバイナリ) の配布は慎重に行なって +ください. 詳しいことはオリジナルの gnuplot ソースパッケージに添付されている +Copyright をご覧下さい. - 2001/01/11 R l/Masahito Yamaga (ma@yama-ga.com) ------ ܂ (gnuplot plus patch Copyright.plus.txt) ----- + 2001/01/11 山賀 正人/Masahito Yamaga (ma@yama-ga.com) +----- ここまで (gnuplot plus patch Copyright.plus.txt) ----- -gnuplot 3.2 gnuplot.doc ̓{̍҂̓c۔A -gnuplot 3.5 p̓{̍҂̏J۔񂩂́A -̖̌JɉĒ܂B +gnuplot 3.2 の gnuplot.doc の日本語訳の作者の田丸博晴さん、 +gnuplot 3.5 用の日本語訳の作者の升谷保博さんからは、それらを元に +したこの訳の公開に快く応じて頂きました。 -ȉ gnuplot 3.2, gnuplot 3.5 gnuplot.doc {ɕt -p܂B +以下に gnuplot 3.2, gnuplot 3.5 の gnuplot.doc 日本語訳に付属する +文書を引用します。 ------ (gnuplot 3.2 p) ----- -GNUPLOT 3.2 patchlevel 2 ̔zzA[JCuɂAdocs/gnuplot.doc ̓ -{ł gnuplotj.doc łB̓IWiɏ̂Ƃ܂B -R[h EUC ŏĂ܂BIWiɊ܂܂Ă doc2gih y - doc2tex ł̐`mFĂ܂BA doc2tex ʂꍇ́AEUC -̂܂ܒʂāA.tex ɕϊ TeX ̏nɍR[hɕϊ -ĉB܂Atitlepage.tex KvɉďCĉB +----- ここから (gnuplot 3.2 用) ----- +GNUPLOT 3.2 patchlevel 2 の配布アーカイブにある、docs/gnuplot.doc の日 +本語訳である gnuplotj.doc です。扱いはオリジナルに準ずるものとします。 +漢字コードは EUC で書かれています。オリジナルに含まれている doc2gih 及 +び doc2tex での整形を確認してあります。但し doc2tex を通す場合は、EUC +のまま通して、.tex に変換した後に TeX の処理系に合った漢字コードに変換 +して下さい。また、titlepage.tex を必要に応じて修正して下さい。 -тƂł͂܂񂪁Ał֗ɊĒ΍KłB +守備一貫とした訳ではありませんが、少しでも便利に感じて頂ければ幸いです。 - c + 田丸 博晴 tamaru@keisu-s.t.u-tokyo.ac.jp ------ ܂ (gnuplot 3.2 p) ----- +----- ここまで (gnuplot 3.2 用) ----- ------ (gnuplot 3.5 p) ----- -2 {ɂ‚ +----- ここから (gnuplot 3.5 用) ----- +2 日本語訳について ?japanese - ̓{́Cw̓c 񂪁Cfj.sources ɓeꂽ - gnuplot 3.2 gnuplot.doc ̓{ + この日本語訳は,東京大学の田丸 博晴さんが,fj.sources に投稿された + gnuplot 3.2 の gnuplot.doc の日本語訳 From: tamaru@keisu-s.t.u-tokyo.ac.jp (Hiroharu Tamaru) Newsgroups: fj.sources @@ -347,57 +347,57 @@ GNUPLOT 3.2 patchlevel 2 Date: 16 Sep 92 08:40:46 GMT Distribution: fj - Cw̏J ۔ gnuplot 3.5 pɕύX̂łD - 3.2 3.5 ̊ԂŌɕω̂Ȃ(3/4)́CƂ - cۂ̖̂܂܎gĂ܂D + を,大阪大学の升谷 保博が gnuplot 3.5 用に変更したものです. + 3.2 と 3.5 の間で原文に変化のない部分は(約3/4)は,原則として + 田丸さんの訳をそのまま使っています. - ̓{̌Jɐ悾āC IvCɓ 󂳂 - ẽ`FbNĂ܂D肪Ƃ܂D + この日本語訳の公開に先だって,鈴木 紀夫さん,伊藤 希さんに + 内容のチェックをしていただきました.ありがとうございます. - ȂC̖͂̕|󎩑̂ɊւoO‚́C - masutani@me.es.osaka-u.ac.jp ܂łAD ------ ܂ (gnuplot 3.5 p) ----- + なお,この文章の翻訳自体に関するバグを見つけた方は, + masutani@me.es.osaka-u.ac.jp までご連絡下さい. +----- ここまで (gnuplot 3.5 用) ----- -5. ӎ +5. 謝辞 ------- -gnuplot+ (http://www.yama-ga.com/gnuplot/) MS-Windows oCi -pbP[WɊ܂܂ wgnuplot.jmn ̏CłɊւāA҂̎Rꐳ -lɂ͌JɉĒ܂Bǂ肪Ƃ܂ -B - -܂ gnuplot 3.5 p̃}jA̓{͂肪g킹 -ĂĐFXbɂȂĂ܂B̓{̌JɓA -gnuplot 3.2 p}jA̓{̍҂̓c۔A3.5 p} -jA̓{҂̏J۔ɂ͂̌JɉĒA -܂FXȏ𒸂܂B̏؂Ă\グ܂Bǂ -肪Ƃ܂B - -wgnuplot Ɋւ邢‚̏́Acd@ ̉^c -ĂuGnuplot Q&A fŁvFXĂ܂B^c -Ă鏼cd@ A܂A̎Q҂݂̂ȂA -肪Ƃ܂B -(cf. Gnuplot Q&A f +gnuplot+ (http://www.yama-ga.com/gnuplot/) の MS-Windows バイナリ +パッケージに含まれる wgnuplot.jmn の修正版に関して、作者の山賀正 +人さんには公開に快く応じて頂きました。どうもありがとうございまし +た。 + +これまで gnuplot 3.5 用のマニュアルの日本語訳はありがたく使わせて +頂いていて色々お世話になっていました。この日本語訳の公開に当たり、 +gnuplot 3.2 用マニュアルの日本語訳の作者の田丸博晴さん、3.5 用マ +ニュアルの日本語訳作者の升谷保博さんにはこの公開に快く応じて頂き、 +また色々な助言を頂きました。この場を借りてお礼申し上げます。どう +もありがとうございました。 + +wgnuplot に関するいくつかの情報は、松田@東京電機大 さんの運営し +ておられる「Gnuplot Q&A 掲示版」から常日頃色々頂いています。運営 +しておられる松田@東京電機大 さん、また、その参加者のみなさん、ど +うもありがとうございます。 +(cf. Gnuplot Q&A 掲示版 http://ayapin.film.s.dendai.ac.jp/cgi-bin/trees.cgi) -Gnuplot Q&A fŏŁAwgnuplot ̃}EX@\ ON/OFF Ɋւ -A wgnuplot Ɋւ񂩂璸܂Bǂ -肪Ƃ܂B -(cf. É gnuplot ̃y[W +Gnuplot Q&A 掲示版上で、wgnuplot のマウス機能の ON/OFF に関する情 +報や、多くの wgnuplot に関する情報を松岡さんから頂きました。どう +もありがとうございました。 +(cf. 松岡@名古屋大 さんの gnuplot のページ http://www.nuce.nagoya-u.ac.jp/e8/Matsuoka/gnuplot_memo.html) -6. ڎ +6. 目次 ------- -1. ͂߂ -2. CXg[ -3. -4. ҂ƃCZX -5. ӎ -6. ڎ +1. はじめに +2. インストール +3. 注意 +4. 訳者とライセンス +5. 謝辞 +6. 目次 +=================================================+ - |Ύ 945-1195 VHȑw dqHw + 竹野茂治 〒945-1195 新潟工科大学 情報電子工学科 shige@iee.niit.ac.jp TEL(&FAX): 0257-22-8161 +=================================================+ diff --git a/src/win/wgraph.c b/src/win/wgraph.c index c47b83260..7ca0b0ff7 100644 --- a/src/win/wgraph.c +++ b/src/win/wgraph.c @@ -785,51 +785,55 @@ SetFont(LPGW lpgw, HDC hdc) static void SelFont(LPGW lpgw) { -//#if WINVER >= 0x030a -// LOGFONTW lf; -// CHOOSEFONTW cf; -// HDC hdc; -// wchar_t lpszStyle[LF_FACESIZE]; -// wchar_t *p; -// -// /* Set all structure fields to zero. */ -// _fmemset(&cf, 0, sizeof(CHOOSEFONTW)); -// _fmemset(&lf, 0, sizeof(LOGFONTW)); -// cf.lStructSize = sizeof(CHOOSEFONTW); -// cf.hwndOwner = lpgw->hWndGraph; -// AtoW(lf.lfFaceName, LF_FACESIZE, lpgw->fontname, -1); -// if ((p = wcsstr(lf.lfFaceName, L" Bold")) != NULL) { -// wcsncpy(lpszStyle,p+1,LF_FACESIZE); -// *p = L'\0'; -// } else if ((p = wcsstr(lf.lfFaceName, L" Italic")) != NULL) { -// wcsncpy(lpszStyle,p+1,LF_FACESIZE); -// *p = L'\0'; -// } else { -// wcscpy(lpszStyle, L"Regular"); -// } -// cf.lpszStyle = lpszStyle; -// hdc = GetDC(lpgw->hWndGraph); -// lf.lfHeight = -MulDiv(lpgw->fontsize, GetDeviceCaps(hdc, LOGPIXELSY), 72); -// ReleaseDC(lpgw->hWndGraph, hdc); -// cf.lpLogFont = &lf; -// cf.nFontType = SCREEN_FONTTYPE; -// cf.Flags = CF_SCREENFONTS | CF_INITTOLOGFONTSTRUCT | CF_USESTYLE; -// -// if (ChooseFontW(&cf)) { -// WtoA(lpgw->fontname, MAXFONTNAME, lf.lfFaceName, -1); -// lpgw->fontsize = cf.iPointSize / 10; -// if (cf.nFontType & BOLD_FONTTYPE) -// lstrcat(lpgw->fontname," Bold"); -// if (cf.nFontType & ITALIC_FONTTYPE) -// lstrcat(lpgw->fontname," Italic"); -// /* set current font as default font */ -// strcpy(lpgw->deffontname,lpgw->fontname); -// lpgw->deffontsize = lpgw->fontsize; -// SendMessage(lpgw->hWndGraph,WM_COMMAND,M_REBUILDTOOLS,0L); -// /* DBT 2010-02-22 replot to force immediate font change, volatile data OK */ -// do_string_replot(""); -// } -//#endif +#if WINVER >= 0x030a + LOGFONTW lf; + CHOOSEFONTW cf; + HDC hdc; + wchar_t lpszStyle[LF_FACESIZE]; + wchar_t *p; + BOOL ret; + + /* Set all structure fields to zero. */ + _fmemset(&cf, 0, sizeof(CHOOSEFONTW)); + _fmemset(&lf, 0, sizeof(LOGFONTW)); + cf.lStructSize = sizeof(CHOOSEFONTW); + cf.hwndOwner = lpgw->hWndGraph; + AtoW(lf.lfFaceName, LF_FACESIZE, lpgw->fontname, -1); + if ((p = wcsstr(lf.lfFaceName, L" Bold")) != NULL) { + wcsncpy(lpszStyle,p+1,LF_FACESIZE); + *p = L'\0'; + } else if ((p = wcsstr(lf.lfFaceName, L" Italic")) != NULL) { + wcsncpy(lpszStyle,p+1,LF_FACESIZE); + *p = L'\0'; + } else { + wcscpy(lpszStyle, L"Regular"); + } + cf.lpszStyle = lpszStyle; + hdc = GetDC(lpgw->hWndGraph); + lf.lfHeight = -MulDiv(lpgw->fontsize, GetDeviceCaps(hdc, LOGPIXELSY), 72); + cf.lpLogFont = &lf; + cf.nFontType = SCREEN_FONTTYPE; + cf.hDC = hdc; /* Required for CF_BOTH. */ + cf.Flags = CF_BOTH | CF_INITTOLOGFONTSTRUCT | CF_USESTYLE; + + ret = ChooseFontW(&cf); + ReleaseDC(lpgw->hWndGraph, hdc); + + if (ret) { + WtoA(lpgw->fontname, MAXFONTNAME, lf.lfFaceName, -1); + lpgw->fontsize = cf.iPointSize / 10; + if (cf.nFontType & BOLD_FONTTYPE) + lstrcat(lpgw->fontname," Bold"); + if (cf.nFontType & ITALIC_FONTTYPE) + lstrcat(lpgw->fontname," Italic"); + /* set current font as default font */ + strcpy(lpgw->deffontname,lpgw->fontname); + lpgw->deffontsize = lpgw->fontsize; + SendMessage(lpgw->hWndGraph,WM_COMMAND,M_REBUILDTOOLS,0L); + /* DBT 2010-02-22 replot to force immediate font change, volatile data OK */ + do_string_replot(""); + } +#endif } #ifdef USE_MOUSE diff --git a/src/win/wtext.c b/src/win/wtext.c index 97a19dc10..b4dd9bcc0 100644 --- a/src/win/wtext.c +++ b/src/win/wtext.c @@ -774,55 +774,59 @@ TextMakeFont(LPTW lptw) void TextSelectFont(LPTW lptw) { -//#if WINVER >= 0x030a -// LOGFONTW lf; -// CHOOSEFONTW cf; -// HDC hdc; -// wchar_t lpszStyle[LF_FACESIZE]; -// wchar_t *p; -// -// /* Set all structure fields to zero. */ -// _fmemset(&cf, 0, sizeof(CHOOSEFONTW)); -// _fmemset(&lf, 0, sizeof(LOGFONTW)); -// cf.lStructSize = sizeof(CHOOSEFONTW); -// cf.hwndOwner = lptw->hWndParent; -// AtoW(lf.lfFaceName, LF_FACESIZE, lptw->fontname, -1); -// if ((p = wcsstr(lf.lfFaceName, L" Bold")) != NULL) { -// wcsncpy(lpszStyle,p+1,LF_FACESIZE); -// *p = L'\0'; -// } else if ((p = wcsstr(lf.lfFaceName, L" Italic")) != NULL) { -// wcsncpy(lpszStyle,p+1,LF_FACESIZE); -// *p = L'\0'; -// } else { -// wcscpy(lpszStyle, L"Regular"); -// } -// cf.lpszStyle = lpszStyle; -// hdc = GetDC(lptw->hWndText); -// lf.lfHeight = -MulDiv(lptw->fontsize, GetDeviceCaps(hdc, LOGPIXELSY), 72); -// ReleaseDC(lptw->hWndText, hdc); -// lf.lfPitchAndFamily = FIXED_PITCH; -// cf.lpLogFont = &lf; -// cf.nFontType = SCREEN_FONTTYPE; -// cf.Flags = CF_SCREENFONTS | CF_FIXEDPITCHONLY | CF_INITTOLOGFONTSTRUCT | CF_USESTYLE; -// -// if (ChooseFontW(&cf)) { -// RECT rect; -// WtoA(lptw->fontname, MAXFONTNAME, lf.lfFaceName, -1); -// lptw->fontsize = cf.iPointSize / 10; -// if (cf.nFontType & BOLD_FONTTYPE) -// lstrcat(lptw->fontname," Bold"); -// if (cf.nFontType & ITALIC_FONTTYPE) -// lstrcat(lptw->fontname," Italic"); -// TextMakeFont(lptw); -// /* force a window update */ -// GetClientRect(lptw->hWndText, (LPRECT) &rect); -// SendMessage(lptw->hWndText, WM_SIZE, SIZE_RESTORED, -// MAKELPARAM(rect.right-rect.left, rect.bottom-rect.top)); -// GetClientRect(lptw->hWndText, (LPRECT) &rect); -// InvalidateRect(lptw->hWndText, (LPRECT) &rect, 1); -// UpdateWindow(lptw->hWndText); -// } -//#endif +#if WINVER >= 0x030a + LOGFONTW lf; + CHOOSEFONTW cf; + HDC hdc; + wchar_t lpszStyle[LF_FACESIZE]; + wchar_t *p; + BOOL ret; + + /* Set all structure fields to zero. */ + _fmemset(&cf, 0, sizeof(CHOOSEFONTW)); + _fmemset(&lf, 0, sizeof(LOGFONTW)); + cf.lStructSize = sizeof(CHOOSEFONTW); + cf.hwndOwner = lptw->hWndParent; + AtoW(lf.lfFaceName, LF_FACESIZE, lptw->fontname, -1); + if ((p = wcsstr(lf.lfFaceName, L" Bold")) != NULL) { + wcsncpy(lpszStyle,p+1,LF_FACESIZE); + *p = L'\0'; + } else if ((p = wcsstr(lf.lfFaceName, L" Italic")) != NULL) { + wcsncpy(lpszStyle,p+1,LF_FACESIZE); + *p = L'\0'; + } else { + wcscpy(lpszStyle, L"Regular"); + } + cf.lpszStyle = lpszStyle; + hdc = GetDC(lptw->hWndText); + lf.lfHeight = -MulDiv(lptw->fontsize, GetDeviceCaps(hdc, LOGPIXELSY), 72); + lf.lfPitchAndFamily = FIXED_PITCH; + cf.lpLogFont = &lf; + cf.nFontType = SCREEN_FONTTYPE; + cf.hDC = hdc; /* Required for CF_BOTH. */ + cf.Flags = CF_BOTH | CF_INITTOLOGFONTSTRUCT | CF_USESTYLE; + + ret = ChooseFontW(&cf); + ReleaseDC(lptw->hWndText, hdc); + + if (ret) { + RECT rect; + WtoA(lptw->fontname, MAXFONTNAME, lf.lfFaceName, -1); + lptw->fontsize = cf.iPointSize / 10; + if (cf.nFontType & BOLD_FONTTYPE) + lstrcat(lptw->fontname," Bold"); + if (cf.nFontType & ITALIC_FONTTYPE) + lstrcat(lptw->fontname," Italic"); + TextMakeFont(lptw); + /* force a window update */ + GetClientRect(lptw->hWndText, (LPRECT) &rect); + SendMessage(lptw->hWndText, WM_SIZE, SIZE_RESTORED, + MAKELPARAM(rect.right-rect.left, rect.bottom-rect.top)); + GetClientRect(lptw->hWndText, (LPRECT) &rect); + InvalidateRect(lptw->hWndText, (LPRECT) &rect, 1); + UpdateWindow(lptw->hWndText); + } +#endif } diff --git a/vs2005/wgnuplot.vcproj b/vs2005/wgnuplot.vcproj index 03dffc228..17b699ae9 100644 --- a/vs2005/wgnuplot.vcproj +++ b/vs2005/wgnuplot.vcproj @@ -50,7 +50,7 @@ WarningLevel="3" DebugInformationFormat="3" CompileAs="1" - CompileForArchitecture="0" + CompileForArchitecture="3" /> 1) { - if(GetMenuItemInfo(hMenu, i, TRUE, &mii)) + if(GetMenuItemInfoW(hMenu, i, TRUE, &mii)) Min = i; else Max = i; i = (Max + Min) / 2; } - if(!GetMenuItemInfo(hMenu, Min, TRUE, &mii)) + if(!GetMenuItemInfoW(hMenu, Min, TRUE, &mii)) Max--; return (int)Max; } @@ -1088,7 +1088,7 @@ BOOL GetTextExtentExPointA(HDC hdc, LPCSTR lpszString, int cchString, int nMaxEx bResult = FALSE; p = DuplicateAtoW(lpszString, cchString); if(p) - bResult = GetTextExtentExPointW(hdc, p, _tcslen(p), nMaxExtent, lpnFit, lpnDx, lpSize); + bResult = GetTextExtentExPointW(hdc, p, wcslen(p), nMaxExtent, lpnFit, lpnDx, lpSize); FreeDuplicatedString(p); return bResult; } diff --git a/wrapper/wrapper.h b/wrapper/wrapper.h index 641dfbc79..c515fba77 100644 --- a/wrapper/wrapper.h +++ b/wrapper/wrapper.h @@ -38,7 +38,70 @@ #define SetClipboardData SetClipboardDataA #define GetClipboardData GetClipboardDataA +#ifndef CF_SCREENFONTS /* WM5 SDK lacks font dialog definitions*/ +#define CF_SCREENFONTS 0x00000001 +#define CF_PRINTERFONTS 0x00000002 +#define CF_BOTH (CF_SCREENFONTS | CF_PRINTERFONTS) +#define CF_SHOWHELP 0x00000004L +#define CF_ENABLEHOOK 0x00000008L +#define CF_ENABLETEMPLATE 0x00000010L +#define CF_ENABLETEMPLATEHANDLE 0x00000020L +#define CF_INITTOLOGFONTSTRUCT 0x00000040L +#define CF_USESTYLE 0x00000080L +#define CF_EFFECTS 0x00000100L +#define CF_APPLY 0x00000200L +#define CF_ANSIONLY 0x00000400L +#define CF_SCRIPTSONLY CF_ANSIONLY +#define CF_NOVECTORFONTS 0x00000800L +#define CF_NOOEMFONTS CF_NOVECTORFONTS +#define CF_NOSIMULATIONS 0x00001000L +#define CF_LIMITSIZE 0x00002000L +#define CF_FIXEDPITCHONLY 0x00004000L +#define CF_WYSIWYG 0x00008000L +#define CF_FORCEFONTEXIST 0x00010000L +#define CF_SCALABLEONLY 0x00020000L +#define CF_TTONLY 0x00040000L +#define CF_NOFACESEL 0x00080000L +#define CF_NOSTYLESEL 0x00100000L +#define CF_NOSIZESEL 0x00200000L +#define CF_SELECTSCRIPT 0x00400000L +#define CF_NOSCRIPTSEL 0x00800000L +#define CF_NOVERTFONTS 0x01000000L +#define SIMULATED_FONTTYPE 0x8000 +#define PRINTER_FONTTYPE 0x4000 +#define SCREEN_FONTTYPE 0x2000 +#define BOLD_FONTTYPE 0x0100 +#define ITALIC_FONTTYPE 0x0200 +#define REGULAR_FONTTYPE 0x0400 +#define WM_CHOOSEFONT_GETLOGFONT (WM_USER + 1) +#define CDERR_LOADSTRFAILURE 0x0005 +#define CFERR_CHOOSEFONTCODES 0x2000 +#define CFERR_NOFONTS 0x2001 +#define CFERR_MAXLESSTHANMIN 0x2002 + typedef void *HDROP; +typedef UINT (APIENTRY *LPCFHOOKPROC) (HWND, UINT, WPARAM, LPARAM); +typedef struct tagCHOOSEFONTW { + DWORD lStructSize; + HWND hwndOwner; + HDC hDC; + LPLOGFONTW lpLogFont; + INT iPointSize; + DWORD Flags; + COLORREF rgbColors; + LPARAM lCustData; + LPCFHOOKPROC lpfnHook; + LPCWSTR lpTemplateName; + HINSTANCE hInstance; + LPWSTR lpszStyle; + WORD nFontType; + WORD ___MISSING_ALIGNMENT__; + INT nSizeMin; + INT nSizeMax; +} CHOOSEFONTW, *LPCHOOSEFONTW; + +BOOL APIENTRY ChooseFontW(LPCHOOSEFONTW); +#endif extern char** _environ; extern HWND g_hCommandBar;