The goal of GCBoard has been to take the best features of the excellent XBoard (WinBoard) program, or improving them when I felt necessary:
Automatic support for:
clicking to move
dragging pieces with the mouse
flashing pieces after the move
highlighting the last move
All these can be set on or off by setting a variable (which can be easily linked with the gui).
An easy to use programming interface
Automatic placement of a piece using many parameters.
Concept of numbered layers: you can add extra images in separate layers, they will be rendered correctly, using the layer number as the stacking order. It will eliminate the need to write extra code for adding elements to the graphical board. It is as simple as taking a bitmap and putting it in the correct place.
Cross platform: adding new platforms and toolkits is very easy (see documentation).
Fast animation (double buffered). This makes the library usable with languages that have a slow interpreter.
Support for more then one playboard or auxiliary boards, for example in Shogi to place the captured pieces.
Drawing the background and highlighting can be done automatically, or done by your application.