TIP:            23
Title:          Tk Toolkit Functional Areas for Maintainer Assignments
Version:        $Revision: 1.30 $
Author:         Kevin Kenny <kennykb@acm.org>
Author:         Jim Ingham <jingham@apple.com>
Author:         Don Porter <dgp@users.sourceforge.net>
Author:         Daniel A. Steffen <das@users.sourceforge.net>
Author:		Donal K. Fellows <donal.k.fellows@manchester.ac.uk>
State:          Accepted
Type:           Process
Vote:           Done
Created:        22-Jan-2001
Post-History:   

~ Abstract

This document proposes a division of the Tk toolkit's source code into
functional areas so that each area may be assigned to one or more
maintainers.

~ Background

TCT procedures (see [0]) call for each ''maintainer'' to be
responsible for a portion of the Tk toolkit's source code.  Certain
portions of the Tk toolkit's source code are naturally associated with
certain other portions.  (For example, the implementation of a command
is intimately related to the documentation for that command.)
Establishing a ''natural'' division of the Tk toolkit's source code
into units needing maintainers is a useful preliminary effort toward a
public call for volunteer maintainers.

See [30] for the mapping of these functional areas to maintainers.

~ Rationale

[16] provides a convincing rationale for establishing a simple mapping
from source files to maintainers.  It also breaks out maintainers'
functional areas for the Tcl core.  This document attempts to develop
a similar mapping for the Tk toolkit.

Just as with [16], this document attempts to divide the Tk toolkit
into a set of the smallest sensible functional units.

One other factor, which was not addressed in [16], is that there is
considerably more platform dependent code in Tk than in Tcl, and it is
unreasonable to expect people to take ownership for pieces of code
that run on platforms they don't have access to.  However, we want to
make sure that the maintainer structure supports the cross-platform
nature of Tk.

To that end, in any area where there is both generic code, and
platform specific code, we propose that maintainers can sign up for
the generic code ''and'' code for one or more platforms.  By
overlapping the generic code, we ensure that the public interfaces to
Tk will stay consistent among the platforms, while not forcing
maintainers to presume expertise in code they can't even compile, much
less test or understand fully.

~ Functional Areas

The Tk toolkit shall be divided into the following functional
units, each to be assigned one or more maintainers.  Each area will also
be a Category in the SourceForge Tracker for Tk:

~~ Widgets

 1. '''Bindings''' -
     library/tk.tcl

 2. '''Appearance''' -
     generic/default.h,
     macosx/tkMacOSXDefault.h,
     unix/tkUnixDefault.h,
     win/tkWinDefault.h

 3. '''[[*button]] and [[label]]''' -
     doc/button.n,
     doc/checkbutton.n,
     doc/label.n,
     doc/radiobutton.n,
     generic/tkButton.c,
     generic/tkButton.h,
     library/button.tcl,
     macosx/tkMacOSXButton.c,
     unix/tkUnixButton.c,
     tests/butGeom.tcl,
     tests/butGeom2.tcl,
     tests/button.test,
     tests/unixButton.test,
     tests/winButton.test,
     win/rc/buttons.bmp,
     win/tkWinButton.c

 4. '''Canvas Basics''' -
     doc/CanvPsY.3,
     doc/CanvTxtInfo.3,
     doc/CanvTkwin.3,
     doc/CrtItemType.3,
     doc/GetDash.3,
     doc/canvas.n,
     generic/tkCanvUtil.c,
     generic/tkCanvas.c,
     generic/tkCanvas.h,
     tests/canvas.test

 5. '''Canvas Items''' -
     generic/tkCanvArc.c,
     generic/tkCanvBmap.c,
     generic/tkCanvImg.c,
     generic/tkCanvLine.c,
     generic/tkCanvPoly.c,
     generic/tkCanvText.c,
     generic/tkCanvWind.c,
     generic/tkRectOval.c,
     tests/arc.tcl,
     tests/canvImg.test,
     tests/canvRect.test,
     tests/canvText.test,
     tests/canvWind.test

 6. '''Canvas PostScript''' -
     generic/prolog.ps,
     generic/tkCanvPs.c,
     library/prolog.ps,
     tests/canvPs.test,
     tests/canvPsArc.tcl,
     tests/canvPsBmap.tcl,
     tests/canvPsGrph.tcl,
     tests/canvPsImg.tcl,
     tests/canvPsText.tcl

 7. '''[[entry]]''' -
     doc/entry.n,
     generic/tkEntry.c,
     library/entry.tcl,
     tests/entry.test

 8. '''[[frame]], [[toplevel]] and [[labelframe]]''' (see [18]) -
     doc/frame.n,
     doc/labelframe.n,
     doc/toplevel.n,
     generic/tkFrame.c,
     tests/frame.test

 9. '''[[listbox]]''' -
     doc/listbox.n,
     generic/tkListbox.c,
     library/listbox.tcl,
     tests/listbox.test

 10. '''Generic Menus''' -
     doc/menu.n,
     doc/menubutton.n,
     doc/popup.n,
     generic/tkMacWinMenu.c,
     generic/tkMenu.c,
     generic/tkMenu.h,
     generic/tkMenuDraw.c,
     generic/tkMenubutton.c,
     generic/tkMenubutton.h,
     library/menu.tcl,
     library/tearoff.tcl,
     tests/menu.test,
     tests/menuDraw.test,
     tests/menubut.test

 11. '''Aqua Menus''' -
     macosx/tkMacOSXMenu.c,
     macosx/tkMacOSXMenu.r,
     macosx/tkMacOSXMenubutton.c,
     macosx/tkMacOSXMenus.c

 12. '''Unix Menus''' -
     tests/unixMenu.test,
     unix/tkUnixMenu.c,
     unix/tkUnixMenubu.c

 13. '''Win Menus''' -
     tests/winMenu.test,
     win/tkWinMenu.c

 14. '''[[message]]''' -
     doc/message.n,
     generic/tkMessage.c,
     tests/message.test

 15. '''[[scale]]''' -
     doc/scale.n,
     generic/tkScale.c,
     generic/tkScale.h,
     library/scale.tcl,
     macosx/tkMacOSXScale.c,
     tests/scale.test,
     unix/tkUnixScale.c

 16. '''[[scrollbar]]''' -
     doc/scrollbar.n,
     generic/tkScrollbar.c,
     generic/tkScrollbar.h,
     library/scrlbar.tcl,
     macosx/tkMacOSXScrlbr.c,
     tests/scrollbar.test,
     unix/tkUnixScrlbr.c,
     win/tkWinScrlbr.c

 17. '''[[spinbox]]''' -
     doc/spinbox.n,
     library/spinbox.tcl,
     tests/spinbox.test

 18. '''[[text]]''' -
     doc/text.n,
     generic/tkText.c,
     generic/tkText.h,
     generic/tkTextBTree.c,
     generic/tkTextDisp.c,
     generic/tkTextImage.c,
     generic/tkTextIndex.c,
     generic/tkTextMark.c,
     generic/tkTextTag.c,
     generic/tkTextWind.c,
     generic/tkUndo.c,
     generic/tkUndo.h,
     library/text.tcl,
     tests/text.test,
     tests/textBTree.test,
     tests/textDisp.test,
     tests/textImage.test,
     tests/textIndex.test,
     tests/textMark.test,
     tests/textTag.test,
     tests/textWind.test

 19. '''Menubars (obsolete)''' -
     doc/menubar.n,
     library/obsolete.tcl

 20. '''[[tk_optionMenu]]''' -
     doc/optionMenu.n,
     library/optMenu.tcl

 21. '''[[panedwindow]]''' (see [41]) -
     doc/panedwindow.n,
     generic/tkPanedWindow.c,
     library/panedwindow.tcl,
     tests/panedwindow.test

 22. '''Style Engine''' (see [48]) -
     generic/tkStyle.c

~~ Widget Options

 23. '''Option Parsing''' -
     doc/ConfigWidg.3,
     doc/SetOptions.3,
     generic/tkConfig.c,
     generic/tkOldConfig.c,
     macosx/tkMacOSXConfig.c,
     unix/tkUnixConfig.c,
     tests/config.test,
     win/tkWinConfig.c

 24. '''Relief''' -
     doc/3DBorder.3,
     doc/GetRelief.3,
     generic/tk3d.c,
     generic/tk3d.h,
     unix/tkUnix3d.c,
     tests/bevel.tcl,
     tests/border.test,
     win/tkWin3d.c

 25. '''Built-in Bitmaps''' -
     bitmaps/error.bmp,
     bitmaps/gray12.bmp,
     bitmaps/gray25.bmp,
     bitmaps/gray50.bmp,
     bitmaps/gray75.bmp,
     bitmaps/hourglass.bmp,
     bitmaps/info.bmp,
     bitmaps/questhead.bmp,
     bitmaps/question.bmp,
     bitmaps/warning.bmp,
     doc/GetBitmap.3,
     generic/tkBitmap.c,
     macosx/tkMacOSXBitmap.c,
     tests/bitmap.test

 26. '''Conversions From String''' -
     doc/GetAnchor.3,
     doc/GetCapStyl.3,
     doc/GetJoinStl.3,
     doc/GetJustify.3,
     doc/GetPixels.3,
     doc/GetUid.3,
     generic/tkGet.c,
     tests/get.test

 27. '''Objects''' - 
     generic/tkObj.c,
     tests/obj.test

 28. '''Utility Functions''' -
     doc/DrawFocHlt.3,
     doc/GetScroll.3,
     generic/tkUtil.c,
     tests/util.test

 29. '''Colormaps and Visuals''' -
     doc/GetClrmap.3,
     doc/GetVisual.3,
     generic/tkVisual.c,
     tests/visual.test

 30. '''Color Names''' -
     doc/GetColor.3,
     doc/colors.n,
     generic/tkColor.c,
     generic/tkColor.h,
     macosx/tkMacOSXColor.c,
     unix/tkUnixColor.c,
     tests/cmap.tcl,
     tests/color.test,
     win/tkWinColor.c,
     xlib/xcolors.c

 31. '''Cursor Names''' -
     doc/GetCursor.3,
     doc/cursors.n,
     generic/tkCursor.c,
     macosx/tkMacOSXCursor.c,
     macosx/tkMacOSXCursors.r,
     macosx/tkMacOSXXCursors.r,
     unix/tkUnixCursor.c,
     tests/cursor.test,
     win/rc/cursor*.cur,
     win/tkWinCursor.c,
     xlib/X11/cursorfont.h

 32. '''Key Symbols''' -
     doc/keysyms.n,
     macosx/tkMacOSXKeyboard.c,
     unix/tkUnixKey.c,
     win/tkWinKey.c,
     xlib/X11/keysym.h,
     xlib/X11/keysymdef.h

~~ Standard Dialogs

 33. '''Generic Dialog Support''' -
     library/comdlg.tcl

 34. '''[[tk_chooseColor]]''' -
     doc/chooseColor.n,
     library/clrpick.tcl,
     tests/clrpick.test

 35. '''[[tk_dialog]]''' -
     doc/dialog.n,
     library/dialog.tcl,
     macosx/tkMacOSXDialog.c,
     tests/dialog.test,
     tests/winDialog.test,
     unix/tkUnixDialog.c,
     win/tkWinDialog.c

 36. '''[[tk_chooseDirectory]]''' -
     doc/chooseDirectory.n,
     library/choosedir.tcl,
     tests/choosedir.test

 37. '''[[tk_get*File]]''' -
     doc/getOpenFile.n,
     generic/tkFileFilter.c,
     generic/tkFileFilter.h,
     library/tkfbox.tcl,
     library/xmfbox.tcl,
     tests/filebox.test,
     tests/xmfbox.test

 38. '''[[tk_messageBox]]''' -
     doc/messageBox.n,
     library/msgbox.tcl,
     tests/msgbox.test

~~ Images

 39. '''Image Basics''' -
     doc/CrtImgType.3,
     doc/DeleteImg.3,
     doc/GetImage.3,
     doc/ImgChanged.3,
     doc/NameOfImg.3,
     doc/image.n,
     generic/tkImage.c,
     generic/tkImgUtil.c,
     generic/tkStubImg.c,
     tests/image.test

 40. '''Bitmap Images''' -
     doc/bitmap.n,
     generic/tkImgBmap.c,
     tests/imgBmap.test

 41. '''Photo Images''' -
     doc/CrtPhImgFmt.3,
     doc/FindPhoto.3,
     doc/photo.n,
     generic/tkImgPhoto.c,
     tests/imgPhoto.test

 42. '''Photo Image|GIF''' -
     generic/tkImgGIF.c

 43. '''Photo Image|PPM''' -
     generic/tkImgPPM.c,
     tests/imgPPM.test

~~ Fonts

 44. '''Generic Fonts''' -
     doc/FontId.3,
     doc/GetFont.3,
     doc/MeasureChar.3,
     doc/TextLayout.3,
     doc/font.n,
     generic/tkFont.c,
     generic/tkFont.h,
     tests/font.test

 45. '''Aqua Fonts''' -
     macosx/tkMacOSXFont.c

 46. '''Unix Fonts''' -
     tests/unixFont.test,
     unix/tkUnixFont.c,
     unix/tkUnixRFont.c

 47. '''Win Fonts''' -
     tests/winFont.test,
     win/tkWinFont.c

~~ Geometry management

 48. '''Geometry Management''' -
     doc/GeomReq.3,
     doc/MaintGeom.3,
     doc/ManageGeom.3,
     generic/tkGeometry.c,
     tests/geometry.test

 49. '''[[grid]]''' -
     doc/grid.n,
     generic/tkGrid.c,
     tests/grid.test

 50. '''[[pack]]''' -
     doc/pack-old.n,
     doc/pack.n,
     generic/tkPack.c,
     tests/oldpack.test,
     tests/pack.test

 51. '''[[place]]''' -
     doc/place.n,
     generic/tkPlace.c,
     tests/place.test

~~ Selection and Clipboard

 52. '''[[clipboard]]''' -
     doc/Clipboard.3,
     doc/clipboard.n,
     generic/tkClipboard.c,
     macosx/tkMacOSXClipboard.c,
     tests/clipboard.test,
     tests/unixSelect.test,
     tests/winClipboard.test,
     unix/tkUnixSelect.c,
     win/tkWinClipboard.c

 53. '''[[selection]]''' -
     doc/ClrSelect.3,
     doc/CrtSelHdlr.3,
     doc/GetSelect.3,
     doc/OwnSelect.3,
     doc/selection.n,
     generic/tkSelect.c,
     generic/tkSelect.h,
     tests/select.test

~~ Other Tk commands

 54. '''[[console]]''' -
     doc/console.n,
     generic/tkConsole.c,
     library/console.tcl

 55. '''[[focus]]''' -
     doc/focus.n,
     generic/tkFocus.c,
     tests/focus.test

 56. '''[[grab]] and [[tk busy]]''' -
     doc/Grab.3,
     doc/busy.n
     doc/grab.n,
     generic/tkBusy.c,
     generic/tkBusy.h,
     generic/tkGrab.c,
     tests/busy.test,
     tests/grab.test

 57. '''[[option]]''' -
     doc/AddOption.3,
     doc/GetOption.3,
     doc/option.n,
     generic/tkOption.c,
     tests/option.file1,
     tests/option.file2,
     tests/option.test

 58. '''[[send]]''' -
     doc/SetAppName.3,
     doc/send.n,
     macosx/tkMacOSXSend.c,
     tests/send.test,
     tests/unixSend.test,
     tests/winSend.test,
     unix/tkUnixSend.c,
     win/tkWinSend.c

 59. '''[[tk_focus*]]''' -
     doc/focusNext.n,
     library/focus.tcl,
     tests/focusTcl.test

 60. '''[[tk_setPalette]]''' -
     doc/palette.n,
     library/palette.tcl

 61. '''Safe Tk''' -
     doc/loadTk.n,
     library/safetk.tcl,
     tests/safe.test

~~ Low-level Tk functions

 62. '''Geometry Functions''' -
     generic/tkTrig.c

 63. '''Tk_Win Functions''' -
     doc/ConfigWind.3,
     doc/CrtWindow.3,
     doc/IdToWindow.3,
     doc/MainWin.3,
     doc/MapWindow.3,
     doc/Name.3,
     doc/Restack.3,
     doc/SetClass.3,
     doc/SetClassProcs.3,
     doc/SetVisual.3,
     doc/StrictMotif.3,
     doc/Tk_Init.3,
     doc/WindowId.3,
     generic/tkWindow.c,
     tests/window.test

 64. '''Graphic Contexts''' -
     doc/GetGC.3,
     generic/tkGC.c

 65. '''Generic Window Operations''' -
     doc/CoordToWin.3,
     doc/FreeXId.3,
     doc/GetHINSTANCE.3,
     doc/GetHWND.3,
     doc/GetPixmap.3,
     doc/GetRootCrd.3,
     doc/GetVRoot.3,
     doc/HWNDToWindow.3,
     doc/MoveToplev.3,
     doc/SetCaret.3,
     doc/SetGrid.3,
     doc/bell.n,
     doc/bind.n,
     doc/bindtags.n,
     doc/destroy.n,
     doc/lower.n,
     doc/raise.n,
     doc/tk.n,
     doc/tkwait.n,
     doc/winfo.n,
     doc/wm.n,
     generic/tkCmds.c,
     generic/tkPointer.c,
     tests/bell.test,
     tests/cmds.test,
     tests/embed.test,
     tests/id.test,
     tests/raise.test,
     tests/tk.test,
     tests/winfo.test,
     tests/wm.test,
     xlib/xgc.c

 66. '''Aqua Window Operations''' -
     macosx/tkMacOSXCarbonEvents.c
     macosx/tkMacOSXDebug.c
     macosx/tkMacOSXDebug.h
     macosx/tkMacOSXDraw.c,
     macosx/tkMacOSXEmbed.c,
     macosx/tkMacOSXEvent.c
     macosx/tkMacOSXEvent.h
     macosx/tkMacOSXHLEvents.c,
     macosx/tkMacOSXKeyEvent.c
     macosx/tkMacOSXMouseEvent.c
     macosx/tkMacOSXNotify.c
     macosx/tkMacOSXRegion.c,
     macosx/tkMacOSXSubwindows.c,
     macosx/tkMacOSXWindowEvent.c
     macosx/tkMacOSXWm.c,
     macosx/tkMacOSXWm.h,
     macosx/tkMacOSXXStubs.c

 67. '''Unix Window Operations''' -
     tests/unixEmbed.test,
     tests/unixWm.test,
     unix/tkUnix.c,
     unix/tkUnixDraw.c,
     unix/tkUnixEmbed.c,
     unix/tkUnixEvent.c,
     unix/tkUnixFocus.c,
     unix/tkUnixWm.c,
     unix/tkUnixXId.c

 68. '''Win Window Operations''' -
     tests/winWm.test,
     win/stubs.c,
     win/tkWinDraw.c,
     win/tkWinEmbed.c,
     win/tkWinImage.c,
     win/tkWinPixmap.c,
     win/tkWinPointer.c,
     win/tkWinRegion.c,
     win/tkWinWindow.c,
     win/tkWinWm.c,
     win/tkWinX.c

 69. '''Events''' -
     doc/BindTable.3,
     doc/event.n,
     generic/tkBind.c,
     tests/bind.test

 70. '''Event Loop''' -
     doc/CrtCmHdlr.3,
     doc/CrtGenHdlr.3,
     doc/EventHndlr.3,
     doc/HandleEvent.3,
     doc/MainLoop.3,
     doc/QWinEvent.3,
     doc/RestrictEv.3,
     generic/tkEvent.c,
     tests/event.test

 71. '''Error Handling''' -
     doc/CrtErrHdlr.3,
     doc/tkerror.n,
     generic/tkError.c,
     library/bgerror.tcl,
     tests/bgerror.test

 72. '''Atoms''' -
     doc/InternAtom.3,
     generic/tkAtom.c,
     xlib/X11/Xatom.h

~~ Shells

 73. '''Argv Parsing''' -
     doc/ParseArgv.3,
     generic/tkArgv.c

 74. '''Application Embedding''' -
     doc/Tk_Main.3,
     generic/tkInitScript.h,
     generic/tkMain.c,
     macosx/tkMacOSXInit.c,
     unix/tkUnixInit.c,
     win/tkWin32Dll.c,
     win/tkWinInit.c,
     tests/main.test

 75. '''wish''' -
     doc/wish.1,
     macosx/tkMacOSXAppInit.c,
     unix/tkAppInit.c,
     win/winMain.c

~~ Demonstrations

 76. '''Widget Tour''' -
     library/demos/arrow.tcl,
     library/demos/bind.tcl,
     library/demos/bitmap.tcl,
     library/demos/button.tcl,
     library/demos/check.tcl,
     library/demos/clrpick.tcl,
     library/demos/colors.tcl,
     library/demos/cscroll.tcl,
     library/demos/ctext.tcl,
     library/demos/dialog1.tcl,
     library/demos/dialog2.tcl,
     library/demos/entry1.tcl,
     library/demos/entry2.tcl,
     library/demos/entry3.tcl,
     library/demos/filebox.tcl,
     library/demos/floor.tcl,
     library/demos/form.tcl,
     library/demos/hscale.tcl,
     library/demos/icon.tcl,
     library/demos/image1.tcl,
     library/demos/image2.tcl,
     library/demos/items.tcl,
     library/demos/label.tcl,
     library/demos/labelframe.tcl,
     library/demos/menu.tcl,
     library/demos/menubu.tcl,
     library/demos/msgbox.tcl,
     library/demos/paned1.tcl,
     library/demos/paned2.tcl,
     library/demos/plot.tcl,
     library/demos/puzzle.tcl,
     library/demos/radio.tcl,
     library/demos/ruler.tcl,
     library/demos/sayings.tcl,
     library/demos/search.tcl,
     library/demos/spin.tcl,
     library/demos/states.tcl,
     library/demos/style.tcl,
     library/demos/text.tcl,
     library/demos/twind.tcl,
     library/demos/vscale.tcl,
     library/demos/widget,
     library/demos/images/earth.gif,
     library/demos/images/earthris.gif,
     library/demos/images/face.bmp,
     library/demos/images/flagdown.bmp,
     library/demos/images/flagup.bmp,
     library/demos/images/gray25.bmp,
     library/demos/images/letters.bmp,
     library/demos/images/noletter.bmp,
     library/demos/images/pattern.bmp,
     library/demos/images/tcllogo.gif,
     library/demos/images/teapot.ppm

 77. '''Square Demo''' -
     generic/tkSquare.c,
     library/demos/square

 78. '''Other Demos''' -
     library/demos/browse,
     library/demos/hello,
     library/demos/ixset,
     library/demos/rmt,
     library/demos/rolodex,
     library/demos/tcolor,
     library/demos/timer

~~ Localization

 79. '''L10N''' -
     library/msgs/cs.msg,
     library/msgs/de.msg,
     library/msgs/el.msg,
     library/msgs/en.msg,
     library/msgs/en_gb.msg,
     library/msgs/es.msg,
     library/msgs/fr.msg,
     library/msgs/it.msg,
     library/msgs/nl.msg,
     library/msgs/ru.msg

~~ Release Engineering

 80. '''Release Notes''' -
     README,
     */README,
     */*/README,
     changes,
     license.terms,
     doc/options.n,
     doc/tk4.0.ps,
     tests/bugs.tcl

 81. '''Portability''' -
     compat/limits.h,
     compat/stdlib.h,
     compat/unistd.h

 82. '''X11 Emulation''' -
     xlib/X11/X.h,
     xlib/X11/Xfuncproto.h,
     xlib/X11/Xlib.h,
     xlib/X11/Xutil.h,
     xlib/xbytes.h,
     xlib/xdraw.c,
     xlib/ximage.c,
     xlib/xutil.c

 83. '''Mac OS X Build''' -
     macosx/Makefile,
     macosx/buildTkConfig.tcl,
     macosx/tkAboutDlg.r,
     macosx/tkMacOSX.h,
     macosx/tkMacOSXAETE.r,
     macosx/Wish.pbproj/project.pbxproj

 84. '''Unix Build''' -
     unix/Makefile.in,
     unix/aclocal.m4,
     unix/configure.in,
     unix/install-sh,
     unix/tcl.m4,
     unix/tk.spec,
     unix/tkConfig.sh.in

 85. '''Win Build''' -
     win/Makefile.in,
     win/aclocal.m4,
     win/buildall.vc.bat,
     win/configure.in,
     win/makefile.vc,
     win/mkd.bat,
     win/nmakehlp.c,
     win/rc/tkc,
     win/rc/tk_base.rc,
     win/rc/wish.exe.manifest,
     win/rc/wish.rc,
     win/rmd.bat,
     win/rules.vc,
     win/tcl.m4,
     win/tkConfig.sh.in,
     win/tkWin.h

 86. '''Test Tools''' -
     generic/tkTest.c,
     macosx/tkMacOSXTest.c,
     win/tkWinTest.c,
     tests/all.tcl,
     tests/defs.tcl,
     tests/visual_bb.test

 87. '''Logos''' -
     library/images/logo.eps,
     library/images/logo100.gif,
     library/images/logo64.gif,
     library/images/logoLarge.gif,
     library/images/logoMed.gif,
     library/images/pwrdLogo.eps,
     library/images/pwrdLogo100.gif,
     library/images/pwrdLogo150.gif,
     library/images/pwrdLogo175.gif,
     library/images/pwrdLogo200.gif,
     library/images/pwrdLogo75.gif,
     library/images/tai-ku.gif,
     macosx/Wish.icns,
     win/lamp.bmp,
     win/rc/tk.ico,
     win/rc/wish.ico

~~ Themed Tk (Ttk)

 88. '''Themed Tk''' -
     doc/ttk_*,
     generic/ttk/*,
     library/ttk/*,
     tests/ttk/*,
     macosx/ttkMacOSXTheme.c,
     win/ttkWinMonitor.c,
     win/ttkWinTheme.c,
     win/ttkWinXPTheme.c

~ Shared Files

The following files are shared by all of Tk.  Any maintainer may
modify them as necessary to complete changes they are making to
their portion of Tk.  Some of the following files define Tk's
API and should be changed only with TCT approval.

   * ChangeLog,
     doc/tkvars.n,
     doc/TkInitStubs.3,
     doc/man.macros,
     generic/tk.decls,
     generic/tk.h,
     generic/tkInt.decls,
     generic/tkInt.h,
     generic/tkPort.h,
     generic/tkStubLib.c,
     library/unsupported.tcl,
     macosx/tkMacOSXInt.h,
     macosx/tkMacOSXPort.h,
     unix/tkUnixInt.h,
     unix/tkUnixPort.h,
     win/tkWinInt.h,
     win/tkWinPort.h

~ Generated Files

The following files are generated, so they don't need maintainers.

   * generic/ks_names.h,
     generic/tkDecls.h,
     generic/tkIntDecls.h,
     generic/tkIntPlatDecls.h,
     generic/tkIntXlibDecls.h,
     generic/tkPlatDecls.h,
     generic/tkStubInit.c,
     library/demos/tclIndex,
     library/tclIndex,
     unix/configure,
     unix/mkLinks,
     win/configure

~ Platform Dependencies

In addition to the division into functional areas, responsibility for
a given area can also be qualified by one or more ''platform''
specifiers.  Some areas, like '''Windows Configuration and Build
Tools''' are obviously platform specific, so the qualification is
unnecessary.  Others, like '''Canvas Items''', are wholly generic.  But
others, like '''Button''', '''Scale''' or '''Scrollbar''' contain code for
all platforms.

A maintainer can sign up for one of these latter areas, but specify
support for only one platform.  This means that that person will be
responsible for the generic code in this area, in conjunction with the
other platform maintainers in this area, and the platform specific
code in that area.

The point behind sharing the generic code among all the maintainers is
so that any changes to the Tk visible face of the widget be designed
in concert for all platforms.  Therefore, it is the responsibility of
a platform maintainer for one platform who is sponsering a new feature
for that area to work with the other platform maintainers to ensure
that the feature is implemented on all platforms.  One of the
strengths of Tk is its cross-platform nature, and one of the
maintainer's jobs is to ensure that this continues.

Procedurally, the maintainer will be listed as '''Button Widget -
Mac OS X''', etc.  A maintainer for a given area can sign up for one
or more platforms.  Due to the good design of the Tk's platform
dependencies, determining which files are generic, and which are
platform specific is trivial.  The generic ones are in the ''generic''
directory, the Mac ones in the ''macosx'' directory, etc.  Similarly, an
area which has NO files in the macosx, win, or unix directories is a
generic area, and no qualifiers are needed.

~ Copyright

This document has been placed in the public domain.

