VERSION 1.04 works only with "newer" Tk (tested with 800.023 only). Use older versions for older Tk. A lot of manual intervention is still needed. See INSTALL.
The only target of this distribution is to deliver the additional files needed for non-X Tk on OS/2 via CPAN.pm.
Note that tkOS2GC.c is not included in Illya Vaes's tk-os2 distribution any more.
The Illya's port includes also files
default.h - modified patch tkCanvPs.c - included as patch tkImgPhoto.c - not needed tkMain.c - not needed tkOption.c tkPort.h - not needed tkSend.c - modified patch tkWindow.c - modified patch
I do not know what is the tkOption.c fix for, the rest is handled by patching.
Original TCL/TK sources are at
ftp://ftp.neosoft.com/pub/tcl/sorted/distrib/tkos2-4.1s.tar.gz (source) ftp://ftp.neosoft.com/pub/tcl/sorted/distrib/tkos2-4.1x.tar.gz (exes) ftp://hobbes.nmsu.edu/pub/incoming/tk41os2s.zip (source) ftp://hobbes.nmsu.edu/pub/incoming/tk41os2x.zip (exes)
(should be moved to
ftp://hobbes.nmsu.edu/pub/os2/dev/tcl/
shortly)
coords. of balloons). (Only residual support of new features of Tk800.) One needs to manually disable build of InputO.
1.03: Make addres.cmd pick up a correct DLL (names differ now for different
perls.)
Do not show switch-entry for withdrawn-from-the-start windows.
Let PM walk new windows.
Make transient windows have close buttons.
Root coordinates calculated OK now (menus posted in a correct place).
Menu accelerators work.
Fileevents work again.
"Real" menubars are height-resized, and post menus in a right
position.
Bugs:
menus can work even if one releases the button before choosing
the menu item - just put ! in Menubutton.pm:271.)
but with this basic_demo shows problems with popdown selection boxes.
Even without this a combobox is posted below the window.
"Real" menubars post menus with bad sensitivity, like comboboxes.
$Foo->Icon() hangs
1.04:
Support new font selection API.
Rework the logic of font selection.
Rework the calculation of a rendered text string length. Now the
characters "flow" at most by one pixel when the insertion point moves.
[This looks hardly avoidable. Fonts are rendered usings units of 1/256
of a pixel. If A is 6.3 pixels wide, then the chars in AAA are placed
at x-offsets of 0, 6, 13 - I assume usual rounding, I do not know which
rounding algo is actually used. If the insertion point is put after the
first A, then AAA is rendered as A - of width 6, then AA at offset 6.
When AA is rendered at offset 6, the chars are put at offsets 6 and 12.
Thus moving the insertion point by one char moves the third A from offset
13 to offset 12.]
Use inter-module communication to reset the event-loop-handler of Tk::Event
when Tk creates a first window.