20110208: Latest git snapshot. Should fix a few issues reported with 1.2.3 source tarballs. (Thanks to the several people who have mentioned this to me; sorry it took so long.) Issues fixed: * gtkmm upstream API changes caused breakage. (ButtonBox/HButtonBox issue) * linux_scripts/download_script did not have an executable flag. 1.2.3: * Bug fix: linux_scripts/download_script had an incorrect shebang line of #!/bin/sh. Changed to #!/bin/bash since bash-specific functions are in use. * Bug fix: Recently added changes for kanji test configuration options were being set in the wrong part of preferences.cpp. These changes have been moved to the appropriate spot. (Things worked fine for people upgrading, but not for new installations.) * Minor string changes in the kanji test config panel. * Installer update: Linux makefile now specifies the "make download" step after completing a straight "make". 1.2.2: * Added adding/sorting kanji by JLPT level. * Slightly reorganized the kanji list editor. * Fixed bug in JLPT code: the JLPT field was not being initialized to zero. * Fixed some out-of-date documentation about the kanji study list. 1.2.1: * Installers for both Windows and Linux now will let you pick and choose which dictionaries and stroke order diagram packages to download and install. * Addition of Japanese Language Proficiency Test (JLPT) grade level tag in kanji dictionary. * New feature: single-key keyboard shortcuts in kanji practice mode. * New feature: customization of kanji practice mode. Users can decide which * New feature: kanji practice mode now has a "show answers" button which uncovers all covered text fields. (Before, the user had to click each field individually.) * New feature: kanji practice "writing" mode now shows a KanjiCafe.com stroke order diagram after pressing "Show Answers". * KANJIDIC2 is no longer recommended due to memory usage and speed concerns. It works fine on faster systems, but most users don't need the extra information and should be fine with the original KANJIDIC format file. * Several minor bugfixes regarding kanji dictionary output. * Several documentation errors have been fixed. 1.2.0: For end users: * KANJIDIC2 is now supported and will be used instead of KANJIDIC/KANJD212 if found. * (Windows only) J-Ben has a "mobile mode" for users running off of USB "thumb" drives and similar removable devices. This lets you carry all your settings with you without having to install J-Ben on a system. * The interface has changed dramatically. The dictionary windows are still in the main window, but all the other tabs have been moved into the menus. I think it should have a cleaner feel than before. * Fonts for the dictionary windows, kanji drill mode and some other parts of the program can now be customized. Check the "Edit->Preferences" menu, under the Fonts tab. * A new kanji search window has been added, under "Tools->Kanji Search". It allows users to search for a kanji by stroke count or Halpern SKIP code, and also includes the handwriting recognition from previous versions. Multi-method searching is supported, with more methods coming in later versions. * Copying from dictionary windows should now work properly. * Dictionaries may be gzipped to reduce size. * (Windows only) J-Ben includes HTML documentation in the docs folder. Open the file named index.html. * (Linux only) J-Ben has a "make doc" option, which will make the documentation for you if you have not separately downloaded it. It requires docbook2html. Run "make doc" from the "src" folder, and the docs will be output in the "doc" folder. For developers: * The interface is now powered by GTK+/GTKmm on both Windows and Linux. wxWidgets is no longer being used. As a result, the program should look much more similar between the Linux and Windows versions. * J-Ben's directory structure has been changed. Source files are all included in the "src" folder, and make should be run from within "src". Many other changes are present as well, but that's the most important change. * The "BoostHM" object I used in previous versions has now been replaced by the TR1 unordered_map. This obviously adds the requirement that your compiler includes this part of TR1! * Windows builds now use the combination of MinGW AND MSys. Straight MinGW builds are NOT supported since I'm using GTK's pkg-config in my makefile. Further, since TR1 is required, so is GCC/G++ 4.x, so it will be necessary to grab one of those as well. 1.1.3: For end users: * New installers for both Linux and Windows. * Linux: Makefile now supports "make install". * Windows: There's now a proper installer program which sets up shortcuts, adds entries to Add/Remove Programs, etc. * Configuration files are now stored in your personal folder. For Linux, this means: ~/.jben. For Windows, this typically means: C:\Documents and Settings\UserName\Application Data\jben.cfg For developers: * Major under-the-hood changes. * Dictionary objects have been renamed and modified for future support of multiple kanji/word dictionary files. * Dictionary files now implemented as singletons. * Almost all code not tied to wxWidgets GUI functionality has had all references to wxWidgets code removed. This will better allow changes in the GUI, including changing toolkits, in the future. * Encoding conversions and multichar/wchar conversions via libiconv instead of wxCSConv. * New functions for converting between wide/multibyte strings, for replacing substrings, and for splitting strings into list based on delimiters. * Preferences object now loads config files based upon the user's home directory, or the current directory in the (rare) case a home folder cannot be found. * Errors are handled through a global ErrorLog object. This object maintains a log of errors, warnings, and informative messages given to the user while running the program, and can also store "silent" messages which are only seen when explicitly queried. * Windows-specific changes: * MinGW's current stable GCC does not have full wide character support in libstdc++. So, I've switched to using STLport, which although it seems to have some issues when running its unit tests, it does seem to at least work for my purposes for now. * Major makefile changes. * Build files are now stored in dep, obj, and bin folders, further broken down into platform (gtk20/windos) and build type (release/debug). This allows us to keep the source directory cleaner and to not have multiple builds walking over each other. * kpengine now has its own Makefile in the kanjipad directory, which is called in turn from the main Makefile. * For Linux: the Makefile now operates in a more "traditional" fashion. "make install" works: binaries go to /usr/local/bin, data to /usr/local/share/jben and docs/license stuff to /usr/local/share/doc/jben. Custom prefix can be specified (ex: /usr instead of /usr/local). * For Windows: the Makefile now depends on NSIS and 7-Zip being reachable from the path, but now "make install" will build an EXE installer and auto-archive .7z and .zip binary folders. * DocBook-based manual written. It currently reflects version 1.1.2, but this is acceptable since the UI has not really changed. * The doc directory in the J-Ben source archives also contains a .dia file showing a general outline of how J-Ben's source code is structured. 1.1.2: * Integrated KanjiPad. Code based on or borrowed from the KanjiPad code used by im-ja. Accessible through Kanji -> Find Kanji -> By Handwriting. * Major makefile changes. Now supports normal Linux building as well as win32 builds. Win32 builds require MinGW with mingw32-make plus sed and coreutils from gnuwin32. Include/lib dirs must be specified in the Makefile, but this should be a simple matter. Finally, MSYS is NOT used by this makefile; it is run from a regular command prompt using mingw32-make. * Updated EDICT2 and KANJIDIC to newer versions. * Removed all the files in the old_files directory. None of them are relevant any longer. * Moved Code::Blocks build files to old_files. With the new Windows make support, I think they're now obsolete, but I'll keep them around for a few more versions at least. * Added README.txt, INSTALL.txt and CHANGELOG.txt to project.