[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

Tk: setting window class

Marcin Simonides

7/31/2007 9:10:00 PM

I need to set (or at least have a sensible value of) X window class for
all application's windows, so that I can identify them for window
manager (FVWM in this case, this is irrelevant though).

What can I do to achieve this?


Here's what I've been able to learn so far:

The TkRoot window has class name derived from script file name (which is
satisfactory for me) but TkToplevel instances have class name of
TopLevel and resource IDs w00001, w00002 etc (I belive that using
resource names would be possible in FVWM, so a way of setting this could
solve my problem).

In documentation that I found:
http://www.jbrowse.com/text/rubytk_en.htm...
there is a definition:

TkToplevel.new(parent=nil, keys=nil)
TkToplevel.new(parent=nil, screen=nil, classname=nil, keys=nil)

but calling TkToplevel.new(@parent, nil, 'MyClass') doesn't set the
window's class.


I apologize if this has been covered on the list before but searching
for this topic is a bit difficult (I mean with keywords like "tktoplevel
window class ruby"...).
--
Marcin Simonides
--
Posted via http://www.ruby-....

2 Answers

Hidetoshi NAGAI

8/1/2007 5:14:00 PM

0

Marcin Simonides

8/1/2007 6:52:00 PM

0

Hidetoshi NAGAI wrote:
> From: Marcin Simonides <marcin@studio4plus.com>
[...]
>> In documentation that I found:
>> http://www.jbrowse.com/text/rubytk_en.htm...
>> there is a definition:
>>
>> TkToplevel.new(parent=nil, keys=nil)
>> TkToplevel.new(parent=nil, screen=nil, classname=nil, keys=nil)
>>
>> but calling TkToplevel.new(@parent, nil, 'MyClass') doesn't set the
>> window's class.
>
> I'm very sorry. That is a bug. The 'classname' argument doesn't work.
> Instead of that argument, please use one of the followings:
>
> (1) t = TkToplevel.new(parent, :class=>'MyClass')
> or
> t = TkToplevel.new(parent, :classname=>'MyClass')

Thanks. This works.

> (2) class MyClass < TkToplevel; end; t = MyClass.new(@parent)
>
> If you want to use the widget name on the resource DB,
> please use 'widgetname' option.
[...]

I only need to identify application's windows in WM so that I can apply
specific styles and functions to them.
But I'll keep this part about DB options in mind.
--
Marcin Simonides
--
Posted via http://www.ruby-....