ntkWidget is an implementation of widgets similar to the existing Tk widgets (label, frame button, text, entry ...) by apw, which is based on the megapkg, ntk and freetypeext packages written by GPS. The idea is to have images as the base of all widgets and parts thereof. The implementation is derived from the NexTk implemented by GPS.
The implementation is done with an extended version of incr Tcl: itcl-ng, which provides the necessary functionality. Nevertheless it should be possible to use "normal" proc functionality of Tcl to use that package and to build for example megawidgets or GUIs based on the package.
General information on some of the "structuring" used for all of the commands below:
The current commands are:
These are mostly implemented.
Additional commands will be:
The commands are implemented in the ::ntk namespace as ntk namespace ensemble commands, so at least Tcl8.5b1 and Itcl 4.0 (itcl-ng) are necessary.
apw 2007-12-02 -- for trying out this package (this is still work in progress !!) you need at the moment:
The small demos are found in ntk/demos directory. They are all started with: tclsh8.5 <demoFileName>.tcl. Some have an additional command line parameter degrees to determine how much the widget should be rotated. There is also a short README file there.
Here a short overview over the directory hierarchy:
|source code directory||generic||library + demos||generic||generic||generic||generic||generic||generic|
|package name||Itcl 4.0||ntkWidget 0.1||TclGL 0.1||Glmwfw 0.1||GlmwfwX11 0.1||GlmwfwWin32 0.1||GlmwfwMacosx 0.1||ntkWidgetImage 0.1|
This code is currently only running under Linux/Unix, it has been tested with SUSE Linux 10.0
There is work in progress for support of Windows (glmwfwwin32) and there will be support for MAC OSX in the future.
apw 2007-12-19 There is a tclkit for testing the demos available here: http://tcl.wiedemann-netz.de/pub/ You will also eventually need the tclkit available there, as it must be at least a tclkit with Tcl 8.5b1.
The following very small demos are available:
Each demo can be started using the following line: tclkit ntkWidget <demo name>
button, label and entry have an optional second parameter: <degrees> in the range of -180 <= 0 <= +180 to rotate the text (positive values counter clock wise, negative values clock wise)
AM (20 december 2007) Unfortunately I get an infinite loop on "info exists auto_unload" in ::unknown:
... "info exists auto_noload" (procedure "::unknown" line 23) invoked from within "info exists auto_path" (procedure "::tclPkgUnknown" line 4) invoked from within "::tclPkgUnknown app-ntkWidget 0-" ("uplevel" body line 1) invoked from within "uplevel 1 $original [::linsert $args 0 $name]" (procedure "::tcl::tm::UnknownHandler" line 97) invoked from within "::tcl::tm::UnknownHandler ::tclPkgUnknown app-ntkWidget 0-" ("package unknown" script) invoked from within "package require app-ntkWidget" (file "/u/markus/Desktop/ntkWidget/main.tcl" line 14) invoked from within "source /u/markus/Desktop/ntkWidget/main.tcl" ("uplevel" body line 1) invoked from within "uplevel [list source [file join $self main.tcl]]"
apw 2007-12-20 - sorry 2 problems: the link was using the wrong version of tclkit, infinite loop fixed in ntkWidget
peterc 2008-09-15: Looks like an interesting project. Any screenshots available?