xboard.git
12 years agoRemove some unused images from png directory
H.G. Muller [Sun, 21 Oct 2012 09:41:11 +0000]
Remove some unused images from png directory

Currently only the three board texture files are used. But the piece
images are still left, because they might be useful if we ever want
to mae XBoard configurable for not using librsvg.

12 years agoFix bug in resizing
H.G. Muller [Sun, 21 Oct 2012 08:40:37 +0000]
Fix bug in resizing

The nominal size of the window was not set in the correct Option struct.

12 years agoPrevent odd-width line shift in length direction
H.G. Muller [Sun, 21 Oct 2012 07:58:23 +0000]
Prevent odd-width line shift in length direction

12 years agoPrint missing-pieces error message to console
H.G. Muller [Sun, 21 Oct 2012 07:48:29 +0000]
Print missing-pieces error message to console

The GUI might not yet be up at this point.In addition, suppress
the rest of the code, because it could give segfaults.

12 years agoFix garbage pixels on the right of the board
H.G. Muller [Sun, 21 Oct 2012 07:30:26 +0000]
Fix garbage pixels on the right of the board

The extra pixel that is requested in sizing the board window back to
an available size because we ofte get one less pixel than we ask for
can lead to a line of garbage pixels next to the board. This is combatted
by limiting expose events to the true board area, remembering that in the
Graph Option rather than the actual window size, and suppressing resizing
when the latter only exceeds the stored width by more than 1 pixel.

12 years agoTrim board-window size
H.G. Muller [Mon, 15 Oct 2012 08:27:14 +0000]
Trim board-window size

The board window will sometimes be a pixel larger than requested.
The ReSize routine will now reset the size values in the Graph Option
to what they were supposed to be, to prevent expose events will
draw nonsense in the extra space.

12 years agoAdapt docs for svg/png in stead of bitmap/pixmap
H.G. Muller [Sat, 13 Oct 2012 21:26:10 +0000]
Adapt docs for svg/png in stead of bitmap/pixmap

12 years agoSpontaeous changes in gettext stuff
H.G. Muller [Sat, 13 Oct 2012 07:35:31 +0000]
Spontaeous changes in gettext stuff

12 years agoMove Shogi svg pieces to own directory
H.G. Muller [Sat, 13 Oct 2012 06:03:48 +0000]
Move Shogi svg pieces to own directory

12 years agoRemove unnecessary Xt colors and call to MakeColors
H.G. Muller [Sat, 13 Oct 2012 05:57:48 +0000]
Remove unnecessary Xt colors and call to MakeColors

12 years agoCode cleanup: move expose redraw to draw.c
H.G. Muller [Sat, 13 Oct 2012 05:50:56 +0000]
Code cleanup: move expose redraw to draw.c

12 years agoSuppress warning for InitDrawingHandle
H.G. Muller [Sat, 13 Oct 2012 05:37:45 +0000]
Suppress warning for InitDrawingHandle

12 years agoMake fallbackPieceImageDirectory hardcoded
H.G. Muller [Sat, 13 Oct 2012 05:33:15 +0000]
Make fallbackPieceImageDirectory hardcoded

12 years agoIncrease drag delay too 200 msec
H.G. Muller [Sat, 13 Oct 2012 05:18:23 +0000]
Increase drag delay too 200 msec

On my slow laptop it can take more than 100 msec to reallocate bitmaps
in the generic expose, with as a consequence that the DelayedDrag event
is not processed before the timeout expires. The timeout event then triggers
a redraw, which again takes so long that the timeout expires before the
event to reset the timer could be processed, and this just perpetuates
itself, leading to a large series of queued redraws, and a long waiting time
for an image to appear after the sizing stops.

12 years agoFix segfault on faulty command-line option
H.G. Muller [Sat, 13 Oct 2012 05:01:05 +0000]
Fix segfault on faulty command-line option

12 years agoSuppress anti-aliasing in -monoMode
H.G. Muller [Fri, 12 Oct 2012 12:42:26 +0000]
Suppress anti-aliasing in -monoMode

In the color-substitution code, always use bi-level alpha and color.

12 years agoRemove piece pixmaps from project
H.G. Muller [Fri, 12 Oct 2012 11:34:04 +0000]
Remove piece pixmaps from project

12 years agoImplement proper fallback cascade
H.G. Muller [Fri, 12 Oct 2012 09:47:25 +0000]
Implement proper fallback cascade

Try in order cached svg, cached bitmap, user png, user svg, default svg.

12 years agoCache svg handles
H.G. Muller [Fri, 12 Oct 2012 09:06:06 +0000]
Cache svg handles

12 years agoInstall svg pieces in themes/default
H.G. Muller [Fri, 12 Oct 2012 08:45:29 +0000]
Install svg pieces in themes/default

The svg pieces are installed with the XBoard data in the directory
.../xboard/themes/default . A new option -fallbackPieceImageDirectory
is added, and is configured in the master settings file to point to
these pieces. This options, which replaces -svgDirectory, is volatile,
and the menu control to set it is removed. The -pngDirectory option
is renamed to -pieceImageDirectory (-pid).

12 years agoRemove bitmaps from project
H.G. Muller [Fri, 12 Oct 2012 08:02:50 +0000]
Remove bitmaps from project

12 years agoInstall the wood textures as png
H.G. Muller [Fri, 12 Oct 2012 07:55:07 +0000]
Install the wood textures as png

The xboard.conf has to be edited to set these as default textures,
in stead of the .xpm files.

12 years agoAdd hatched board texture
H.G. Muller [Fri, 12 Oct 2012 07:50:31 +0000]
Add hatched board texture

A png file with hatching is added, so it can be used for dark squares
in a monochrome theme. It is installed in a new data directory
.../xboard/themes/textures.

12 years agoadded a black and white theme to replace the mono option
Arun Persaud [Fri, 12 Oct 2012 05:21:06 +0000]
added a black and white theme to replace the mono option

12 years agoadded SVGs to dist files in automake
Arun Persaud [Fri, 12 Oct 2012 03:56:42 +0000]
added SVGs to dist files in automake

12 years agoFix exposure of atomic captures
H.G. Muller [Thu, 11 Oct 2012 17:44:22 +0000]
Fix exposure of atomic captures

The grid lines had to be repaired too, so damage marker 2 had to be used.

12 years agoFix animation with textures off
H.G. Muller [Thu, 11 Oct 2012 17:13:24 +0000]
Fix animation with textures off

The blank square was not shifted to (0,0) when drawing the animation buffer.

12 years agoFix 1-pixel offset of grid lines on some cairo implementations
H.G. Muller [Thu, 11 Oct 2012 17:08:49 +0000]
Fix 1-pixel offset of grid lines on some cairo implementations

12 years agoSolve odd lineGap problem
H.G. Muller [Thu, 11 Oct 2012 07:51:07 +0000]
Solve odd lineGap problem

Not all cairo versions seem to round the same when an odd-width line
is to be drawn at integer coordinates. So now we explicitly ask it
to be drawn centered on half-odd-integer coordinates.

12 years agoAdd -trueColors option
H.G. Muller [Tue, 9 Oct 2012 16:52:43 +0000]
Add -trueColors option

12 years agoAlways render svg pieces anew on size change
H.G. Muller [Tue, 9 Oct 2012 12:56:16 +0000]
Always render svg pieces anew on size change

The svg pieces are now unconditionally rendered to supply the pngPieceImage
master source otherwise read from png file. This is then fed into the
original png code (so that if for some reason it fails, we fall back on png
pieces, and finally on built-in pixmaps).

12 years agoFix rsvg version in configure.ac
H.G. Muller [Tue, 9 Oct 2012 12:06:47 +0000]
Fix rsvg version in configure.ac

12 years agoinitial svg rendering
Arun Persaud [Tue, 9 Oct 2012 02:54:19 +0000]
initial svg rendering

12 years agoadded cairo and librsvg to configure process
Arun Persaud [Tue, 9 Oct 2012 01:34:05 +0000]
added cairo and librsvg to configure process

12 years agoadded SVGs
Arun Persaud [Tue, 9 Oct 2012 01:32:55 +0000]
added SVGs

converted from inkscape SVG to plain SVG before adding

12 years agoAdapt Eval Graph code to new drawing system
H.G. Muller [Wed, 10 Oct 2012 19:19:25 +0000]
Adapt Eval Graph code to new drawing system

The eval graph now triggers an expose after drawing, and gets its size
from the Option fields.

12 years agoFix expose requests seek graph
H.G. Muller [Wed, 10 Oct 2012 18:37:58 +0000]
Fix expose requests seek graph

12 years agoMake draw handle for board globally available
H.G. Muller [Wed, 10 Oct 2012 18:07:53 +0000]
Make draw handle for board globally available

12 years agoLet expose requests pay proper attenton to widget
H.G. Muller [Wed, 10 Oct 2012 17:45:39 +0000]
Let expose requests pay proper attenton to widget

So far, expose requests were always assumed to be for the board widget,
preventing display of the labels.

12 years agoFix initial display of logos
H.G. Muller [Wed, 10 Oct 2012 16:45:59 +0000]
Fix initial display of logos

The logos were selected and printed during the initialization,
before the main event loop was started. So the expose events during
widget creation, which created the drawing surfaces, were only processed
after the initial drawing of logos, so that there was nothing to draw on!

12 years agoFix alignment of highlight expose
H.G. Muller [Wed, 10 Oct 2012 15:25:25 +0000]
Fix alignment of highlight expose

12 years agoremove NewSurfaces
H.G. Muller [Wed, 10 Oct 2012 15:19:52 +0000]
remove NewSurfaces

12 years agoMake expose handler generic
H.G. Muller [Tue, 9 Oct 2012 11:57:40 +0000]
Make expose handler generic

The Graph Option now returns two handles in hitherto unused fields of its
Option struct: Option.choice is a cairo handle of a memory buffer the user
must draw to, while Option.textValue is the handle to the widget.
Expose events copy the memory buffer to the display for the exposed area.
A routine DrawExpose() is supplied to let the user generate expose events.

12 years agoReload piece images when pngDirectory is changed
H.G. Muller [Sat, 6 Oct 2012 19:30:59 +0000]
Reload piece images when pngDirectory is changed

The OK function of the board options dialog now tests for a change
in pngDirectory and passes a parameter to InitDrawingParams to tell
it to destroy the old images. This cause a reload on scaling the pieces.

12 years agoSuppress redraw during sizing
H.G. Muller [Sat, 6 Oct 2012 18:16:54 +0000]
Suppress redraw during sizing

12 years agoFix bug in resize trigger
H.G. Muller [Sat, 6 Oct 2012 18:10:18 +0000]
Fix bug in resize trigger

Even if the square size does not change, the window has to be shrunk
back to fit the board.

12 years agoMake Piececolor options work on png pieces
H.G. Muller [Sat, 6 Oct 2012 17:54:50 +0000]
Make Piececolor options work on png pieces

The scaled, antialiased bitmaps are now colored according to the option
settings. This is done by decomposing every pixel in a white, black and
transparency component, which is possible because the opacity is
directly give in the alpha channel, and black originally was a hard zero.
So what you se in the red channel must be white (as the original white
was #FFFFCC), and the rest of the opacity must be due to black.
  The color to be replaced (white for the white pieces, black for the black
pieces) is then replaced by the original weight of this color times the
color from the option.

12 years agoPlug resource leak on rezising with pixmaps
H.G. Muller [Sat, 6 Oct 2012 15:53:25 +0000]
Plug resource leak on rezising with pixmaps

12 years agoFall back on built-in pixmaps if png pieces unreadable
H.G. Muller [Sat, 6 Oct 2012 14:19:41 +0000]
Fall back on built-in pixmaps if png pieces unreadable

12 years agoDo coordinate text alignment with cairo
H.G. Muller [Sat, 6 Oct 2012 12:21:11 +0000]
Do coordinate text alignment with cairo

12 years agoSome cleanup
H.G. Muller [Sat, 6 Oct 2012 11:40:12 +0000]
Some cleanup

12 years agoClean up drawing code
H.G. Muller [Sat, 6 Oct 2012 10:14:16 +0000]
Clean up drawing code

Now all routines only draw through cairo, the destination surface can
be passed to them, making it possible to do the duplicate drawing
to the memory board image in a cleaner way.

12 years agoCheck in draw.c, draw.h
H.G. Muller [Sat, 6 Oct 2012 09:37:20 +0000]
Check in draw.c, draw.h

12 years agoRemove all bitmap & pixmap drawing
H.G. Muller [Sat, 6 Oct 2012 09:26:24 +0000]
Remove all bitmap & pixmap drawing

All Xt code for drawing the board is now removed, as are the
-pixmapDirectory and -bitmapdirectory option. This version is now
completely dependent on cairo for handling of all graphics anywhere.
(The build-in pixmaps are still left, though, for later use as an
alterative cairo source when no png files are found.)

12 years agoSeparate off drawing routines from xboard.c
H.G. Muller [Sat, 6 Oct 2012 08:29:06 +0000]
Separate off drawing routines from xboard.c

A new source file draw.c is created to hold all code associated with
board drawing. The routines for loading bitmaps and creating colors
were left in xboard.c, though, as they are also used for handling
icons and colors of widgets.

12 years agoFix erasing dots in seek graph
H.G. Muller [Fri, 5 Oct 2012 17:53:04 +0000]
Fix erasing dots in seek graph

The cairo dots were just a little bit bigger than the old ones, so they
were not properly erased, but left a remnant.

12 years agoCleanup CairoOverlayPiece
H.G. Muller [Fri, 5 Oct 2012 17:25:58 +0000]
Cleanup CairoOverlayPiece

12 years agoDraw arrow also on backup image
H.G. Muller [Fri, 5 Oct 2012 17:22:34 +0000]
Draw arrow also on backup image

12 years agoFix highlight clearing
H.G. Muller [Fri, 5 Oct 2012 17:16:30 +0000]
Fix highlight clearing

12 years agoRemove acceleration trick
H.G. Muller [Fri, 5 Oct 2012 16:59:30 +0000]
Remove acceleration trick

12 years agoImplement variant-dependent png piece symbols
H.G. Muller [Fri, 5 Oct 2012 16:54:01 +0000]
Implement variant-dependent png piece symbols

12 years agoFix clearing of markers dots with promo popup
H.G. Muller [Fri, 5 Oct 2012 16:42:51 +0000]
Fix clearing of markers dots with promo popup

12 years agoAlso render coordinates to backup board
H.G. Muller [Fri, 5 Oct 2012 16:32:24 +0000]
Also render coordinates to backup board

12 years agoRemove debug print
H.G. Muller [Fri, 5 Oct 2012 16:30:35 +0000]
Remove debug print

12 years agoLet cairo also do evenly colored squares.
H.G. Muller [Fri, 5 Oct 2012 16:29:13 +0000]
Let cairo also do evenly colored squares.

12 years agoMake dragged piece for excluding moves transparent
H.G. Muller [Fri, 5 Oct 2012 15:56:43 +0000]
Make dragged piece for excluding moves transparent

12 years agoFix DrawSeekText
H.G. Muller [Fri, 5 Oct 2012 15:42:18 +0000]
Fix DrawSeekText

12 years agoRedo coordinate / piece-count printing ith cairo
H.G. Muller [Fri, 5 Oct 2012 15:40:55 +0000]
Redo coordinate / piece-count printing ith cairo

12 years agoAlso use cairo on slave board
H.G. Muller [Fri, 5 Oct 2012 13:40:14 +0000]
Also use cairo on slave board

With dual-board observing the drawing should be redirected to the
slave board, so SwitchWindow should also switch the xlib-surface to
one for the slave window.

12 years agoCure flashing of piece on from-square
H.G. Muller [Fri, 5 Oct 2012 13:12:41 +0000]
Cure flashing of piece on from-square

In a drag-drop move the piece was flashed on the from square after the
user dropped it on the to-square, because highlights were set before the
move had updated the board. And highlighting with arrow can cause a redraw
of the last board. Same with setting or clearing marker dots.

12 years agoSpecify proper condition for using cairo animation
H.G. Muller [Fri, 5 Oct 2012 12:20:12 +0000]
Specify proper condition for using cairo animation

12 years agoAllow resizing of board window
H.G. Muller [Fri, 5 Oct 2012 12:07:53 +0000]
Allow resizing of board window

In full png mode the size of the board window is no longer locked.
After resizing, the square size is calculated as the largest one that
would fit the window, and the window is then shrunk around it. To prevent
excessive redrawing during sizing, the redraw is delayed by putting it
in DragProc.

12 years agoSwitch to using 64x64 png images
H.G. Muller [Fri, 5 Oct 2012 08:41:02 +0000]
Switch to using 64x64 png images

The bitmap scaling works better when the needed factors are not too large,
as the svg rendering's anti-aliasing did not blur more than 1 pixel.
So after shrinking too much the images are not effectively anti-aliased
anymore.

12 years agoMaintain in-memory copy of the board image
H.G. Muller [Fri, 5 Oct 2012 08:16:47 +0000]
Maintain in-memory copy of the board image

As reading back from the xlib-surface proves incredibly slow (cairo probably
converts the entire image from Xt format to cairo format when we set it
as a source, even though we only want to read a few dozen pixels), we now
keep an exact copy of the board image as a cairo bitmap in memory. This
restores the speed of the animation, but unfortunately leads to awful code.

12 years agoDo animation with cairo
H.G. Muller [Thu, 4 Oct 2012 20:15:05 +0000]
Do animation with cairo

Unfortunately this is incredibly slow.

12 years agoAllow back-texture files to be PNG, (drawn with cairo)
H.G. Muller [Thu, 4 Oct 2012 16:36:08 +0000]
Allow back-texture files to be PNG, (drawn with cairo)

12 years agoAdd png pieces
H.G. Muller [Thu, 4 Oct 2012 13:10:37 +0000]
Add png pieces

A new directory with 256x256 png piece images is added to the source tree.

12 years agoAdd mode to draw PNG piece images through cairo
H.G. Muller [Thu, 4 Oct 2012 13:01:05 +0000]
Add mode to draw PNG piece images through cairo

The PNG images have to be supplied as files in a -pngDirectory (a new
option) with a 256x256 bitmap. They are then scaled by cairo to the
desired square size. This does not work very well for the smaller sizes.

12 years agoRedo marker dots with cairo
H.G. Muller [Wed, 3 Oct 2012 12:45:07 +0000]
Redo marker dots with cairo

12 years agoRedo highlights with cairo
H.G. Muller [Wed, 3 Oct 2012 12:27:14 +0000]
Redo highlights with cairo

12 years agoMake convenience routine SetPen globally available
H.G. Muller [Wed, 3 Oct 2012 12:07:37 +0000]
Make convenience routine SetPen globally available

The routine to set a pen as specified by  a color string that was used
in xevalgraph is moved to xboard.c, where there also is lots of demand
for it. The arrow drawing now uses it for setting the highlightSquareColor.

12 years agoRedo grid with cairo
H.G. Muller [Wed, 3 Oct 2012 10:28:30 +0000]
Redo grid with cairo

12 years agoRedo arrow highlighting with cairo
H.G. Muller [Wed, 3 Oct 2012 10:00:07 +0000]
Redo arrow highlighting with cairo

12 years agoRedo seek graph with cairo
H.G. Muller [Wed, 3 Oct 2012 09:20:12 +0000]
Redo seek graph with cairo

New front-end services DrawSeekOpen() and DrawSeekClose() have been
added, and are called from the back-end to enclose any drawing activity.
In WinBoard these had to be defined as dummies.

12 years agoRedo logos with cairo
H.G. Muller [Tue, 2 Oct 2012 13:31:26 +0000]
Redo logos with cairo

The logos must now be .png files, and are internally handled as their
filenames. (So no preparation of a drawable from it at startup.)
Cairo allows them to be scaled to the requested logoSize.

12 years agoFix Eval Graph resolution problems
H.G. Muller [Tue, 2 Oct 2012 12:02:23 +0000]
Fix Eval Graph resolution problems

Anti-aliasing had to be switched off to get a crisp graph. A second problem
was that the dashed lines were drawn in both directions, with interfering
dashes.

12 years agoRedo Eval Graph drawing with cairo
H.G. Muller [Tue, 2 Oct 2012 08:54:48 +0000]
Redo Eval Graph drawing with cairo

12 years agoFix button-border-width bug in monoMode
H.G. Muller [Sun, 21 Oct 2012 08:21:33 +0000]
Fix button-border-width bug in monoMode

The kludge of signalling we are dealing wih a button rather than a label
was wrongly implemented in case of momoMode.

12 years agoReserve more space for button bar
H.G. Muller [Sun, 21 Oct 2012 08:14:24 +0000]
Reserve more space for button bar

In some board sizes the button bar was wider than the code guessed,
so the window width would be determined by the message + buttons row rather
than the board.

12 years agoFix WinBoard compile errors
H.G. Muller [Sun, 21 Oct 2012 09:24:18 +0000]
Fix WinBoard compile errors

12 years agoFix non-NLS compile error for XFontStruct
H.G. Muller [Sat, 13 Oct 2012 07:33:39 +0000]
Fix non-NLS compile error for XFontStruct

12 years agoFix browsing for path
H.G. Muller [Fri, 12 Oct 2012 10:04:17 +0000]
Fix browsing for path

A pathname was still prefixed with the cuurent directory.

12 years agoUse Pause state in AnalyzeMode to imply move exclusion
H.G. Muller [Sun, 7 Oct 2012 19:00:10 +0000]
Use Pause state in AnalyzeMode to imply move exclusion

The pause state was not used in AnalyzeMode so far. Now it is used to
imply all entered moves are for exclusion/inclusion.

12 years agonew version number for developer release
Arun Persaud [Mon, 1 Oct 2012 01:55:13 +0000]
new version number for developer release

12 years agoFix broken -ics and -cp options
H.G. Muller [Sun, 30 Sep 2012 20:16:14 +0000]
Fix broken -ics and -cp options

The patch to specify engines and ICS by nickame broke the use of the
regular options to do this, because they could also reset them. Now
this is fixed by only setting them (through |= in stead of =).

12 years agoUpdate texi file
H.G. Muller [Sun, 30 Sep 2012 20:01:52 +0000]
Update texi file

The description of exclude-moves, multi-game ananalysis and duo-analysis
is added.

12 years agoResolve conflict between -mps and -inc options
H.G. Muller [Sun, 30 Sep 2012 08:07:58 +0000]
Resolve conflict between -mps and -inc options

The age-old problem that a persistent valid -inc value will cause -mps
to be ignored is solved by the kludge of storing these two as a single
option (-mps) in the settings file, and declaring the other (-inc) volatile.
The range of negative numbers (invalid as -mps value) was available for
that, and now is used to store the negated value of -inc in msec.
For backward compatibility, specification of -inc causes interpretation
of -mps in the old way. The forcing of -inc to -1 in the master settings file
could be safely removed because of this change, so that the time increment
now is a persistent option.

12 years agoAllow entry of fractional increment in WB time-control dialog
H.G. Muller [Sat, 29 Sep 2012 21:13:04 +0000]
Allow entry of fractional increment in WB time-control dialog

The numeric edit is changed to a general text edit, and code is added
to convert the text it contains to and from float, with proper error check.

12 years agoPreconfigure -icsNames in xboard.conf
H.G. Muller [Sat, 29 Sep 2012 21:05:33 +0000]
Preconfigure -icsNames in xboard.conf

Although XBoard has no startup dialog with an ICS combobox, the -icsNames
option is now used to select lines from with the -is option, and in
interpretation of positional arguments. The most common ICS are configured
together with a short nickname, so that commands like "xboard fics" will work.

12 years agoAllow ICS nickname as positional argument
H.G. Muller [Sat, 29 Sep 2012 20:58:12 +0000]
Allow ICS nickname as positional argument

If an argument is encountered that is not preceded by an option name,
it is now first checked if it corresponds to the nickname of an ICS
in -icsNames. If so, it is assumed to be the value of an -is option,
selecting -ics mode with that ICS and all the options installed with it.