From: Erik Leunissen on
Georgios Petasis wrote:
>
> Here is an execution trace:
>

OK.

If you still care to know exactly where in the libraries that you're
using, the call to [package require tile 0.6] is being made, you can
change your trace handler as follows to obtain a stack trace:


proc handleTrace {args} {
if {[string match "*require tile*" $args]} {
set curLevel [info level]
incr curLevel -1
set level 0
while {$level > -$curLevel} {
puts [info level [incr level -1]]
}
}
}


Erik.

> package require tablelist_tile
>
> {package require tablelist_tile} enter
> {package provide tablelist_tile 4.12.1} enter
> {package require Tcl 8.4} enter
> {package require Tk 8.4} enter
> {package require -exact tablelist::common 4.12.1} enter
> {package provide tablelist::common 4.12.1} enter
> {package provide tablelist::common 4.12.1} enter
> {package require tile 0.6} enter
> {package require Tcl 8.4} enter
> {package require Tk 8.4} enter
> {package require Tcl 8.4} enter
> {package require Tk 8.4} enter
> {package provide keynav 1.0} enter
> {package provide Tk} enter
> {package vsatisfies 8.6b1.1 8.5} enter
> {package provide ttk::dialog 0.8} enter
> {package provide ttk::theme::vista 1.0} enter
> {package provide ttk::theme::aqua} enter
> {package provide ttk::theme::vista} enter
> {package provide tile 0.8.3} enter
> {package provide tablelist_tile 4.12.1} enter
> {package require Tcl 8.4} enter
> {package require Tk 8.4} enter
> {package require -exact tablelist::common 4.12.1} enter
> {package provide tablelist_tile 4.12.1} enter
> {package provide Tablelist_tile 4.12.1} enter
> {package provide ttk::theme::aqua} enter
> {package provide tile::theme::aqua} enter
> {package require Tcl 8} enter
> {package require Tk 8} enter
> {package versions tile} enter
>
> 4.12.1
>
> George


--
leunissen@ nl | Merge the left part of these two lines into one,
e. hccnet. | respecting a character's position in a line.
From: Csaba Nemethi on
Georgios Petasis schrieb:
> στις 12/2/2010 10:07, O/H Erik Leunissen έγραψε:
>> Georgios Petasis wrote:
>>
>>
>> ... I still haven't figured out
>>> which package does this...
>>>
>>
>> Something along these lines should help you find it quickly:
>>
>>
>> proc handleTrace {args} {
>> # if {[regexp tile $args]} {
>> puts $args
>> # }
>> }
>> trace add execution package enter handleTrace
>>
>>
>> Greetings,
>>
>> Erik
>>
>>> (I suspect tablelist_tile or BWidgets...)
>>>
>>> George
>>
>>
>
> Here is an execution trace:
>
> package require tablelist_tile
>
> {package require tablelist_tile} enter
> {package provide tablelist_tile 4.12.1} enter
> {package require Tcl 8.4} enter
> {package require Tk 8.4} enter
> {package require -exact tablelist::common 4.12.1} enter
> {package provide tablelist::common 4.12.1} enter
> {package provide tablelist::common 4.12.1} enter
> {package require tile 0.6} enter
> {package require Tcl 8.4} enter
> {package require Tk 8.4} enter
> {package require Tcl 8.4} enter
> {package require Tk 8.4} enter
> {package provide keynav 1.0} enter
> {package provide Tk} enter
> {package vsatisfies 8.6b1.1 8.5} enter
> {package provide ttk::dialog 0.8} enter
> {package provide ttk::theme::vista 1.0} enter
> {package provide ttk::theme::aqua} enter
> {package provide ttk::theme::vista} enter
> {package provide tile 0.8.3} enter
> {package provide tablelist_tile 4.12.1} enter
> {package require Tcl 8.4} enter
> {package require Tk 8.4} enter
> {package require -exact tablelist::common 4.12.1} enter
> {package provide tablelist_tile 4.12.1} enter
> {package provide Tablelist_tile 4.12.1} enter
> {package provide ttk::theme::aqua} enter
> {package provide tile::theme::aqua} enter
> {package require Tcl 8} enter
> {package require Tk 8} enter
> {package versions tile} enter
>
> 4.12.1
>
> George

Hi George,

The *original* Tablelist package does *not* invoke "package require
tile" for Tk versions 8.5 and higher. Instead, it contains the
following lines in the distribution files tablelist_tile.tcl and
scripts/tablelistEdit.tcl:

if {$::tk_version < 8.5 || [regexp {^8\.5a[1-5]$} $::tk_patchLevel]} {
package require tile 0.6
}

The problem is not in Tablelist but in the way it is included in
ActiveTcl. I have an older 8.6b1 version from ActiveState (coming with
Tablelist 4.10.1), but I am sure ActiveTcl 8.6 beta 2 exhibits the same
problem described below:

The ActiveTcl file

lib/teapot/package/tcl/teapot/tcl8/8.4/tablelist_tile-4.10.1.tm

contains the lines


# ACTIVESTATE TEAPOT-PKG BEGIN REQUIREMENTS

package require Tcl 8.4
package require Tk 8.4
package require -exact tablelist::common 4.10.1
package require tile 0.6

# ACTIVESTATE TEAPOT-PKG END REQUIREMENTS

# ACTIVESTATE TEAPOT-PKG BEGIN DECLARE

package provide tablelist_tile 4.10.1

# ACTIVESTATE TEAPOT-PKG END DECLARE
# ACTIVESTATE TEAPOT-PKG END TM
#==============================================================================
# Main Tablelist_tile package module.
#
# Copyright (c) 2000-2009 Csaba Nemethi (E-mail: csaba.nemethi(a)t-online.de)
#==============================================================================

package require Tcl 8.4
package require Tk 8.4
if {$::tk_version < 8.5 || [regexp {^8\.5a[1-5]$} $::tk_patchLevel]} {
package require tile 0.6
}


To my great surprise, one of the above lines is indeed

package require tile 0.6

which is not OK because it doesn't check the Tk version. I will report
this to ActiveState ASAP.

Many thanks for drawing my attention to this issue.

Best regards,

Csaba

--
Csaba Nemethi http://www.nemethi.de mailto:csaba.nemethi(a)t-online.de
From: Jeff Hobbs on
On Feb 12, 12:44 pm, Csaba Nemethi <csaba.neme...(a)t-online.de> wrote:
...
> The problem is not in Tablelist but in the way it is included in
> ActiveTcl.  I have an older 8.6b1 version from ActiveState (coming with
> Tablelist 4.10.1), but I am sure ActiveTcl 8.6 beta 2 exhibits the same
> problem described below:

While the Tcl module version does indeed add the package require tile
without the version dependency, Tk 8.5+ includes 'tile' as a dummy
package in the core. It may still pick up a more recent version of
tile should one be installed on the system.

...
> To my great surprise, one of the above lines is indeed
>
> package require tile 0.6
>
> which is not OK because it doesn't check the Tk version.  I will report
> this to ActiveState ASAP.

Consider it reported. ;) What I'm more curious about is why having
tile should throw off tablelist. Is it trying to do something
different?

Jeff
From: Csaba Nemethi on
Jeff Hobbs schrieb:
> On Feb 12, 12:44 pm, Csaba Nemethi <csaba.neme...(a)t-online.de> wrote:
> ...
>> The problem is not in Tablelist but in the way it is included in
>> ActiveTcl. I have an older 8.6b1 version from ActiveState (coming with
>> Tablelist 4.10.1), but I am sure ActiveTcl 8.6 beta 2 exhibits the same
>> problem described below:
>
> While the Tcl module version does indeed add the package require tile
> without the version dependency, Tk 8.5+ includes 'tile' as a dummy
> package in the core. It may still pick up a more recent version of
> tile should one be installed on the system.
>
> ...
>> To my great surprise, one of the above lines is indeed
>>
>> package require tile 0.6
>>
>> which is not OK because it doesn't check the Tk version. I will report
>> this to ActiveState ASAP.
>
> Consider it reported. ;) What I'm more curious about is why having
> tile should throw off tablelist. Is it trying to do something
> different?
>
> Jeff

Actually, checking the Tk version is merely a precautionary measure,
having the goal to avoid any potential conflicts that might arise by
loading a tile version different from the one included in Tk 8.5+.
Tablelist_tile itself is happy with any tile version starting with 0.6.
On the other hand, the explicit "package require tile" invocation seems
to cause some unexpected effects (not related to Tablelist_tile) in one
of George's scripts, as reported in his original posting.

--
Csaba Nemethi http://www.nemethi.de mailto:csaba.nemethi(a)t-online.de
From: George Petasis on
στις 13/2/2010 00:20, O/H Jeff Hobbs έγραψε:
> On Feb 12, 12:44 pm, Csaba Nemethi<csaba.neme...(a)t-online.de> wrote:
> ...
>> The problem is not in Tablelist but in the way it is included in
>> ActiveTcl. I have an older 8.6b1 version from ActiveState (coming with
>> Tablelist 4.10.1), but I am sure ActiveTcl 8.6 beta 2 exhibits the same
>> problem described below:
>
> While the Tcl module version does indeed add the package require tile
> without the version dependency, Tk 8.5+ includes 'tile' as a dummy
> package in the core. It may still pick up a more recent version of
> tile should one be installed on the system.
>
> ...
>> To my great surprise, one of the above lines is indeed
>>
>> package require tile 0.6
>>
>> which is not OK because it doesn't check the Tk version. I will report
>> this to ActiveState ASAP.
>
> Consider it reported. ;) What I'm more curious about is why having
> tile should throw off tablelist. Is it trying to do something
> different?
>
> Jeff

Dear Jeff,

I am running 8.6b2, where the ttk widgets seem to be drawn differently
than tile ones. When tile is loaded into 8.6, there is an immediate
visual change in ttk widgets. In my windows 7 pc, the font used by
ttk::labels seems to be smaller in tile, causing even a noticeable
resize in toplevels, just after tile gets loaded.

George