Before porting Tcl scripts to a PocketPC or PDA running Windows/CE, check this list for known problems of the two current ports, and some workarounds.
8.4a2 port by Rainer Keuchel: [L1 ]
- canvas: arcs and ovals are not shown (Regular polygons for a workaround)
- canvas: lines of width > 1 are always black, -fill color is ignored
- font families only lists initial letter of font names (font families workaround)
- puts stdout not possible (puts workaround)
- text: Cursor often jumps to a different position
- slow
- exec often does not work (e.g. pword, iexplore), but works with both wish and calc (the CE calculator)
- Native file selectors allow only to choose files from /My Documents and (only one level?) below
- photo images from GIF are often distorted (e.g. 9 of the 15 in Memory 2-Tclers Version)
8.4.3 port by Jeffrey Hobbs: [L2 ]
- menus are not shown
- scrollbars always move to one end, no intermediate position possible
- fileevent readable on a socket seems to trigger once and only once regardless of whether the socket is actually readable (see PocketPC socket/fileevent strangeness)
8.4.4 port by Jeffrey Hobbs: [L3 ]
- Scrollbars seem to be working properly (AKG).
- Menu's are still not showing (AKG).
- Dialog boxes don't become visible (see the PocketPC page) (AKG).
- using "configure -text" on a button causes a GPF (MPJ).
AKG (9 Sep 03) Do you see the GPF always when using "configure -text" or only occasionally. I've used it in my port of Wikit to the PocketPC and it has never GPF'd. MPJ (29 Sep 03) If you want to see this in action try my videopoker port here [L4 ].
- Scrolling occasionally leaves a blank display. Also trying to select text while editing is very hit and miss. AKG 29 Sep 03.
- canvas: lines of width > 1 are always black, -fill color is ignored (MPJ)
ramsan (Sep 2004) When a text widget is full of text (enough lines to scroll), for example in tkcon, pressing the stylus over any point of the text and keep pressed for some time, extends the selection down. It seems caused by an incorrect %y substitution in one of the mouse events.
8.4.6 port by Jeffrey Hobbs: (currently in testing)
- Menus still not showing. I have gone over the original Keuchel menu code and compared it to the current code - I can't see any reason why this isn't working. VK I also did deep research ('deep' by my limited understanding:) with same result. I also compared source to VIMCE's one which shows menu correctly w/o success. May be some 'resource' magic? Should contact Rainer. </VK>
- I've successfully connected and requested socket data using fileevent.
- I have no issue with "configure -text" using MPJ's video poker script (although general drawing on the buttons seems odd after the first bet).
- Dialog boxes show in front for me, but tk_chooseDirectory doesn't work.
- MNO There is a minor bug in tkcon.tcl in this distribution. Line 678 in InitTab needs to change to read "wm geometry $PRIV(root) +0+0" rather than "wm geometry $root +0+0" (or $root needs to be set up as it is in InitUI).
- VK checkbutton looks like radiobutton and vice versa. (same effect on different Tcl/Tk's and different WinCE-OS/processors). This one should be easy to fix, as long as their images are stored inside DLL as resource, so no C coding required.
- Sebastian Wangnick (15-Nov-04): Before creating additional toplevel windows, you have to tkwait visibility ., otherwise all subwindows of the additional toplevels show up in .!
- Sebastian Wangnick (05-Jan-05): The text widget generates strange events when selecting text with the stylus. The <Button-1> is still OK, but thereafter artificial <B1-Leave>, <B1-Motion>, <B1-Enter> events are generated, with the <B1-Leave> and <B1-Motion> events having funny %x and %y values (e.g., %x -46 %y 13800134). To see the nasty results, try to select some text in tkcon. There is a workaround, but it breaks the scrolling action by dragging outside of the text window with B1 pressed (which isn't working anyhow due to the bug):
bind Text <B1-Motion> "if {!\[info exists ::tk::Priv(ignoreB1Motion)\]} {[bind Text <B1-Motion>]}"
bind Text <B1-Leave> "set ::tk::Priv(ignoreB1Motion) 1"
bind Text <B1-Enter> "array unset ::tk::Priv ignoreB1Motion"
- Sebastian Wangnick (10-Jan-05): <KeyPress> and <KeyRelease> events always have a 0 state field (except <KeyRelease> events of modifier keys, which encode themselves in the state field). The effect of this is that <Control-xyz> bindings don't trigger, but rather enter a control character; this affects <<Cut>>, <<Copy>> and <<Paste>> as well.
All versions (?):
- Sockets code fails with "tcl: select: 10022" under Windows Mobile 2003. This could well be a celib issue rather than a Tcl/Tk issue.
BL Seems to be a problem with the 'select' use in the Tcl-WinCE-Code. Workaround: open one socket and leave it open -> select error never occurs.
PS. VK Mostly bugs in CE port are slow to fix because it could be reasonable to reimplement port without celib, just because recent WinCE libraries do support many of functions that were not supported earlier.
eTcl 8.4.12
- Dialogs cannot be moved. If the bgerror dialog is opened to show details, you can't reach the buttons (OK, Ignore, Save to log) are out of reach. HE 2006-02-16 - Perhaps Alternative dialogs for pocketPC/etcl can help. At least bgerror dialog should be more usable (not movable).
- Windows are title-less, so the top left visible position available is +0+26.
Besides, this is a pretty nice build. socket, menu, scrollbar work pretty nice.- RS