Version 21 of TkTrans

Updated 2010-06-29 17:46:47 by ARR

tktrans apparently implements shaped windows. It is available only for Windows.

lexfiend 4 Dec 2005: The project home page is at [L1 ], but the binary distribution at SourceForge [L2 ] seems to have been stubs-enabled by Jeff Hobbs, so it's probably a better bet.

schlenk 4 Dec 2005: Sadly this doesn't play nice with wm attributes -alpha.

JH The -alpha issue, or any call that causes a rewrap of the toplevel hwnd wraper (like overrideredirect), is that the SetWindowRgn API is applied to the toplevel hwnd wrapper "behind Tk's back", so when it rewraps, that is lost. Tk could look for that - assuming somebody might set it, but you should try and reapply the region after such changes.

MG This isn't actually related to TkTrans, but I'm guessing caused by the same thing as JH described there. I had some software installed (part of my graphics card) which allowed setting any window to be always on top. When I set a Tk program's window to always on top programatically (with wm attributes $win -topmost 1), then turned it off using this other program, Tk still reported it being always on top, and from then on in, any time i changed it in Tk, it reported the wrong setting. I'm guessing this is because querying wm attributes $win -topmost uses an internal counter to tell whether it's set always on top, instead of asking the OS, and Tk didn't ever see that it had been changed elsewhere?


DKF: This package works by using the bright magenta parts of an image as a mask. This is a horrible trick. FW: Not bright magenta in general, at least, just #FF00FF. Ro: Supposedly this is called magic pink [L3 ].

JH: I have a variant that works based off the transparent pixel (fully transparent areas are not drawn - partial transparency isn't supported, but may be possible in Win 2000+). Tk also has wm attributes $win -transparentcolor $rgb since 8.4.16. This should supersede TkTrans as you can build up an overrideredirect canvas and do whatever is necessary. RT Very nice addition, works well and lets trktrans fade away w/o being missed. - Thanks Jeff and Activestate! 25Feb2009

ARR: tktrans can be used to make a transparent window item on a canvas

tktrans::setwidget $widget $transparent_image.

One question here: How can I make an image from a widget? I know

image create photo transparent_image -format window -data $widget

can do this, but the widget must be fully visible. I want to create a transparent checkbutton on the canvas. So, how can I make an image from an unvisible widget? Any ideas?