# Ruby-Tk LIbraries Runtime Library 3.0 and Gestalt Items

**URL:** <https://www.ruby-forum.com/t/ruby-tk-libraries-runtime-library-3-0-and-gestalt-items/178565>\
**Category:** Ruby\
**Created:** [November 6, 2009, 3:00pm UTC](https://www.ruby-forum.com/t/ruby-tk-libraries-runtime-library-3-0-and-gestalt-items/178565 "2009-11-06T15:00:47Z")\
**Posts on this page:** 5\
**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:** [November 6, 2009, 3:00pm UTC](https://www.ruby-forum.com/t/ruby-tk-libraries-runtime-library-3-0-and-gestalt-items/178565/1 "2009-11-06T15:00:47Z")

</div>

Hi Ruby commuters

It is my distinct pleasure to announce the  
availability of Runtime Library 3.0  
and Gestalt Items 1.1 for Ruby-tk and Ruby.

Both libraries are written in Tcl/Tk \>= version 8.4.  
Ruby-tk based Ruby Wrapper classes are part the  
libraries, making them accesible from Ruby.

The libraries contain a wide range of  
composite windows for Tk:

Basic Container windows for

- scroll able dialogs
- automatic scrollbar management

Listboxes and Hierarchy

- Combobox
- A edit able listbox (called gistbox)
- Multi-column listboxes
- Tree

A complete AQUA compliant toolbar  
infrastructure

- goolbar and zoolbar, toolbars  
implemented in Tk canvas and / or TkPath and  
TkZinc
- gooleditor the associated interactive  
toolbar editor.
- A multi-line toolbar (galette)

Dialogs:

- A dual shell, could serve as an  
interactive Ruby shell
- A Font selection dialog (Windows design)

tabset, status bar, …

Take a look at the brand-new manual pages dedicated to Ruby:  
[http://gestaltitems.sourceforge.net/ruby/index.html](http://gestaltitems.sourceforge.net/ruby/index.html)

There is currently only one Ruby specific examples inside the  
Ruby manual pages, sorry.

The Ruby wrapper classes do not contain typed  
properties or methods, such as for tracing variables.  
These Ruby-tk specific features are best implemnted through  
inheritance. The Ruby wrapper classes are be generated  
from the Tcl/Tk source.

Some Details about the Libraries:

All the composite windows  
use explicit naming conventions  
–they are predeterministic-- to keep  
bi-directional communication between  
Tcl and Ruby minimal.

Most of the composite windows either use the  
Tk canvas or TkPath pathCanvas window in their  
implementation. This makes it possible to convert  
all the composites into SVG.  
The SVG generator is a separate --unpublished-- tool  
and not bundled with the libraries.  
The manual pages contain such SVGs generated from Tk.

TkPath is highly recommended to gain a  
visually sophisticated GUI. The libraries  
do also work without TkPath. TkPath is  
based on CAIRO under X11 and bypasses the  
Tk X11-emulation layer under Windows and OSX.

Download Packages:  
geitems11.tgz – Gestalt Items Library in Tcl/Tk  
geitemsRuby11.tgz – Ruby classes for above Gestalt Items

rtl30.tgz – Runtime Library in Tcl/Tk  
rtlruby30.tgz – Ruby classes for above Runtime Library

Also see the original documentation at:  
[http://gestaltitems.sourceforge.net](http://gestaltitems.sourceforge.net)

The Runtime Library (Tcl/Tk) is documented by two  
books, the latest book is online at:

> **[Runtime Library 3.1](https://gestaltitems.sourceforge.net/rtl/index.html)**
>
> Basic composite windows written in Tcl/Tk. With support for Ruby, Python, Lisp. Predominatly based on Tk Canvas or PathCanvas. Fully convertible into Scaleable Vector Graphics.

The Gestalt Items book:

> **[Gestalt Items 1.2](https://gestaltitems.sourceforge.net/geitems/index.html)**
>
> Higher level composite windows written in Tcl/Tk. With support for Ruby, Python, Lisp. Predominantly based on Tk Canvas, PathCanvas or Zinc. Fully convertible into Scalable Vector Graphics.

All three books contain lots of Tcl/Tk examples  
and screen shots (as bitmaps).

-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:** [November 8, 2009, 7:02pm UTC](https://www.ruby-forum.com/t/ruby-tk-libraries-runtime-library-3-0-and-gestalt-items/178565/2 "2009-11-08T19:02:38Z")

</div>

Hi Arndt,

Just wanted to let you know of the library I’m currently working on:

> **[GitHub - manveru/ffi-tk: FFI bindings to the Tk GUI toolkit](https://github.com/manveru/ffi-tk)**
>
> FFI bindings to the Tk GUI toolkit. Contribute to manveru/ffi-tk development by creating an account on GitHub.

I’ll go through your stuff, sounds really handy.

On Fri, Nov 6, 2009 at 11:00 PM, Arndt Roger S.

---

<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:** [November 9, 2009, 12:06pm UTC](https://www.ruby-forum.com/t/ruby-tk-libraries-runtime-library-3-0-and-gestalt-items/178565/3 "2009-11-09T12:06:55Z")

</div>

Michael F. schrieb:

> Hi Arndt,
> 
> Just wanted to let you know of the library I’m currently working on:  
> [GitHub - manveru/ffi-tk: FFI bindings to the Tk GUI toolkit](http://github.com/manveru/ffi-tk)  
> I’ll go through your stuff, sounds really handy.

[snip]

Hi Michael,  
your project lacks some documentation.

How does the interface differ from ruby-tk?  
Only in the require statement?

What about custom properties–traces on variables?

I have a tool which generates wrapper classes from the  
Tcl source code for python, ruby and lisp, support for your  
library wouldn’t be hard.

-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:** [November 9, 2009, 1:02pm UTC](https://www.ruby-forum.com/t/ruby-tk-libraries-runtime-library-3-0-and-gestalt-items/178565/4 "2009-11-09T13:02:35Z")

</div>

On Mon, Nov 9, 2009 at 8:05 PM, Arndt Roger S.  
[removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> [snip]  
> Tcl source code for python, ruby and lisp, support for your  
> library wouldn’t be hard.

I’m sorry, the project is just a month old and just got usable  
recently, still a few of the commands are missing.  
I will try to improve the documentation and make a first release soon,  
maybe within a week.  
The interface differs from ruby-tk by not providing lots of aliases  
and using the C API of Tcl/Tk a lot more.  
You can take a look at the specs and examples to see how it is being  
used, usual apps don’t need a lot of change to run on FFI::Tk.  
Thanks for the information.  
I haven’t found any information on TkPath, is it shipped with tk, or  
do i need to compile anything to install it?

---

<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:** [November 10, 2009, 3:36pm UTC](https://www.ruby-forum.com/t/ruby-tk-libraries-runtime-library-3-0-and-gestalt-items/178565/5 "2009-11-10T15:36:26Z")

</div>

Michael F. schrieb:

> > How does the interface differ from ruby-tk?  
> > I’m sorry, the project is just a month old and just got usable

Yes it’s a 3rd party package!

The Runtime Library and Gestalt Items  
are independent from tkpath  
–you just get a more sophisticated  
Graphical User Interface with transparency and gradients 🙂

The Tcl-related documentation of the Runtime Library  
contains a chapter on tkpath:  
[http://gestaltitems.sourceforge.net/rtl/RTL\_Tkpath.html](http://gestaltitems.sourceforge.net/rtl/RTL_Tkpath.html)

In short the project is hosted at sourceforge under

> **[TkPath](https://tclbitprint.sourceforge.net/)**
>
> TkPath, SVG canvas for Tk

Source code access through CVS:

# cvs tkpath:

cvs  
-d:pserver:removed\_email\_address@domain.invalid:/cvsroot/tclbitprint  
login

# gives you version 0.3.x

# [enter]

cvs -z3  
-d:pserver:removed\_email\_address@domain.invalid:/cvsroot/tclbitprint  
co -P tkpath

There are some administrative difficulties with tkpath right now.  
I do recommend that you use a  
stable older version (0.2.8 instead of the current 0.3 and 0.3.1).  
The Runtime Library and Gestalt Items support both tkpath 0.2 and 0.3.x.

-roger
