From: SourceForge.net <no...@so...> - 2009-06-28 15:13:57
|
Bugs item #2804935, was opened at 2009-06-11 12:22 Message generated for change (Comment added) made by dgp You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=112997&aid=2804935&group_id=12997 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: 05. Canvas Items Group: None Status: Closed Resolution: Fixed Priority: 8 Private: No Submitted By: James Bonfield (jkbonfield) Assigned to: Donal K. Fellows (dkf) Summary: MODULE_SCOPE harms easy extension of canvas Initial Comment: The Tk canvas has a standard API for adding new item types via Tk_CreateItemType(). For consistency purposes options like -width all allow a variety of units, such as -width 10, -width 10in, -width 10cm, etc. This is implemented in the pixelOption struct using TkPixelParseProc and TkPixelPrintProc functions. >From 8.5 onwards however these are defined as MODULE_SCOPE in tkInt.h. Hence Tk packages attempting to extend the canvas no longer link if they were modelled on the same methods as employed in the Tk core. The work around is trivial of course (cut and paste the code to duplicate it in the package itself), but I'd suggest for the purposes of making standardisation easy that these functions are made public again. In my own code the 4 I use are (from my link lines): ../lib/linux-x86_64-binaries/libtk_utils.so: undefined reference to `TkOrientPrintProc' ../lib/linux-x86_64-binaries/libtk_utils.so: undefined reference to `TkOrientParseProc' ../lib/linux-x86_64-binaries/libtk_utils.so: undefined reference to `TkPixelParseProc' ../lib/linux-x86_64-binaries/libtk_utils.so: undefined reference to `TkPixelPrintProc' I expect there are some others which could usefully be made public too. James ---------------------------------------------------------------------- >Comment By: Don Porter (dgp) Date: 2009-06-28 11:13 Message: more internal stubs BS. These are useful routines? Their syntax is not horrid? Make them public! At least make some token movement in that direction. ---------------------------------------------------------------------- Comment By: Donal K. Fellows (dkf) Date: 2009-06-12 09:23 Message: Right now, making use of them also requires using tkInt.h for the associated type declarations. Exposing those is more than I'm willing to do in a simple bug report... ---------------------------------------------------------------------- Comment By: Don Porter (dgp) Date: 2009-06-12 09:11 Message: If these routines are important to extensions building on Tk, for goodness sake please go to the trouble of promoting them to the public interface for real. ---------------------------------------------------------------------- Comment By: Donal K. Fellows (dkf) Date: 2009-06-12 08:47 Message: Added, but can't rerun genstubs as I've got too many things in my sandbox right now. ---------------------------------------------------------------------- Comment By: Donal K. Fellows (dkf) Date: 2009-06-12 08:38 Message: Misread "Orient" for "Offset"; begins with "O" and ends with "t"... :-) ---------------------------------------------------------------------- Comment By: Jan Nijtmans (nijtmans) Date: 2009-06-12 07:29 Message: It's partially a duplicate. Yes, TkPixel(Parse|Print)Proc is already made available in Tk 8.6b2 and Tk 8.5.8 (not released yet), but TkOrient(Parse|Print)Proc is not. So, there are two more functions to be added to the internal stub table. ---------------------------------------------------------------------- Comment By: Donal K. Fellows (dkf) Date: 2009-06-12 03:58 Message: These are already in the private stubs table for 8.6b2. (This is a duplicate of Bug 2768945.) ---------------------------------------------------------------------- Comment By: Daniel A. Steffen (das) Date: 2009-06-11 16:21 Message: FWIW, the only things that were made MODULE_SCOPE were symbols that were not public in the first place (specifically that were neither in the public nor in the internal stubs table). You would already have run into trouble in 8.4 and earlier when trying to use these from a stubs enabled extension (linking against libtk.so should be the exception, whenever possible, link against the stubs library). It would be easy to add the 4 functions in question to the internal stubs table, which would make them available to extensions, that could happen for 8.6, adding them to the public stubs table (which would also involve a name change to Tk_ prefix) would have to wait until after 8.6 and would require a TIP. ---------------------------------------------------------------------- Comment By: James Bonfield (jkbonfield) Date: 2009-06-11 12:24 Message: I forgot to add - I tested this against 8.6b1. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=112997&aid=2804935&group_id=12997 |