# Design tool Jeszra 0.1 for Ruby Tk

**URL:** <https://www.ruby-forum.com/t/design-tool-jeszra-0-1-for-ruby-tk/180051>\
**Category:** Ruby\
**Created:** [December 10, 2009, 12:07pm UTC](https://www.ruby-forum.com/t/design-tool-jeszra-0-1-for-ruby-tk/180051 "2009-12-10T12:07:29Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![Arndt\_Roger\_S](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/5f8ce5/32.png) [@Arndt\_Roger\_S](https://www.ruby-forum.com/u/Arndt_Roger_S)\
**Post date:** [December 10, 2009, 12:07pm UTC](https://www.ruby-forum.com/t/design-tool-jeszra-0-1-for-ruby-tk/180051/1 "2009-12-10T12:07:29Z")

</div>

Hi all Ruby-Tk Users and Developers.

I am pleased to announce the first  
public release of Jeszra (0.1).

[http://jeszra.sourceforge.net](http://jeszra.sourceforge.net)

Jeszra is a visual design tool, written  
in Tcl/Tk, which combines 2D vector graphics  
and Graphical User Interface design.

Jeszra generates RUBY (Ruby-Tk) wrapper classes for  
the components developed within Jeszra.  
Through Jeszra all Tcl/Tk control become  
available to a Ruby application.

Jeszra also generates DocBook manual pages for  
the Ruby wrapper classes.

Examples for this are the  
Runtime Library and Gestalt Items, both libraries  
are being developed with Jeszra and documented through  
it:  
[http://gestaltitems.sourceforge.net/ruby/index.html](http://gestaltitems.sourceforge.net/ruby/index.html)

The latest Runtime Library and Gestalt Items are  
included in the jeszra01.tgz download package.  
Jeszra also contains a new composite library (Jeszra Library),  
for which Ruby wrapper classes are available:  
rubyJeszra01.tgz.

[http://sunet.dl.sourceforge.net/project/jeszra/Jeszra%200.1/jeszra01.tgz](http://sunet.dl.sourceforge.net/project/jeszra/Jeszra%200.1/jeszra01.tgz)  
[http://sunet.dl.sourceforge.net/project/jeszra/Jeszra%200.1/rubyJeszra01.tgz](http://sunet.dl.sourceforge.net/project/jeszra/Jeszra%200.1/rubyJeszra01.tgz)

Jeszra Overview:

* * *

Jeszra features a modular builder, with several  
backends. Extending Jeszra’s capabilities with  
another backend such as for FFI is considerable simple.

Vector Graphics:  
TkZinc (3.3), TkPath (0.2 and 0.3), Tk Canvas (8.4 and 8.5)  
are being used for 2D-vector graphics.

2D vector graphics include transformations,  
gradients, transparency, images, embedded  
windows …

Splines for TkZinc and TkPath (requires the tclsplines package).

The GUI-part:  
Covers every Tcl/Tk window type featuring a configure command.  
15+ geometry managers are supported.

Jeszra also generates and edits contents for  
selected windows types:  
Tk Listbox, Hugelist, Rtl\_mlistbox, Tk Text …

Jeszra generates:  
Tcl/Tk,  
Ruby, Lisp and Python wrapper classes for the designed composites.  
DocBook manual pages for the generated  
Tcl, Ruby, Lisp and Python code.

Emacs Skeletons,  
Xcode textmacros for the Xcode Tcl-Mode

Scalable Vector Graphics (SVG),  
Generating SVG requires the tdom and Img packages.  
SVG can be generated for TkZinc, TkPath, Tk Canvas,  
Tk Listbox …  
Screen shots (Img) are inserted for some  
windows, such as for Tile.

Jeszra imports SVG into Tcl/Tk,  
TkPath 0.2 or 0.3, tdom and Img are required.

Jeszra features an usual flexible User  
Interface, which allows for custom palettes,  
importing and exporting of palettes, a custom  
tools menu and a script recorder.

The Jeszra website is currently under construction,  
but the Jeszra book is online:

> **[Jeszra](https://jeszra.sourceforge.net/jeszra/)**
>
> Jeszra is an advanced vector graphics application written in Tcl/Tk. It generates source code for Tcl/Tk, Ruby, Python and Lisp. Supportive editing macros for Emacs and Apple® Xcode. Scalable Vector Graphics import and export. Generates DocBook...

All elements of Jeszra’s User Interface are  
composite windows themselves and can be incorporated into  
other Tcl/Tk, Ruby-Tk, Tkinter, Ltk applications.  
The manual pages for Tcl are online at:  
[http://jeszra.sourceforge.net/pages/](http://jeszra.sourceforge.net/pages/)

Have a nice day  
-roger

---

<div class="post-metadata">

**Author:** ![Arndt\_Roger\_S](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/5f8ce5/32.png) [@Arndt\_Roger\_S](https://www.ruby-forum.com/u/Arndt_Roger_S)\
**Post date:** [December 10, 2009, 2:34pm UTC](https://www.ruby-forum.com/t/design-tool-jeszra-0-1-for-ruby-tk/180051/2 "2009-12-10T14:34:38Z")

</div>

> The latest Runtime Library and Gestalt Items are  
> included in the jeszra01.tgz download package.  
> Jeszra also contains a new composite library (Jeszra Library),  
> for which Ruby wrapper classes are available:  
> rubyJeszra01.tgz.

No gem? 🙂

-r

---

<div class="post-metadata">

**Author:** ![Arndt\_Roger\_S](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/5f8ce5/32.png) [@Arndt\_Roger\_S](https://www.ruby-forum.com/u/Arndt_Roger_S)\
**Post date:** [December 10, 2009, 4:25pm UTC](https://www.ruby-forum.com/t/design-tool-jeszra-0-1-for-ruby-tk/180051/3 "2009-12-10T16:25:36Z")

</div>

Roger P. schrieb:

> 

Not yet, sorry…  
I would like to improve its ruby support first, mainly according to  
things such as  
type conversions like variable traces, because I think this is nicely  
done in ruby-tk.

-roger

---

<div class="post-metadata">

**Author:** ![Arndt\_Roger\_S](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/5f8ce5/32.png) [@Arndt\_Roger\_S](https://www.ruby-forum.com/u/Arndt_Roger_S)\
**Post date:** [December 10, 2009, 7:12pm UTC](https://www.ruby-forum.com/t/design-tool-jeszra-0-1-for-ruby-tk/180051/4 "2009-12-10T19:12:25Z")

</div>

On Thu, Dec 10, 2009 at 4:35 PM, Arndt Roger S.  
[removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> Hi all Ruby-Tk Users and Developers.
> 
> I am pleased to announce the first  
> public release of Jeszra (0.1).
> 
> [http://jeszra.sourceforge.net](http://jeszra.sourceforge.net)

Wow, neat!

martin

---

<div class="post-metadata">

**Author:** ![Arndt\_Roger\_S](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/5f8ce5/32.png) [@Arndt\_Roger\_S](https://www.ruby-forum.com/u/Arndt_Roger_S)\
**Post date:** [December 11, 2009, 10:59am UTC](https://www.ruby-forum.com/t/design-tool-jeszra-0-1-for-ruby-tk/180051/5 "2009-12-11T10:59:17Z")

</div>

hemant schrieb:

> > the Ruby wrapper classes.  
> > for which Ruby wrapper classes are available:
> > 
> > Ruby, Lisp and Python wrapper classes for the designed composites.  
> > Screen shots (Img) are inserted for some  
> > The Jeszra website is currently under construction,
> 
> Awesome!
> 
> BTW, the manual pages look beautiful. How did you generate them?

Jeszra generates docbook refentry documents from the source code  
+separate docbook documents +svg.

The used docbook fragments are distributed with Jeszra  
–inside the docbook sub-directory.

The svgs are also generated with Jeszra.

BTW: The ruby wrapper classes also  
support rdoc.

-roger

---

<div class="post-metadata">

**Author:** ![Arndt\_Roger\_S](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/5f8ce5/32.png) [@Arndt\_Roger\_S](https://www.ruby-forum.com/u/Arndt_Roger_S)\
**Post date:** [December 11, 2009, 6:33am UTC](https://www.ruby-forum.com/t/design-tool-jeszra-0-1-for-ruby-tk/180051/6 "2009-12-11T06:33:34Z")

</div>

On Thu, Dec 10, 2009 at 4:35 PM, Arndt Roger S.  
[removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> are being developed with Jeszra and documented through  
> [http://sunet.dl.sourceforge.net/project/jeszra/Jeszra%200.1/rubyJeszra01.tgz](http://sunet.dl.sourceforge.net/project/jeszra/Jeszra%200.1/rubyJeszra01.tgz)  
> are being used for 2D-vector graphics.
> 
> Emacs Skeletons,  
> TkPath 0.2 or 0.3, tdom and Img are required.  
> All elements of Jeszra’s User Interface are  
> composite windows themselves and can be incorporated into  
> other Tcl/Tk, Ruby-Tk, Tkinter, Ltk applications.  
> The manual pages for Tcl are online at:  
> [Jeszra Library](http://jeszra.sourceforge.net/pages/)

Awesome!

BTW, the manual pages look beautiful. How did you generate them?

---

<div class="post-metadata">

**Author:** ![Arndt\_Roger\_S](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/5f8ce5/32.png) [@Arndt\_Roger\_S](https://www.ruby-forum.com/u/Arndt_Roger_S)\
**Post date:** [December 11, 2009, 3:40pm UTC](https://www.ruby-forum.com/t/design-tool-jeszra-0-1-for-ruby-tk/180051/7 "2009-12-11T15:40:13Z")

</div>

Hi,

From: Arndt Roger S. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
Subject: [ANN] Design tool Jeszra 0.1 for Ruby Tk  
Date: Thu, 10 Dec 2009 20:05:06 +0900  
Message-ID: [hfqkds$pdg$removed\_email\_address@domain.invalid](mailto:hfqkds$pdg$removed_email_address@domain.invalid)

> Hi all Ruby-Tk Users and Developers.
> 
> I am pleased to announce the first  
> public release of Jeszra (0.1).

I’m a develper of Ruby/Tk.  
Can I help you? Do you have any request to Ruby/Tk?

---

<div class="post-metadata">

**Author:** ![Arndt\_Roger\_S](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/5f8ce5/32.png) [@Arndt\_Roger\_S](https://www.ruby-forum.com/u/Arndt_Roger_S)\
**Post date:** [December 12, 2009, 11:31am UTC](https://www.ruby-forum.com/t/design-tool-jeszra-0-1-for-ruby-tk/180051/8 "2009-12-12T11:31:49Z")

</div>

Hidetoshi NAGAI schrieb:

> > I am pleased to announce the first  
> > public release of Jeszra (0.1).
> 
> I’m a develper of Ruby/Tk.  
> Can I help you? Do you have any request to Ruby/Tk?

Yes, there is a huge pile of work to push ahead for Jeszra.  
I myself still have to do some admin homework to do the sourceforge  
projects  
to … setting up the repositories and updating the gestaltitems online  
documentation as  
well as the libraries themselve.

In relation with Ruby:  
The immediate thing is the lack of ruby examples inside the  
documentation,  
I did include lots of tcl examples, but only one for ruby sofar --the  
goolbar add command–

Providing these examples and reviewing them is a lot of work.

The entire documentation for the libraries and Jeszra is written  
in DocBook and all the DocBook manual pages are being generated  
by Jeszra.

There are two DocBook related chapters inside the Jesra book  
explaining how the documentation is being created, the abridged  
chapter explains how to modify the generation process itself.

That is: Everyone with a DocBook 4.5 toolchain is able to  
generate all the included manual pages, independently from me.

For the current time I will collect those examples sent to me  
by email and publish them inside a newly created review section  
online for public review.

I think the best way for this is to publish the email address of  
the original example-author within the example, so  
that each reviewer can directly communicate with the  
original authors.

I also appriciate an example how to create a rubygem  
(I think there tutorial out there).

rubygem, starpack, Asd … should be generated by Jeszra  
as-well. So this has to be done in Tcl not Ruby.

Most other things are related with future versions.  
This is actual software design work

I want to: Integrate Jeszra within every ruby-Tk, Lisp-Tk, Tcl/Tk,  
Python-Tk …  
application. I think I will have to work colsely with  
at least 3 projects from small to large, in order to define these  
integration  
procedure. Jeszra itself uses this for itself: The little red button  
allows full  
access to Jeszra’s internals–something akin to a live vivisection of  
Jeszra 😉

I want to: Allow editing Ruby-Tk, Tcl//Tk … Designs side-by-side  
to switch and transgress these projects freely. I have no glue yet how  
to accomplish that with Ruby-Tk.

There is some very important code inside of Tkinter (Python)  
related to the Tix package.

The package allows the subclassing of existing Tk windows,  
such an mechanism is also needed inside the wrapper classes,  
since in many cases may the need arise to access internal windows  
of a composite window. This is for example necessary for the  
bwidget tabset, were a frame is generated by the tabset and  
returned to the caller, in which then the dialog is being put.

Runtime Library and GestaltItems do not generally need  
this, since I always prefer explicit creation rules over implicit ones.

I like the way how Ruby-Tk casts the return values and  
properties when passing them from and to Tcl/Tk.  
The generated wrapper classes lack these ability --of course  
Jeszra has to generate those either.  
In the meantime this should be done by inheritance, lot of work.

Thanks for asking

-roger

---

<div class="post-metadata">

**Author:** ![Arndt\_Roger\_S](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/5f8ce5/32.png) [@Arndt\_Roger\_S](https://www.ruby-forum.com/u/Arndt_Roger_S)\
**Post date:** [December 12, 2009, 3:41pm UTC](https://www.ruby-forum.com/t/design-tool-jeszra-0-1-for-ruby-tk/180051/9 "2009-12-12T15:41:07Z")

</div>

Hidetoshi NAGAI schrieb:

> > I am pleased to announce the first  
> > public release of Jeszra (0.1).
> 
> I’m a develper of Ruby/Tk.  
> Can I help you? Do you have any request to Ruby/Tk?

Part 2:

Since you seem to be located in Nippon,  
You could also help in translating Jeszra.

The easy part is the online help and href to set F1 help on The included  
Ruby manual pages.

Both parts are documented inside the first Runtime Library book  
available via download from the gestaltitmes  
[http://downloads.sourceforge.net/gestaltitems/rtlmanual11.pdf?modtime=1226427343&big\_mirror=0](http://downloads.sourceforge.net/gestaltitems/rtlmanual11.pdf?modtime=1226427343&big_mirror=0)

This translation can be done within Jeszra.  
Use the red-button inside the general preferences  
and add href and help entries to the selected window like:  
“long info|tooltip info”

These help entries are then stored inside your .jeszra configuration  
file,  
so make frequent backups of it or better put it under version control.

This not yet possible normal text entries, I have to make some internal  
changes  
to activated it for normal text watch out for the next patch:  
translator.patch.

It won’t be possible to translate non-window text, this way ☹

Jeszra should not only generate wrapper classes for Ruby, but actually  
also Ruby-Tk code. The code generation in Jeszra is split between a  
parser and composing backends.

Teaching Jeszra to generate Ruby-Tk as-well requires only a new  
Ruby backend.

See vg26/library/tclDumper.tcl and svgDumper.tcl for  
the Tcl and SVG backends. This is Tcl and there is no documentation for  
this yet, so you have to go with my comments.  
I am a fanatic on comments, so be better verbose and use  
a coherent style.

I did put an emacs sekeleton into the documentation which auto  
generates Jeszra’s commentary style. Ask for this skeleton then I will  
send it to you.

On second thought: the ruby examples for the documentation are the  
needed backend.

Jeszra generates code based on the Runtime Library template  
mechansims (also described in the mentioned book).  
There are other models and similar composite libraries in  
Tcl/tk iwidgets to mention one.

Jeszra should open and write also projects adhereing to  
these models, this will make it possible to create a  
proper documentation for these libraries and also  
wrapper classes. Since I have a conflicts of interest  
here: I am not writing these projects types myself,  
but they have to be written…

With the excpetion of the examples don’t send any code to me,  
Just notify me that you have a delivery for Jeszra, what it is,  
where it is published --so that I can set a link on the website–  
That it is for Ruby, whether or not you like to join work with other  
developers working on the same thing.

I’ll call you back for integration, so don’t expect any answer from me,  
this way I have more time free helping devolpers working on the  
tough parts.

Thanks

-roger
