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: * color values consist of a RGBA list, example: [[list 255 0 255 255]]. The first three elements being the R, G and B value, the last one being the alpha value. * window path_names by convention start with a "." and the parts are separated with a "." example: .w1.w2.b1 The current commands are: * [ntk button] * [ntk checkbox] * [ntk clock] * [ntk entry] * [ntk focus] * [ntk frame] * [ntk grid] * [ntk input] * [ntk label] * [ntk listbox] * [ntk menu] * [ntk render] * [ntk scrollbar] * [ntk spinbox] * [ntk text] * [ntk theme] * [ntk toplevel] * [ntk window] * [ntk widgetImage] These are mostly implemented. Additional commands will be: * [ntk pack] * [ntk place] * [ntk combobox] * [ntk gridManager] * ... 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: * Tcl version 8.5b3 or greater * tclOO HEAD version + the diffs in the attachment file of tclOO RFE 1842588 [http://sourceforge.net/tracker/index.php?func=detail&aid=1842588&group_id=10894&atid=360894] * itcl-ng HEAD version see URL: [http://incrtcl.cvs.sourceforge.net/incrtcl/incrTcl/itcl/?pathrev=itcl-ng] * in the itcl-ng repository you need to build and install the Itcl 4.0 package in subdirectory itcl * in the itcl-ng repository you need to build and install the some packages which are in subdirectories of subdirectory itk (itk package itself is not needed !!), see the next few lines * tclGL (subdirectory of itk)which contains Tcl package TclGL * glmwfw (subdirectory of itk) which contains Tcl package Glmwfw * glmwfwx11 (subdirectory of itk)which contains Tcl package GlmwfX11 * ntkWidgetImage (subdirectory of itk)which contains Tcl package ntkWidgetImage * ntk (subdirectory of itk)which contains Tcl package ntkWidget The small demos are found in ntk/demos directory. They are all started with: tclsh8.5 .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: !!!!!! %| top directory | itcl | | itk | itk | itk | itk | itk | itk | itk |% %| package directory | | | ntk | tclGL | glmwfw | glmwfwx11 | glmwfwwin32 | glmwfwmacosx | ntkWidgetImage |% %| 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: * button * entry * label * clock * listbox * spinbox * text Each demo can be started using the following line: tclkit ntkWidget button, label and entry have an optional second parameter: in the range of -180 <= 0 <= +180 to rotate the text (positive values counter clock wise, negative values clock wise) ---- !!!!!! %| [Category Package] | [Category GUI] | [Category Graphics] |% !!!!!!