.release
-make website of the opening book. 

%next
-R:widget:  remove the tracking of parent/child. 
-R:Remove usage of document_editor as owned_editor, and use child
  processes. 
-R:multi_list_box:  use something other than CList.  (something not
 deprecated.) 
-R:consider using C++ libraries:  string, vector, io, ...
-R:GdkPixbuf migration:
  . Rewrite BOARD_IMAGE to load the file explicitely using PNG. 
  . Rewrite Image to use GdkPixbuf. (instead of GdkImage)
  . BOARD_IMAGE:  rewrite to load the image and the alpha channel from two files
    separately.  
  . Deprecate PNG.
  . The current image loading using LibPNG is whath makes BabyChess slow to
    start. 
-F:game_editor:  put the "Set Up position" command in the "File" menu. 
-R:"class Managed <Type>" for widgets, and make all widgets open/close
 in the ctor/dtor. (alternative to using the C++ binding of GTK+)
-R:Use fopen64() if present. define -DLARGEFILE or so.  (does that make
 sense?) 
-R:board/ev:  call the messages "board last_move" instead of
 "board_last_move".  The space avoids confusion with other messages
 that begin with "board_".   And send to the board/ev only the command
 that is written AFTER "board ". 
-R:MAP the board images for faster loading:
 .deprecate ALPHA_SERVER_IMAGE and always use a single image with to
  rows
 .find a way to map a SERVER_IMAGE (aka GdkPixmap). (may use internal
  structures), try patching Gdk.  (must use mmap)
 .implement maps in SCALED_BOARD_IMAGE. gui_game should now load
  instantly. (and not take ~2 seconds)
 .needs to be done with gdk-pixbuf
-R:game/variation:  also use the "book" format internally; deprecate GAME
-R:button_bar: use Gnome implementation. 
-R replace DYNAMIC by auto_ptr 
-F be able to load files read-only (=view mode)
 . have a check box in each file chooser
 . Always call Modify() before making a change.
 . Make Modify() return false when changing is impossible, and return.  
 . have a command line option
-R:book:  maybe support holes ?
-R:use the C++ binding of GTK+/Gnome 
-R:if the board had its own GdkWindow, it could have its own mouse
 pointer. (which could change)
-F:usability enhancement:  in dialogs, don't use labeled frames, but bold
 captions instead.  
-F:support PGN opening books.
-F:use another color for the stock pieces.  
-F:ics:  provide an editable list of servers with sensible default
 servers. (using configurations)
-F: Make searches in the archive editor. 
-F: Game editor:  replace game move list with text display and inline
 variations. 
-F: game archive editor:  display statistics. 
-F: Make CHESS_EVALUATOR write the main variation.
-F:game_editor:  display the main variation in the evaluator widget. 
-F:implement swiss tournament rules
-F:support extern chess board input
-F:  export games to text.  (and have an export options dialog.) with
 custom notation. 
-F:  export games to HTML, with configurable notation and
 diagrams. 
-F:  board:  export to file image using export options. 
-F:read endgame books
-F:parallel chess engine
-F:export/import to/from different database formats
-F: EPD (?):  yet another chess standard. 
-F:  ics: be able to save the game (by asking the server to print all
 game moves.)
-F:ICS_WINDOW:  game move list.
-F:ics_window:  seek dialog. (with graph, as all ICS client do)
-F:ics:  configure to use other program than "telnet".  (configure the
 telnet command.) (unnecessary)
-F:  be able to import text which is in an other notation than SAN
 (e.g. Dutch);  also try to ignore text between moves.  This is useful
 for cutting & pasting chess games from web pages etc...
-F:  use GnomePropertyBox for settings/properties dialogs. 
-F:  game_editor:  on the board, have an arrow displaying the next
 move. 
-F:game_editor:  when a move is found to be bad, insert the appropriate
 glyph. 
-F:PGN:  in PGN files, support ";" as an alias for ")(".  (This feature
 is often used in chess notation.)
-F:gprof:  .use -a when compiling.
 .inspect annotated source generated by gprof. 
-F:do "profile arcs":  search for that in the gprof docu. 
-F:have complete manpages
-F:be able to solve problems. (mate in N, ...) 
-F:put toolbars in a handlebox
-F:have game statistics such as:
 .the path of a piece through a game.
 .the number of times a certain piece was on a square (show for
  several games in an archive.) 
-F:engine_settings:  support new modes:
 .max depth
-F:implement thinking when the oppenent is to move. 
-F: Display mate as best move when found on the board.  
 . too much info on the board.
-F: Highlight next move, evaluator best move, and possible legal moves
 on board. 
 . too much clutter.
-S:pgn output:  How should newlines in PGN comments be handled?  
-F:game_editor:  msg_drag:  accept a move even when DRAG_TO is near the
 destination square. (?)
-F:implement position_archive_editor.(for FEN files with multiple
 positions) 
-F:editors:  implement auto-apply.
-F:board:  new option:  use background image. 
-F:create other piece image(s).
-F:game move list:  display game result at the end.  (in the column
 header index 0.
-F:undo 
-F:  have settings for the evaluator which can be edited in an
 editor_window.  (such as value of pieces and bonuses, etc...)
-F:  game_editor:  display the next move using an arrow behind the
 pieces.  When there are variations, display the variations, display
 the arrows for the variations in different colors. 
-F:  board:  tutor mode:  if there is just one legal move, display an
 arrow. 
-F:Popular forms of notation:
 .algebraic
 .long algebraic
 .coordinate
 .descriptive	
 .correspondence
-F:Handicap game mode (remove some pieces in the initial position).
 (especially in gui_match)
-F:evaluator_settings:  A.I. personalities
-F:sound:  hook into Gnome sound?
-F:notation française:  "pat" dans la notation.
-F:notation Koch/postale, gringmuth, udemann, descriptive
-F:chess notation / board settings serializing:  use XML. (libxml)
-F: ics/match:  allow moves to be made before the opponent has played
 (also with the promotion piece)
-F:support generating random Fisher chess position. 
-F:  game_Archive_editor:  be able to edit whole directories. 
-F:  implement 3-move-draw rule. 
-F:  evaluator_widget:  have two states:  one where just the first
 line is visible, and one where all is visible. 
-F:start_window:  have a big animation with chess pieces flying
 around etc...
-F:  bin/babychess:  also accept file names using the options "-f"
 (scripts should use it since file names may begin with "-". 
-F:  --edit-position:  support the option "-p FEN-POSITION". 
-F:  framed:  make it possible to make the frame invisible (only the
 label is visible.)
-F:  use customized string hash functions for all the "if" run-on
 statements. 
-F:write an evaluator which keeps the move tree, chooses a leaf at
 random (based on the score of each move), and thinks at that leaf for
 a while. 
-F:have a material_widget in the position editor. 
-F:board:  when board is small, the font on the frame should be
 smaller. 
-F:game_editor:  the player name display should be turned when the board
 is turned. 
-F:no one needs non-smooth chess pieces. 
-F:game_info_editor:  Maybe use gtk_calendar (?)
-F:game_editor:  in the legal move display, show the score of the
 position after that move (used to test the evaluation function.) (or
 only show the change in the score [e.g. -0.34]) 
-F:game_editor:  option not to make "ding". (or use Gnome sound
 system)  It would be better to configure that through the Gnome sound
 system. 
-F:board:  adapt the size of the frame to the size of the board (= no
 normal sized frame on tiny boards)
-F:board:  tutor mode:  when a piece has no legal moves, show the circle
 in red while the mouse button is down. 
-F:board:  tutor mode:  when a piece is pinned, highlight in red also
 the pinning piece (and maybe the king) 
-F:board:  tutor mode:  when clicking on an opponent's piece or an empty
 square, display the move that *go* to that square.
-F chess_evaluator:  implement some specific endgames:  mate with
 the queen, ....
-F  game_editor:  game move list:  use only double clicks to go to a
 move and highlight the current move cell.  (must use something else
 than CList) 
-F::  it should be possible to have a game finish and a variation
 continue after the last move. 
-F:descriptive notation:  support captures, promotions; supress K or Q
 when not necessary. 
-F:frame:  implement & use a Frame widget that doesn't display a
 physical frame. but display the title.   See what the Gnome guidelines
 have to say, and look at how other Gnome applications implement that. 
-F:saved_settings_widget:  sort the items alphabetically. 
-F:have the same docu system as GEdit. 
-F:dialogs:  instead of frames, use headers in bold (see HIG for exact markup). 
-F:material widget:  distinguish between bishops that are on light and dark
 squares.  For light squares, display a black square line around the bishop.
 for dark squares, display a gray filled square behind the bishop. 
-F:notation:  allow to customize the letters used for files
 (e.g. in french:  c-cedille for 'c', e-accent-aigu for 'e' etc...) 
-F:evaluator_widget:  have a widget that displays the current score graphically.  
-F:game_archive_editor:  append a column that displays the initial
 position (either empty, or in the style of KRP-KR if less than 7
 pieces) 
-F:game_editor:  when dragging a piece, mention in the status bar that
 pressing CONTROL when dropping will play the move as new variation. 
-F:position_editor/promotion_chooser:  use images of pieces were it
 makes sense. 
-F:game_editor: by default, the legal move window should only show 4
 lines. 
-F:game_archive_editor:  sort games according to the collating sequence
 described in the PGN docs. 
-F:material widget:  make it possible to display the
 score of the position by calling the function that CHESS_EVALUATOR
 also uses. 
-F:analyze with multiple engines simultaneously. 
-F:object_editors:  try "explicit apply" in most cases (recommended by
 the HIG)  
-F:try to have "default buttons" in every dialog window. 
-F:game_info_editor:  display some info about the game:  number of moves
 (in all variations, ....) 
-F:dialog windows:  if there is only a "close" button, call it "close"
 instead of "cancel". 
-F:be able to print 
-F:put the "game information" menu item in "File" and consider calling
 it "Properties". 
-F:check box groups:  provide a heading (just a label at the top that
 serves as a title.)
-F:radio group:  don't use a frame, but a heading (a label at the top). 
-F:board:  when dragging a piece, display info in the status bar.  e.g.:
 "e2-", "e2-d4", "e2-e4 1. e4".
-F:all dialogs/position_editor/radio_chooser etc.:  use "bold" for
 heading labels instead of framed/bevels. (also in
 notation_editor/board_settings_editor, ...)
-F:board:  when dragging with Ctrl- pressed, insert move as new
 principal variation.  (also indicate that in the status bar.)
-F:game_editor:  have a text box where moves can be entered.
-S:use valgrind. 
-F: support long options. 
-F:configurations_widget:  remember the current name and whether it has
 been changed.  If saving when no changes have been made, just rename
 the setting. (and its file) 
-F:hide/show the toolbar/status bar
-F:position_editor:  when the position is not legal, highlight the reason on the
 board in red (e.g. a king that is in check, or a pawn on the first row.)
-F:search for openings by name (in all languages)
-F:opening name book:  remove ends whithout comments
-F:opening name book:  fold duplicate positions.  (= recognize Zugumstellung) 
-F:document_editor:  File|Open:  when the document is not modified, open in THIS
 window. 
-F:babychess-book, support merging a PGN with multiple games. 
-F:write a program which splits a PGN file into all games. 
-F:write tests that load and save all settings.  Check that the saved settings
 are equal to the source.  Do it for all setting types. 
-F:document_editor:  consider dropping the "Load" command (it's
 non-standard). 
-F:have some test positions with known predefined best moves.  Write
 test that check how many knots are needed by the evaluator.
-F:heuristical evaluator (also find a new name for it)
-F:option for openings:  show opening names in legal move list. 
-F:use tear-off menues (see GTK-demo)
-F:the CList replacement can sort by itself. 
-F:game editor:  legal move list:  have a popup menu with the commands:  remove
 variation, enter variation. ; and a button bar to the right with these
 buttons. 
-F:game editor::game list:  have a popup menu with an item "Notation
 preferences". 
-use piece_widget in promotion_chooser, position_editor.
-F:ics_account_editor:  make it a configurations_editor. 
-S: maintain the opening names.
-F:have an eco book, and display ECO codes in OPENING_WIDGET. 
-F:allow double clicking on piece to play single move. 
-F:dialog titles in bold 
-F:opening widget:  should have a context menu.   Probably with options. 
-F:game_editor:  set modify flag when content of comment box is edited.  (Is
 there a CHANGED signal for TextView ?
-F:engine_entry:  have a drop down menu with all configurations. 
-F:board:  tutor mode should work when played with the keyboard. 
-F:player_widget:  use a configuration_menu with an owned engine_editor.
-F:players_editor:  have labels for Black/White.
-F:ics_account_editor:  have a checkbox that reads "Login as guest", which sets
the username automatically to "guest", and disables the username and password
entries. 
-F:ask_dialog:  use markup as described by HIG. 
-R:  Use autoconf
-R: Is GnomeMessageBox deprecated ?
-F: opening_widget:  have an option to display on N levels of opening names,
 where N is configurable. 
-parsing PGN:  parse all text representation of glyphs correctly. 
-board:  pressing the arrow keys when dragging should not interrupt the
 dragging, but just move the focus. 
-F opening book editor
-F game_editor:  displaying the legal moves:  sort moves according to
 occurences in the opening book.
-B promotion_chooser:  use push buttons instead of radio buttons. 
-player_widget:  put the engine_menu inside the radio box (which shouldn't have
 a frame)
-F board:  in tutor mode, when a piece is clicked, display the names of the
 openings beside the destination square. 
-B promotion chooser and position editor:  use piece push buttons instead of
 radio buttons.
-B engine_widget:  put the entry inside the radio chooser. 
-B babychess --edit-game:  pausing and continuing the engine very often leads to
inflated CPU time.  E.g., more than 100%. 
-F when the engine chooses a move from the opening book:  don't choose a move
marked "?" or "??".  
-F opening book:  write a program that checks the opening book:
  . that all functions exist
  . that if a string is translated once, it is always translated. 
-F babychess-game: list of legal moves:  display the percentage of move that
follow each move in the opening book.  (e.g. 1.e4 38%)
-F board:  while dragging a piece, the destination square, name of move, and
opening move name should be displayed.
-F board:  in tutor mode, the name of the move+opening name should be displayed
beside each destination square
-F board:  piece sliding
-F babychess-match:  pause the game
-F notation:  separate the language-specific settings (letters) from the rest
(short/long, display check...)
-NAGs:  use unicode characters to represent correctly
-F configurations:  when a stock config is selected and was changed, pressing
"Save" should create a new custom config with a name based on the stock
config. 
-F NAG:  support "double glyphs" :  e.g. "1.e4! +="  They are probably coded
"1.e4 $1 $2" in PGN.  Internally, just do "a | (b << 16)".
-F document_editor:  when opening a file in a new window and the current
document is a blank game, open the file in this window.
-F toolbar:  use a Gnome toolbar as in GEdit which can be teared off, and which
displays an arrow when it gets too small.  (instead of never becoming smaller
than necessary.)
-F babychess --match:  setting the time control
-B evaluator widget:  the pause, start and stop buttons:  GTK+ now has stock
items now for these.
-F document_editor:  in owned mode, it should be possible to save the
document. (whithout remembering the file name) 
-F players_display:  use a green circle to display the side to move. 
-F Use gtk_message_dialog instead of gnome_message_box, and don't say “No” on
buttons in dialogs. 
-F evaluator_widget:  when the engine changes, reset it, so the old engine
doesn't still run under the new name. 
-B baby-xboard-evaluator:  when the engine stops, the evaluator should stop. 
 (how do we now phalanx has finished?  It stops using CPU time)  
-B opening widget:  only the first opening name should be capitalized. 
-B deutsche Eröffnungsnamen:  Bei zusammengesetzten Namen sollte in bestimmten
Fällen ein Bindestrich eingefügt werden.  z.B. „Van’t-Kruijs-Eröffnung“.
-F babychess --match:  implement the three-move-draw-rule. 
-F babychess --match:  taking back moves
-F position_editor:  add a piece:  the radio chooser should have push buttons
with piece images.
-F support fullscreen mode
-board settings:  separate the theme settings from the overall settings.
(e.g. "Tutor mode" should not be saved with the theme) 
-board:  animated moves (when the engine plays, when stepping in the game, when
a piece slides back to it's from square when the move is not legal) 
-match:  have "aids" like list of openings, material...
-use the GTK+ question dialog instead of the GnomeUI question dialog. 
-notation:  drop useless config options (such as showing the sign for pawn moves)
-game archive editor:  support editing of the game tags directly from
within the table (as does Juk)  
-F support gnome-vfs
-Measure the time between starting a program and entering the main() function. 
-B game editor:  the NAG menu is unusable as an option menu.  Either group the
entries to submenues or use a combo box. 
-F game_editor:  when editing comments:  have buttons to insert the
following unicode characters: triangle (with the idea), half-circle
(better is)..., see http://www.sahovski.com/other/index.php?other=6
-F players_editor:  have a button to swap the players. 
-F fr:  Essayer d'utiliser l'espace mince avant certains signes de ponctuation.    
-F have a compile option to disable usage of the most advanced
Unicode characters. (not displayable on Solaris)
-R have object_editor_base
-document_editor/editor_window/object_editor:  have void *as arguments to put
functions in the base class
-F opening book:  automatize the following check:  if a player name is
translated once, it must be translated everywhere. 
-F opening book:  check automatically:  no variation must contain the same name
in a comment twice. 
-F match:  after the game is finished, allow it to be opened in the game
editor. 
-F Have "tip of the day"
-F --match:  when playing against an engine for which we now only the filename,
put the first letter of the filename in uppercase. 
-F bin/babychess --match:  be able to specify the players on the command line. 
-F --match:  when reshowing the player dialog, have the same settings as shown
before. 
-R merge babychess-evaluator, babychess-xboard-{engine,evaluator} into one
program. 
- merge document into document_editor_base. 
- message_receiver: deprecate sending messages (only ever call Receive()) 
- support 16 bit displays. 
- check automatically that all opening names call a function (i.e., no
untranslated names)
-E:usability:  is the right word "drop down list" (as in HIG) or "option
menu" as in GTK+ ?
-E:gtk-devel:  ask about stock icons for "start", "pause", "stop". 
-E:usability concern:  if all property dialogs are "auto apply", how is
it possible to revert to the old settings after changing options by
mistake. (ask on ML whether reverting to old settings should be done
at all.) 
- maybe --match and --edit-game should be merged. 
-regroup all GTK+ widget wrappers in one module. 
-use getopt_long
-use argp_parse to automatize output of --help (see glibc/manual/examples/argp)
-conf list:  sort entries using scandir()
-use register_printf_function to output square names. 
-bin/babychess:  use getopt only once on babychess.cc.  Deprecate
Document_Editor::DE_Set_Args() 
- process:  pass args without vector and strings. 
- gui_execute:  put all args at the end using varargs.
- make it work on solaris
-B babychess-position:  (Solaris) the about dialog does not display the   
 BabyChess image.   
.baby-position:  make sure it has the BabyChess window icon 
.babychess-game:  toolbar:  evaluator buttons:  images arent't
 loaded. 
.maybe false version of libpng linked. 
. Debug the ICON module (it receives an error message in GError) 
-B internet chess window:  use material widget consistently. 
-B internet_chess_window:  use Game::To_Move_Description(). 
-B baby-internet-chess:  an assertion fails when closing. 
internet_window:  there's still a pointer to side_packer. 
-B:test on the internet:  that the clocks work correctly in
baby-internet-chess. 
-B evaluator widget (Sol):  the name of the BabyChess engine is displayed
with the wrong date. (1.1.70) 
-missing gettext should be detected automatically, and not through
omit_gettext=1  
- rewrite the check for process_usage
-F:ics_window:  show FORMAT_LAST_MOVE() in status bar.  Need to know
 the move number and side to move. 
-make it work with traditional Make. 
