xboard.git
9 years agomarked more strings for gettext that were only marked with N_()
Arun Persaud [Sat, 23 Apr 2011 04:50:58 +0000 (21:50 -0700)]
marked more strings for gettext that were only marked with N_()

they need to be marked again with _() when they are used to get the translated string

9 years agoupdated translation files
Arun Persaud [Sat, 23 Apr 2011 04:39:22 +0000 (21:39 -0700)]
updated translation files

9 years agoadded/fixed i18n support via gettext to xboard
Arun Persaud [Sat, 23 Apr 2011 04:37:22 +0000 (21:37 -0700)]
added/fixed i18n support via gettext to xboard

this was already added a long time ago, but now it's added again to
autoconf. Also fixed some compile errors that showed up.

9 years agoMake engine startup error non-fatal
H.G. Muller [Wed, 20 Apr 2011 08:27:20 +0000 (10:27 +0200)]
Make engine startup error non-fatal

When engine startup fails, do not generate a fatal error, but swicth
back to -ncp mode. Write on broken pipe errors had to be suppressed for
this.

9 years agoMake engine loadable during session
H.G. Muller [Wed, 20 Apr 2011 12:35:50 +0000 (14:35 +0200)]
Make engine loadable during session

A "Load Engine ..." menu item is added to the Engine menu, which pops
up a dialog where one can replace the first or second engine by a new
one, without destroying the game state. Switching from -ncp to engine
mode needed activation of some menu items in SetGNUMode, and
re-enabling clockMode. It was also important that noChessProgram is
cleared before re-initializing the ChessProgramState.
  The Load-Engine dialog can select from the list of installed
engines, and also add a newly specified engine to this list. In this
case it saves the directory, hasBook, and isUCI info with the engine,
and optionally the current variant. When loading an engine with a
specified variant, it resets the game and switches to the new variant.

9 years agoGeneralize WaitForSecond to WaitForEngine
H.G. Muller [Mon, 18 Apr 2011 13:56:47 +0000 (15:56 +0200)]
Generalize WaitForSecond to WaitForEngine

9 years agoAdd UnloadEngine routine
H.G. Muller [Mon, 18 Apr 2011 13:46:12 +0000 (15:46 +0200)]
Add UnloadEngine routine

9 years agoPut engine initialization code in per-engine function
H.G. Muller [Wed, 20 Apr 2011 11:45:51 +0000 (13:45 +0200)]
Put engine initialization code in per-engine function

Initializing of the ChessProgramStates first and second from the
option settings in appData is now done by separate calls to the same
routine. Clearing of options is added to the initialization. This is
needed when reloading an engine. This is done in a separate routine,
which could also be called on -reset options.

9 years agoBring structure in appData engine options
H.G. Muller [Mon, 18 Apr 2011 11:21:44 +0000 (13:21 +0200)]
Bring structure in appData engine options

All options in appData that came in pairs for both engines are replaced
by arrays of ENGINES (=2, for now) elements. The use of the named
appData field that are replaced in the source is replaced by use of the
corresponding array element, by #define directives in common.h, awaiting
their replacement.

9 years agoFix gettext macros in option dialogs
H.G. Muller [Tue, 19 Apr 2011 13:15:48 +0000 (15:15 +0200)]
Fix gettext macros in option dialogs

The strings in the tables were using _() in stead of N_().

9 years agoFix crash on using Engine #1 Settings in ICS non-zippy mode
H.G. Muller [Mon, 18 Apr 2011 18:58:01 +0000 (20:58 +0200)]
Fix crash on using Engine #1 Settings in ICS non-zippy mode

If XBoard is compiled with zippy the Engine #1 Settings menu was not
grayed out even when you don't run in zippy mode, and using it would
then crash XBoard.

9 years agoFix shogipixmaps
H.G. Muller [Tue, 19 Apr 2011 13:07:31 +0000 (15:07 +0200)]
Fix shogipixmaps

Some pixmaps forptomoted pieces had wrong background color, others had a
wrong name (so the one with the correct name was missing).

9 years agoChange texture-install directory to pixmaps/textures
H.G. Muller [Sun, 17 Apr 2011 17:12:00 +0000 (19:12 +0200)]
Change texture-install directory to pixmaps/textures

9 years agoLimit install of sound files to those in menu
H.G. Muller [Sun, 17 Apr 2011 15:36:32 +0000 (17:36 +0200)]
Limit install of sound files to those in menu

The sounds directory is set to .../xboard/sounds, and only ten
sounds are kept (all non-spoken).

9 years agoRemove some bitmaps from install
H.G. Muller [Sun, 17 Apr 2011 15:27:57 +0000 (17:27 +0200)]
Remove some bitmaps from install

Some files in the bitmaps source directory need not be installed,
because they are there only to be linked to the binary in a build
without LIBXPM, are README files or conversion programs. I left only the
stuff that is in a Debian binary package in .../xboard/bitmaps.xchess.

9 years agoConfigure some default sounds
H.G. Muller [Sun, 17 Apr 2011 14:34:03 +0000 (16:34 +0200)]
Configure some default sounds

The move sound is set to Wood Thunk; the sounds for tell and challenge
events to Phone and Gong, respectively.

9 years agoChange default sounds in Xboard menu
H.G. Muller [Sun, 17 Apr 2011 14:17:30 +0000 (16:17 +0200)]
Change default sounds in Xboard menu

All spoken sounds are removed now. Thud, Click and Ching are replaced by
Wood Thunk, Slap and Cymbal; Car Horn and Pop are added.

9 years agoMake user wav file available for try-out in sound dialog
H.G. Muller [Sun, 17 Apr 2011 10:46:47 +0000 (12:46 +0200)]
Make user wav file available for try-out in sound dialog

The GenericReadout was adapted to be able to read a single selected
value, so that the callback to the 'play' button in the sounds dialog
could get the name of the 'user WAV file' without accepting all settings
for the other sounds (which should only happen on 'OK', and might still
be cancelled in stead).

9 years agoconfigure: enable silent rules by default
Arun Persaud [Sat, 16 Apr 2011 17:36:31 +0000 (10:36 -0700)]
configure: enable silent rules by default

9 years agoconfigure: added install directory for bitmaps files: .../games/xboard/bitmaps/default/
Arun Persaud [Sat, 16 Apr 2011 17:28:16 +0000 (10:28 -0700)]
configure: added install directory for bitmaps files: .../games/xboard/bitmaps/default/

9 years agoconfigure: added install of sounds in .../games/xboard/sounds/default
Arun Persaud [Sat, 16 Apr 2011 17:25:33 +0000 (10:25 -0700)]
configure: added install of sounds in .../games/xboard/sounds/default

9 years agoconfigure: renamed bitmapdir to pixmapsdir, since it installed only pixmaps. also...
Arun Persaud [Sat, 16 Apr 2011 16:54:26 +0000 (09:54 -0700)]
configure: renamed bitmapdir to pixmapsdir, since it installed only pixmaps. also changed name of default dir

pixmaps will now be installed under .../games/xboard/pixmaps/default/

9 years agoFix gamelist highlight
H.G. Muller [Sat, 16 Apr 2011 11:40:16 +0000 (13:40 +0200)]
Fix gamelist highlight

Reopening the gamelist should highlight the current game.

9 years agoFix size limit on 'save as diagram'
H.G. Muller [Sat, 16 Apr 2011 08:25:53 +0000 (10:25 +0200)]
Fix size limit on 'save as diagram'

In stead of a fixed-size buffer the diagram-save code now uses an
allocated buffer with size calculated from the bitmap parameters to
retreive the bitmap data, so it should work for all sizes.

9 years agoFix chaining of bottom-row dialog buttons
H.G. Muller [Fri, 15 Apr 2011 20:04:03 +0000 (22:04 +0200)]
Fix chaining of bottom-row dialog buttons

The OK & cancel buttons are chained to the bottom. This patch makes sure
that other buttons appearing in the same row (as in the tags and
comment dialogs) will be chained that way too, so that they will behave
the same on vertical sizing. The bottom of a full-width text-edit above
it will be chained to bottom too. To make this work in the tags dialog,
the (optional) cmail-message field had to be put above the tags memo.

9 years agoFix switching between pixmap and bitmap pieces
H.G. Muller [Fri, 15 Apr 2011 17:18:46 +0000 (19:18 +0200)]
Fix switching between pixmap and bitmap pieces

There were still several flags that had to be reset when redoing the
graphics initialization. The Debian patch to use a default bitmap
directory when none is given but monoMode is selected or forced, is
moved to a more sensible place, so that it does not disturb matters when
compiled without LIBXPM (when we do have built-in bitmaps).

9 years agoRemove outline-pieces option from board-options dialog
H.G. Muller [Fri, 15 Apr 2011 13:47:09 +0000 (15:47 +0200)]
Remove outline-pieces option from board-options dialog

This option does not exist in XBoard (yet).

9 years agoFix running of clock during hash allocation engine
H.G. Muller [Fri, 15 Apr 2011 13:41:38 +0000 (15:41 +0200)]
Fix running of clock during hash allocation engine

In TwoMachinesEvent we now wait for the second engine to acknowledge the
'ping' after 'new', to make sure it is done allocating hash in reaction
to the preceding 'memory' command, before the clock for the game is
started.

9 years agoDescribe move type-in in texi file
H.G. Muller [Thu, 14 Apr 2011 19:42:50 +0000 (21:42 +0200)]
Describe move type-in in texi file

9 years agoDescribe Copy Game List menu item in texi file
H.G. Muller [Thu, 14 Apr 2011 18:34:42 +0000 (20:34 +0200)]
Describe Copy Game List menu item in texi file

9 years agoDescribe -sweepPromotions in texi file
H.G. Muller [Thu, 14 Apr 2011 18:30:16 +0000 (20:30 +0200)]
Describe -sweepPromotions in texi file

The new method for selection promotion piece, and the -sweepPromotions
option are described in the texi file.

9 years agoDescribe -pieceMenu option in texi file
H.G. Muller [Thu, 14 Apr 2011 18:14:44 +0000 (20:14 +0200)]
Describe -pieceMenu option in texi file

The sweep method for selecting a piece in Edit-Position mode is
explained, as well as the -pieceMenu option.

9 years agoUpdate texi file
H.G. Muller [Thu, 14 Apr 2011 13:59:57 +0000 (15:59 +0200)]
Update texi file

Descriptions of the new XBoard menu dialogs are included in the docs.

9 years agoReorganize texi description
H.G. Muller [Thu, 14 Apr 2011 19:06:49 +0000 (21:06 +0200)]
Reorganize texi description

9 years agoFix sweep-promotions patch
H.G. Muller [Thu, 14 Apr 2011 10:31:15 +0000 (12:31 +0200)]
Fix sweep-promotions patch

Setting of the from square was moved to before OKtoStartUserMove in the
LeftClick handler, to make sure we could test the promotion possiblity
when OnlyMove() would have altered (x,y) to be no longer the from
square. But this setting of fromX, fromY hung on also if the move was
not OK, so you could effectively select opponent pieces and empty
squares. The from-square is now set back to undefined when it is not OK
to move the piece you clicked.

9 years agoAlter treatment of moves with empty squares
H.G. Muller [Thu, 14 Apr 2011 09:56:59 +0000 (11:56 +0200)]
Alter treatment of moves with empty squares

In Edit Position mode one can move empty squares, and use them to
'capture' pieces as a means to clear their square. But this often leads
to unintended disappearence of pieces one wants to grab for dragging, if
a previous click had inadvertantly left an empty square selected: the
click on the piece is then seen as the to-click of a click-click move.
  This patch treats to-clicks of moves with an empty-square differently
from other to-clicks: Rather than performing the move (in this case
clearing of the to-square) on the down-click, it defers that to the
up-click, and only does it if that up-click is in the same square. This
allows the user to grab the piece on the down-click, and drag it to
another square, if that is what he wanted to do, without being disturbed
by sudden implosion of the piece he tried to grab.
  If the to-square is in the holdings, grabbing the piece is the only
action, as moves of empty squares into the holdings are forbidden anyway.

9 years agoBlock selection of a directory when file is needed
H.G. Muller [Wed, 13 Apr 2011 11:14:00 +0000 (13:14 +0200)]
Block selection of a directory when file is needed

When we are not browsing merely to obtain a name to put in a text edit,
but really must return an open file pointer, selection of a directory
(ending in '/') can no longer be OK'ed in the file browser. (XBoard
tends to segfault when offered garbage for game or position file...)

9 years agoLet double-click select file in file browser
H.G. Muller [Wed, 13 Apr 2011 10:23:00 +0000 (12:23 +0200)]
Let double-click select file in file browser

A second click on the already selected entry now has the same effect as
pressing the OK button.

9 years agoCouple mouse wheel to v-scrolls in file browser
H.G. Muller [Tue, 12 Apr 2011 15:06:28 +0000 (17:06 +0200)]
Couple mouse wheel to v-scrolls in file browser

A newly added mouse-wheel event handler was made to call the v-scroll
callback routines with parameters to step one entry. The button-press
handler for the lists themselves was also made to intercept the wheel
events (buttons 4 and 5), to prevent they would select an entry, and
make them scroll in stead as well.

9 years agoFix crash copying game list when there is none
H.G. Muller [Wed, 13 Apr 2011 09:41:54 +0000 (11:41 +0200)]
Fix crash copying game list when there is none

9 years agoFix changing of float setting by generic popup
H.G. Muller [Wed, 13 Apr 2011 09:15:14 +0000 (11:15 +0200)]
Fix changing of float setting by generic popup

Changing a float setting (so far the only one is in the Load Options
dalog) did not always work, because the old value was clipped to (int),
so that changing it back to an integer value might erroneously conclude
there was no change.

9 years agoFix crash on closing dialogs in wrong order
H.G. Muller [Wed, 13 Apr 2011 14:15:22 +0000 (16:15 +0200)]
Fix crash on closing dialogs in wrong order

When a menu dialog was closed when it still had an open file-browse
daughter, which could be done through the system menu X on the title
bar, later closing of the file browser caused a crash. This is solved by
keeping track of the fact that there is such a daughter through a global
flag, and ignoring the pop-down command if there is one.

9 years agoFix startup focus of board window
H.G. Muller [Wed, 13 Apr 2011 14:33:16 +0000 (16:33 +0200)]
Fix startup focus of board window

When there were open auxiliary windows, these would have focus on
starting up XBoard. The XtSetKeyboardFocus call added in XBoard main()
was ineffective in curing that. It has now been replaced by a call to
XSetInputFocus, which does do the job. By giving input focus to the form
widget, rather than the board widget, XBoard will be immediately
sensitive to all key bindings.

9 years agoFix game-list highight error when filtered (WB)
H.G. Muller [Wed, 13 Apr 2011 13:48:35 +0000 (15:48 +0200)]
Fix game-list highight error when filtered (WB)

When the gamelist was filtered, the game that was highlingted was the
n-th game in the list rather than the n-th game in the file, when the
latter was loaded (and n did not exceed the number of filtered games).
This is fixed now by searching for the line in the listbox that starts
with the game number n, rather than taking the n-th line.

9 years agoRefactor move type-in code
H.G. Muller [Tue, 12 Apr 2011 17:20:46 +0000 (19:20 +0200)]
Refactor move type-in code

Common code between XBoard and WinBoard was moved to the back-end
creating TypeInEvent() and TypeInDoneEvent() routines.

9 years agoFix saving of XBoard fonts with spaces in name
H.G. Muller [Tue, 12 Apr 2011 08:13:40 +0000 (10:13 +0200)]
Fix saving of XBoard fonts with spaces in name

SaveFontArg now prints quotes around the saved font string, so that the
general option-argument parser doesnot stop at the first space it sees.

9 years agoImplement move type-in for XBoard
H.G. Muller [Mon, 11 Apr 2011 18:48:24 +0000 (20:48 +0200)]
Implement move type-in for XBoard

By adding an event handler to the main window for key presses, users can
now type moves when the board has focus, like in WinBoard. The typed
character appears as first character in the type-in box that willpop up.
Enter and Escape close the box; finishing the typing of the move enters
it. Like in WinBoard it is also possible to type a move number (to go
there) or (in Edit Position mode) a FEN.

9 years agonew developer release
Arun Persaud [Tue, 12 Apr 2011 03:59:44 +0000 (20:59 -0700)]
new developer release

tried to keep the v4.5.x branch developed already separated in the NEWS file, as well as DIFFSTAT and SHORTLOG.
The Changelog is just the one from master.

9 years agoupdated Changelog, NEWS, etc.
Arun Persaud [Mon, 11 Apr 2011 05:47:59 +0000 (22:47 -0700)]
updated Changelog, NEWS, etc.

9 years agoFix use of game/position file in first match game
H.G. Muller [Sun, 10 Apr 2011 18:32:57 +0000 (20:32 +0200)]
Fix use of game/position file in first match game

When a match was started from the menu, it was not paying attention to
game and position files. (Later games were.) The code that handled this
in the initialization when a match is started through the command line
was made into a routine MatchEvent, which can be called from the menu
proc too.

9 years agoFix crash on opening ICS Text Menu
H.G. Muller [Sat, 9 Apr 2011 18:55:47 +0000 (20:55 +0200)]
Fix crash on opening ICS Text Menu

The patch for the color defaults had broken the ICS Text Menu.

9 years agoImplement Copy Game List menu item for XBoard
H.G. Muller [Sat, 9 Apr 2011 17:22:00 +0000 (19:22 +0200)]
Implement Copy Game List menu item for XBoard

Some WinBoard code was cloned for this.

9 years agoThird method of sweep selection
H.G. Muller [Sat, 9 Apr 2011 09:42:21 +0000 (11:42 +0200)]
Third method of sweep selection

This method sweeps through the possible promotion choices for the piece
that is being dragged, as long as you drag a 7th-rank Pawn backwards. On
draggin such a Pawn forwards, it immediately shows it as the piece you
are going to promote to.

9 years agoAlternative sweep promotions
H.G. Muller [Fri, 8 Apr 2011 21:39:10 +0000 (23:39 +0200)]
Alternative sweep promotions

The sweep takes place on the from-square here.

9 years agoMake sweep-select promotions work in WinBoard
H.G. Muller [Thu, 7 Apr 2011 21:21:02 +0000 (23:21 +0200)]
Make sweep-select promotions work in WinBoard

The mouse-move handler had to be connected to the PromoScroll back-end
routine.

9 years agoFix path browsing in WinBoard
H.G. Muller [Thu, 7 Apr 2011 21:19:10 +0000 (23:19 +0200)]
Fix path browsing in WinBoard

The routine BrowseForFolder was still declared as static in woptions.c,
while it was used from wsettings.c.

9 years agoFixes to sweep selection
H.G. Muller [Thu, 7 Apr 2011 09:14:45 +0000 (11:14 +0200)]
Fixes to sweep selection

9 years agoImplement sweep selection of promotion piece
H.G. Muller [Wed, 6 Apr 2011 21:47:58 +0000 (23:47 +0200)]
Implement sweep selection of promotion piece

When the option -sweepPromotions is true, a click-click promotion move
will first display the default choice (usually Queen) on the promotion
square. While you have the mouse button still down, you can change the
piece by moving the mouse vertically.

9 years agoImplement sweep selection as alternative for the piece menu
H.G. Muller [Wed, 6 Apr 2011 19:20:30 +0000 (21:20 +0200)]
Implement sweep selection as alternative for the piece menu

When the option -pieceMenu is off, the piece menu will no longer appear
on right-clicks in Edit Position mode. In stead a Pawn of the chosen
color will appear immediately in the clicked square, and vertical
movement of the mouse with the right button down will cycle through
all other pieces defined in the pieceToCharTable of the current variant.
  Setting the side to move is acheived by clicking the correspondig
clock. Clear board can be effected by clicking the clock of the side
that already has the move.

9 years agoRemember Tags and Comment dialog coordinates
H.G. Muller [Wed, 30 Mar 2011 16:17:58 +0000 (18:17 +0200)]
Remember Tags and Comment dialog coordinates

The save-settings code now uses the shell and shellUp arrays from the
GenericPopUp to read out the window coordinates for Tags and Comment
window. Pointers used by GenericPopUp are set topoint to the
corresponding WindowPlacement structs.

9 years agoRedo Tags dialog
H.G. Muller [Thu, 10 Mar 2011 18:21:59 +0000 (19:21 +0100)]
Redo Tags dialog

The generic popup is used for generating the Tags / EditTags popups.
The tags popup use a 'label' field to display the cmail message

9 years agoImplement Edit-Comment window through generic popup
H.G. Muller [Fri, 1 Apr 2011 11:43:52 +0000 (13:43 +0200)]
Implement Edit-Comment window through generic popup

The Edit Comment and Comment popups are combined into one, that can
always be edited (similar to WinBoard). It uses shell number 1.
(Number 0 is for all transient dialogs.) A save-changes button is added.
The positioning is not implemented yet.

9 years agoRefinements to generic popup and color picker
H.G. Muller [Wed, 6 Apr 2011 08:56:57 +0000 (10:56 +0200)]
Refinements to generic popup and color picker

*) The text part of a checkbox can now be clicked to toggle the option.
*) Typing <Enter> in single-line text edits is ignored
*) Using a spin button now sets focus to the affected text edit, with
the insert position at the end.
*) Using the sample field or an RGB button sets focus to the
corresponding text edit, with the insert position at the end.
*) The adjust buttons now work in reverse, with a D button for "darker".
*) Editing a color field causes the sample field to update to the new
color when you type <Enter>.
*) The color pickers now define a default color, which can be instated
by clicking on the sample field.
*) Fix some 64-bit pointer warnings

9 years agoLet file browser filter on extension
H.G. Muller [Tue, 5 Apr 2011 15:05:39 +0000 (17:05 +0200)]
Let file browser filter on extension

A new text field is added in the file-browse dialog, to hold (space-
separated) extensions, on which the filenames are then filtered. This
field is initialized by the caller, depending on what we need the file
for, but can be changed by the user. (Directories are always displayed!)
  Changes in the extension field  become effective after typing a return
in it. Escape typed in the extension field gives focus to the filename
field, and restores the contents. Escape in the filename field cancels
the dialog, return ther OKs it. The extension filter of the browser is
initialized to the extension (if any) of the file currently in the text
edit you are browsing for.
  When re-opening the file browser from the XBoard File menu, and there
is no suggested filename, it will now start with the last succesfully
opened name as suggestion. Calling the browser with a NULL argument
for the suggested filename requests that (unlike calling with an empty
string, which will start it in the current directory). To make this
work smoothly, the filebrowser saves the last used name on entry, so it
can be restored on cancel, so that a cancelled browse session really
erases all memory of it.

9 years agoFix animation masks on changing piece pixmaps
H.G. Muller [Mon, 4 Apr 2011 17:26:53 +0000 (19:26 +0200)]
Fix animation masks on changing piece pixmaps

The animation masks were not remade when new pieces were loaded
interactively through the board-options dialog.

9 years agoFix linegap option in board dialog
H.G. Muller [Mon, 4 Apr 2011 17:09:21 +0000 (19:09 +0200)]
Fix linegap option in board dialog

The lineGC was not recalculated, so the grid lines stayed the same
thickness. In addition, setting the line-gap override to -1 now
retrieves the original line gap that belongs to the current board size.

9 years agoMake a kind of ICS text menu in XBoard as a dialog
H.G. Muller [Sat, 5 Mar 2011 22:27:48 +0000 (23:27 +0100)]
Make a kind of ICS text menu in XBoard as a dialog

The dialog with buttons can be opened from the View menu. It is
configured by the option -icsMenu; a default setting for this is
included in the master settings file.
  The commands specified by the -icsMenu can now contain $name and $input
keywords, which will be replaced by the current primary selection, or
text the user types, respectively. Commands that contain $name will not
be sent when the current selection is empty. Commands that do not
contain $input will be sent to the ICS immediately; otherwise they will
be placed in the ICS Input Box, with the cursor at the point of the
$input, and input focus given to the Input Box, so the user can start
typing. When a command is prefixed by "$add " it will be appended to the
existing ICS Input Box contents, rather than replace it.
  The items now have to be separated by ";\n", and button text from
command by ';' (with optional linefeed). This allows configuring of
multi-line commands, as a single linefeed no longer has special
sigificance.

9 years agoRedo ICS input box with generic popup
H.G. Muller [Thu, 31 Mar 2011 11:36:05 +0000 (13:36 +0200)]
Redo ICS input box with generic popup

This box is just a single text edit, but the complexity is in the added
callbacks. These callbacks remain in xboard.c, and were altered to
access the edit through the option.handle field.

9 years agoActivate -path and -file options
H.G. Muller [Sun, 3 Apr 2011 10:54:51 +0000 (12:54 +0200)]
Activate -path and -file options

In XBoard the generic popup was prepared for this. In WinBoard, for
-path options the BrowseFolder routine is used, and had to be made
global (prototype in winboard.h).

9 years agoLet generic popup generate Engine Settings dialog
H.G. Muller [Sat, 2 Apr 2011 16:40:33 +0000 (18:40 +0200)]
Let generic popup generate Engine Settings dialog

9 years agoMerge SettingsPopUp into GenericPopUp
H.G. Muller [Sat, 2 Apr 2011 16:36:09 +0000 (18:36 +0200)]
Merge SettingsPopUp into GenericPopUp

Based on currentCps the values read from the dialog are sent to the
engine, or stored into the option.target in the callback, and fetched
from the option.target in the PopUp. The currentCps is cleared in the
generic popdown of a transient dialog.

9 years agoMake generic dialog popup reentrant
H.G. Muller [Sun, 6 Mar 2011 09:11:06 +0000 (10:11 +0100)]
Make generic dialog popup reentrant

To allow persistent dialogs to be implemented through the generic popup,
it must be possible to have several dialogs open at the same time, and
thus make sure the popdowns under the cacel or close-window button know
which one to pop down. To this end an array shells[] is created that
takes over the function of settingsShell, and GenericPopUp gets an extra
parameter telling it which element to use for storing the dialog shell.
This number is then also passed to the callbacks that trigger popdown.
This was a bit nasty for the CatchDeleteWindow stuff, which passes user
data to the callback as text strings.
Keep a separate up/down indicator, so that shell widgets can be kept
for persistent dialogs. Also keep a currentOption per dialog type.
  The coordinates and size of the window is read out and stored in a
WindowPlacement structure, (if one is specified for that dialog), when
the dialog is popped down. When initialized the structure is also used
to set the window parameters when the dialog is created. (The idea being
that the structure was saved in the settings file.)
  The routine MarkMenu checkmarks a given menu item, and logs it for the
given dialog type, so that a later popdown automatically unchecks is.

9 years agoImplement Machine Match menu item and options dialog
H.G. Muller [Fri, 25 Feb 2011 11:14:25 +0000 (12:14 +0100)]
Implement Machine Match menu item and options dialog

An item to start a match from the menu is added, similar to what
WinBoard has. (The code is duplicated, so I guess it should be moved to
the back-end now, as MachineMatchEvent(), but it was tiny.) A dialog in
the Options menu was added with the aid of the generic popup, and allows
the user to set the load Game / Position File and Index.

9 years agoCreate General-Options dialog
H.G. Muller [Fri, 1 Apr 2011 12:54:26 +0000 (14:54 +0200)]
Create General-Options dialog

The generic popup is used to implement a General-Options dialog, which
contains all Boolaen options that used to be set directly from the main
Options menu, plus a spin option for the flash count and flash rate.
The corresponing options are removed from the main Options menu, but the
whole thing is made conditional on a compiler switch OPTIONSDIALOG.
The dialog needs an OK callback for sending an altered ponder-state to
the engine. (Why isn't this option disabled in -ncp mode, btw?)
A spin control is added to adjust -animateSpeed between 5 and 100.
Add dropMenu and showTargetSquares item as well.

9 years agoRedo new-variant dialog with generic popup
H.G. Muller [Fri, 1 Apr 2011 16:16:47 +0000 (18:16 +0200)]
Redo new-variant dialog with generic popup

Some special code was added in GenericPopUp() to force buttons of the
type needed in the New Variant dialog (wide, colored, greyed-out on
variant type). The dialog was implemented with these, and callbacks for
the buttons directly exit the dialog, without the need for OK. New spin
controls are added to the dialog for adjusting the board format.

9 years agoRedo common-engine dialog with generic popup
H.G. Muller [Fri, 1 Apr 2011 12:48:48 +0000 (14:48 +0200)]
Redo common-engine dialog with generic popup

The ponder option was removed, as it is already in the main Options
menu, and would require nastiness in the OK callback. Added book options
in common-engine dialog.

9 years agoRedo adjudications dialog through generic popup
H.G. Muller [Thu, 24 Feb 2011 12:32:01 +0000 (13:32 +0100)]
Redo adjudications dialog through generic popup

We dropped the periodic-updates option, as it is already in the main
Option menu.

9 years agoMake sounds dialog for XBoard
H.G. Muller [Fri, 1 Apr 2011 19:56:07 +0000 (21:56 +0200)]
Make sounds dialog for XBoard

This uses the combo boxes. A 'play' button isimplemented for a test
sound. A sound directory is introduced, and can be set through the
dialog. A default setting for -soundDirectory is added to xboard.conf.

9 years agoAdd ICS options dialog
H.G. Muller [Fri, 1 Apr 2011 21:11:29 +0000 (23:11 +0200)]
Add ICS options dialog

9 years agoAdd board dialog XBoard
H.G. Muller [Fri, 1 Apr 2011 19:52:48 +0000 (21:52 +0200)]
Add board dialog XBoard

The GenericPopUp() is used to implement a dialog for board options. The
board dialog needs to trigger redraw and redefinition of the
colors, through an OK callback. Color-pickers are used for the 6 basic
color settings.
  To allow changing board settings during the session (i.e. from a menu
dialog), the routines to allocate resources have to free the resources
for the previous settings first. This patch take care of XtCreateGCs(),
preventing re-creation of resources that are unchangeable (such as the
grid color), and calling XtReleastGC() on GCs that can be changed.
To prevent resource leaks the old pixmaps are deleted before making new
ones on second or later calls of CreateXPMPieces().

9 years agoAdd browse button to generic popup
H.G. Muller [Sun, 3 Apr 2011 09:39:26 +0000 (11:39 +0200)]
Add browse button to generic popup

Options of type FileName and PathName cause a browse button to be added
behind the text field. The SpinCallback is used to handle the
button presses, and invokes the file browser dialog to obtain a
filename, which is then copied to the text field.

9 years agoMake generic XBoard popup, and implement 2 dialogs
H.G. Muller [Fri, 1 Apr 2011 19:49:26 +0000 (21:49 +0200)]
Make generic XBoard popup, and implement 2 dialogs

The Engine-Settings dialog of XBoard was cloned to work on predefined
lists of (XBoard) options, rather than engine options. An extra field
was added to the Option struct, to hold a pointer to the XBoard variable
that should hold the option setting, so on OK'ing the dialog the altered
values can be copied there. Not usable for options which should trigger
an action (like redraw, or sending something to the engine).
A Load Game, Save Game and ICS Options dialog were then defined by
tables fed to GenericPopUp(). Options set from these dialogs were removed
from the main Option menu, which removes a lot of code from xboard.c
(for checkmarking, disabling the menu items).
  A button defined in the GenericPopUp can attain the color indicated
by a previous text field, and add a callback to change the color in a
spin-like manner (but using R G B W in stead of + - butons).
The EndMark option can specify a callback, to be used on OK.
A non-zero max field in the Option descriptor will be used to set the
width of ComboBox, TextBox and Button optons.
The elements are chained such that extra space goes fully into the input
fields. A label type is added for clarifying texts that would not fit in
the option names. A break-type (pseudo-)option is added. Make OK and
cancel button suppressable in generic popup (by 2 bit of the option.min
field).

9 years agoAdd file-browser option to just return name
H.G. Muller [Sun, 3 Apr 2011 09:34:21 +0000 (11:34 +0200)]
Add file-browser option to just return name

By passing mode "f" the file browser dialog will not open the selected
file at all, so it can be used to retreive the name for the benefit of a
file-browser button to a -file option. A mode "p" will limit the
selection to directories only, to browse for a path.

9 years agoPut insertion point at end of text on SetFocus
H.G. Muller [Sun, 3 Apr 2011 11:15:17 +0000 (13:15 +0200)]
Put insertion point at end of text on SetFocus

9 years agofixed 64 bit warnings by casting integers to intptr_t before casting to int
Arun Persaud [Wed, 6 Apr 2011 06:47:34 +0000 (23:47 -0700)]
fixed 64 bit warnings by casting integers to intptr_t before casting to int

9 years agoremoved check and #includes for malloc.h, since it's not needed
Arun Persaud [Wed, 6 Apr 2011 06:24:24 +0000 (23:24 -0700)]
removed check and #includes for malloc.h, since it's not needed

hopefully this doesn't break things on non-linux systems. OS X seems to be ok, not sure about others ;)

9 years agocheck if malloc.h is present before including it
Arun Persaud [Mon, 4 Apr 2011 03:23:49 +0000 (20:23 -0700)]
check if malloc.h is present before including it

OS X 10.6 doesn't have malloc.h, so it complained.

9 years agoFix bug introduced in commit 89b4744: removed a "/" and forgot to add it in the confi...
Arun Persaud [Mon, 4 Apr 2011 03:01:36 +0000 (20:01 -0700)]
Fix bug introduced in commit 89b4744: removed a "/" and forgot to add it in the config file

removed a "/" to make OS X happy, but forgot to add the "/" again in the xboard.conf.in file

9 years agoFix display of promotion piece in ICS superchess
H.G. Muller [Sat, 12 Mar 2011 13:08:50 +0000 (14:08 +0100)]
Fix display of promotion piece in ICS superchess

In Great Shatranj and Superchess promoted Pawns were displayed as shadow
piece because these variants had holdings, while captured pieces should
go back into the holdings unchanged, rather than reverted to Pawns.

9 years agoFix o-o castling in new parser
H.G. Muller [Sun, 13 Mar 2011 13:09:14 +0000 (14:09 +0100)]
Fix o-o castling in new parser

The non-compliant notation of castling with lower-case 'o' should be
preferred over the non-compliant interpretation of moving a Pawn along
the o-file. Not doing so breaks ICS play, as ICS use o-o and o-o-o for
castling! So an exception is now made for the o-file in the 'fxg'
case.

9 years agoImplement yynewstr entry point in new parser
H.G. Muller [Thu, 10 Mar 2011 18:27:41 +0000 (19:27 +0100)]
Implement yynewstr entry point in new parser

This entry point, used for parsing an ICS move list, was forgotten, and
was still an empty routine. This made XBoard crash when observing an ICS
game.

9 years agofixed wrong default for polyglotDir mentioned in docs.
Arun Persaud [Tue, 8 Mar 2011 07:11:00 +0000 (23:11 -0800)]
fixed wrong default for polyglotDir mentioned in docs.

Thanks to Hans Aberg for reporting it.

9 years agoFix "make install" on Os X10.6.6 (removed a "/")
Arun Persaud [Sat, 5 Mar 2011 20:39:01 +0000 (12:39 -0800)]
Fix "make install" on Os X10.6.6 (removed a "/")

seems like an extra "/" made "make install" unhappy

9 years agoremoved parser.l from build process, also removed flex dependency from configure
Arun Persaud [Fri, 4 Mar 2011 05:19:05 +0000 (21:19 -0800)]
removed parser.l from build process, also removed flex dependency from configure

9 years agoNew parser, written in C
H.G. Muller [Wed, 2 Mar 2011 21:14:57 +0000 (22:14 +0100)]
New parser, written in C

A new parser was written to replace the flex-generated one. Immediate
improvements are that it understand double-digit rank numbers, and Shogi
coordinates. No changes were made in the Makefile yet to reflect the
new, flexless building procedure.

9 years agoFix bugs in FRC castling rights
H.G. Muller [Wed, 2 Mar 2011 21:23:21 +0000 (22:23 +0100)]
Fix bugs in FRC castling rights

When parsing a castling move in FRC when no rights existed, the parser
returned 0 (= EndOfFile) rather than ImpossibleMove. The recognition of
the absence of rights was not adapted to the new encoding NoRights in
stead of -1.

9 years agoFix parsing bug of FRC castling
H.G. Muller [Tue, 1 Mar 2011 22:42:34 +0000 (23:42 +0100)]
Fix parsing bug of FRC castling

The code that was supposed to intercept castling when no rights existed
in FRC was not adapted to the new encoding for this by NoRights, rather
than -1, and furthermore returned 0 (= EndOfFile) rather than
ImpossibleMove. Not sure if the former would manifest itself in any
way, but the latter seems bad.

9 years agoFix two bugs in reading position diagram
H.G. Muller [Tue, 1 Mar 2011 22:32:25 +0000 (23:32 +0100)]
Fix two bugs in reading position diagram

When reading a game without FEN tag, a position diagram is used to set
the initial position. This calls CharToPiece() with a '.' as argument,
because that is the position-diagram way to indicate empty squares.
altered CharToPiece() over time this would be recognized as the first
undefined piece or, more recently, the first piece without nickName,
which is a white Pawn. Now it returns EmptySquare again in that case.
A second problem was that for position diagrams in braces the brace was
not in the list of ignored characters, and would cause the reading to
get out of phase, so that the side to move was not recognized.

9 years agoFix flipBlack option XBoard with board texture
H.G. Muller [Sat, 26 Feb 2011 20:12:08 +0000 (21:12 +0100)]
Fix flipBlack option XBoard with board texture

In XBoard -flipBlack is implemented by swapping white and black pieces,
because the Shogi bitmaps from XShogi are made that way. But the mask
used to cut out the whole in the board texture to fit the piece was not
swapped, both when drawing static pieces, as well as during animation.

9 years agoImprove repairing damage of arrow highlight XBoard
H.G. Muller [Fri, 25 Feb 2011 13:38:21 +0000 (14:38 +0100)]
Improve repairing damage of arrow highlight XBoard

With line gap the highlight arrow necessitated redrawing of the entire
board, to repair damage on the grid. This interfered with flashing of
pieces, which was only done on selective redraws. In stead of forcing a
total repaint we now just redraw the grid lines.