The Jeszra Graphical User Interface was created with Jeszra, each component is a Jeszra project and may be easily altered within Jeszra.
Furthermore Jeszra features a unique project: The Jeszra self-editor, named Jeszra@Jeszra. The self-editing project lays the entire Jeszra Graphical User Interface bare to the person working with Jeszra. Every single aspect and property of Jeszra is thus modifiable! You may initiate self-editing Jeszra through the »red button« inside the »General« preferences page, or from the »Modify Jeszra« command in the »Tools« menu.
Although, it would be feasible to store all modifications made on Jeszra. I´ve opted instead to only make certain changes persistent:
Use the Scripttool in addition to play back every recorded modification. Jeszra uses the function editTools to create the self-editing project; this function is listed in the appendix: Example A.1, “editTools”.
Integrating Jeszra in a application will have to follow the above described self-edit mechanism. Best practice for integration: Implement a custom editTools procedure and a custom Grefgeneral module. Place both inside a Tcl/Tk starting script with a package provide grefgeneral, in order to prevent Jeszra from using its own Grefgeneral module! Just exchanging the Tools menu entry would not suffice. The Tools menu is fully user customizable and the entry could be deleted involuntarily.
Example 2.1. Custom Jeszra
#!/bin/sh # Restart with WISH \ exec /usr/bin/wish "$0" ${1+"$@"} # Prevent Jeszra from using its own general page. package provide grefgeneral 1.1 ... ;# The implementation of grefgeneral. # Create a custom editTools procedure used from grefgeneral proc myEditTools {{window .mywindow}} { ... ;# The implementaiton of a custom editTools. } # Lauch Jeszra: source path to Jeszra/rungestalt.tcl
The current integration scheme is an unstable interface. At least three to four test integrations are necessary to stabilize the interface.