The goal is to create a complete graphical application, enriched with sophisticated interactive vector graphics.
Jeszra is written in Tcl/Tk and creates Tcl/Tk, Scalable Vector Graphics, DocBook Ltk (Lisp Wrapper for Tcl/Tk), Tkinter, Ruby-Tk code. The range of generated Graphical User Interfaces (Scalable Vector Graphics, Tk), languages (Tcl, Lisp, Python, Ruby) and documentation (DocBook) will increase over time.
The entire Tk functionality is covered by Jeszra; including contents related parts such as text, text tags, embedded images, listbox contents, geometry management, menu entries, canvas items and more...
All Tk geometry managers are supported by Jeszra. The support for direct manipulation differs for the various geometry managers.
Tk’s Geometry Managers
Grid, the most versatile stand-alone geometry manager in Tk. The grid geometry manager is lavishly supported by Jeszra. Grid is the first choice for any layout work.
Place, stand-alone geometry manager. Place is similar to window management under many windowing systems. Microsoft® Windows® or AQUA® for example.
Panedwindow is a window based geometry manager, a so-called built-in geometry manager.
Canvas, window based geometry manager. The canvas geometry manager is very important and lavishly supported by Jeszra. The PathCanvas window contains the same geometry manager.
Text, window based geometry manager.
For a more detailed discussion of Tk’s geometry managers see also the section called “Tcl/Tk Geometry Managers”.
Other supported geometry managers originate from various other packages such as BLT, Tile, TkZinc 3.3.4, and Tix.
Additional Geometry Managers
Table, stand-alone geometry manager inside of the BLT package. The table geometry manager is an ancestor to the grid geometry manager.
Htext, a window based geometry manager from the BLT package.
Zincwindow, a window based geometry manager from the TkZinc 3.3.4 package. Zincwindow is lavishly supported.
Table , a window based geometry manager. This table geometry manager is part of the TkTable spreadsheet and also lavishly supported.
Notebook, a window based geometry manager from Tile.
TixForm
These are some of the supported geometry managers. In total over 15 geometry managers are supported by Jeszra; originating from: Tk, Tile, BLT, Tix, ...
The geometry code generation uses a generic approach to figure out how a certain manager operates. Any new geometry manager, which follows the interface defined by: table (BLT), tixForm, grid, place and pack can be used right after its registration. Jeszra adds a comment to the generated source code with the registration instructions.
Jeszra is built with the Runtime Library, Gestalt Items, TkZinc 3.3.4 and TkPath.
The templates inside of the Runtime Library and Gestalt Items are created with Jeszra, as are their manual pages.
Additional Packages
BLT
Tile
Bwidget
Iwidget
Tix
tkTreeCtrl
TkTable
TableList
Hugelist
... are but a few of the window libraries and windows supported by Jeszra.
Jeszra uses a generic approach to create code for individual windows. If the window in question supports a »configure« call, then Jeszra will be able generate code for it.
Libraries are organized within palettes (the Galette).
Jeszra is distributed with palettes for TkZinc 3.3.4, Tk, TkPath, Runtime Library and Gestalt Items.
A library may receive a permanent palette inside of Jeszra, if Jeszra itself uses it. Otherwise ask the author of the library to provide a palette for Jeszra.
A notable exception is the palette »Allerlei«. »Allerlei« is reserved for single windows, which do not warrant an individual palette. Please inform about such windows, which are predestined to receive a place within »Allerlei«.
A Palette should contain between 6 and 16 items.
Libraries and windows beyond 4 to 6 entries may lose there place inside of »Allerlei«, yielding them to single items.
Jeszra is Open Source Software. If you see a certain functionality in Jeszra and like to use it in your own project: Edit Jeszra from within itself and copy-paste the item in question to your own project.
Modify and customize Jeszra: Through extensive preferences, and as a life editor. Every built-in functionality or graphical element can be graphically modified, deleted or extended as you see fit.
Jeszra combines traditional Graphical User Interface design with vector graphics. The TkZinc 3.3.4 and TkPath windows are being used for vector graphics. All the functionality of the canvas, TkPath and TkZinc 3.3.4 windows are covered.
Jeszra can be used as a full-fledged illustration tool, too. Canvas, TkZinc 3.3.4 and TkPath are supported; including transformations. There is, in particular, extensive support for the TkZinc 3.3.4. Including clipping, transformations and grouping. Contours are not directly supported from within the Graphical User Interface, but applicable through the shell.
Table 1.6. Vector Graphics
Tk Canvas | TkPath | TkZinc 3.3.4 | |
---|---|---|---|
Graphics | text, line, polygon, image, oval, arc, rectangle. eps from the BLT package. | ptetxt, path, polyline, ppolygon, prect, pimage, ellipse, circle, group | text, icon, group, arc curve, rectangle, track, waypoint, triangle, tabular, recticle |
Embedded Windows | The built-in geometry manager is automatically used. Built-in geometry managers are dominant over stand-alone managers in Jeszra | ||
Embedded Images | Via Inspector and Drag'n'Drop in Hierarchy View. | ||
Animation | Built-in | - | |
Events | Via Inspector event page | ||
Rotation | Introduced with Tk 8.6 are not supported. | Direct and via Inspector | |
Zoom | Direct | Direct and via Inspector | |
Skew | - | Direct and via Inspector | |
Grouping | - | Drag'n'Drop in Hierarchy View | |
Clipping | - | Via Inspector |
Table 1.7. Vector Graphics continued ...
Tk Canvas | TkPath | TkZinc 3.3.4 | |
---|---|---|---|
Contours | - | Via Shell | |
Gradients | - | Direct edit able. Predefined in Palette. Via Inspector. Drag'n'Drop in Hierarchy View. | Built-in |
Styles | - | Built-in. Drag'n'Drop in Hierarchy View. | - |
Textures | - | Built-in |
From canvas, TkPath and TkZinc 3.3.4. TkZinc 3.3.4 contours are not included in the generated Scalable Vector Graphics. Likewise are visualization related parts from TkZinc 3.3.4 not converted to Scalable Vector Graphics: track, tabular, waypoint, recticle, map and triangle.
Similar bitmaps –not images– cannot be converted into Scalable Vector Graphics. Bitmaps are used to stipple areas or as markers. Jeszra creates stub markers or pattern inside the related <defs/> section, using the bitmap name for the ID.
The predefined stipple values gray12 to gray75 are embedded as pattern in the generated Scalable Vector Graphics. The assumption is, that stipple is being deployed to gain transparency of some sort. Hence stipple is interpreted as transparency.
Arrows are converted into Scalable Vector Graphics markers.
TkZinc 3.3.4 gradients are only rudimentarily supported.
Jeszra has an increasing list of windows for which contents is being included in the code generation.
Code is generated for the entire contents of the text window. Including embedded windows, images, text and text formatting.
Converting the text window to Scalable Vector Graphics is restricted to text and non-overlapping tags. Embedded images are lost and windows floating in text won’t appear at their proper place.
Code is generated for the contents from some listboxes, too.
Covered Listboxes
Tk listbox.
hugelist, including the visual appearance of individual items.
Rtl_mlistbox
Gistbox
Tablelist, the generated code is limited to text.
Goolbar, Zoolbar, Galette from the Gestalt Items. Rtl_tabset from the Runtime Library are fully included in the code generation.
Notebook windows, from BLT, Tix, bwidget ,Tile are dealt with as conventional windows. A window added to such a notebook automatically uses the dominant built-in geometry manager. A notebook window does not require any contents related support.
The TkTable support is restricted to the visual appearance and embedded windows. There is neither support for formulas nor cell values. A TkTable window isn’t converted into Scalable Vector Graphics.