<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE TIP SYSTEM "http://www.tcl.tk/cgi-bin/tct/tip/tipxml.dtd">
<!-- Converted at Sun Feb 12 11:36:32 GMT 2012 -->
<!-- TIP AutoGenerator - written by Donal K. Fellows -->

<TIP number='23'>
<header><title>Tk Toolkit Functional Areas for Maintainer Assignments</title><author address="mailto:kennykb@acm.org">Kevin Kenny</author><author address="mailto:jingham@apple.com">Jim Ingham</author><author address="mailto:dgp@users.sourceforge.net">Don Porter</author><author address="mailto:das@users.sourceforge.net">Daniel A. Steffen</author><author address="mailto:donal.k.fellows@manchester.ac.uk">Donal K. Fellows</author><status type='process' state='accepted' vote='after'>$Revision: 1.30 $</status><history></history><created day='22' month='jan' year='2001' /></header>
<abstract>This document proposes a division of the Tk toolkit&apos;s source code into functional areas so that each area may be assigned to one or more maintainers.</abstract>
<body><section title="Background">
<para>TCT procedures (see <tipref type="text" tip="0"/>) call for each <emph style="italic">maintainer</emph> to be responsible for a portion of the Tk toolkit&apos;s source code. Certain portions of the Tk toolkit&apos;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 <emph style="italic">natural</emph> division of the Tk toolkit&apos;s source code into units needing maintainers is a useful preliminary effort toward a public call for volunteer maintainers.</para>
<para>See <tipref type="text" tip="30"/> for the mapping of these functional areas to maintainers.</para>
</section>
<section title="Rationale">
<para><tipref type="text" tip="16"/> provides a convincing rationale for establishing a simple mapping from source files to maintainers. It also breaks out maintainers&apos; functional areas for the Tcl core. This document attempts to develop a similar mapping for the Tk toolkit.</para>
<para>Just as with <tipref type="text" tip="16"/>, this document attempts to divide the Tk toolkit into a set of the smallest sensible functional units.</para>
<para>One other factor, which was not addressed in <tipref type="text" tip="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&apos;t have access to. However, we want to make sure that the maintainer structure supports the cross-platform nature of Tk.</para>
<para>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 <emph style="italic">and</emph> 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&apos;t even compile, much less test or understand fully.</para>
</section>
<section title="Functional Areas">
<para>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:</para>
<subsection title="Widgets">
<enumerate><item.e index='1'><para><emph style="bold">Bindings</emph> - library/tk.tcl</para></item.e><item.e index='2'><para><emph style="bold">Appearance</emph> - generic/default.h, macosx/tkMacOSXDefault.h, unix/tkUnixDefault.h, win/tkWinDefault.h</para></item.e><item.e index='3'><para><emph style="bold">[*button] and [label]</emph> - 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</para></item.e><item.e index='4'><para><emph style="bold">Canvas Basics</emph> - 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</para></item.e><item.e index='5'><para><emph style="bold">Canvas Items</emph> - 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</para></item.e><item.e index='6'><para><emph style="bold">Canvas PostScript</emph> - 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</para></item.e><item.e index='7'><para><emph style="bold">[entry]</emph> - doc/entry.n, generic/tkEntry.c, library/entry.tcl, tests/entry.test</para></item.e><item.e index='8'><para><emph style="bold">[frame], [toplevel] and [labelframe]</emph> (see <tipref type="text" tip="18"/>) - doc/frame.n, doc/labelframe.n, doc/toplevel.n, generic/tkFrame.c, tests/frame.test</para></item.e><item.e index='9'><para><emph style="bold">[listbox]</emph> - doc/listbox.n, generic/tkListbox.c, library/listbox.tcl, tests/listbox.test</para></item.e><item.e index='10'><para><emph style="bold">Generic Menus</emph> - 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</para></item.e><item.e index='11'><para><emph style="bold">Aqua Menus</emph> - macosx/tkMacOSXMenu.c, macosx/tkMacOSXMenu.r, macosx/tkMacOSXMenubutton.c, macosx/tkMacOSXMenus.c</para></item.e><item.e index='12'><para><emph style="bold">Unix Menus</emph> - tests/unixMenu.test, unix/tkUnixMenu.c, unix/tkUnixMenubu.c</para></item.e><item.e index='13'><para><emph style="bold">Win Menus</emph> - tests/winMenu.test, win/tkWinMenu.c</para></item.e><item.e index='14'><para><emph style="bold">[message]</emph> - doc/message.n, generic/tkMessage.c, tests/message.test</para></item.e><item.e index='15'><para><emph style="bold">[scale]</emph> - doc/scale.n, generic/tkScale.c, generic/tkScale.h, library/scale.tcl, macosx/tkMacOSXScale.c, tests/scale.test, unix/tkUnixScale.c</para></item.e><item.e index='16'><para><emph style="bold">[scrollbar]</emph> - doc/scrollbar.n, generic/tkScrollbar.c, generic/tkScrollbar.h, library/scrlbar.tcl, macosx/tkMacOSXScrlbr.c, tests/scrollbar.test, unix/tkUnixScrlbr.c, win/tkWinScrlbr.c</para></item.e><item.e index='17'><para><emph style="bold">[spinbox]</emph> - doc/spinbox.n, library/spinbox.tcl, tests/spinbox.test</para></item.e><item.e index='18'><para><emph style="bold">[text]</emph> - 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</para></item.e><item.e index='19'><para><emph style="bold">Menubars (obsolete)</emph> - doc/menubar.n, library/obsolete.tcl</para></item.e><item.e index='20'><para><emph style="bold">[tk_optionMenu]</emph> - doc/optionMenu.n, library/optMenu.tcl</para></item.e><item.e index='21'><para><emph style="bold">[panedwindow]</emph> (see <tipref type="text" tip="41"/>) - doc/panedwindow.n, generic/tkPanedWindow.c, library/panedwindow.tcl, tests/panedwindow.test</para></item.e><item.e index='22'><para><emph style="bold">Style Engine</emph> (see <tipref type="text" tip="48"/>) - generic/tkStyle.c</para></item.e></enumerate>
</subsection>
<subsection title="Widget Options">
<enumerate><item.e index='23'><para><emph style="bold">Option Parsing</emph> - doc/ConfigWidg.3, doc/SetOptions.3, generic/tkConfig.c, generic/tkOldConfig.c, macosx/tkMacOSXConfig.c, unix/tkUnixConfig.c, tests/config.test, win/tkWinConfig.c</para></item.e><item.e index='24'><para><emph style="bold">Relief</emph> - doc/3DBorder.3, doc/GetRelief.3, generic/tk3d.c, generic/tk3d.h, unix/tkUnix3d.c, tests/bevel.tcl, tests/border.test, win/tkWin3d.c</para></item.e><item.e index='25'><para><emph style="bold">Built-in Bitmaps</emph> - 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</para></item.e><item.e index='26'><para><emph style="bold">Conversions From String</emph> - doc/GetAnchor.3, doc/GetCapStyl.3, doc/GetJoinStl.3, doc/GetJustify.3, doc/GetPixels.3, doc/GetUid.3, generic/tkGet.c, tests/get.test</para></item.e><item.e index='27'><para><emph style="bold">Objects</emph> - generic/tkObj.c, tests/obj.test</para></item.e><item.e index='28'><para><emph style="bold">Utility Functions</emph> - doc/DrawFocHlt.3, doc/GetScroll.3, generic/tkUtil.c, tests/util.test</para></item.e><item.e index='29'><para><emph style="bold">Colormaps and Visuals</emph> - doc/GetClrmap.3, doc/GetVisual.3, generic/tkVisual.c, tests/visual.test</para></item.e><item.e index='30'><para><emph style="bold">Color Names</emph> - 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</para></item.e><item.e index='31'><para><emph style="bold">Cursor Names</emph> - 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</para></item.e><item.e index='32'><para><emph style="bold">Key Symbols</emph> - doc/keysyms.n, macosx/tkMacOSXKeyboard.c, unix/tkUnixKey.c, win/tkWinKey.c, xlib/X11/keysym.h, xlib/X11/keysymdef.h</para></item.e></enumerate>
</subsection>
<subsection title="Standard Dialogs">
<enumerate><item.e index='33'><para><emph style="bold">Generic Dialog Support</emph> - library/comdlg.tcl</para></item.e><item.e index='34'><para><emph style="bold">[tk_chooseColor]</emph> - doc/chooseColor.n, library/clrpick.tcl, tests/clrpick.test</para></item.e><item.e index='35'><para><emph style="bold">[tk_dialog]</emph> - doc/dialog.n, library/dialog.tcl, macosx/tkMacOSXDialog.c, tests/dialog.test, tests/winDialog.test, unix/tkUnixDialog.c, win/tkWinDialog.c</para></item.e><item.e index='36'><para><emph style="bold">[tk_chooseDirectory]</emph> - doc/chooseDirectory.n, library/choosedir.tcl, tests/choosedir.test</para></item.e><item.e index='37'><para><emph style="bold">[tk_get*File]</emph> - doc/getOpenFile.n, generic/tkFileFilter.c, generic/tkFileFilter.h, library/tkfbox.tcl, library/xmfbox.tcl, tests/filebox.test, tests/xmfbox.test</para></item.e><item.e index='38'><para><emph style="bold">[tk_messageBox]</emph> - doc/messageBox.n, library/msgbox.tcl, tests/msgbox.test</para></item.e></enumerate>
</subsection>
<subsection title="Images">
<enumerate><item.e index='39'><para><emph style="bold">Image Basics</emph> - 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</para></item.e><item.e index='40'><para><emph style="bold">Bitmap Images</emph> - doc/bitmap.n, generic/tkImgBmap.c, tests/imgBmap.test</para></item.e><item.e index='41'><para><emph style="bold">Photo Images</emph> - doc/CrtPhImgFmt.3, doc/FindPhoto.3, doc/photo.n, generic/tkImgPhoto.c, tests/imgPhoto.test</para></item.e><item.e index='42'><para><emph style="bold">Photo Image|GIF</emph> - generic/tkImgGIF.c</para></item.e><item.e index='43'><para><emph style="bold">Photo Image|PPM</emph> - generic/tkImgPPM.c, tests/imgPPM.test</para></item.e></enumerate>
</subsection>
<subsection title="Fonts">
<enumerate><item.e index='44'><para><emph style="bold">Generic Fonts</emph> - doc/FontId.3, doc/GetFont.3, doc/MeasureChar.3, doc/TextLayout.3, doc/font.n, generic/tkFont.c, generic/tkFont.h, tests/font.test</para></item.e><item.e index='45'><para><emph style="bold">Aqua Fonts</emph> - macosx/tkMacOSXFont.c</para></item.e><item.e index='46'><para><emph style="bold">Unix Fonts</emph> - tests/unixFont.test, unix/tkUnixFont.c, unix/tkUnixRFont.c</para></item.e><item.e index='47'><para><emph style="bold">Win Fonts</emph> - tests/winFont.test, win/tkWinFont.c</para></item.e></enumerate>
</subsection>
<subsection title="Geometry management">
<enumerate><item.e index='48'><para><emph style="bold">Geometry Management</emph> - doc/GeomReq.3, doc/MaintGeom.3, doc/ManageGeom.3, generic/tkGeometry.c, tests/geometry.test</para></item.e><item.e index='49'><para><emph style="bold">[grid]</emph> - doc/grid.n, generic/tkGrid.c, tests/grid.test</para></item.e><item.e index='50'><para><emph style="bold">[pack]</emph> - doc/pack-old.n, doc/pack.n, generic/tkPack.c, tests/oldpack.test, tests/pack.test</para></item.e><item.e index='51'><para><emph style="bold">[place]</emph> - doc/place.n, generic/tkPlace.c, tests/place.test</para></item.e></enumerate>
</subsection>
<subsection title="Selection and Clipboard">
<enumerate><item.e index='52'><para><emph style="bold">[clipboard]</emph> - 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</para></item.e><item.e index='53'><para><emph style="bold">[selection]</emph> - doc/ClrSelect.3, doc/CrtSelHdlr.3, doc/GetSelect.3, doc/OwnSelect.3, doc/selection.n, generic/tkSelect.c, generic/tkSelect.h, tests/select.test</para></item.e></enumerate>
</subsection>
<subsection title="Other Tk commands">
<enumerate><item.e index='54'><para><emph style="bold">[console]</emph> - doc/console.n, generic/tkConsole.c, library/console.tcl</para></item.e><item.e index='55'><para><emph style="bold">[focus]</emph> - doc/focus.n, generic/tkFocus.c, tests/focus.test</para></item.e><item.e index='56'><para><emph style="bold">[grab] and [tk busy]</emph> - doc/Grab.3, doc/busy.n doc/grab.n, generic/tkBusy.c, generic/tkBusy.h, generic/tkGrab.c, tests/busy.test, tests/grab.test</para></item.e><item.e index='57'><para><emph style="bold">[option]</emph> - doc/AddOption.3, doc/GetOption.3, doc/option.n, generic/tkOption.c, tests/option.file1, tests/option.file2, tests/option.test</para></item.e><item.e index='58'><para><emph style="bold">[send]</emph> - doc/SetAppName.3, doc/send.n, macosx/tkMacOSXSend.c, tests/send.test, tests/unixSend.test, tests/winSend.test, unix/tkUnixSend.c, win/tkWinSend.c</para></item.e><item.e index='59'><para><emph style="bold">[tk_focus*]</emph> - doc/focusNext.n, library/focus.tcl, tests/focusTcl.test</para></item.e><item.e index='60'><para><emph style="bold">[tk_setPalette]</emph> - doc/palette.n, library/palette.tcl</para></item.e><item.e index='61'><para><emph style="bold">Safe Tk</emph> - doc/loadTk.n, library/safetk.tcl, tests/safe.test</para></item.e></enumerate>
</subsection>
<subsection title="Low-level Tk functions">
<enumerate><item.e index='62'><para><emph style="bold">Geometry Functions</emph> - generic/tkTrig.c</para></item.e><item.e index='63'><para><emph style="bold">Tk_Win Functions</emph> - 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</para></item.e><item.e index='64'><para><emph style="bold">Graphic Contexts</emph> - doc/GetGC.3, generic/tkGC.c</para></item.e><item.e index='65'><para><emph style="bold">Generic Window Operations</emph> - 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</para></item.e><item.e index='66'><para><emph style="bold">Aqua Window Operations</emph> - 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</para></item.e><item.e index='67'><para><emph style="bold">Unix Window Operations</emph> - 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</para></item.e><item.e index='68'><para><emph style="bold">Win Window Operations</emph> - 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</para></item.e><item.e index='69'><para><emph style="bold">Events</emph> - doc/BindTable.3, doc/event.n, generic/tkBind.c, tests/bind.test</para></item.e><item.e index='70'><para><emph style="bold">Event Loop</emph> - 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</para></item.e><item.e index='71'><para><emph style="bold">Error Handling</emph> - doc/CrtErrHdlr.3, doc/tkerror.n, generic/tkError.c, library/bgerror.tcl, tests/bgerror.test</para></item.e><item.e index='72'><para><emph style="bold">Atoms</emph> - doc/InternAtom.3, generic/tkAtom.c, xlib/X11/Xatom.h</para></item.e></enumerate>
</subsection>
<subsection title="Shells">
<enumerate><item.e index='73'><para><emph style="bold">Argv Parsing</emph> - doc/ParseArgv.3, generic/tkArgv.c</para></item.e><item.e index='74'><para><emph style="bold">Application Embedding</emph> - 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</para></item.e><item.e index='75'><para><emph style="bold">wish</emph> - doc/wish.1, macosx/tkMacOSXAppInit.c, unix/tkAppInit.c, win/winMain.c</para></item.e></enumerate>
</subsection>
<subsection title="Demonstrations">
<enumerate><item.e index='76'><para><emph style="bold">Widget Tour</emph> - 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</para></item.e><item.e index='77'><para><emph style="bold">Square Demo</emph> - generic/tkSquare.c, library/demos/square</para></item.e><item.e index='78'><para><emph style="bold">Other Demos</emph> - library/demos/browse, library/demos/hello, library/demos/ixset, library/demos/rmt, library/demos/rolodex, library/demos/tcolor, library/demos/timer</para></item.e></enumerate>
</subsection>
<subsection title="Localization">
<enumerate><item.e index='79'><para><emph style="bold">L10N</emph> - 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</para></item.e></enumerate>
</subsection>
<subsection title="Release Engineering">
<enumerate><item.e index='80'><para><emph style="bold">Release Notes</emph> - README, */README, */*/README, changes, license.terms, doc/options.n, doc/tk4.0.ps, tests/bugs.tcl</para></item.e><item.e index='81'><para><emph style="bold">Portability</emph> - compat/limits.h, compat/stdlib.h, compat/unistd.h</para></item.e><item.e index='82'><para><emph style="bold">X11 Emulation</emph> - 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</para></item.e><item.e index='83'><para><emph style="bold">Mac OS X Build</emph> - macosx/Makefile, macosx/buildTkConfig.tcl, macosx/tkAboutDlg.r, macosx/tkMacOSX.h, macosx/tkMacOSXAETE.r, macosx/Wish.pbproj/project.pbxproj</para></item.e><item.e index='84'><para><emph style="bold">Unix Build</emph> - unix/Makefile.in, unix/aclocal.m4, unix/configure.in, unix/install-sh, unix/tcl.m4, unix/tk.spec, unix/tkConfig.sh.in</para></item.e><item.e index='85'><para><emph style="bold">Win Build</emph> - 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</para></item.e><item.e index='86'><para><emph style="bold">Test Tools</emph> - generic/tkTest.c, macosx/tkMacOSXTest.c, win/tkWinTest.c, tests/all.tcl, tests/defs.tcl, tests/visual_bb.test</para></item.e><item.e index='87'><para><emph style="bold">Logos</emph> - 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</para></item.e></enumerate>
</subsection>
<subsection title="Themed Tk (Ttk)">
<enumerate><item.e index='88'><para><emph style="bold">Themed Tk</emph> - doc/ttk_*, generic/ttk/*, library/ttk/*, tests/ttk/*, macosx/ttkMacOSXTheme.c, win/ttkWinMonitor.c, win/ttkWinTheme.c, win/ttkWinXPTheme.c</para></item.e></enumerate>
</subsection>
</section>
<section title="Shared Files">
<para>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&apos;s API and should be changed only with TCT approval.</para>
<itemize><item.i><para>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</para></item.i></itemize>
</section>
<section title="Generated Files">
<para>The following files are generated, so they don&apos;t need maintainers.</para>
<itemize><item.i><para>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</para></item.i></itemize>
</section>
<section title="Platform Dependencies">
<para>In addition to the division into functional areas, responsibility for a given area can also be qualified by one or more <emph style="italic">platform</emph> specifiers. Some areas, like <emph style="bold">Windows Configuration and Build Tools</emph> are obviously platform specific, so the qualification is unnecessary. Others, like <emph style="bold">Canvas Items</emph>, are wholly generic. But others, like <emph style="bold">Button</emph>, <emph style="bold">Scale</emph> or <emph style="bold">Scrollbar</emph> contain code for all platforms.</para>
<para>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.</para>
<para>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&apos;s jobs is to ensure that this continues.</para>
<para>Procedurally, the maintainer will be listed as <emph style="bold">Button Widget - Mac OS X</emph>, etc. A maintainer for a given area can sign up for one or more platforms. Due to the good design of the Tk&apos;s platform dependencies, determining which files are generic, and which are platform specific is trivial. The generic ones are in the <emph style="italic">generic</emph> directory, the Mac ones in the <emph style="italic">macosx</emph> 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.</para>
</section>
<section title="Copyright">
<para>This document has been placed in the public domain.</para>
</section>
</body></TIP>

