> From: Michael Carman [mailto:[email protected]]
> Does Tkx (or perhaps it would be Tcl.pm) support multiple mainwindows?
> This doesn't complain, but even though $x and $y have different
> addresses they refer to the same Tk widget.
>
> my $x = Tkx::widget->new('.');
> my $y = Tkx::widget->new('.');
>
> That's not surprising since they have the same name. Methods like
> _parent() and _kid() exploit this to "retrieve" the widget reference
> from the Tcl name. Giving $x and $y different Tcl names doesn't appear
> to be an option, either. Most of my attempts ended in "bad window path
> name" errors. While there are lots of examples of using '.'
> as the name
> of the root window and it appears to be a requirement, the
> documentation
> never actually explains it.
>
> It looks like multiple mainwindows are not possible, in which
> case I can
> safely ignore that aspect of the Tk behavior. Is this true?
In my vision, in tcl/tk world there is only one mainwindow (a toplevel with
path '.'), but this is per interpreter.
With tk-enabled Tcl.pm you could do
my $interp2 = $interp1->interp('create');
and have another mainwindow for $interp2.
As it seems to me, the Tkx package creates only one tcl interpreter within
Tkx::i package and does not expose it to the user. So it seems to me that
seconf interpreter is not possible for Tkx, but could be possible with a minor
modifications to Tkx.
On the contrary, in Tcl::Tk any widget has "interp" method, which gives you an
instance to widget's interpreter, so it is possible to create another one, but
I never used that feature, may be it is never needed...
Which makes me wonder - is my understanding true, that in Tkx a user is not
allowed to do tcl/tk's evals?
IMO, this is a really nice feature! Really powerful!
Best regards,
Vadim.