Games::Go::Sgf2Dg::Dg2Tk - convert Games::Go::Sgf2Dg::Diagrams to perl/Tk windows
Contents
Bugs
We ain't got to show you no stinkin' bugs!
perl v5.30.0 2019-10-27 Games::Go::Sgf2Dg::Dg2Tk(3pm)
Description
A Games::Go::Sgf2Dg::Dg2Tk object converts a Games::Go::Sgf2Dg::Diagram object into Tk::Canvas item. The
close method calls Tk::MainLoop to dispays the collection of Canvases.
Bindings for the normal editing keys: Up, Down, Next (PageDown) and Prior (PageUp) traverse the NoteBook
tabs. Tab and Shift-tab also work as expected.
Left and Right keys select the previous or next NoteBook tab, but don't display it. Space and Enter
(carriage return) display the selected tab.
Methods
$dg2tk->configure (option => value, ?...?)
Change Dg2Tk options from values passed at new time.
my $coord = $dg2mp->diaCoords ($x, $y)
Provides access to the diaCoords option (see above). Returns coordinates in the converter's
coordinate system for board coordinates ($x, $y). For example, to get a specific intersection
structure:
my $int = $diagram->get($dg2mp->diaCoords(3, 4));
$dg2tk->print ($text ? , ... ?)
For most Dg2 converters, print inserts diagram source code (TeX, ASCII, whatever) directly into the
diagram source stream. Since Tk displays the diagrams immediately, there is no concept of a source
stream, so print just generates a warning.
$dg2tk->printComment ($text ? , ... ?)
Adds $text to the diagram comments.
$dg2tk->comment ($comment ? , ... ?)
For most Dg2 converters, comment inserts comments into the diagram source code (TeX, ASCII,
whatever). Since Tk displays the diagrams immediately, there is no concept of a source stream, so
comment does nothing.
my $canvas = $dg2tk->convertDiagram ($diagram)
Converts a Games::Go::Sgf2Dg::Diagram into a Tk::Canvas widget. Returns a reference to the Canvas.
The Canvas is also added to the Tk::NoteBook collection of diagrams that are displayed (at close
time).
my $converted_text = $dg2tk->convertText ($text)
Converts $text into text for display - gee, that's not very hard. In fact, this method simply
returns whatever is passed to it. This is really just a place-holder for more complicated
converters.
Returns the converted text.
$dg2tk->closeprints any final text to the diagram (currently none) and closes the dg2tk object. Also closes file
if appropriate.
$dg2tk->notebook
Returns a reference to the notebook of Tk::Canvas objects.
$dg2tk->diagrams
Returns a reference to the list of Tk::Canvas objects that make up the Tk::NoteBook of diagrams.
Note that each item in the list is actually a Tk::Scrolled object, the actual Tk::Canvas object is:
my $canvas = $dg2tk->diagrams->[$idx]->Subwidget('scrolled');
Name
Games::Go::Sgf2Dg::Dg2Tk - convert Games::Go::Sgf2Dg::Diagrams to perl/Tk windows
New
my $dg2tk = Games::Go::Sgf2Dg::Dg2Tk->new (?options?)
Any options passed to Dg2Tk that are not recognized are passed in turn to the Tk::Canvas widgets as
they are created (which may cause errors if Tk::Canvas also does not recognize them).
A new Games::Go::Sgf2Dg::Dg2Tk takes the following options:
boardSizeX => number
boardSizeY => number
Sets the size of the board.
Default: 19
doubleDigits => true | false
Numbers on stones are wrapped back to 1 after they reach 100. Numbers associated with comments
and diagram titles are not affected.
Default: false
coords => true | false
Generates a coordinate grid.
Default: false
topLine => number (Default: 1)
bottomLine => number (Default: 19)
leftLine => number (Default: 1)
rightLine => number (Default: 19)
The edges of the board that should be displayed. Any portion of the board that extends beyond
these numbers is not included in the output.
diaCoords => sub { # convert $x, $y to Games::Go::Sgf2Dg::Diagram coordinates }
This callback defines a subroutine to convert coordinates from $x, $y to whatever coordinates are
used in the Games::Go::Sgf2Dg::Diagram object. The default diaCoords converts 1-based $x, $y to
the same coordinates used in SGF format files. You only need to define this if you're using a
different coordinate system in the Diagram.
Default:
sub { my ($x, $y) = @_;
$x = chr($x - 1 + ord('a')); # convert 1 to 'a', etc
$y = chr($y - 1 + ord('a'));
return("$x$y"); }, # concatenate two letters
See also the diaCoords method below.
See Also
sgf2dg(1)
Script to convert SGF format files to Go diagrams
Synopsis
use Games::Go::Sgf2Dg::Dg2Tk
my $dg2tk = B<Games::Go::Sgf2Dg::Dg2Tk-E<gt>new> (options);
my $canvas = $dg2tk->convertDiagram($diagram);
