Jeszra Functionality

Geometry Management
Supported Window Libraries
Vector Graphics

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.

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.

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.

Built-in Palettes

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.

Scalable Vector Graphics Generation

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.

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.