This file contains a list of bugs to fix and minor feature changes needed in the Tk toolkit. The list is ordered by the time when the idea for the change first arose; no priority should be inferred from the order. 6. Fill in default argument table in tkArgv.c, and document it. 8. Change Tk_Uid stuff so that there's a fast way to tell if a string is really a Tk_Uid. 10. Write procedure to translate from a string to a Pixmap. 20. Change border specification so that instead of giving a width you can give a string of the form "uudu20du" to indicate ranges of up and down. This would eliminate having a lot of extra frame windows. On the other hand, it might be confusing for things like buttons: have to give separate specs for "up" and "down"? 24. Add mechanism to determine which interpreter has the selection. 26. Extend "configure" widget command to output the type of the option (string, color, etc.)? Or should this be done with the class field? 28. Need mechanism to change the name of a top-level window? 30. Make "." a frame widget in wish? 41. Make "pack" return the id of the parent window, so that packs can be nested to make window structure more obvious? 47. Add new "option" subcommands to (a) query whole database or (b) query all the option patterns that match for a particular option (i.e. don't just return the one that will actually be used). 50. In error-handling code, ignore BadWindow errors if they occur for a seemingly-legitimate Tk window. 51. Add a "contrib" directory for users to contribute various scripts and other assistance? 52. Should "wm" have mechanism to allow resizing in a single direction only? 53. Put the version number into a header file, instead of the Makefile. 55. More window-manager protocols, such as WM_DELETE_WINDOW and WM_TAKE_FOCUS and WM_CLIENT_MACHINE. Also need support for WM_COMMAND property. 57. Support for 2-byte fonts? 61. Allow widgets to be renamed? 63. Provide way to determine "type" of window (i.e. command under which it was created) rather than current class? 65. Make sure that colors get mapped to B&W correctly on mono displays (the motivating problem is a single display with multiple screens of different types). 68. Write manual entries for new exported binding procedures. 69. Change "frame" option in "pack" command to "anchor". Also allow windows to be packed in windows other than their parents. 73. Provide mechanism in widgets like entry to query whether the selection is there. Perhaps implement standard selection target that returns the selection's window and application? 75. Change Tk_Uid typedef to prevent confusion with (char *)? 76. Change listbox selection handling to return multiple items separated by newlines rather than as a Tcl list? 77. Need way to delete selection handlers. Specific problem: TARGETS not returning right values in Spotlight: at different times, same window provides different forms of selection, but no way to change the TARGETS return value over time. 78. Can't safely delete file handlers from within a file handler. Need to fix main event loop so this is possible. 79. Change TK_CONFIG_PIXMAP to TK_CONFIG_BITMAP in tkConfig.c? 81. For check and radio buttons, change "command" config to separate commands invoked when button becomes selected/deselected? 82. Eliminate "flash" option for buttons? 84. Change Tk class names so that there's only one capital letter in each name. Be consistent! 86. Change "tkVersion" variable to "tk_version" for consistency. 89. Eliminate hard-wired behavior for scales and scrollbars: use class bindings instead. 90. Add mechanism in menus to get y-coords of a particular entry (useful for position selector menus). Do similar things for other widgets, so that positions of various elements can be determined. 91. Change menu buttons not to monitor variable anymore. Retain group mechanism for event sharing, though. 92. Add mechanism for interposing constraints in geometry management, e.g. to allow a collection of buttons to all request same width (for tables) or to provide a generic mechanism for padding widgets internally. 93. Add way to find out which geometry manager "owns" a particular window. 94. Support stippled backgrounds in canvases. 95. Should "exportSelection" default to "no" in listboxes? 96. Check for memory leaks. 97. Need commands to raise and lower top-level windows. 98. Add Tk command to compute the bbox of a given text string in a given font? 99. Change binding mechanism so that "bind . {...}" isn't sensitive to the shift key. 100. Extend scrollbar "set" command so that arrow increment can be set explicitly. 101. Eliminate TK_DONT_WAIT option to Tk_DoOneEvent. 102. Allow $tk_library to be set from an environment variable. 103. Get image displaying widget from Paul Mackerras (paulus@cs.anu.edu.au) and incorporate into Tk. 104. Make "delete" option for canvases take multiple arguments. 105. Eliminate the "activate" and "deactivate" commands for buttons and menu buttons. 106. Add feature to buttons for automatic defaulting, where button allocates extra space for default ring. 107. Eliminate the "disable" and "enable" commands for menus. 108. Change Tk_GetAtomName to return NULL instead of "?bad atom?". 109. Redo event-sharing stuff to use the same general approach as used for grabbing, except generalized to a group of windows. Perhaps extend the grab command? 110. Extend bitmaps to allow direct specification (#0xffff ...) 112. Add "winfo exists" command to see if window exists. 113. Improve color handling facilities: (a) when colors run out, drop back to mono-style stuff; (b) provide an override where the user can say "treat this screen as mono even though it isn't". 114. Change default so that windows are normally resizable? 115. Change Tk_GetSelection to look in the cut buffer if no selection can be found. 116. Change "cursor" stuff to "insert" stuff in entry widget. 117. Implement a mechanism for retrieving just the value of a configuration option, without all the other stuff (name, default, etc.). Perhaps a "cvalue" widget command? 118. Add "-setgrid" option to listboxes. 119. There's no way to make a window the selection owner from Tcl. Add a "selection own" command. 120. If a selection handler written in Tcl returns an errors, it is ignored and results in an empty selection being returned. Change to propagate the error. 123. Maintain visibility state in Tk and make available to clients. 124. Remove "-geometry" option from all widgets, and use "-width" and "-height" instead. 125. Revise grab mechanism to eliminate various problems (see the beginning of tkGrab.c for information about the problems). Also, set grab automatically on visibility change so Tcl scripts don't have to worry about this? 126. Change menus to eliminate event sharing altogether. Just use a grab on the menu bar to achieve the same effect more cleanly. 127. When implementing Postscript output for canvases, allow printing on multiple pages? Or, just allow printing a reduced area of the canvas, then multi-page stuff can be done with Tcl scripts. 128. Scroll windows when selecting off edge of window (do for listboxes, entries, and text)? 129. Add keyboard traversal to text and listboxes.