http://tkhtml.tcl.tk/ is the home page for one of the [Tk] [HTML widgets] that renders HTML into formatted text with hyperlinks. It is a compiled [extension]. As of late winter 2005, [Dan Kennedy] is revitalizing tkhtml [http://tkhtml.tcl.tk]. The new version of tkhtml is [tkhtml3], which has its own wiki page. ---- It appears that Tkhtml depends on Tk 8.0-8.3 . Pointers to modifications for Tk 8.4 or newer would be appreciated. It does work with Tk 8.4 (recent CVS sources), with non-threaded build. But with threaded build I'm encountering misterious segfaults. [Victor Wagner] Update 28.12.04. I've fixed problem with threaded build. It was related to mixed use of Tcl_Alloc and malloc and Tcl_Free and free respectively. Patches are available in my Debian package repository at http://45.free.net/debian/repository [Victor Wagner] Has anyone done any new versions of the Windows DLL? Seems to also show occasonal windows errors with current builds of TCL. A pointer to the latest DLL build available would be appreciated. {Daniel B.] --- The author writes, on the tkhtml mailing list, that he is working on making the tkhtml cvs accessible as well as setting up a new web site about tkhtml. ---- Does tkhtml '''only''' do HTML rendering, or is there actual code for acting as a WWW client in the widget? I can't tell from the web site. Only rendering - see below for www clients created using tkHTML. During late 2003, the author of tkhtml wrote on the tkhtml mailing list: > I've seen recent postings to news:comp.lang.tcl about people having all > sorts of bug fixes and enhancements for this widget and now this week > we see some uploaded files here for the widget. > > Has anyone contacted the original author to see if there would be interest > in creating an sf.net project, getting tkhtml source into it, then letting > people loose to start fixing and upgrading it? Anybody who wants to undertake the task of starting a sf.net project for tkhtml has my blessing. Or if sf.net is too slow for you, I can put the code on the [CVS] server at www.sqlite.org and turn folks loose on it there. See http://www.sqlite.org/ (or [http://www.hwaci.com/sw/tkhtml]; also, [Victor Wagner] has a recent image [http://ftp.45.free.net/pub/debian-cosy/sarge/tcl/tkhtml_2.0.20040914.orig.tar.gz] of the sources) for the cvs server machine mentioned. ---- Note that TkHTML uses [LGPL]. 2003-11-13 - In late 2002 [D. Richard Hipp] released the files that he wrote to the public domain. The remaining LGPLed file htmlexts.c was written by Peter MacDonald, and he has indicated that this will be re-licensed in the next release. (New release with some simple [CSS] support still a few months off at least apparently) Thanks to both of them for the great work and for releasing it with a [license] compatible with the Tcl/Tk core! Hopefully we'll see TkHTML included in the [Tk] distribution some time. (others have mentioned that this is on the cards..) ---- [Kitten], a compilation of extensions for the Tclkit user, includes compiled versions of tkhtml for Linux, Solaris, and Windows. The [ActiveTcl] Batteries included distribution includes tkhtml [http://aspn.activestate.com/ASPN/Downloads/ActiveTcl/]. ---- TkHTML is one of the numerous packages in the [Tcl] community which has its own pecular build requirements. Be certain to read carefully the COMPILE.txt instructions - and take their instructions literally ! You do '''NOT''' just do a compile; make ; make install on this package! 1. You have to build in a directory OTHER than in the source directory. 1. You have to be in that directory, and then invoke the source directory's configure 1. You '''MUST''' specify the --with-tcl and --with-tk flags, pointing to the source tree 1. You may very well have to modify the Makefile to do things like add -R flags, flags for locating the libraries for sockets, etc. ---- [Neil Madden] has provided a neat little 5 line .sig that points one to this wiki - see the code at [Simple Tkhtml web page displayer]. ---- [Detlef Groth] has written a [snit]::widget wrapper for the tkhtml widget called [snitbrowser]. [snitbrowser] is also used inside the Tcl-documentation tool [dgHelpBrowser]. ---- [kroc] has written a [Help.kit] with Tkhtml. ---- TkHTML shares its code base with [BrowseX]; the latter uses [TkHTML], and [Peter MacDonald] regularly updates the TkHTML CVS repository. ---- [LV] We should determine ''which'' tkhtml cvs repository Peter MacDonald is updating regularly and mention that here. ---- A mailing list for discussing D. Richard Hipp's Tk widget for rendering HTML - see http://groups.yahoo.com/group/tkhtml/ for the subscription info, mail archives, and even files of updates and enhancements like a [snit] wrapper! ---- What: Hipp miscellaneous widgets Where: http://www.hwaci.com/sw/ http://tkhtml.hwaci.com/ Description: Author has a variety of software available. A Tree and Notebook widget written in pure Tcl/Tk code is available. Also there is a new tk_messageBox which uses color icons and tkhtml, an HTML widget for Tcl/Tk. There is a DLL for the TkHTML widget built using the Tcl 8.x Stub library, as well as a shared library for RedHat Linux 6.0. Support continues to improve - support for table, script and applet tags recently added. See cvs -d :pserver:anonymous@cvs.hwaci.com:/tkhtml for the source code. Note that the TkHTML widget is distributed as GPL. Updated: 11/2004 Contact: mailto:drh@acm.org (D. Richard Hipp) What: Scout Where: http://www.sanmay.freeserve.co.uk/ Description: WWW browser which uses tkhtml . Updated: 08/2001 Contact: mailto:hbyers@sanmay.freeserve.co.uk What: Tixapps Where: http://tix.sourceforge.net/Tixapps/ Description: Suite of development applications that run with Tcl/Tk/Tix or Python/Tkinter/Tix. Includes an inspector, debugger and GNU texinfo browser. The code includes Python wrappers for TkHTML and TkTable. Currently at version 1.6 . Updated: 06/2002 Contact: See web site. What: VAD (Visual Ada Developer) Where: http://www.websamba.com/ldulman/vad.htm Description: Tcl/Tk oriented Ada-95 GUI builder, portable to different platforms such as Windows, unix, MacOS, and OS/2 . You can use it as an IDE for any Ada-95 (C, C++, Tcl) project. Uses GNAT, TASH, RAPID, Tcl/Tk 8.x, Img, icons, Help System, TkPaint, BWidgets, mcListBox, mComboBox, Tktable, ftp_library, csh, snack, BLT, itcl, Tix, QuickTimeTcl, XanimTcl, Tcl-gtk, Oratcl, XBit, Tkogl, tom, Vtktcl, Tkhtml, Fve, August, ASED, TclDOM, Tclxml Whiteboard, TkMC, tkxmlive, IDL_To_Ada. Currently at version 6.0 . Updated: 08/2002 Contact: See web site What: WebSamba package repository Where: http://www.websamba.com/tcltk Description: A variety of packages for Tcl/Tk 8.4a3, working with Windows and RedHat 7.1. Includes BLT, Snack, Tix, COST, TclX, Tktable, Img, Tkhtml, itcl, and TkOgl. Updated: 10/2001 Contact: mailto:dulman@attglobal.net ) (Leonid Dulman) What: browser Where: http://sourceforge.net/projects/tkbrowser Description: A wrapper around TkHTML with default bindings and functionality to create simple web browsing widgets. Currently at version 0.1 . Updated: 03/2002 Contact: mailto:nem@cs.nott.ac.uk (Neil Madden) [NEM]: Note that the above code hasn't been touched for a while. I did spend quite a lot of time improving this, but apparently I neglected to upload the changes to sourceforge. I have no idea where the newer code is now (probably lost). Somebody created a [snit] wrapper on this wiki which has approximately the same functionality as my package, and is probably a better starting point. What: kitten Where: http://www.equi4.com/pub/tk/examples/ Description: Kitten is a tclkit collection of Tcl/Tk extensions aimed at reducing the work a developer has to do while developing a scripted document. It contains scripting extensions like tcllib and BWidgets, as well as Expect, itcl/itk/iwidgets/tkhtml, and others. Binary extensions are compiled for Windows, Linux, and Solaris as possible. Updated: 07/2001 Contact: See web site. ---- [EKB] I found this post from [c.l.t] by [Victor Wagner] to be invaluable: I've build Tkhtml widget 2.0 from CVS and find out that it works very strange way. hv.tcl works and processes hyperlinks fine, but when I'm trying to use html widget in my code, mouse click events are ignored. It took me about half of day to find out that HtmlClip widget is silently created when page is loaded into html widget, and silently intercerts all events except on tiny border around widget. Also mouse wheel scrolling is not supported. I think that set of default bindings should be included into Tkhtml package, just as it is done for core Tk widget. At least following bindings should appear 1. binding which would change cursor to hand when over hyperlink (such binding already present in the hv.tcl code) 2. binding to invoke a command, specified with -hyperlinkcommand widget option 3. bindings (for instance, copied from text widget) Here is an prototype for this bindings: # # Change cursor to hand if over hyperlink # Copied from hv.tcl # bind HtmlClip { set parent [winfo parent %W] set url [$parent href %x %y] if {[string length $url] > 0} { $parent configure -cursor hand2 } else { $parent configure -cursor {} } } # # Mouse Wheel bindings # Cut'n'pasted from Text widget binding # if {[string equal [tk windowingsystem] "classic"] || [string equal [tk windowingsystem] "aqua"]} { bind HtmlClip { %W yview scroll [expr {- (%D)}] units } bind HtmlClip { %W yview scroll [expr {-10 * (%D)}] units } bind HtmlClip { %W xview scroll [expr {- (%D)}] units } bind HtmlClip { %W xview scroll [expr {-10 * (%D)}] units } } else { bind HtmlClip { %W yview scroll [expr {- (%D / 120) * 4}] units } } if {[string equal "x11" [tk windowingsystem]]} { # Support for mousewheels on Linux/Unix commonly comes through mapping # the wheel to the extended buttons. If you have a mousewheel, find # Linux configuration info at: # http://www.inria.fr/koala/colas/mouse-wheel-scroll/ bind HtmlClip <4> { if {!$tk_strictMotif} { %W yview scroll -5 units } } bind HtmlClip <5> { if {!$tk_strictMotif} { %W yview scroll 5 units } } } # # Invoke widget hyperlink command on the hyperlink # Invented by myself # bind HtmlClip <1> { set parent [winfo parent %W] set url [$parent href %x %y] if {[string length $url]} { eval [$parent cget -hyperlinkcommand] $url } } ---- [[ [Category Package] | [Category Internet] | [Category Widget] ]]