Velocity Reviews

Velocity Reviews (http://www.velocityreviews.com/forums/index.php)
-   Ruby (http://www.velocityreviews.com/forums/f66-ruby.html)
-   -   Using additional widget in Ruby (http://www.velocityreviews.com/forums/t818855-using-additional-widget-in-ruby.html)

Markus Liebelt 01-07-2005 04:48 PM

Using additional widget in Ruby
 
Hello everybody!

Is it possible to install an additional widget written in Tcl/Tk and using
that widget in ruby without the change of any libraries? That should be
possible, because when copying that file to some place where Tcl will find
it, it is possible to start it without changing any library files or
compiling anything (Tcl is a scripting language, isn't it)?

The task I want to do is to install Bryan Douglas Oakley combobox and
using it in Ruby.

http://www.purl.org/net/oakley/tcl/combobox/index.html

By the side, has anyone a description how the integration of Tcl/Tk in
ruby is done? I don't get it at the moment, and it looks sometimes as
magic what is going on. If anyone has an explanation what is going on, I
could read that and don't ask silly questions in this newsgroup.

Bye
Markus
--
Markus Liebelt; markus.liebelt@online.de

Hidetoshi NAGAI 01-09-2005 03:29 PM

Re: Using additional widget in Ruby
 
Hi,

From: "Markus Liebelt" <markus.liebelt@online.de>
Subject: Using additional widget in Ruby
Date: Sat, 8 Jan 2005 01:51:28 +0900
Message-ID: <opsj8rmbhf444ivd@lpmliebeltt40.kcf.sl-si.com>
> Is it possible to install an additional widget written in Tcl/Tk and using
> that widget in ruby without the change of any libraries?


Yes, of course.
Please see tktree.rb and tktree.tcl included in the Ruby source archive.
You can find them ext/tk/sample directory. Probably, they exist at the
samples folder of the one-click-ruby-installer.
tktree.tcl is a widget written in pure Tcl/Tk.
tktree.rb is a wrapper of the tktree widget.

> The task I want to do is to install Bryan Douglas Oakley combobox and
> using it in Ruby.


If your Tcl/Tk can load the library, you can use it on your Ruby/Tk.
However, you may have to add the library path to Tk::AUTO_PATH or
Tk::PACKAGE_PATH or Tk::LIBRARY_PATH.
To create and control the widget class, please use Tk.tk_call.

Ruby/Tk can call all functions of Tcl/Tk, and can load Tcl/Tk scripts.
Even if Tcl/Tk's functions aren't wrapped by Ruby's classes or methods,
they can be called by Tk.tk_call (or TkCore::INTERP._invoke).

Tk.tk_call does NOT use Tcl/Tk's command line parser for the reason of
parsing overhead.
It uses Tcl_GetCommandInfo() function to search Tcl/Tk's commands.
Therefore, in rare cases, Ruby/Tk fails to autoload Tcl/Tk libraries.
When you have such troubles, please use Tk.ip_eval method to call the
Tcl/Tk command. The methods passes the argument string to Tcl/Tk's
command line parser.
--
Hidetoshi NAGAI (nagai@ai.kyutech.ac.jp)




All times are GMT. The time now is 10:36 AM.

Powered by vBulletin®. Copyright ©2000 - 2014, vBulletin Solutions, Inc.
SEO by vBSEO ©2010, Crawlability, Inc.