9 years agoUse coordFont default pixel size for other fonts
H.G.Muller [Tue, 9 Sep 2014 17:57:52 +0000 (19:57 +0200)]
Use coordFont default pixel size for other fonts

The message-font is way too large for the dialogs. A better solution
would be to redo the entire table of SIZE_DEFAULTS in xboard.h, as
this file is front-end-specific anyway.

9 years agoUse -gameListFont in Game List
H.G.Muller [Tue, 9 Sep 2014 17:39:50 +0000 (19:39 +0200)]
Use -gameListFont in Game List

Not implemented in a very generic way, but hacked into the code that
added the handler. There aren't many other listboxes that would need
adjustable font.

9 years agoFix Chat window for Xaw build
H.G.Muller [Tue, 9 Sep 2014 14:49:18 +0000 (16:49 +0200)]
Fix Chat window for Xaw build

The ICS output field and Hide button are removed from the ICS Interaction
window, to make it similar to the old Chat window. This required adding
some tests in the handlers of this window, to prevent segfaults due to
accessing it.

9 years agoFix infinite-regression problem on OS X
H.G.Muller [Tue, 9 Sep 2014 13:53:29 +0000 (15:53 +0200)]
Fix infinite-regression problem on OS X

Apparently the OpenFile handler can already be called during
gtkosx_application_ready (or gtk_signal_connect), so we have to make
sure 'suppress' is set before we call those.

9 years agoCorrect for .Xresources form->paneA renaming in manual
H.G.Muller [Tue, 9 Sep 2014 08:47:41 +0000 (10:47 +0200)]
Correct for .Xresources form->paneA renaming in manual

In the Xaw build the name of the form widget of dialog.layout.form...
hierarchy was changed to paneA, paneB, ... when allowing multi-pane
dialogs through the Break Option (such as the Engine Output window).

9 years agoUse GTK fonts in Engine Output and Move History
H.G.Muller [Tue, 9 Sep 2014 08:36:42 +0000 (10:36 +0200)]
Use GTK fonts in Engine Output and Move History

9 years agoInclude some conditional OS X fixes
H.G.Muller [Mon, 8 Sep 2014 18:42:11 +0000 (20:42 +0200)]
Include some conditional OS X fixes

DATADIR must be corrected to ~~ in the OS X app, and the info command
must be started in a different way.

9 years agoFix WB DoEvents error
H.G.Muller [Mon, 8 Sep 2014 18:12:08 +0000 (20:12 +0200)]
Fix WB DoEvents error

9 years agoLimit auto-extending to click on first move of PV
H.G.Muller [Mon, 8 Sep 2014 17:06:35 +0000 (19:06 +0200)]
Limit auto-extending to click on first move of PV

Even when auto-exted on clicks on the tail of a PV will no longer cause
any moves to be added to the game. Only clicks on or before the first
move can do that now.

9 years agoAnimate multi-leg in auto-play and forward event
H.G.Muller [Mon, 8 Sep 2014 14:20:26 +0000 (16:20 +0200)]
Animate multi-leg in auto-play and forward event

Replaying multi-leg moves is now also done by animating both legs.
In addition, the highlights are set on final and intermediate square,
rather than from-square.
(There seems to be a great deal of code duplication here. Why doesn't
AutoPlayOneMove simply call ForwardInner?)

9 years agoFix key bindings for non-menu functions
H.G.Muller [Mon, 8 Sep 2014 12:45:51 +0000 (14:45 +0200)]
Fix key bindings for non-menu functions

The accelerator keystrokes for next game, previous game and debug mode,
which don't have menu items, and are grouped in the menu table 'noMenu',
were not treated in the building of the translation table, as 'noMenu'
does not occur on the menu bar. An extra iteration is done now to
treat this menu group.

9 years agoFix Xaw key bindings
H.G.Muller [Mon, 8 Sep 2014 12:24:59 +0000 (14:24 +0200)]
Fix Xaw key bindings

The routine to automatically construct the translation table for
accelerator keys did not respect the rule that more specific keystrokes
(like :Meta<Key>Home:) have to be defined before more general ones
(like :<Key>Home:). As a result Alt+Home would activate the Revert
item, intended for plain Home.

9 years agoDefine default font names
H.G.Muller [Mon, 8 Sep 2014 12:20:08 +0000 (14:20 +0200)]
Define default font names

9 years agoFix MSVC problems
H.G.Muller [Mon, 8 Sep 2014 07:25:18 +0000 (09:25 +0200)]
Fix MSVC problems

Book.c did not include config.h, and thus missed the redefinition of
snprintf (which is not known in MSVC). The use of 'inline' in parser.c
also needed an MSVC redefinition, now added to winboard/config.h.

9 years agoFix GTK font patch
H.G.Muller [Mon, 8 Sep 2014 07:22:55 +0000 (09:22 +0200)]
Fix GTK font patch

9 years agoReplace strcasecmp by StrCaseCmp
H.G.Muller [Sun, 7 Sep 2014 21:35:22 +0000 (23:35 +0200)]
Replace strcasecmp by StrCaseCmp

The MicroSoft compiler does not know strcasecmp, so we better use
our own function for this everywhere.

9 years agoLet GTK build pay attention to font arguments
H.G.Muller [Sun, 7 Sep 2014 21:28:29 +0000 (23:28 +0200)]
Let GTK build pay attention to font arguments

Multi-line text edits now use the initial value of the Option.textValue
field as a pointer to a (char*) holding a font name, to be used for
the text displayed in it. (After which they overwrite the field with
the textView handle.) The font options -tagsFont, -commentFont, icsFont,
-moveHistoryFont and -gameListFont are now activated in the GTK build,
to control the corresponding memos.

9 years agoFix auto-display comment option in General Options
H.G.Muller [Sun, 7 Sep 2014 11:58:15 +0000 (13:58 +0200)]
Fix auto-display comment option in General Options

This options had the same ID as auto-Queen, making it ignored.

9 years agoCall DoEvents during time-consuming operations
H.G.Muller [Sun, 7 Sep 2014 11:43:48 +0000 (13:43 +0200)]
Call DoEvents during time-consuming operations

Processing of a game file for reading it, searching positions, saving
selected games or creating a book from them can take minutes. To keep
the application responsive during that time, the main loops of those
tasks calls DoEvents(). A possible risk is that the user can now do
too much, and will initiate actions that interfere with the tast in

9 years agoFix GameListHighlight WB
H.G.Muller [Sun, 7 Sep 2014 11:32:49 +0000 (13:32 +0200)]
Fix GameListHighlight WB

The routine to highlight a game line in the Game List listbox of WinBoard
used an extremely inefficient linear search to find the game amongst the
selected games. This has now been replaced by bisection, after finding
an upper limit to the number of entries in the listbox by doubling
a trial size.

9 years agoProvide DoEvents function in front-ends
H.G.Muller [Sun, 7 Sep 2014 10:10:50 +0000 (12:10 +0200)]
Provide DoEvents function in front-ends

A routine to process all pending events in a non-blocking way is now
provided in the Xaw, GTK+ and WinBoard front-ends, so that time-consuming
tasks (such as PGN loading or opening-book creation) can call it to keep
the user control over the application alive.

9 years agoFix syntax error in bitbase code
H.G.Muller [Sat, 6 Sep 2014 21:13:01 +0000 (23:13 +0200)]
Fix syntax error in bitbase code

9 years agoDescribe Save Selected Games menu in manual
H.G.Muller [Sat, 6 Sep 2014 20:35:22 +0000 (22:35 +0200)]
Describe Save Selected Games menu in manual

9 years agoLet Save Games as Book only use selected games
H.G.Muller [Sat, 6 Sep 2014 20:29:43 +0000 (22:29 +0200)]
Let Save Games as Book only use selected games

The book-creation code now only takes games into account that are
selected for display in the Game List.

9 years agoRewrite key-binding section of manual
H.G.Muller [Sat, 6 Sep 2014 20:20:19 +0000 (22:20 +0200)]
Rewrite key-binding section of manual

This section still wrongly described the key-binding procedure from
before the rewrite of the XBoard front-end.

9 years agoConnect scroll event to Graph Option in GTK
H.G.Muller [Sat, 6 Sep 2014 11:21:13 +0000 (13:21 +0200)]
Connect scroll event to Graph Option in GTK

The mouse wheel is now detected in graphics widgets, and passed to
the user handler as button 4/5 mouse events.

9 years agoMake sure node count is positive
H.G.Muller [Sat, 6 Sep 2014 11:15:55 +0000 (13:15 +0200)]
Make sure node count is positive

Engines that print the node count as an int overflow into negative values
when the count exceeds 2G. This is really an engine bug, but as it
interferes extremely annoyingly with the alignment of the Thinking Output
XBoard now repairs it by adding 4G to undo the overflow.

9 years agoConnect mousewheel to Forward/BackwardEvent (XB)
H.G.Muller [Fri, 5 Sep 2014 12:03:49 +0000 (14:03 +0200)]
Connect mousewheel to Forward/BackwardEvent (XB)

The mouse buttons 4 and 5 are now processed in the handler for the
board widget.

9 years agoFix size of time in Engine Output window
H.G.Muller [Fri, 5 Sep 2014 11:41:34 +0000 (13:41 +0200)]
Fix size of time in Engine Output window

When the thinking time exceeds an hour, the format hr:min:sec is now used,
in stead of min:sec.cents. This prevents the field from extending beyond
the tab stop when thr hours kick in, and should work upto 100 hrs.
(Going beyond that at the moment does not seem useful.)

9 years agoVerify if font-spec looks like one in Xaw
H.G.Muller [Thu, 4 Sep 2014 20:57:07 +0000 (22:57 +0200)]
Verify if font-spec looks like one in Xaw

To make XBoard resistant to mixed use of Xaw and GTK builds, which
would not understand each others font specs stored in the settings
file (they have in common), we now determine if the value looks like
an X-font. If it doesn't, the Xaw version ignores it. The GTK build already
ignored it if it did lool like an X-font spec.

9 years agoFix alignment in Engine Output window
H.G.Muller [Thu, 4 Sep 2014 15:03:55 +0000 (17:03 +0200)]
Fix alignment in Engine Output window

Numbers above 1000M would become too wide for their field. This is
solved by introducing the abbreviation 'G'. Values below 10M or 10G
now get an extra digit in their fraction, so that the precision is
at least 1%.

9 years agoAdd Save Selected Games menu item
H.G.Muller [Mon, 1 Sep 2014 12:44:54 +0000 (14:44 +0200)]
Add Save Selected Games menu item

A menu item to save all selected games in the Game List on a single
file is added.

9 years agoAdd final piece count to search criteria
H.G.Muller [Mon, 1 Sep 2014 10:03:58 +0000 (12:03 +0200)]
Add final piece count to search criteria

The Load Options dialog now has a text field in which a range can be
entered (like 8-10). Position search will then only select games that
had their final number of pieces in this range.

9 years agoFix castling rights on using -lgf
H.G.Muller [Fri, 29 Aug 2014 19:15:29 +0000 (21:15 +0200)]
Fix castling rights on using -lgf

The dummy InitPosition to force loading pieces was taking place after
InitBackend2(), while the latter could have already loaded a game
from an -lgf argument (which would then be spoiled by the InitPosition).
It has been moved to before InitBackend2() now.

9 years agoFix crash on double-click in Game List Tags
H.G.Muller [Tue, 29 Jul 2014 13:03:04 +0000 (15:03 +0200)]
Fix crash on double-click in Game List Tags

A double-click in the Game List Tags listbox has no function, but it
crashed XBoard, because the textValue field of teh ListBox Option definition,
supposed to contain a pointer to the user-supplied handler, contained a
pointer to an empty string.

9 years agoFix typing of null moves
H.G.Muller [Wed, 2 Jul 2014 12:34:53 +0000 (14:34 +0200)]
Fix typing of null moves

Entering a null move through the move type-in could fail because the
to-square coordinates (not used in its encoding) could have invalid values,
which would reject the move in an early stage of UserMoveEvent().
Null moves are now exempted from this vaidity test, while variants where
null moves are legal now accept them in any gameMode.

9 years agoFix adjusting clocks in Xaw version
H.G.Muller [Wed, 2 Jul 2014 12:04:22 +0000 (14:04 +0200)]
Fix adjusting clocks in Xaw version

The handler attached to Label options failed to flip the sign of the
option number when a button other than Button1 was pressed, so that time
would always be subtracted on Shift + ClockClick and never added.
Shift now also suppresses interpretation as null move when playing.
(In Analyze / EditGame mode it is still null move starting a variation.)

9 years agoFix null-move entry during play
H.G.Muller [Wed, 2 Jul 2014 10:37:18 +0000 (12:37 +0200)]
Fix null-move entry during play

Null moving by clicking the clock was only accepted in Edit Game and Analyze
mode, while in Chu Shogi and spin-offs it is also allowed during play.
An F_NULL_MOVE flag was introduced to make it easy to test for such variants,
and Machine White/Black mode now also interpret clock clicks as a null move
if the opponent's flag has not yet fallen.

9 years agoLet EditPosition double-click on piece promote it
H.G.Muller [Wed, 9 Apr 2014 07:53:56 +0000 (09:53 +0200)]
Let EditPosition double-click on piece promote it

For pieces with Shogi-like promotion (i.e. if the promoted piece has
pieceToChar defined as '+'), let a second click on it in Edit Position
mode promote or demote it (as the case requires) when the piece menu is off,
rather than remove it (as was the old behavior.

9 years agoMake EditPosition pallette work in Asian variants
H.G.Muller [Wed, 9 Apr 2014 07:19:43 +0000 (09:19 +0200)]
Make EditPosition pallette work in Asian variants

Construction of the pallette position was not working in variants that
did not have Pawns start on 2nd rank, or that had multiple ranks of pieces.
Now the algorithm is applied to all ranks.

9 years agoFix crash on opening Tags window Xaw
H.G.Muller [Sat, 5 Apr 2014 21:00:17 +0000 (23:00 +0200)]
Fix crash on opening Tags window Xaw

Suppressing the optional book button made the Xaw generic popup crash,
because the following button had the SAME_ROW modality, and was thus
positioned w.r.t. a non-existent widget.

9 years agoFix writing of Chu-Shogi FENs
H.G. Muller [Sat, 5 Apr 2014 18:39:55 +0000 (20:39 +0200)]
Fix writing of Chu-Shogi FENs

Promoted pieces were getting the wrong ID letter, of the piece demoted
by 11, rather than 22.

9 years agoAllow pseudo-engines to adjust the clocks
H.G. Muller [Tue, 1 Apr 2014 16:20:29 +0000 (18:20 +0200)]
Allow pseudo-engines to adjust the clocks

Implement new options -first/secondPseudo, which declare the corresponding
engine to be a pseudo-engine, which will then be granted super-powers
through some new engine->GUI commands. For instance, to adjust the time
remaining on the GUI clocks through wtime and btime commands (using msec).

9 years agoFix piece inscriptions
H.G. Muller [Tue, 1 Apr 2014 10:00:14 +0000 (12:00 +0200)]
Fix piece inscriptions

9 years agoFix reading Chu Shogi FENs
H.G. Muller [Tue, 1 Apr 2014 09:16:48 +0000 (11:16 +0200)]
Fix reading Chu Shogi FENs

The X (for Phoenix) was interpreted a 10 empty squares.

9 years agoFix loading positions in engine-defined variant
H.G. Muller [Mon, 17 Mar 2014 22:26:08 +0000 (23:26 +0100)]
Fix loading positions in engine-defined variant

Paste Position did not work when an engine-defined variant had redefined
the pieceToCharTable, as the position would be interpreted and sent to the
engine before receiving the setup command. Copying the pieceToCharTable
received from an earlier game to appData cures this, because it will then
be used by InitPosition, which would reset the table to default otherwise.
 Another problem was that setupSpoiledMachineBlack would not be reset
after a game with no moves, leading to a spurious 'go' command to the engine.

9 years agoRender inscriptions on Chu-promoted pieces in red
H.G. Muller [Mon, 17 Mar 2014 22:05:33 +0000 (23:05 +0100)]
Render inscriptions on Chu-promoted pieces in red

9 years agoAllow writing text on pieces
H.G. Muller [Mon, 17 Mar 2014 21:56:07 +0000 (22:56 +0100)]
Allow writing text on pieces

A new persistent string option -inscriptions allows the user to define
characters to be written on the various piece types. The string is
interpreted as UTF-8. This option is useful for on-the-fly synthesis
of Shogi pieces, where the string can contain the various kanji in
the canonical pieceToCharTable order. Except that only a single color
has to be given.

9 years agoFix initial sizing of board
H.G. Muller [Wed, 12 Mar 2014 21:08:04 +0000 (22:08 +0100)]
Fix initial sizing of board

Previous patches had destroyed the ability to obey the -size option.

9 years agoFix width of menu bar
H.G. Muller [Mon, 10 Mar 2014 20:15:30 +0000 (21:15 +0100)]
Fix width of menu bar

The truncated name might not have been terminated with '\0'.
TinyLayout now specifies the number of characters kept in the menu names.
In the OS X version truncating is never needed, as the menu bar is
at the top of the screen, independent of board size.

9 years agoFix warnings fonts patch
H.G. Muller [Sun, 9 Mar 2014 19:38:51 +0000 (20:38 +0100)]
Fix warnings fonts patch

9 years agoImplement (clock-)font handling in GTK
H.G. Muller [Sun, 2 Mar 2014 22:10:50 +0000 (23:10 +0100)]
Implement (clock-)font handling in GTK

The options -clockFont, -coordFont and -messageFont are activated,
and supposed to have string values like "Sans Bold 12". The default
values have the point size as 'wild-card' %d, however "Sans Bold %d",
and are expanded by a printf with the point size taken from the defaults
table. The expanded versions are saved back into the settings file,
prefixed with a size tag, as usual.
 So far -clockFont is the only font that is actually applied while
 The 'clock kludge' was interfering with the initial sizing, as for some
sizes the initial clock-widget height happened to be equal to the final
height. It was therefore abandoned, and we seem to be able to live without
 Sizes smaller than 49 were dominated (for 8-wide boards) by the menu bar.
Therefore tinyLayout now uses single-letter menu labels.

9 years agoAlso search indirection files in user's .xboard tree
H.G. Muller [Sun, 2 Mar 2014 19:45:57 +0000 (20:45 +0100)]
Also search indirection files in user's .xboard tree

9 years agoFix error Engine Output text highlighting
H.G. Muller [Sun, 2 Mar 2014 17:53:17 +0000 (18:53 +0100)]
Fix error Engine Output text highlighting

In wengineoutput.c higeTextStart and End where decalred both static and
extern, which somecompilers justifiably don't like.

9 years agoFix Board-dialog bug WB
H.G. Muller [Sat, 1 Mar 2014 15:09:09 +0000 (16:09 +0100)]
Fix Board-dialog bug WB

The drawing code for the sample square did ot restore the correct brush.

9 years agoFix various warnings
H.G. Muller [Fri, 28 Feb 2014 20:48:19 +0000 (21:48 +0100)]
Fix various warnings

Mostly written but never read errors. Also removed a debug printf that was
causing a format warning.

9 years agoKludge repair of expose after startup resize
H.G. Muller [Wed, 26 Feb 2014 15:34:52 +0000 (16:34 +0100)]
Kludge repair of expose after startup resize

Redraw of the main board after resize is delegated to DragProc, which is
scheduled after a delay, to make sure the user is done sizing (mainly to
reposition docked windows). But at startup the program-requested resize when
an engine does not support variant normal and needs a different board format
takes so long that the finale size expose occurs after the DragProc timeout.
As a result, the board was never drawn on the resized canvas.
  This is quite hard to fix in a satisfactory way. For now the suppression
of board redrawing during resize is disabled during the first 10 seconds
after startup, as any resize during that time is likely to be the result
of a program request.

9 years agoUse first engine as default for second
H.G. Muller [Wed, 26 Feb 2014 12:08:50 +0000 (13:08 +0100)]
Use first engine as default for second

Rather than having the same fixed default for both engines, we noww only
have a fixed default for the first, and use the actual first as default
for the second. One advantage is that this guarantees the second engine
plays the same variants as the first by default.

9 years agoAllow adding played move to book
H.G. Muller [Sun, 23 Feb 2014 22:51:20 +0000 (23:51 +0100)]
Allow adding played move to book

A button is added in the Edit Book dialog to prime XBoard for adding the
next move entered through the user interface to the book window, without
actually playing it.

9 years agoPlay move right-clicked in Edit Book dialog
H.G. Muller [Sun, 23 Feb 2014 21:54:55 +0000 (22:54 +0100)]
Play move right-clicked in Edit Book dialog

A handler for button-3 down-clicks is added to the Edit Tags dialog,
which fakes the clicked word was typed in the move type-in box.

9 years agoFix pop-down of ChatDlg and TextMenuDlg from menu
H.G. Muller [Sun, 23 Feb 2014 18:23:28 +0000 (19:23 +0100)]
Fix pop-down of ChatDlg and TextMenuDlg from menu

Unlike other windows these two would not react to clicking the menu item
once they were up. Now they pop down in that case.

9 years agoPreserve window width on board-format change
H.G. Muller [Fri, 21 Feb 2014 10:10:41 +0000 (11:10 +0100)]
Preserve window width on board-format change

When a variant switch would cause recalculation of the board window,
we now first recalculate square size to keep the window width fixed.
Also adapt initial width on high boards.

9 years agoEquip Board Options dialog with themes listbox
H.G. Muller [Tue, 18 Feb 2014 21:37:31 +0000 (22:37 +0100)]
Equip Board Options dialog with themes listbox

The option -themeNames is made persistent for XBoard, and its value is
displayed in a listbox added to the View -> Board dialog. The user
can select themes from this, and manipulate the contents similar to
the engine list in Load Engine. A textedit allows the user to define a
theme name for the current settings, and doing so adds the theme to the
-themeNames list.

9 years agoImplement copy function in ICS Text Menu
H.G. Muller [Fri, 7 Feb 2014 10:22:44 +0000 (11:22 +0100)]
Implement copy function in ICS Text Menu

A command consisting of the word $copy will place the clicked word on
the clipboard. When there was already text selected during the click,
that selected text will be used for $copy and $name, rather than the
right-clicked word.

9 years agoWhen ICS Console open EOF from keyboard is no error
H.G. Muller [Fri, 7 Feb 2014 08:48:31 +0000 (09:48 +0100)]
When ICS Console open EOF from keyboard is no error

In case the user started without a terminal, we just close the input source,
and suppress future writing to the xterm.

9 years agoLeave xterm at start of new line after quitting XBoard
H.G. Muller [Thu, 6 Feb 2014 17:46:21 +0000 (18:46 +0100)]
Leave xterm at start of new line after quitting XBoard

9 years agoAlso display channel tell in ICS Console during private chat
H.G. Muller [Thu, 6 Feb 2014 17:36:41 +0000 (18:36 +0100)]
Also display channel tell in ICS Console during private chat

Channel tells of players for which a chat wa opened were displayed in that
chat, as well as in the channel chatbox, if the latter was open. But when
there was no channel chatbox it would not appear as colorized channel tell
in the console. This is now fixed, and in the private chat box such a
message is indicated as 'broadcast'.

9 years agoWrite broadcasts also to private chatbox of talker
H.G. Muller [Wed, 5 Feb 2014 22:08:50 +0000 (23:08 +0100)]
Write broadcasts also to private chatbox of talker

The shouts or channel chatboxes capture messages first, but if a private
chat with the talker is opened, it now goes there too. Prefixed with
the type of broadcast.

9 years agoFix Xaw Chat Console
H.G. Muller [Sun, 2 Mar 2014 12:18:34 +0000 (13:18 +0100)]
Fix Xaw Chat Console

9 years agoLet Ctrl-O key open chat for last talker
H.G. Muller [Wed, 5 Feb 2014 21:38:09 +0000 (22:38 +0100)]
Let Ctrl-O key open chat for last talker

9 years agoAdd End Chat button
H.G. Muller [Wed, 5 Feb 2014 21:15:03 +0000 (22:15 +0100)]
Add End Chat button

This button clears the current chat, so that it becomes free for
assignement to another partner.

9 years agoCtrl-N in chat opens empty chat
H.G. Muller [Wed, 5 Feb 2014 20:59:10 +0000 (21:59 +0100)]
Ctrl-N in chat opens empty chat

This key isequivalent to pressing the left-most New Chat button.
If no unused chat present, it the command will be ignored.

9 years agoPreserve unfinished input lines during chat switch
H.G. Muller [Wed, 5 Feb 2014 20:29:42 +0000 (21:29 +0100)]
Preserve unfinished input lines during chat switch

This is problematic, as apparently we cannot write in widgets that are
active with key hits, so attempting to write it back in response to Tab
did not work. This is now done with a delay, for lack of a better method.

9 years agoRecognize Esc and Tab in ICS Console input
H.G. Muller [Tue, 4 Feb 2014 12:57:16 +0000 (13:57 +0100)]
Recognize Esc and Tab in ICS Console input

Esc is used to close the chat, or transfer focus to the board window.
Tab is used to navigate between chats (or open the first). Priority
is given to dirty chats.

9 years agoLet ICS Console pop up GTK in stead of ICS Input Box
H.G. Muller [Mon, 3 Feb 2014 19:35:31 +0000 (20:35 +0100)]
Let ICS Console pop up GTK in stead of ICS Input Box

9 years agoAdd context menu to ICS console XB-GTK
H.G. Muller [Mon, 3 Feb 2014 18:45:44 +0000 (19:45 +0100)]
Add context menu to ICS console XB-GTK

A right-click handler is added to the output memos of the ICS Interaction
window. It pops up the ICS text menu. It is remembered whether the menu
was already up; if not, it will be popped down after a command is selected
from it. Like the WinBoard context menu, the commands will be able to use
the clicked word.
The -icsMenu 'command' $chat is now recognized as a special case, not to
be sent to the ICS, but executed by XBoard. It will assign one of the
five chats to the clicked name. If no empty chat is available, the last
chat will be used (but not cleared).
 The -icsMenu in the master config file is now configured to contain
this command, but unfortunately this will not become effective for users
that already have a settings file.
The Text Menu now puts $input commands in ICS Console Input field when the
ICS Input Box is not up.
 The text placed in the input field for completion (as per $input directive)
turned out to be selected in GTK, so that when you stated typing, it was
erased again!
 By making the Text menu dialog subject to WindowPlacement control,
and interrogating the poition of the ICS Console window, the Text Menu
can be popped up such that the mouse pointer is on the bottom-left button.

9 years agoIntegrate ICS output into Chat Window
H.G. Muller [Sun, 2 Feb 2014 20:17:00 +0000 (21:17 +0100)]
Integrate ICS output into Chat Window

An extra pane has been added to the Chat Window to display the ICS output.
In GTK this output is colorized just as in the xterm. For Xaw this is not
possible. This pane is always visible, and the chat output can be hidden,
to double its size. Entered input will go to the selected chat (when not
hidden) as a tell or shout, or to the ICS as a command. The Chat-Partner
field is hidden together with the chat pane and the Hide button. Each of
the five chats now has a dedicated button; for unused chats (empty Chat-
Partner field) these now gets the text 'New Chat' inscribed on it.
Focussing is made more intelligent (to the Partner field when shown and
empty, otherwise to the input field).
The Up and Down arrows now work in the input field to recall old input.
 ScrollToCursor() was broken in GTK, because a mark was made for only
a single buffer. Now each buffer has its own end mark.
 Another problem was that using ScrollToCursow immediately after a memo
was shrunk (because a neighboring one expanded) it would still use the
old memo size, so that the bottom part remained out of view. Delaying it
50 ms solved that problem.
 A new option -icsUp was added to store the visibility in the settings.
It is updated only in ICS mode. The ICS Console pops up automatically
when the stored parameters say so. It is also made sticky.
 Unlike the xterm the textView does not extend background color to unwritten
positions behind the line. A separate GTK call is now added to set the
unwritten part to the same color as the background in normal text.
 A  control was added in the ICS Options dialog for setting the colors
of normal text (-colorNormal).

9 years agoAdd logo-size control XBoard
H.G. Muller [Sun, 2 Feb 2014 16:27:26 +0000 (17:27 +0100)]
Add logo-size control XBoard

This is mainly for the benefit of OS X useres who cannot find their
settings file. It requires a restart to become effective, which is
really sub-standard.

9 years agoAdd Edit Engine List menu item to XBoard
H.G. Muller [Sun, 2 Feb 2014 16:18:56 +0000 (17:18 +0100)]
Add Edit Engine List menu item to XBoard

In OS X the settings file is hard to find...

9 years agoFix warnings
H.G. Muller [Sun, 2 Feb 2014 15:41:13 +0000 (16:41 +0100)]
Fix warnings

Some unread variables are commented out, rather than removed, because they
can be useful for future development.

9 years agoFix moves of Spartan Captain
H.G. Muller [Sun, 2 Feb 2014 15:33:34 +0000 (16:33 +0100)]
Fix moves of Spartan Captain

The rewrite of the move generator did no longer pay attention to rookRange,
so that the Spartan Captain moved like a Rook.

9 years agoAdd Option type 'Skip'
H.G. Muller [Sun, 2 Feb 2014 15:18:07 +0000 (16:18 +0100)]
Add Option type 'Skip'

The value -1 used to suppress rendering of option controls was drawing
error messages, because enums are unsigned. So a new member Skip was added
to the enum.

9 years agoDetect Fischer castling in FENs
H.G. Muller [Sun, 2 Feb 2014 13:40:16 +0000 (14:40 +0100)]
Detect Fischer castling in FENs

Castling rights with unorthodox piece placement imply Fischer castling.
Make sure shuffling is done after detecting this, because it means K & R
can also be shuffled (as long as K remains between both R).

9 years agoAllow shuffling indicators in FEN
H.G. Muller [Sun, 2 Feb 2014 13:09:19 +0000 (14:09 +0100)]
Allow shuffling indicators in FEN

If the back ranks are enclosed by < > in a FEN, the route to shuffle
initial positions is invoked on it.

9 years agoAllow wild-cards in FEN
H.G. Muller [Sun, 2 Feb 2014 12:51:37 +0000 (13:51 +0100)]
Allow wild-cards in FEN

A question mark in a FEN will now be interpreted as a piece randomly
chosen from the holdings. (From which it will be removed.) Intended
for use in symmetric black/white pairs; when used on asymetric locations
or with non-identical holdings the results will be undefined.

9 years agoFix Seirawan reverse-castling animation
H.G. Muller [Sun, 2 Feb 2014 09:40:18 +0000 (10:40 +0100)]
Fix Seirawan reverse-castling animation

In Chess960 animation of castlings is suppressed, because the move is encoded
as KxR, so that the to-square in general is not the final destination of the
King. So it is just confusing to the eye to see the King slide to the Rook,
and then jump to an entirely different square. In S-Chess castlings can
similarly be encoded as RxK (to indicate gating at the Rook square), and
animation of those moves should be suppressed for the same reason. But it
wasn't, and in Fischer castlings denoted as RxK this even caused the Rook
to disappear when it didn't need to moved.
 Perhaps one day a smart method of animating Fischer castlings can be
designed. (E.g. remove Rook, animate King move to true to-square, place Rook?
But what if the King doesn't move at all? Animate Rook then? Normal castlings
now animate the King, and then just displace the Rook.)

9 years agoMake Fischer castling generally available
H.G. Muller [Sun, 2 Feb 2014 09:22:25 +0000 (10:22 +0100)]
Make Fischer castling generally available

A new volatile option -fischerCastlings allows every variant to be played
with Fischer castling, which so far was only allowed in variants FRC/CRC.
This only makes sense in shuffle variants, where King and Rooks might not
be in their orthodox locations. But even when they are, it has consequences
for the user interface, which will require dragging King on Rook as the only
way to enter castling. Like -shuffleOpenings the setting will be cleared
as soon as you switch variant (unless you switch to FRC/CRC, where they
Fischer castling is on by default). It can be set from the New Shuffle dialog.

9 years agoupdated po/pot files
Arun Persaud [Mon, 20 Jan 2014 06:41:52 +0000 (22:41 -0800)]
updated po/pot files

9 years agonew version number for developer release
Arun Persaud [Mon, 20 Jan 2014 06:19:10 +0000 (22:19 -0800)]
new version number for developer release

9 years agoupdated Dutch translation
Arun Persaud [Mon, 20 Jan 2014 06:15:33 +0000 (22:15 -0800)]
updated Dutch translation

9 years agoPut ponder checkbox in Common Engine dialog WB
H.G. Muller [Sun, 19 Jan 2014 19:44:33 +0000 (20:44 +0100)]
Put ponder checkbox in Common Engine dialog WB

This is yet another duplicate of the one in General Options and Adjudiactions.

9 years agoExpand %s in -openCommand to DATADIR and fix OSX settings-file name
H.G. Muller [Sun, 19 Jan 2014 19:27:59 +0000 (20:27 +0100)]
Expand %s in -openCommand to DATADIR and fix OSX settings-file name

This can be used in OS X to biggy-back a cd to a directory in the App
on the open command.

9 years agoAdd some checkboxes in General Options dialog WB
H.G. Muller [Sat, 18 Jan 2014 22:42:01 +0000 (23:42 +0100)]
Add some checkboxes in General Options dialog WB

Checkboxes are added for -variations, -memoHeaders and -autoExtend.

9 years agoFix warning in CheckTest
H.G. Muller [Sat, 18 Jan 2014 22:26:03 +0000 (23:26 +0100)]
Fix warning in CheckTest

9 years agoFix printing of engine-output headers
H.G. Muller [Sat, 18 Jan 2014 21:40:27 +0000 (22:40 +0100)]
Fix printing of engine-output headers

They were not printed on analyis of the first position after opening
the Engine Output window.

9 years agoFix sticky windows on Win8
H.G. Muller [Thu, 16 Jan 2014 22:07:28 +0000 (23:07 +0100)]
Fix sticky windows on Win8

9 years agoDrag touching edges together (WB)
H.G. Muller [Thu, 16 Jan 2014 21:54:32 +0000 (22:54 +0100)]
Drag touching edges together (WB)

When an auxiliary window is dragged by an edge, the snap code now checks
if that edge was touching another window. If so, that other window is sized
to keep touching the dragged edge. Unless it was also touching the main

9 years agoImplement new mate-score standard
H.G. Muller [Wed, 15 Jan 2014 21:35:23 +0000 (22:35 +0100)]
Implement new mate-score standard

Matescores are now indicated in the protocol as +/- 100000+DTM,
and in the Engine Output window as #DTM or #-DTM.

9 years agoPut fail-high/fail-low indicators in protocol specs
H.G. Muller [Wed, 15 Jan 2014 20:28:51 +0000 (21:28 +0100)]
Put fail-high/fail-low indicators in protocol specs

9 years agoswitch to new tbhits protocol
H.G. Muller [Wed, 15 Jan 2014 19:43:55 +0000 (20:43 +0100)]
switch to new tbhits protocol

The extended info is now expected as 3 bare integers, the last one
separated from the PV by at least one tab character.
The protocol extension is described in the CECP specs document.