Full Code of tcltk/tk for AI

main 5237e24d050f cached
1040 files
18.3 MB
4.8M tokens
5770 symbols
1 requests
Copy disabled (too large) Download .txt
Showing preview only (19,361K chars total). Download the full file to get everything.
Repository: tcltk/tk
Branch: main
Commit: 5237e24d050f
Files: 1040
Total size: 18.3 MB

Directory structure:
gitextract_crrrkqg_/

├── .fossil-settings/
│   ├── binary-glob
│   ├── crlf-glob
│   ├── encoding-glob
│   ├── ignore-glob
│   └── manifest
├── .gitattributes
├── .github/
│   ├── ISSUE_TEMPLATE.md
│   ├── PULL_REQUEST_TEMPLATE.md
│   └── workflows/
│       ├── linux-build.yml
│       ├── linux-with-tcl9-build.yml
│       ├── mac-build.yml
│       ├── onefiledist.yml
│       └── win-build.yml
├── .gitignore
├── .project
├── .settings/
│   ├── org.eclipse.core.resources.prefs
│   └── org.eclipse.core.runtime.prefs
├── README.md
├── bitmaps/
│   ├── error.xbm
│   ├── gray12.xbm
│   ├── gray25.xbm
│   ├── gray50.xbm
│   ├── gray75.xbm
│   ├── hourglass.xbm
│   ├── info.xbm
│   ├── questhead.xbm
│   ├── question.xbm
│   └── warning.xbm
├── changes.md
├── doc/
│   ├── 3DBorder.3
│   ├── AddOption.3
│   ├── BindTable.3
│   ├── CanvPsY.3
│   ├── CanvTkwin.3
│   ├── CanvTxtInfo.3
│   ├── Clipboard.3
│   ├── ClrSelect.3
│   ├── ConfigWidg.3
│   ├── ConfigWind.3
│   ├── CoordToWin.3
│   ├── CrtCmHdlr.3
│   ├── CrtConsoleChan.3
│   ├── CrtErrHdlr.3
│   ├── CrtGenHdlr.3
│   ├── CrtImgType.3
│   ├── CrtItemType.3
│   ├── CrtPhImgFmt.3
│   ├── CrtSelHdlr.3
│   ├── CrtWindow.3
│   ├── DeleteImg.3
│   ├── DrawFocHlt.3
│   ├── EventHndlr.3
│   ├── FindPhoto.3
│   ├── FontId.3
│   ├── GeomReq.3
│   ├── GetAnchor.3
│   ├── GetBitmap.3
│   ├── GetCapStyl.3
│   ├── GetClrmap.3
│   ├── GetColor.3
│   ├── GetCursor.3
│   ├── GetDash.3
│   ├── GetFont.3
│   ├── GetGC.3
│   ├── GetHINSTANCE.3
│   ├── GetHWND.3
│   ├── GetImage.3
│   ├── GetJoinStl.3
│   ├── GetJustify.3
│   ├── GetOption.3
│   ├── GetPixels.3
│   ├── GetPixmap.3
│   ├── GetRelief.3
│   ├── GetRootCrd.3
│   ├── GetScroll.3
│   ├── GetSelect.3
│   ├── GetUid.3
│   ├── GetVRoot.3
│   ├── GetVisual.3
│   ├── Grab.3
│   ├── HWNDToWindow.3
│   ├── HandleEvent.3
│   ├── IdToWindow.3
│   ├── ImgChanged.3
│   ├── Inactive.3
│   ├── InternAtom.3
│   ├── MainLoop.3
│   ├── MainWin.3
│   ├── MaintGeom.3
│   ├── ManageGeom.3
│   ├── MapWindow.3
│   ├── MeasureChar.3
│   ├── MoveToplev.3
│   ├── Name.3
│   ├── NameOfImg.3
│   ├── OwnSelect.3
│   ├── ParseArgv.3
│   ├── QWinEvent.3
│   ├── Restack.3
│   ├── RestrictEv.3
│   ├── SetAppName.3
│   ├── SetCaret.3
│   ├── SetClass.3
│   ├── SetClassProcs.3
│   ├── SetGrid.3
│   ├── SetOptions.3
│   ├── SetVisual.3
│   ├── StrictMotif.3
│   ├── TextLayout.3
│   ├── TkInitStubs.3
│   ├── Tk_Init.3
│   ├── Tk_Main.3
│   ├── WinUtil.3
│   ├── WindowId.3
│   ├── accessible.n
│   ├── attribtable.n
│   ├── bell.n
│   ├── bind.n
│   ├── bindtags.n
│   ├── bitmap.n
│   ├── busy.n
│   ├── button.n
│   ├── canvas.n
│   ├── checkbutton.n
│   ├── chooseColor.n
│   ├── chooseDirectory.n
│   ├── clipboard.n
│   ├── colors.n
│   ├── console.n
│   ├── cursors.n
│   ├── destroy.n
│   ├── dialog.n
│   ├── entry.n
│   ├── event.n
│   ├── fileicon.n
│   ├── focus.n
│   ├── focusNext.n
│   ├── font.n
│   ├── fontchooser.n
│   ├── frame.n
│   ├── getOpenFile.n
│   ├── grab.n
│   ├── grid.n
│   ├── image.n
│   ├── keysyms.n
│   ├── label.n
│   ├── labelframe.n
│   ├── listbox.n
│   ├── loadTk.n
│   ├── lower.n
│   ├── man.macros
│   ├── menu.n
│   ├── menubutton.n
│   ├── message.n
│   ├── messageBox.n
│   ├── nsimage.n
│   ├── option.n
│   ├── optionMenu.n
│   ├── options.n
│   ├── pack.n
│   ├── palette.n
│   ├── panedwindow.n
│   ├── photo.n
│   ├── place.n
│   ├── popup.n
│   ├── print.n
│   ├── radiobutton.n
│   ├── raise.n
│   ├── scale.n
│   ├── scrollbar.n
│   ├── selection.n
│   ├── send.n
│   ├── spinbox.n
│   ├── sysnotify.n
│   ├── systray.n
│   ├── text.n
│   ├── tk.n
│   ├── tk_mac.n
│   ├── tkerror.n
│   ├── tkvars.n
│   ├── tkwait.n
│   ├── toplevel.n
│   ├── ttk_Geometry.3
│   ├── ttk_Theme.3
│   ├── ttk_button.n
│   ├── ttk_checkbutton.n
│   ├── ttk_combobox.n
│   ├── ttk_entry.n
│   ├── ttk_frame.n
│   ├── ttk_image.n
│   ├── ttk_intro.n
│   ├── ttk_label.n
│   ├── ttk_labelframe.n
│   ├── ttk_menubutton.n
│   ├── ttk_notebook.n
│   ├── ttk_panedwindow.n
│   ├── ttk_progressbar.n
│   ├── ttk_radiobutton.n
│   ├── ttk_scale.n
│   ├── ttk_scrollbar.n
│   ├── ttk_separator.n
│   ├── ttk_sizegrip.n
│   ├── ttk_spinbox.n
│   ├── ttk_style.n
│   ├── ttk_toggleswitch.n
│   ├── ttk_treeview.n
│   ├── ttk_vsapi.n
│   ├── ttk_widget.n
│   ├── winfo.n
│   ├── wish.1
│   └── wm.n
├── generic/
│   ├── README
│   ├── default.h
│   ├── ks_names.h
│   ├── nanosvg.h
│   ├── nanosvgrast.h
│   ├── tk.decls
│   ├── tk.h
│   ├── tk3d.c
│   ├── tk3d.h
│   ├── tkAccessibility.c
│   ├── tkArgv.c
│   ├── tkArray.h
│   ├── tkAtom.c
│   ├── tkBind.c
│   ├── tkBitmap.c
│   ├── tkBusy.c
│   ├── tkBusy.h
│   ├── tkButton.c
│   ├── tkButton.h
│   ├── tkCanvArc.c
│   ├── tkCanvBmap.c
│   ├── tkCanvImg.c
│   ├── tkCanvLine.c
│   ├── tkCanvPoly.c
│   ├── tkCanvPs.c
│   ├── tkCanvText.c
│   ├── tkCanvUtil.c
│   ├── tkCanvWind.c
│   ├── tkCanvas.c
│   ├── tkCanvas.h
│   ├── tkClipboard.c
│   ├── tkCmds.c
│   ├── tkColor.c
│   ├── tkColor.h
│   ├── tkConfig.c
│   ├── tkConsole.c
│   ├── tkCursor.c
│   ├── tkDList.h
│   ├── tkDecls.h
│   ├── tkEntry.c
│   ├── tkEntry.h
│   ├── tkError.c
│   ├── tkEvent.c
│   ├── tkFileFilter.c
│   ├── tkFileFilter.h
│   ├── tkFocus.c
│   ├── tkFont.c
│   ├── tkFont.h
│   ├── tkFrame.c
│   ├── tkGC.c
│   ├── tkGeometry.c
│   ├── tkGet.c
│   ├── tkGrab.c
│   ├── tkGrid.c
│   ├── tkIcu.c
│   ├── tkImage.c
│   ├── tkImgBmap.c
│   ├── tkImgGIF.c
│   ├── tkImgListFormat.c
│   ├── tkImgPNG.c
│   ├── tkImgPPM.c
│   ├── tkImgPhInstance.c
│   ├── tkImgPhoto.c
│   ├── tkImgPhoto.h
│   ├── tkImgSVGnano.c
│   ├── tkImgUtil.c
│   ├── tkInt.decls
│   ├── tkInt.h
│   ├── tkIntDecls.h
│   ├── tkIntPlatDecls.h
│   ├── tkIntXlibDecls.h
│   ├── tkListbox.c
│   ├── tkMacWinMenu.c
│   ├── tkMain.c
│   ├── tkMenu.c
│   ├── tkMenu.h
│   ├── tkMenuDraw.c
│   ├── tkMenubutton.c
│   ├── tkMenubutton.h
│   ├── tkMessage.c
│   ├── tkObj.c
│   ├── tkOldConfig.c
│   ├── tkOption.c
│   ├── tkPack.c
│   ├── tkPanedWindow.c
│   ├── tkPkgConfig.c
│   ├── tkPlace.c
│   ├── tkPlatDecls.h
│   ├── tkPointer.c
│   ├── tkPort.h
│   ├── tkRectOval.c
│   ├── tkScale.c
│   ├── tkScale.h
│   ├── tkScrollbar.c
│   ├── tkScrollbar.h
│   ├── tkSelect.c
│   ├── tkSelect.h
│   ├── tkSquare.c
│   ├── tkStubInit.c
│   ├── tkStubLib.c
│   ├── tkStyle.c
│   ├── tkTest.c
│   ├── tkText.c
│   ├── tkText.h
│   ├── tkTextBTree.c
│   ├── tkTextDisp.c
│   ├── tkTextImage.c
│   ├── tkTextIndex.c
│   ├── tkTextMark.c
│   ├── tkTextTag.c
│   ├── tkTextWind.c
│   ├── tkTrig.c
│   ├── tkUndo.c
│   ├── tkUndo.h
│   ├── tkUtil.c
│   ├── tkVisual.c
│   ├── tkWindow.c
│   └── ttk/
│       ├── ttk.decls
│       ├── ttkBlink.c
│       ├── ttkButton.c
│       ├── ttkCache.c
│       ├── ttkClamTheme.c
│       ├── ttkClassicTheme.c
│       ├── ttkDecls.h
│       ├── ttkDefaultTheme.c
│       ├── ttkElements.c
│       ├── ttkEntry.c
│       ├── ttkFrame.c
│       ├── ttkImage.c
│       ├── ttkInit.c
│       ├── ttkLabel.c
│       ├── ttkLayout.c
│       ├── ttkManager.c
│       ├── ttkManager.h
│       ├── ttkNotebook.c
│       ├── ttkPanedwindow.c
│       ├── ttkProgress.c
│       ├── ttkScale.c
│       ├── ttkScroll.c
│       ├── ttkScrollbar.c
│       ├── ttkSeparator.c
│       ├── ttkSquare.c
│       ├── ttkState.c
│       ├── ttkStubInit.c
│       ├── ttkStubLib.c
│       ├── ttkTagSet.c
│       ├── ttkTheme.c
│       ├── ttkTheme.h
│       ├── ttkThemeInt.h
│       ├── ttkToggleswitch.c
│       ├── ttkTrace.c
│       ├── ttkTrack.c
│       ├── ttkTreeview.c
│       ├── ttkWidget.c
│       └── ttkWidget.h
├── library/
│   ├── accessibility.tcl
│   ├── bgerror.tcl
│   ├── button.tcl
│   ├── choosedir.tcl
│   ├── clrpick.tcl
│   ├── comdlg.tcl
│   ├── console.tcl
│   ├── demos/
│   │   ├── README
│   │   ├── accessiblewidget
│   │   ├── anilabel.tcl
│   │   ├── aniwave.tcl
│   │   ├── arrow.tcl
│   │   ├── bind.tcl
│   │   ├── bitmap.tcl
│   │   ├── browse
│   │   ├── button.tcl
│   │   ├── check.tcl
│   │   ├── clrpick.tcl
│   │   ├── colors.tcl
│   │   ├── combo.tcl
│   │   ├── cscroll.tcl
│   │   ├── ctext.tcl
│   │   ├── dialog1.tcl
│   │   ├── dialog2.tcl
│   │   ├── en.msg
│   │   ├── entry1.tcl
│   │   ├── entry2.tcl
│   │   ├── entry3.tcl
│   │   ├── filebox.tcl
│   │   ├── floor.tcl
│   │   ├── fontchoose.tcl
│   │   ├── form.tcl
│   │   ├── goldberg.tcl
│   │   ├── hello
│   │   ├── hscale.tcl
│   │   ├── icon.tcl
│   │   ├── image1.tcl
│   │   ├── image2.tcl
│   │   ├── images/
│   │   │   ├── flagdown.xbm
│   │   │   ├── flagup.xbm
│   │   │   ├── gray25.xbm
│   │   │   ├── letters.xbm
│   │   │   ├── noletter.xbm
│   │   │   ├── pattern.xbm
│   │   │   └── teapot.ppm
│   │   ├── items.tcl
│   │   ├── ixset
│   │   ├── knightstour.tcl
│   │   ├── label.tcl
│   │   ├── labelframe.tcl
│   │   ├── mac_styles.tcl
│   │   ├── mac_tabs.tcl
│   │   ├── mac_wm.tcl
│   │   ├── mclist.tcl
│   │   ├── menu.tcl
│   │   ├── menubu.tcl
│   │   ├── msgbox.tcl
│   │   ├── nl.msg
│   │   ├── paned1.tcl
│   │   ├── paned2.tcl
│   │   ├── pendulum.tcl
│   │   ├── plot.tcl
│   │   ├── print.tcl
│   │   ├── puzzle.tcl
│   │   ├── radio.tcl
│   │   ├── rmt
│   │   ├── rolodex
│   │   ├── ruler.tcl
│   │   ├── sayings.tcl
│   │   ├── search.tcl
│   │   ├── spin.tcl
│   │   ├── square
│   │   ├── states.tcl
│   │   ├── style.tcl
│   │   ├── systray.tcl
│   │   ├── tclIndex
│   │   ├── tcolor
│   │   ├── text.tcl
│   │   ├── textpeer.tcl
│   │   ├── timer
│   │   ├── toolbar.tcl
│   │   ├── tree.tcl
│   │   ├── ttkbut.tcl
│   │   ├── ttkmenu.tcl
│   │   ├── ttknote.tcl
│   │   ├── ttkpane.tcl
│   │   ├── ttkprogress.tcl
│   │   ├── ttkscale.tcl
│   │   ├── ttkspin.tcl
│   │   ├── twind.tcl
│   │   ├── unicodeout.tcl
│   │   ├── vscale.tcl
│   │   ├── widget
│   │   └── windowicons.tcl
│   ├── dialog.tcl
│   ├── entry.tcl
│   ├── fileicon.tcl
│   ├── focus.tcl
│   ├── fontchooser.tcl
│   ├── iconbadges.tcl
│   ├── iconlist.tcl
│   ├── icons.tcl
│   ├── images/
│   │   ├── README
│   │   ├── logo.eps
│   │   └── pwrdLogo.eps
│   ├── listbox.tcl
│   ├── megawidget.tcl
│   ├── menu.tcl
│   ├── mkpsenc.tcl
│   ├── msgbox.tcl
│   ├── msgs/
│   │   ├── cs.msg
│   │   ├── da.msg
│   │   ├── de.msg
│   │   ├── el.msg
│   │   ├── en.msg
│   │   ├── en_gb.msg
│   │   ├── eo.msg
│   │   ├── es.msg
│   │   ├── fi.msg
│   │   ├── fr.msg
│   │   ├── hu.msg
│   │   ├── it.msg
│   │   ├── nl.msg
│   │   ├── pl.msg
│   │   ├── pt.msg
│   │   ├── ru.msg
│   │   ├── sv.msg
│   │   └── zh_cn.msg
│   ├── optMenu.tcl
│   ├── palette.tcl
│   ├── panedwindow.tcl
│   ├── print.tcl
│   ├── safetk.tcl
│   ├── scale.tcl
│   ├── scaling.tcl
│   ├── scrlbar.tcl
│   ├── spinbox.tcl
│   ├── systray.tcl
│   ├── tclIndex
│   ├── tearoff.tcl
│   ├── text.tcl
│   ├── tk.tcl
│   ├── tkfbox.tcl
│   ├── ttk/
│   │   ├── altTheme.tcl
│   │   ├── aquaTheme.tcl
│   │   ├── button.tcl
│   │   ├── clamTheme.tcl
│   │   ├── classicTheme.tcl
│   │   ├── combobox.tcl
│   │   ├── cursors.tcl
│   │   ├── defaults.tcl
│   │   ├── elements.tcl
│   │   ├── entry.tcl
│   │   ├── fonts.tcl
│   │   ├── menubutton.tcl
│   │   ├── notebook.tcl
│   │   ├── panedwindow.tcl
│   │   ├── progress.tcl
│   │   ├── scale.tcl
│   │   ├── scrollbar.tcl
│   │   ├── sizegrip.tcl
│   │   ├── spinbox.tcl
│   │   ├── toggleswitch.tcl
│   │   ├── treeview.tcl
│   │   ├── ttk.tcl
│   │   ├── utils.tcl
│   │   ├── vistaTheme.tcl
│   │   ├── wideSpinbox.tcl
│   │   └── winTheme.tcl
│   └── xmfbox.tcl
├── license.terms
├── macosx/
│   ├── Credits.html.in
│   ├── GNUmakefile
│   ├── README
│   ├── Tk-Info.plist.in
│   ├── Tk.icns
│   ├── Tk.tiff
│   ├── Wish-Info.plist.in
│   ├── Wish.sdef
│   ├── configure.ac
│   ├── tkMacOSX.h
│   ├── tkMacOSXAccessibility.c
│   ├── tkMacOSXBitmap.c
│   ├── tkMacOSXButton.c
│   ├── tkMacOSXClipboard.c
│   ├── tkMacOSXColor.c
│   ├── tkMacOSXColor.h
│   ├── tkMacOSXConfig.c
│   ├── tkMacOSXConstants.h
│   ├── tkMacOSXCursor.c
│   ├── tkMacOSXCursors.h
│   ├── tkMacOSXDebug.c
│   ├── tkMacOSXDebug.h
│   ├── tkMacOSXDefault.h
│   ├── tkMacOSXDialog.c
│   ├── tkMacOSXDraw.c
│   ├── tkMacOSXEmbed.c
│   ├── tkMacOSXEntry.c
│   ├── tkMacOSXEvent.c
│   ├── tkMacOSXFileTypes.c
│   ├── tkMacOSXFont.c
│   ├── tkMacOSXFont.h
│   ├── tkMacOSXHLEvents.c
│   ├── tkMacOSXImage.c
│   ├── tkMacOSXImage.h
│   ├── tkMacOSXInit.c
│   ├── tkMacOSXInt.h
│   ├── tkMacOSXKeyEvent.c
│   ├── tkMacOSXKeyboard.c
│   ├── tkMacOSXKeysyms.h
│   ├── tkMacOSXMenu.c
│   ├── tkMacOSXMenubutton.c
│   ├── tkMacOSXMenus.c
│   ├── tkMacOSXMouseEvent.c
│   ├── tkMacOSXNotify.c
│   ├── tkMacOSXPort.h
│   ├── tkMacOSXPrint.c
│   ├── tkMacOSXPrivate.h
│   ├── tkMacOSXRegion.c
│   ├── tkMacOSXScrlbr.c
│   ├── tkMacOSXSend.c
│   ├── tkMacOSXServices.c
│   ├── tkMacOSXSubwindows.c
│   ├── tkMacOSXSysTray.c
│   ├── tkMacOSXTest.c
│   ├── tkMacOSXWindowEvent.c
│   ├── tkMacOSXWm.c
│   ├── tkMacOSXWm.h
│   ├── tkMacOSXXCursors.h
│   ├── tkMacOSXXStubs.c
│   ├── ttkMacOSXTheme.c
│   └── ttkMacOSXTheme.h
├── tests/
│   ├── README
│   ├── all.tcl
│   ├── arc.tcl
│   ├── attribtable.test
│   ├── bell.test
│   ├── bevel.tcl
│   ├── bgerror.test
│   ├── bind.test
│   ├── bitmap.test
│   ├── border.test
│   ├── busy.test
│   ├── butGeom.tcl
│   ├── butGeom2.tcl
│   ├── button.test
│   ├── canvImg.test
│   ├── canvMoveto.test
│   ├── canvPs.test
│   ├── canvPsArc.tcl
│   ├── canvPsBmap.tcl
│   ├── canvPsGrph.tcl
│   ├── canvPsImg.tcl
│   ├── canvPsText.tcl
│   ├── canvRect.test
│   ├── canvText.test
│   ├── canvWind.test
│   ├── canvas.test
│   ├── choosedir.test
│   ├── clipboard.test
│   ├── clrpick.test
│   ├── cluster.test
│   ├── cmap.tcl
│   ├── cmds.test
│   ├── color.test
│   ├── config.test
│   ├── constraints.tcl
│   ├── cursor.test
│   ├── dialog.test
│   ├── embed.test
│   ├── entry.test
│   ├── event.test
│   ├── face.xbm
│   ├── filebox.test
│   ├── flagdown.xbm
│   ├── flagup.xbm
│   ├── focus.test
│   ├── focusTcl.test
│   ├── font.test
│   ├── fontchooser.test
│   ├── frame.test
│   ├── geometry.test
│   ├── get.test
│   ├── grab.test
│   ├── grid.test
│   ├── image.test
│   ├── imgBmap.test
│   ├── imgListFormat.test
│   ├── imgPNG.test
│   ├── imgPPM.test
│   ├── imgPhoto.test
│   ├── imgSVGnano.test
│   ├── listbox.test
│   ├── main.tcl
│   ├── main.test
│   ├── menu.test
│   ├── menuDraw.test
│   ├── menubut.test
│   ├── message.test
│   ├── msgbox.test
│   ├── obj.test
│   ├── option.file1
│   ├── option.file2
│   ├── option.file3
│   ├── option.test
│   ├── pack.test
│   ├── packgrid.test
│   ├── panedwindow.test
│   ├── pkgconfig.test
│   ├── place.test
│   ├── raise.test
│   ├── safe.test
│   ├── safePrimarySelection.test
│   ├── scale.test
│   ├── scrollbar.test
│   ├── select.test
│   ├── send.test
│   ├── spinbox.test
│   ├── systray.test
│   ├── teapot.ppm
│   ├── testutils.GUIDE
│   ├── testutils.tcl
│   ├── testutils.test
│   ├── text.test
│   ├── textBTree.test
│   ├── textDisp.test
│   ├── textImage.test
│   ├── textIndex.test
│   ├── textMark.test
│   ├── textTag.test
│   ├── textWind.test
│   ├── tk.test
│   ├── ttk/
│   │   ├── all.tcl
│   │   ├── checkbutton.test
│   │   ├── combobox.test
│   │   ├── entry.test
│   │   ├── image.test
│   │   ├── labelframe.test
│   │   ├── layout.test
│   │   ├── notebook.test
│   │   ├── panedwindow.test
│   │   ├── progressbar.test
│   │   ├── radiobutton.test
│   │   ├── scale.test
│   │   ├── scrollbar.test
│   │   ├── spinbox.test
│   │   ├── toggleswitch.test
│   │   ├── treetags.test
│   │   ├── treeview.test
│   │   ├── ttk.test
│   │   ├── validate.test
│   │   └── vsapi.test
│   ├── unixButton.test
│   ├── unixEmbed.test
│   ├── unixFont.test
│   ├── unixMenu.test
│   ├── unixSelect.test
│   ├── unixWm.test
│   ├── util.test
│   ├── visual.test
│   ├── visual_bb.test
│   ├── winButton.test
│   ├── winClipboard.test
│   ├── winDialog.test
│   ├── winFont.test
│   ├── winMenu.test
│   ├── winMsgbox.test
│   ├── winSend.test
│   ├── winWm.test
│   ├── window.test
│   ├── winfo.test
│   ├── wm.test
│   └── xmfbox.test
├── unix/
│   ├── Makefile.in
│   ├── README
│   ├── aclocal.m4
│   ├── bidi/
│   │   ├── Headers/
│   │   │   └── SheenBidi/
│   │   │       ├── SBAlgorithm.h
│   │   │       ├── SBAllocator.h
│   │   │       ├── SBAttributeInfo.h
│   │   │       ├── SBAttributeList.h
│   │   │       ├── SBAttributeRegistry.h
│   │   │       ├── SBBase.h
│   │   │       ├── SBBidiType.h
│   │   │       ├── SBCodepoint.h
│   │   │       ├── SBCodepointSequence.h
│   │   │       ├── SBConfig.h
│   │   │       ├── SBGeneralCategory.h
│   │   │       ├── SBLine.h
│   │   │       ├── SBMirrorLocator.h
│   │   │       ├── SBParagraph.h
│   │   │       ├── SBRun.h
│   │   │       ├── SBScript.h
│   │   │       ├── SBScriptLocator.h
│   │   │       ├── SBText.h
│   │   │       ├── SBTextConfig.h
│   │   │       ├── SBTextIterators.h
│   │   │       ├── SBTextType.h
│   │   │       ├── SBVersion.h
│   │   │       └── SheenBidi.h
│   │   ├── LICENSE_SHEENBIDI
│   │   ├── SheenBidi.c
│   │   └── Source/
│   │       ├── API/
│   │       │   ├── SBAlgorithm.c
│   │       │   ├── SBAlgorithm.h
│   │       │   ├── SBAllocator.c
│   │       │   ├── SBAllocator.h
│   │       │   ├── SBAssert.h
│   │       │   ├── SBAttributeInfo.h
│   │       │   ├── SBAttributeList.c
│   │       │   ├── SBAttributeList.h
│   │       │   ├── SBAttributeRegistry.c
│   │       │   ├── SBAttributeRegistry.h
│   │       │   ├── SBBase.c
│   │       │   ├── SBBase.h
│   │       │   ├── SBCodepoint.c
│   │       │   ├── SBCodepoint.h
│   │       │   ├── SBCodepointSequence.c
│   │       │   ├── SBCodepointSequence.h
│   │       │   ├── SBLine.c
│   │       │   ├── SBLine.h
│   │       │   ├── SBLog.c
│   │       │   ├── SBLog.h
│   │       │   ├── SBMirrorLocator.c
│   │       │   ├── SBMirrorLocator.h
│   │       │   ├── SBParagraph.c
│   │       │   ├── SBParagraph.h
│   │       │   ├── SBScriptLocator.c
│   │       │   ├── SBScriptLocator.h
│   │       │   ├── SBText.c
│   │       │   ├── SBText.h
│   │       │   ├── SBTextConfig.c
│   │       │   ├── SBTextConfig.h
│   │       │   ├── SBTextIterators.c
│   │       │   └── SBTextIterators.h
│   │       ├── Core/
│   │       │   ├── AtomicFlag.h
│   │       │   ├── AtomicPointer.h
│   │       │   ├── AtomicUInt.h
│   │       │   ├── List.c
│   │       │   ├── List.h
│   │       │   ├── Memory.c
│   │       │   ├── Memory.h
│   │       │   ├── Object.c
│   │       │   ├── Object.h
│   │       │   ├── Once.c
│   │       │   ├── Once.h
│   │       │   ├── ThreadFence.h
│   │       │   └── ThreadLocalStorage.h
│   │       ├── Data/
│   │       │   ├── BidiTypeLookup.c
│   │       │   ├── BidiTypeLookup.h
│   │       │   ├── GeneralCategoryLookup.c
│   │       │   ├── GeneralCategoryLookup.h
│   │       │   ├── PairingLookup.c
│   │       │   ├── PairingLookup.h
│   │       │   ├── ScriptLookup.c
│   │       │   └── ScriptLookup.h
│   │       ├── Script/
│   │       │   ├── ScriptStack.c
│   │       │   └── ScriptStack.h
│   │       ├── Text/
│   │       │   ├── AttributeDictionary.c
│   │       │   ├── AttributeDictionary.h
│   │       │   ├── AttributeManager.c
│   │       │   └── AttributeManager.h
│   │       └── UBA/
│   │           ├── BidiChain.c
│   │           ├── BidiChain.h
│   │           ├── BracketQueue.c
│   │           ├── BracketQueue.h
│   │           ├── BracketType.h
│   │           ├── IsolatingRun.c
│   │           ├── IsolatingRun.h
│   │           ├── LevelRun.c
│   │           ├── LevelRun.h
│   │           ├── RunExtrema.h
│   │           ├── RunKind.h
│   │           ├── RunQueue.c
│   │           ├── RunQueue.h
│   │           ├── StatusStack.c
│   │           └── StatusStack.h
│   ├── configure
│   ├── configure.ac
│   ├── install-sh
│   ├── installManPage
│   ├── tcl.m4
│   ├── tk.pc.in
│   ├── tk.spec
│   ├── tkAppInit.c
│   ├── tkConfig.h.in
│   ├── tkConfig.sh.in
│   ├── tkUnix.c
│   ├── tkUnix3d.c
│   ├── tkUnixAccessibility.c
│   ├── tkUnixBidiFont.c
│   ├── tkUnixButton.c
│   ├── tkUnixColor.c
│   ├── tkUnixConfig.c
│   ├── tkUnixCursor.c
│   ├── tkUnixDefault.h
│   ├── tkUnixDraw.c
│   ├── tkUnixEmbed.c
│   ├── tkUnixEvent.c
│   ├── tkUnixFocus.c
│   ├── tkUnixFont.c
│   ├── tkUnixInit.c
│   ├── tkUnixInt.h
│   ├── tkUnixKey.c
│   ├── tkUnixMenu.c
│   ├── tkUnixMenubu.c
│   ├── tkUnixPort.h
│   ├── tkUnixPrint.c
│   ├── tkUnixRFont.c
│   ├── tkUnixScale.c
│   ├── tkUnixScrlbr.c
│   ├── tkUnixSelect.c
│   ├── tkUnixSend.c
│   ├── tkUnixSysNotify.c
│   ├── tkUnixSysTray.c
│   ├── tkUnixWm.c
│   └── tkUnixXId.c
├── win/
│   ├── Makefile.in
│   ├── README
│   ├── aclocal.m4
│   ├── buildall.vc.bat
│   ├── configure
│   ├── configure.ac
│   ├── gitmanifest.in
│   ├── makefile.vc
│   ├── nmakehlp.c
│   ├── rc/
│   │   ├── cursor00.cur
│   │   ├── cursor02.cur
│   │   ├── cursor04.cur
│   │   ├── cursor06.cur
│   │   ├── cursor08.cur
│   │   ├── cursor0a.cur
│   │   ├── cursor0c.cur
│   │   ├── cursor0e.cur
│   │   ├── cursor10.cur
│   │   ├── cursor12.cur
│   │   ├── cursor14.cur
│   │   ├── cursor16.cur
│   │   ├── cursor18.cur
│   │   ├── cursor1a.cur
│   │   ├── cursor1c.cur
│   │   ├── cursor1e.cur
│   │   ├── cursor20.cur
│   │   ├── cursor22.cur
│   │   ├── cursor24.cur
│   │   ├── cursor26.cur
│   │   ├── cursor28.cur
│   │   ├── cursor2a.cur
│   │   ├── cursor2c.cur
│   │   ├── cursor2e.cur
│   │   ├── cursor30.cur
│   │   ├── cursor32.cur
│   │   ├── cursor34.cur
│   │   ├── cursor36.cur
│   │   ├── cursor38.cur
│   │   ├── cursor3a.cur
│   │   ├── cursor3c.cur
│   │   ├── cursor3e.cur
│   │   ├── cursor40.cur
│   │   ├── cursor42.cur
│   │   ├── cursor44.cur
│   │   ├── cursor46.cur
│   │   ├── cursor48.cur
│   │   ├── cursor4a.cur
│   │   ├── cursor4c.cur
│   │   ├── cursor4e.cur
│   │   ├── cursor50.cur
│   │   ├── cursor52.cur
│   │   ├── cursor54.cur
│   │   ├── cursor56.cur
│   │   ├── cursor58.cur
│   │   ├── cursor5a.cur
│   │   ├── cursor5c.cur
│   │   ├── cursor5e.cur
│   │   ├── cursor60.cur
│   │   ├── cursor62.cur
│   │   ├── cursor64.cur
│   │   ├── cursor66.cur
│   │   ├── cursor68.cur
│   │   ├── cursor6a.cur
│   │   ├── cursor6c.cur
│   │   ├── cursor6e.cur
│   │   ├── cursor70.cur
│   │   ├── cursor72.cur
│   │   ├── cursor74.cur
│   │   ├── cursor76.cur
│   │   ├── cursor78.cur
│   │   ├── cursor7a.cur
│   │   ├── cursor7c.cur
│   │   ├── cursor7e.cur
│   │   ├── cursor80.cur
│   │   ├── cursor82.cur
│   │   ├── cursor84.cur
│   │   ├── cursor86.cur
│   │   ├── cursor88.cur
│   │   ├── cursor8a.cur
│   │   ├── cursor8c.cur
│   │   ├── cursor8e.cur
│   │   ├── cursor90.cur
│   │   ├── cursor92.cur
│   │   ├── cursor94.cur
│   │   ├── cursor96.cur
│   │   ├── cursor98.cur
│   │   ├── cursor9a.cur
│   │   ├── tk.rc
│   │   ├── tk_base.rc
│   │   ├── tktest.rc
│   │   └── wish.rc
│   ├── rules-ext.vc
│   ├── rules.vc
│   ├── stubs.c
│   ├── svnmanifest.in
│   ├── targets.vc
│   ├── tcl.m4
│   ├── tkConfig.sh.in
│   ├── tkUuid.h.in
│   ├── tkWin.h
│   ├── tkWin32Dll.c
│   ├── tkWin3d.c
│   ├── tkWinAccessibility.c
│   ├── tkWinButton.c
│   ├── tkWinClipboard.c
│   ├── tkWinColor.c
│   ├── tkWinConfig.c
│   ├── tkWinCursor.c
│   ├── tkWinDefault.h
│   ├── tkWinDialog.c
│   ├── tkWinDraw.c
│   ├── tkWinEmbed.c
│   ├── tkWinFont.c
│   ├── tkWinGDI.c
│   ├── tkWinIco.c
│   ├── tkWinIco.h
│   ├── tkWinImage.c
│   ├── tkWinInit.c
│   ├── tkWinInt.h
│   ├── tkWinKey.c
│   ├── tkWinMenu.c
│   ├── tkWinPixmap.c
│   ├── tkWinPointer.c
│   ├── tkWinPort.h
│   ├── tkWinRegion.c
│   ├── tkWinScrlbr.c
│   ├── tkWinSend.c
│   ├── tkWinSendCom.c
│   ├── tkWinSendCom.h
│   ├── tkWinSysTray.c
│   ├── tkWinTest.c
│   ├── tkWinWindow.c
│   ├── tkWinWm.c
│   ├── tkWinX.c
│   ├── ttkWinMonitor.c
│   ├── ttkWinTheme.c
│   ├── ttkWinVistaTheme.c
│   ├── winMain.c
│   └── wish.exe.manifest.in
└── xlib/
    ├── X11/
    │   ├── DECkeysym.h
    │   ├── HPkeysym.h
    │   ├── Sunkeysym.h
    │   ├── X.h
    │   ├── XF86keysym.h
    │   ├── Xatom.h
    │   ├── Xfuncproto.h
    │   ├── Xlib.h
    │   ├── Xutil.h
    │   ├── ap_keysym.h
    │   ├── cursorfont.h
    │   ├── keysym.h
    │   └── keysymdef.h
    ├── rgb.txt
    ├── xbytes.h
    ├── xcolors.c
    ├── xdraw.c
    ├── xgc.c
    ├── ximage.c
    └── xutil.c

================================================
FILE CONTENTS
================================================

================================================
FILE: .fossil-settings/binary-glob
================================================
*.bmp
*.gif
*.png


================================================
FILE: .fossil-settings/crlf-glob
================================================
win/*.bat
win/*.vc
win/rc/*.rc


================================================
FILE: .fossil-settings/encoding-glob
================================================
win/buildall.vc.bat
win/makefile.vc
win/rules-ext.vc
win/rules.vc
win/targets.vc
win/rc/*.bmp
win/rc/*.cur
win/rc/*.ico
win/rc/*.rc


================================================
FILE: .fossil-settings/ignore-glob
================================================
*.a
*.dll
*.dylib
*.dylib.E
*.exe
*.exp
*.la
*.lib
*.lo
*.o
*.obj
*.pdb
*.res
*.sl
*.so
*/Makefile
*/autom4te.cache
*/config.cache
*/config.log
*/config.status
*/tkConfig.sh
*/wish*
*/tktest
*/versions.vc
*/version.vc
*/libtk.vfs
*/libtk*.zip
*/tkUuid.h
.git
html
macosx/configure
win/Debug*
win/Release*
win/*.manifest
win/nmhlp-out.txt
win/nmakehlp.out
unix/tk.pc
unix/Tk-Info.plist
unix/Wish-Info.plist
unix/Credits.html


================================================
FILE: .fossil-settings/manifest
================================================
u


================================================
FILE: .gitattributes
================================================
# Set the default behavior, in case people don't have core.autocrlf set.
* eol=lf
* text=auto

# Explicitly declare text files you want to always be normalized and converted
# to native line endings on checkout.
*.3 text
*.c text
*.css text
*.enc text
*.h text
*.htm text
*.html text
*.java text
*.js text
*.json text
*.n text
*.svg text
*.ts text
*.tcl text
*.test text

# Declare files that will always have CRLF line endings on checkout.
*.bat eol=crlf
*.rc eol=crlf
*.sln eol=crlf
*.vc eol=crlf

# Denote all files that are truly binary and should not be modified.
*.a binary
*.bmp binary
*.cur binary
*.dll binary
*.exe binary
*.gif binary
*.gz binary
*.ico binary
*.jpg binary
*.lib binary
*.pdf binary
*.png binary
*.xlsx binary
*.zip binary


================================================
FILE: .github/ISSUE_TEMPLATE.md
================================================
Important Note
==========
Please do not file issues with Tk on Github. They are unlikely to be noticed in a timely fashion. Tk issues are hosted in the [tk fossil repository on core.tcl-lang.org](https://core.tcl-lang.org/tk/tktnew); please post them there.


================================================
FILE: .github/PULL_REQUEST_TEMPLATE.md
================================================
Important Note
==========
Please do not file pull requests with Tk on Github. They are unlikely to be noticed in a timely fashion. Tk issues (including patches) are hosted in the [tk fossil repository on core.tcl-lang.org](https://core.tcl-lang.org/tk/tktnew); please post them there.


================================================
FILE: .github/workflows/linux-build.yml
================================================
name: Linux
on:
  push:
    branches:
    - "main"
    - "core-9-0-branch"
    tags:
    - "core-**"
permissions:
  contents: read
defaults:
  run:
    shell: bash
    working-directory: tk/unix
env:
  ERROR_ON_FAILURES: 1
jobs:
  build:
    runs-on: ubuntu-24.04
    strategy:
      matrix:
        compiler:
          - "gcc"
          - "clang"
        config:
          - ""
          - "CFLAGS=-DTK_NO_DEPRECATED=1"
          - "--disable-shared"
          - "--enable-symbols"
    steps:
      - name: Checkout Tk
        uses: actions/checkout@v6
        with:
          path: tk
      - name: Checkout Tcl 9.1
        uses: actions/checkout@v6
        with:
          repository: tcltk/tcl
          ref: main
          path: tcl
      - name: Setup Environment (compiler=${{ matrix.compiler }})
        run: |
          sudo apt-get update
          sudo apt-get install libxss-dev libxft-dev libcups2-dev libatk1.0-dev libatk-bridge2.0-dev
          mkdir "$HOME/install dir"
          touch tk/doc/man.macros tk/generic/tkStubInit.c
          echo "CFGOPT=$CFGOPT" >> $GITHUB_ENV
          echo "CC=$COMPILER" >> $GITHUB_ENV
          echo "TOOL_DIR=$(cd tcl/tools;pwd)" >> $GITHUB_ENV
          echo "BUILD_CONFIG_ID=$OPTS" >> $GITHUB_ENV
        working-directory: "."
        env:
          CFGOPT: ${{ matrix.config }}
          COMPILER: ${{ matrix.compiler }}
          OPTS: ${{ matrix.compiler }}${{ matrix.config }}
      - name: Configure and Build Tcl
        run: |
          ./configure $CFGOPT "--prefix=$HOME/install dir" || {
            cat config.log
            echo "::warning::Failure during Tcl Configure"
            exit 1
          }
          make all install  || {
            echo "::warning::Failure during Tcl Build"
            exit 1
          }
          echo "TCL_CONFIG_PATH=`pwd`" >> $GITHUB_ENV
        working-directory: tcl/unix
      - name: Configure (opts=${{ matrix.config }})
        run: |
          ./configure $CFGOPT --with-tcl=$TCL_CONFIG_PATH "--prefix=$HOME/install dir" || {
            cat config.log
            echo "::error::Failure during Configure"
            exit 1
          }
      - name: Build
        run: |
          make binaries libraries || {
            echo "::error::Failure during Build"
            exit 1
          }
      - name: Build Test Harness
        run: |
          make tktest || {
            echo "::error::Failure during Build"
            exit 1
          }
      - name: Test-Drive Installation
        run: |
          make install || {
            echo "::error::Failure during Install"
            exit 1
          }
      - name: Create Distribution Package
        run: |
          make dist || {
            echo "::error::Failure during Distribute"
            exit 1
          }
      - name: Convert Documentation to HTML
        run: |
          make html-tk TOOL_DIR=$TOOL_DIR || {
            echo "::error::Failure during Distribute"
            exit 1
          }
      - name: Discover Version ID
        if: ${{ env.BUILD_CONFIG_ID == 'gcc' }}
        run: |
          cd /tmp/dist
          echo "VERSION=`ls -d tk* | sed 's/tk//'`" >> $GITHUB_ENV
      - name: Upload Source Distribution
        if: ${{ env.BUILD_CONFIG_ID == 'gcc' }}
        uses: actions/upload-artifact@v7
        with:
          name: Tk ${{ env.VERSION }} Source distribution (snapshot)
          path: |
            /tmp/dist/tk*
            !/tmp/dist/tk*/html/**
      - name: Upload Documentation Distribution
        if: ${{ env.BUILD_CONFIG_ID == 'gcc' }}
        uses: actions/upload-artifact@v7
        with:
          name: Tk ${{ env.VERSION }} HTML documentation (snapshot)
          path: /tmp/dist/tk*/html
  test:
    runs-on: ubuntu-24.04
    strategy:
      matrix:
        compiler:
          - "gcc"
        config:
          - ""
          - "--enable-symbols"
    steps:
      - name: Checkout Tk
        uses: actions/checkout@v6
        with:
          path: tk
      - name: Checkout Tcl 9.1
        uses: actions/checkout@v5
        with:
          repository: tcltk/tcl
          ref: main
          path: tcl
      - name: Setup Environment (compiler=${{ matrix.compiler }})
        run: |
          sudo apt-get update
          sudo apt-get install libxss-dev libxft-dev libcups2-dev xvfb libicu-dev xfonts-75dpi xfonts-100dpi xfonts-scalable libxfont2 unifont
          mkdir "$HOME/install dir"
          touch tk/doc/man.macros tk/generic/tkStubInit.c
          echo "CFGOPT=$CFGOPT" >> $GITHUB_ENV
          echo "CC=$COMPILER" >> $GITHUB_ENV
        working-directory: "."
        env:
          CFGOPT: ${{ matrix.config }}
          COMPILER: ${{ matrix.compiler }}
      - name: Configure and Build Tcl
        run: |
          ./configure $CFGOPT "--prefix=$HOME/install dir" || {
            cat config.log
            echo "::warning::Failure during Tcl Configure"
            exit 1
          }
          make all install  || {
            echo "::warning::Failure during Tcl Build"
            exit 1
          }
          echo "TCL_CONFIG_PATH=`pwd`" >> $GITHUB_ENV
        working-directory: tcl/unix
      - name: Configure ${{ matrix.config }}
        run: |
          ./configure $CFGOPT --with-tcl=$TCL_CONFIG_PATH "--prefix=$HOME/install dir" || {
            cat config.log
            echo "::error::Failure during Configure"
            exit 1
          }
      - name: Build
        run: |
          make binaries libraries tktest || {
            echo "::error::Failure during Build"
            exit 1
          }
      - name: Run Tests
        run: |
          xvfb-run --auto-servernum make test-classic | tee out-classic.txt
          xvfb-run --auto-servernum make test-ttk | tee out-ttk.txt
          grep -q "Failed	0" out-classic.txt || {
            echo "::error::Failure during Test"
            exit 1
          }
          grep -q "Failed	0" out-ttk.txt || {
            echo "::error::Failure during Test"
            exit 1
          }
        timeout-minutes: 10


================================================
FILE: .github/workflows/linux-with-tcl9-build.yml
================================================
name: Linux (with Tcl 9.0)
on:
  push:
    branches:
    - "main"
    - "core-9-0-branch"
    tags:
    - "core-**"
permissions:
  contents: read
defaults:
  run:
    shell: bash
    working-directory: tk/unix
env:
  ERROR_ON_FAILURES: 1
jobs:
  build:
    runs-on: ubuntu-24.04
    strategy:
      matrix:
        compiler:
          - "gcc"
          - "clang"
        config:
          - ""
          - "CFLAGS=-DTK_NO_DEPRECATED=1"
          - "--disable-shared"
          - "--enable-symbols"
    steps:
      - name: Checkout
        uses: actions/checkout@v4
        with:
          path: tk
      - name: Checkout Tcl 9.0
        uses: actions/checkout@v4
        with:
          repository: tcltk/tcl
          ref: core-9-0-branch
          path: tcl
      - name: Setup Environment (compiler=${{ matrix.compiler }})
        run: |
          sudo apt-get install libx11-dev
          mkdir "$HOME/install dir"
          touch tk/doc/man.macros tk/generic/tkStubInit.c
          echo "CFGOPT=$CFGOPT" >> $GITHUB_ENV
          echo "CC=$COMPILER" >> $GITHUB_ENV
          echo "TOOL_DIR=$(cd tcl/tools;pwd)" >> $GITHUB_ENV
          echo "BUILD_CONFIG_ID=$OPTS" >> $GITHUB_ENV
        working-directory: "."
        env:
          CFGOPT: ${{ matrix.config }}
          COMPILER: ${{ matrix.compiler }}
          OPTS: ${{ matrix.compiler }}${{ matrix.config }}
      - name: Configure and Build Tcl
        run: |
          ./configure $CFGOPT "--prefix=$HOME/install dir" || {
            cat config.log
            echo "::warning::Failure during Tcl Configure"
            exit 1
          }
          make all install  || {
            echo "::warning::Failure during Tcl Build"
            exit 1
          }
          echo "TCL_CONFIG_PATH=`pwd`" >> $GITHUB_ENV
        working-directory: tcl/unix
      - name: Configure (opts=${{ matrix.config }})
        run: |
          ./configure $CFGOPT --with-tcl=$TCL_CONFIG_PATH "--prefix=$HOME/install dir" || {
            cat config.log
            echo "::error::Failure during Configure"
            exit 1
          }
      - name: Build
        run: |
          make binaries libraries || {
            echo "::error::Failure during Build"
            exit 1
          }
      - name: Build Test Harness
        run: |
          make tktest || {
            echo "::error::Failure during Build"
            exit 1
          }
      - name: Test-Drive Installation
        run: |
          make install || {
            echo "::error::Failure during Install"
            exit 1
          }
      - name: Create Distribution Package
        run: |
          make dist || {
            echo "::error::Failure during Distribute"
            exit 1
          }
      - name: Convert Documentation to HTML
        run: |
          make html-tk TOOL_DIR=$TOOL_DIR || {
            echo "::error::Failure during Distribute"
            exit 1
          }
  test:
    runs-on: ubuntu-24.04
    strategy:
      matrix:
        compiler:
          - "gcc"
        config:
          - ""
          - "--enable-symbols"
    steps:
      - name: Checkout
        uses: actions/checkout@v4
        with:
          path: tk
      - name: Checkout Tcl 9.0
        uses: actions/checkout@v4
        with:
          repository: tcltk/tcl
          ref: core-9-0-branch
          path: tcl
      - name: Setup Environment (compiler=${{ matrix.compiler }})
        run: |
          sudo apt-get update
          sudo apt-get install xvfb libx11-dev libicu-dev xfonts-75dpi xfonts-100dpi xfonts-scalable libxfont2 unifont
          mkdir "$HOME/install dir"
          touch tk/doc/man.macros tk/generic/tkStubInit.c
          echo "CFGOPT=$CFGOPT" >> $GITHUB_ENV
          echo "CC=$COMPILER" >> $GITHUB_ENV
        working-directory: "."
        env:
          CFGOPT: ${{ matrix.config }}
          COMPILER: ${{ matrix.compiler }}
      - name: Configure and Build Tcl
        run: |
          ./configure $CFGOPT "--prefix=$HOME/install dir" || {
            cat config.log
            echo "::warning::Failure during Tcl Configure"
            exit 1
          }
          make all install  || {
            echo "::warning::Failure during Tcl Build"
            exit 1
          }
          echo "TCL_CONFIG_PATH=`pwd`" >> $GITHUB_ENV
        working-directory: tcl/unix
      - name: Configure ${{ matrix.config }}
        run: |
          ./configure $CFGOPT --with-tcl=$TCL_CONFIG_PATH "--prefix=$HOME/install dir" || {
            cat config.log
            echo "::error::Failure during Configure"
            exit 1
          }
      - name: Build
        run: |
          make binaries libraries tktest || {
            echo "::error::Failure during Build"
            exit 1
          }
      - name: Run Tests
        run: |
          xvfb-run --auto-servernum make test-classic | tee out-classic.txt
          xvfb-run --auto-servernum make test-ttk | tee out-ttk.txt
          grep -q "Failed	0" out-classic.txt || {
            echo "::error::Failure during Test"
            exit 1
          }
          grep -q "Failed	0" out-ttk.txt || {
            echo "::error::Failure during Test"
            exit 1
          }
        timeout-minutes: 15


================================================
FILE: .github/workflows/mac-build.yml
================================================
name: macOS
on:
  push:
    branches:
    - "main"
    - "core-9-0-branch"
    tags:
    - "core-**"
permissions:
  contents: read
env:
  ERROR_ON_FAILURES: 1
jobs:
  framework:
    runs-on: macos-26
    defaults:
      run:
        shell: bash
        working-directory: tk/macosx
    steps:
      - name: Checkout Tk
        uses: actions/checkout@v6
        with:
          path: tk
      - name: Check out Tcl 9.1
        uses: actions/checkout@v6
        with:
          repository: tcltk/tcl
          ref: main
          path: tcl
      - name: Prepare checked out repositories
        run: |
          touch tk/generic/tkStubInit.c
          mkdir build
          echo "BUILD_DIR=`cd build && pwd`" >> $GITHUB_ENV
          echo "DESTDIR=`cd build && pwd`" >> $GITHUB_ENV
        working-directory: .
      - name: Build Tcl
        run: |
          make all
        working-directory: tcl/macosx
      - name: Build
        run: |
          make all install || {
            echo "::error::Failure during Build"
            exit 1
          }
      - name: Run Tests
        run: |
          make TK_NO_STDERR=1 test | tee out.txt
          nmatches=$( grep -c "Failed	0" out.txt )
          if [ $nmatches -lt 4 ]
          then
            echo "::error::Failure during Test"
            exit 1
          fi
        timeout-minutes: 30
  prefix:
    runs-on: macos-26
    strategy:
      matrix:
        symbols:
          - 'no'
          - 'mem'
        options:
          - '--enable-aqua'
          - '--disable-aqua'
    defaults:
      run:
        shell: bash
        working-directory: tk/unix
    steps:
      - name: Checkout Tk
        uses: actions/checkout@v6
        with:
          path: tk
      - name: Check out Tcl 9.1
        uses: actions/checkout@v6
        with:
          repository: tcltk/tcl
          ref: main
          path: tcl
      - name: Prepare checked out repositories
        env:
          SET_DISPLAY: ${{ contains(matrix.options, '--disable-aqua') }}
        run: |
          touch tkStubInit.c
          mkdir "$HOME/install dir"
          echo "USE_XVFB=$SET_DISPLAY" >> $GITHUB_ENV
        working-directory: tk/generic
      - name: Add X11 (if required)
        if: ${{ env.USE_XVFB == 'true' }}
        run: |
          brew install --cask xquartz
          sudo /opt/X11/libexec/privileged_startx || true
        working-directory: .
      - name: Build Tcl
        run: |
          ./configure $CFGOPT --disable-zipfs "--prefix=$HOME/install dir" || {
            cat config.log
            echo "::error::Failure during Tcl Configure"
            exit 1
          }
          make all || {
            echo "::error::Failure during Tcl Build"
            exit 1
          }
          make install || {
            echo "::error::Failure during Tcl Install"
            exit 1
          }
        working-directory: tcl/unix
        env:
          CFGOPT: --enable-symbols=${{ matrix.symbols }}
      - name: Configure (symbols=${{ matrix.symbols }} ${{matrix.options }})
        run: |
          ./configure $CFGOPT --disable-zipfs "--prefix=$HOME/install dir" --disable-xft || {
            cat config.log
            echo "::error::Failure during Configure"
            exit 1
          }
        env:
          CFGOPT: --enable-symbols=${{ matrix.symbols }} ${{matrix.options }}
      - name: Build
        run: |
          make all tktest || {
            echo "::error::Failure during Build"
            exit 1
          }
      - name: Run Tests
        run: |
          if [ $USE_XVFB == true ]; then
            function runXvfb {
              PATH=$PATH:/opt/X11/bin
              Xvfb $1 &
              XVFB_PID=$!
              echo Launched Xvfb $1 as process $XVFB_PID >&2
              trap "echo killing process $XVFB_PID... >&2; kill $XVFB_PID" 0
              export DISPLAY=$1
              sleep 2
            }
          else
            function runXvfb {
              echo Xvfb not used, this is a --enable-aqua build
              export TK_NO_STDERR=1
            }
          fi
          ( runXvfb :0; make test-classic; exit $? ) | tee out-classic.txt || {
            echo "::error::Failure during Test (classic)"
            exit 1
          }
          ( runXvfb :0; make test-ttk; exit $? ) | tee out-ttk.txt || {
            echo "::error::Failure during Test (ttk)"
            exit 1
          }
          cat out-classic.txt | grep -q "Failed	0" || {
            echo "::error::Failure in classic test results"
            exit 1
          }
          cat out-ttk.txt | grep -q "Failed	0" || {
            echo "::error::Failure in ttk test results"
            exit 1
          }
        timeout-minutes: 20
      - name: Carry out trial installation
        run: |
          make install || {
            cat config.log
            echo "::error::Failure during Install"
            exit 1
          }


================================================
FILE: .github/workflows/onefiledist.yml
================================================
name: Build Binaries
on:
  push:
    branches:
    - "main"
    - "core-9-0-branch"
    tags:
    - "core-**"
permissions:
  contents: read
jobs:
  linux:
    name: Linux
    runs-on: ubuntu-24.04
    defaults:
      run:
        shell: bash
    env:
      CC: gcc
      CFGOPT: --disable-symbols --disable-shared
    steps:
      - name: Checkout Tk
        uses: actions/checkout@v6
        with:
          path: tk
      - name: Checkout Tcl 9.1
        uses: actions/checkout@v6
        with:
          repository: tcltk/tcl
          ref: main
          path: tcl
      - name: Prepare
        run: |
          sudo apt-get update
          sudo apt-get install libxss-dev libxft-dev libcups2-dev libatk1.0-dev libatk-bridge2.0-dev
          touch tcl/generic/tclStubInit.c tcl/generic/tclOOStubInit.c
          touch tk/generic/tkStubInit.c
          echo "INST_DIR=$(cd install;pwd)" >> $GITHUB_ENV
          echo "VER_PATH=$(cd tcl/tools; pwd)/addVerToFile.tcl" >> $GITHUB_ENV
        working-directory: "."
      - name: Configure Tcl
        run: |
          ./configure $CFGOPT --prefix=$INST_DIR
        working-directory: tcl/unix
      - name: Build & Install Tcl
        run: |
          make binaries libraries install
          make shell SCRIPT="$VER_PATH $GITHUB_ENV"
        working-directory: tcl/unix
      - name: Configure Tk
        run: |
          ./configure $CFGOPT --with-tcl=$INST_DIR/lib --prefix=$INST_DIR
        working-directory: tk/unix
      - name: Build & Install Tk
        run: |
          make binaries libraries install
        working-directory: tk/unix
        # TODO: need the Tk version separately for distro naming below
      - name: Package
        run: |
          cp bin/wish9.1 ${BUILD_NAME}
          chmod +x ${BUILD_NAME}
          tar -cf ${BUILD_NAME}.tar ${BUILD_NAME}
        working-directory: ${{ env.INST_DIR }}
        env:
          BUILD_NAME: wish${{ env.TCL_PATCHLEVEL }}_snapshot
      - name: Upload
        uses: actions/upload-artifact@v7
        with:
          name: Wish ${{ env.TCL_PATCHLEVEL }} Linux single-file build (snapshot)
          path: ${{ env.INST_DIR }}/*.tar
      - name: Describe Installation Zip Contents
        if: ${{ always() }}
        run: |
          unzip -l wish${{ env.TCL_PATCHLEVEL }}_snapshot || true
        working-directory: ${{ env.INST_DIR }}
  macos:
    name: macOS
    runs-on: macos-15
    defaults:
      run:
        shell: bash
    env:
      CC: gcc
      CFGOPT: --disable-symbols --disable-shared
    steps:
      - name: Checkout Tk
        uses: actions/checkout@v6
        with:
          path: tk
      - name: Checkout Tcl 9.1
        uses: actions/checkout@v6
        with:
          repository: tcltk/tcl
          ref: main
          path: tcl
      - name: Checkout create-dmg
        uses: actions/checkout@v6
        with:
          repository: create-dmg/create-dmg
          ref: v1.2.2
          path: create-dmg
      - name: Prepare
        run: |
          mkdir -p install/contents
          touch tcl/generic/tclStubInit.c tcl/generic/tclOOStubInit.c || true
          touch tk/generic/tkStubInit.c || true
          wget https://github.com/culler/macher/releases/download/v1.8/macher
          sudo cp macher /usr/local/bin
          sudo chmod a+x /usr/local/bin/macher
          echo "INST_DIR=$(cd install;pwd)" >> $GITHUB_ENV
          echo "VER_PATH=$(cd tcl/tools; pwd)/addVerToFile.tcl" >> $GITHUB_ENV
          echo "CREATE_DMG=$(cd create-dmg;pwd)/create-dmg" >> $GITHUB_ENV
          echo "CFLAGS=-arch x86_64 -arch arm64" >> $GITHUB_ENV
        working-directory: "."
      - name: Configure Tcl
        run: |
          ./configure $CFGOPT --prefix=$INST_DIR
        working-directory: tcl/unix
      - name: Build & Install Tcl
        run: |
          make binaries libraries install
          make shell SCRIPT="$VER_PATH $GITHUB_ENV"
        working-directory: tcl/unix
      - name: Configure Tk
        run: |
          ./configure $CFGOPT --with-tcl=$INST_DIR/lib --prefix=$INST_DIR \
              --enable-aqua
        working-directory: tk/unix
      - name: Build & Install Tk
        run: |
          make binaries libraries install
        working-directory: tk/unix
        # TODO: need the Tk version separately for distro naming below
      - name: Package
        run: |
          cp ../tk/unix/wish contents/${BUILD_NAME}
          chmod +x contents/${BUILD_NAME}
          cat > contents/README.txt <<EOF
          This is a single-file executable developer preview of Tcl/Tk $TCL_PATCHLEVEL

          It is not intended as an official release at all, so it is unsigned and unnotarized.
          Use strictly at your own risk.

          To run it, you need to copy the executable out and run:
              xattr -d com.apple.quarantine ${BUILD_NAME}
          to mark the executable as runnable on your machine.
          EOF
          $CREATE_DMG \
              --volname "TclTk $TCL_PATCHLEVEL (snapshot)" \
              --window-pos 200 120 \
              --window-size 800 400 \
              "TclTk-$TCL_PATCHLEVEL-(snapshot).dmg" \
              "contents/"
        working-directory: ${{ env.INST_DIR }}
        env:
          BUILD_NAME: wish${{ env.TCL_PATCHLEVEL }}_snapshot
      - name: Upload
        uses: actions/upload-artifact@v7
        with:
          name: Wish ${{ env.TCL_PATCHLEVEL }} macOS single-file build (snapshot)
          path: ${{ env.INST_DIR }}/*.dmg
  win:
    name: Windows
    runs-on: windows-latest
    defaults:
      run:
        shell: msys2 {0}
    env:
      CC: gcc
      CFGOPT: --disable-symbols --disable-shared
    steps:
      - name: Install MSYS2
        uses: msys2/setup-msys2@v2
        with:
          msystem: MINGW64
          install: git mingw-w64-x86_64-toolchain make zip
      - name: Checkout Tk
        uses: actions/checkout@v6
        with:
          path: tk
      - name: Checkout Tcl 9.1
        uses: actions/checkout@v6
        with:
          repository: tcltk/tcl
          ref: main
          path: tcl
      - name: Prepare
        run: |
          mkdir -p install/combined
          touch tcl/generic/tclStubInit.c tcl/generic/tclOOStubInit.c
          touch tk/generic/tkStubInit.c
          echo "INST_DIR=$(cd install;pwd)" >> $GITHUB_ENV
          echo "VER_PATH=$(cd tcl/tools; pwd)/addVerToFile.tcl" >> $GITHUB_ENV
        working-directory: "."
      - name: Configure Tcl
        run: |
          ./configure $CFGOPT --prefix=$INST_DIR
        working-directory: tcl/win
      - name: Build & Install Tcl
        run: |
          make binaries libraries install
          $INST_DIR/bin/tclsh* $VER_PATH $GITHUB_ENV
        working-directory: tcl/win
      - name: Configure Tk
        run: |
          ./configure $CFGOPT --with-tcl=$INST_DIR/lib --prefix=$INST_DIR
        working-directory: tk/win
      - name: Build & Install Tk
        run: |
          make all install
          echo "TK_BIN=`pwd`/`echo wish*.exe`" >> $GITHUB_ENV
        working-directory: tk/win
        # TODO: need the Tk version separately for distro naming below
      - name: Package
        run: |
          cp ${TK_BIN} combined/${BUILD_NAME}.exe
        working-directory: install
        env:
          BUILD_NAME: wish${{ env.TCL_PATCHLEVEL }}_snapshot
      - name: Upload
        uses: actions/upload-artifact@v7
        with:
          name: Wish ${{ env.TCL_PATCHLEVEL }} Windows single-file build (snapshot)
          path: install/combined/wish${{ env.TCL_PATCHLEVEL }}_snapshot.exe


================================================
FILE: .github/workflows/win-build.yml
================================================
name: Windows
on:
  push:
    branches:
    - "main"
    - "core-9-0-branch"
    tags:
    - "core-**"
permissions:
  contents: read
env:
  ERROR_ON_FAILURES: 1
jobs:
  msvc:
    runs-on: windows-2025
    defaults:
      run:
        shell: powershell
        working-directory: tk/win
    # Using powershell means we need to explicitly stop on failure
    strategy:
      matrix:
        config:
          - ""
          - "OPTS=symbols"
          - "OPTS=static"
    steps:
      - name: Checkout Tk
        uses: actions/checkout@v6
        with:
          path: tk
      - name: Checkout Tcl 9.1
        uses: actions/checkout@v6
        with:
          repository: tcltk/tcl
          ref: main
          path: tcl
      - name: Init MSVC
        uses: ilammy/msvc-dev-cmd@v1
      - name: Make Install Location
        working-directory: tcl
        run: |
          echo "TCLDIR=`pwd`" >> $GITHUB_ENV
          cd ..
          mkdir install
          cd install
          echo "INSTALLDIR=`pwd`" >> $GITHUB_ENV
      - name: Build Tcl (${{ matrix.config }})
        run: |
          &nmake -f makefile.vc release install ${{ matrix.config }}
          if ($lastexitcode -ne 0) {
             throw "nmake exit code: $lastexitcode"
          }
        working-directory: tcl/win
      - name: Build Tk (${{ matrix.config }})
        run: |
          &nmake -f makefile.vc all ${{ matrix.config }}
          if ($lastexitcode -ne 0) {
             throw "nmake exit code: $lastexitcode"
          }
      - name: Build Test Harness (${{ matrix.config }})
        run: |
          &nmake -f makefile.vc tktest ${{ matrix.config }}
          if ($lastexitcode -ne 0) {
             throw "nmake exit code: $lastexitcode"
          }
      - name: Run Tk Tests (${{ matrix.config }})
        run: |
          nmake -f makefile.vc test-classic ${{ matrix.config }} | tee out-classic.txt || {
            echo "::error::Failure during Test"
            exit 1
          }
          nmake -f makefile.vc test-ttk ${{ matrix.config }} | tee out-ttk.txt || {
            echo "::error::Failure during Test"
            exit 1
          }
          grep -q "Failed	0" out-classic.txt || {
            echo "::error::Failure during Test"
            exit 1
          }
          grep -q "Failed	0" out-ttk.txt || {
            echo "::error::Failure during Test"
            exit 1
          }
        env:
          CI_BUILD_WITH_MSVC: 1
        shell: bash
        timeout-minutes: 10
      - name: Build Help (${{ matrix.config }})
        run: |
          &nmake -f makefile.vc htmlhelp ${{ matrix.config }}
          if ($lastexitcode -ne 0) {
             throw "nmake exit code: $lastexitcode"
          }
      - name: Install (${{ matrix.config }})
        run: |
          &nmake -f makefile.vc install ${{ matrix.config }}
          if ($lastexitcode -ne 0) {
             throw "nmake exit code: $lastexitcode"
          }
  gcc:
    runs-on: windows-2025
    defaults:
      run:
        shell: msys2 {0}
        working-directory: win
    strategy:
      matrix:
        config:
          - ""
          - "--enable-symbols=mem"
          - "--enable-symbols=all"
          - "--disable-shared"
    steps:
      - name: Install MSYS2
        uses: msys2/setup-msys2@v2
        with:
          msystem: MINGW64
          install: git mingw-w64-x86_64-toolchain make zip
      - name: Checkout Tk
        uses: actions/checkout@v6
      - name: Checkout Tcl 9.1
        uses: actions/checkout@v6
        with:
          repository: tcltk/tcl
          ref: main
          path: tcl
      - name: Prepare
        run: |
          touch tkStubInit.c
          touch "${HOME}/forWinDialog-5.12.7"
          mkdir "${HOME}/install_dir"
          echo "INSTALL_DIR=${HOME}/install_dir" >> $GITHUB_ENV
        working-directory: generic
      - name: Configure and Build Tcl (${{ matrix.config }})
        run: |
          ./configure $CFGOPT "--prefix=$INSTALL_DIR" || {
            cat config.log
            echo "::warning::Failure during Tcl Configure"
            exit 1
          }
          make all install  || {
            echo "::warning::Failure during Tcl Build"
            exit 1
          }
          echo "TCL_CONFIG_PATH=`pwd`" >> $GITHUB_ENV
        env:
          CFGOPT: --enable-64bit ${{ matrix.config }}
        working-directory: tcl/win
      - name: Configure Tk (${{ matrix.config }})
        run: |
          ./configure $CFGOPT "--prefix=$HOME/INSTALL_DIR" "--with-tcl=$TCL_CONFIG_PATH" || {
            cat config.log
            echo "::error::Failure during Configure"
            exit 1
          }
        env:
          CFGOPT: --enable-64bit ${{ matrix.config }}
      - name: Build Tk
        run: |
          make all install tktest || {
            echo "::error::Failure during Build"
            exit 1
          }
      - name: Run Tk Tests
        run: |
          make test-classic | tee out-classic.txt
          make test-ttk | tee out-ttk.txt
          grep -q "Failed	0" out-classic.txt || {
            echo "::error::Failure during Test"
            exit 1
          }
          grep -q "Failed	0" out-ttk.txt || {
            echo "::error::Failure during Test"
            exit 1
          }
        timeout-minutes: 10


================================================
FILE: .gitignore
================================================
*.a
*.bundle
*.dll
*.dylib
*.dylib.E
*.exe
*.exp
*.lib
*.o
*.obj
*.pdb
*.res
*.sl
*.so
.fslckout
_FOSSIL_
Makefile
Tk-Info.plist
Wish-Info.plist
Credits.html
autom4te.cache
config.cache
config.log
config.status
config.status.lineno
html
manifest.uuid
_FOSSIL_
*/tkConfig.sh
*/wish
*/tktest
*/versions.vc
*/version.vc
*/libtk.vfs
*/libtk*.zip
*/tkUuid.h
libtommath/bn.ilg
libtommath/bn.ind
libtommath/pretty.build
libtommath/tommath.src
libtommath/*.log
libtommath/*.pdf
libtommath/*.pl
libtommath/*.sh
libtommath/doc/*
libtommath/tombc/*
libtommath/pre_gen/*
libtommath/pics/*
libtommath/mtest/*
libtommath/logs/*
libtommath/etc/*
libtommath/demo/*
libtommath/*.out
libtommath/*.tex
macosx/configure
unix/autoMkindex.tcl
unix/dltest.marker
unix/tk.pc
unix/tclIndex
win/Debug*
win/Release*
win/tk.pc
win/*.manifest
win/nmakehlp.out
win/nmhlp-out.txt


================================================
FILE: .project
================================================
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
	<name>tk9.1</name>
	<comment></comment>
	<projects>
	</projects>
	<buildSpec>
	</buildSpec>
	<natures>
	</natures>
</projectDescription>


================================================
FILE: .settings/org.eclipse.core.resources.prefs
================================================
eclipse.preferences.version=1
encoding/<project>=UTF-8


================================================
FILE: .settings/org.eclipse.core.runtime.prefs
================================================
eclipse.preferences.version=1
line.separator=\n


================================================
FILE: README.md
================================================
# README:  Tk

This is the **Tk 9.1a2** source distribution.

You can get any source release of Tk from [our distribution
site](https://sourceforge.net/projects/tcl/files/Tcl/).

9.1 (in development, daily build)
[![Build Status](https://github.com/tcltk/tk/actions/workflows/linux-build.yml/badge.svg?branch=main)](https://github.com/tcltk/tk/actions/workflows/linux-build.yml?query=branch%3Amain)
[![Build Status](https://github.com/tcltk/tk/actions/workflows/win-build.yml/badge.svg?branch=main)](https://github.com/tcltk/tk/actions/workflows/win-build.yml?query=branch%3Amain)
[![Build Status](https://github.com/tcltk/tk/actions/workflows/mac-build.yml/badge.svg?branch=main)](https://github.com/tcltk/tk/actions/workflows/mac-build.yml?query=branch%3Amain)
<br>
9.0 (production release, daily build)
[![Build Status](https://github.com/tcltk/tk/actions/workflows/linux-build.yml/badge.svg?branch=core-9-0-branch)](https://github.com/tcltk/tk/actions/workflows/linux-build.yml?query=branch%3Acore-9-0-branch)
[![Build Status](https://github.com/tcltk/tk/actions/workflows/win-build.yml/badge.svg?branch=core-9-0-branch)](https://github.com/tcltk/tk/actions/workflows/win-build.yml?query=branch%3Acore-9-0-branch)
[![Build Status](https://github.com/tcltk/tk/actions/workflows/mac-build.yml/badge.svg?branch=core-9-0-branch)](https://github.com/tcltk/tk/actions/workflows/mac-build.yml?query=branch%3Acore-9-0-branch)

## <a id="intro">1.</a> Introduction

This directory contains the sources and documentation for Tk, a
cross-platform GUI toolkit implemented with the Tcl scripting language.

For details on features, incompatibilities, and potential problems with
this release, see [the Tcl/Tk 9.1 Web page](https://www.tcl-lang.org/software/tcltk/9.1.html)
or refer to the "changes" file in this directory, which contains a
description of the changes in Tk 9.1 compared to Tk 9.0

Tk is maintained, enhanced, and distributed freely by the Tcl community.
Source code development and tracking of bug reports and feature requests
take place at [core.tcl-lang.org](https://core.tcl-lang.org/).
Tcl/Tk release and mailing list services are [hosted by
SourceForge](https://sourceforge.net/projects/tcl/)
with the Tcl Developer Xchange hosted at
[www.tcl-lang.org](https://www.tcl-lang.org).

Tk is a freely available open-source package.  You can do virtually
anything you like with it, such as modifying it, redistributing it,
and selling it either in whole or in part.  See the file
`license.terms` for complete information.

## <a id="tcl">2.</a> See Tcl README.md

Please see the README.md file that comes with the associated Tcl release
for more information.  There are pointers there to extensive
documentation.  In addition, there are additional README files
in the subdirectories of this distribution.


================================================
FILE: bitmaps/error.xbm
================================================
#define error_width 17
#define error_height 17
static unsigned char error_bits[] = {
   0xf0, 0x0f, 0x00, 0x58, 0x15, 0x00, 0xac, 0x2a, 0x00, 0x16, 0x50, 0x00,
   0x2b, 0xa0, 0x00, 0x55, 0x40, 0x01, 0xa3, 0xc0, 0x00, 0x45, 0x41, 0x01,
   0x83, 0xc2, 0x00, 0x05, 0x45, 0x01, 0x03, 0xca, 0x00, 0x05, 0x74, 0x01,
   0x0a, 0xa8, 0x00, 0x14, 0x58, 0x00, 0xe8, 0x2f, 0x00, 0x50, 0x15, 0x00,
   0xa0, 0x0a, 0x00};


================================================
FILE: bitmaps/gray12.xbm
================================================
#define gray12_width 16
#define gray12_height 16
static unsigned char gray12_bits[] = {
   0x00, 0x00, 0x22, 0x22, 0x00, 0x00, 0x88, 0x88, 0x00, 0x00, 0x22, 0x22,
   0x00, 0x00, 0x88, 0x88, 0x00, 0x00, 0x22, 0x22, 0x00, 0x00, 0x88, 0x88,
   0x00, 0x00, 0x22, 0x22, 0x00, 0x00, 0x88, 0x88};


================================================
FILE: bitmaps/gray25.xbm
================================================
#define gray25_width 16
#define gray25_height 16
static unsigned char gray25_bits[] = {
   0x88, 0x88, 0x22, 0x22, 0x88, 0x88, 0x22, 0x22, 0x88, 0x88, 0x22, 0x22,
   0x88, 0x88, 0x22, 0x22, 0x88, 0x88, 0x22, 0x22, 0x88, 0x88, 0x22, 0x22,
   0x88, 0x88, 0x22, 0x22, 0x88, 0x88, 0x22, 0x22};


================================================
FILE: bitmaps/gray50.xbm
================================================
#define gray50_width 16
#define gray50_height 16
static unsigned char gray50_bits[] = {
   0x55, 0x55, 0xaa, 0xaa, 0x55, 0x55, 0xaa, 0xaa, 0x55, 0x55, 0xaa, 0xaa,
   0x55, 0x55, 0xaa, 0xaa, 0x55, 0x55, 0xaa, 0xaa, 0x55, 0x55, 0xaa, 0xaa,
   0x55, 0x55, 0xaa, 0xaa, 0x55, 0x55, 0xaa, 0xaa};


================================================
FILE: bitmaps/gray75.xbm
================================================
#define gray75_width 16
#define gray75_height 16
static unsigned char gray75_bits[] = {
   0x77, 0x77, 0xdd, 0xdd, 0x77, 0x77, 0xdd, 0xdd, 0x77, 0x77, 0xdd, 0xdd,
   0x77, 0x77, 0xdd, 0xdd, 0x77, 0x77, 0xdd, 0xdd, 0x77, 0x77, 0xdd, 0xdd,
   0x77, 0x77, 0xdd, 0xdd, 0x77, 0x77, 0xdd, 0xdd};


================================================
FILE: bitmaps/hourglass.xbm
================================================
#define hourglass_width 19
#define hourglass_height 21
static unsigned char hourglass_bits[] = {
   0xff, 0xff, 0x07, 0x55, 0x55, 0x05, 0xa2, 0x2a, 0x03, 0x66, 0x15, 0x01,
   0xa2, 0x2a, 0x03, 0x66, 0x15, 0x01, 0xc2, 0x0a, 0x03, 0x46, 0x05, 0x01,
   0x82, 0x0a, 0x03, 0x06, 0x05, 0x01, 0x02, 0x03, 0x03, 0x86, 0x05, 0x01,
   0xc2, 0x0a, 0x03, 0x66, 0x15, 0x01, 0xa2, 0x2a, 0x03, 0x66, 0x15, 0x01,
   0xa2, 0x2a, 0x03, 0x66, 0x15, 0x01, 0xa2, 0x2a, 0x03, 0xff, 0xff, 0x07,
   0xab, 0xaa, 0x02};


================================================
FILE: bitmaps/info.xbm
================================================
#define info_width 8
#define info_height 21
static unsigned char info_bits[] = {
   0x3c, 0x2a, 0x16, 0x2a, 0x14, 0x00, 0x00, 0x3f, 0x15, 0x2e, 0x14, 0x2c,
   0x14, 0x2c, 0x14, 0x2c, 0x14, 0x2c, 0xd7, 0xab, 0x55};


================================================
FILE: bitmaps/questhead.xbm
================================================
#define questhead_width 20
#define questhead_height 22
static unsigned char questhead_bits[] = {
   0xf8, 0x1f, 0x00, 0xac, 0x2a, 0x00, 0x56, 0x55, 0x00, 0xeb, 0xaf, 0x00,
   0xf5, 0x5f, 0x01, 0xfb, 0xbf, 0x00, 0x75, 0x5d, 0x01, 0xfb, 0xbe, 0x02,
   0x75, 0x5d, 0x05, 0xab, 0xbe, 0x0a, 0x55, 0x5f, 0x07, 0xab, 0xaf, 0x00,
   0xd6, 0x57, 0x01, 0xac, 0xab, 0x00, 0xd8, 0x57, 0x00, 0xb0, 0xaa, 0x00,
   0x50, 0x55, 0x00, 0xb0, 0x0b, 0x00, 0xd0, 0x17, 0x00, 0xb0, 0x0b, 0x00,
   0x58, 0x15, 0x00, 0xa8, 0x2a, 0x00};


================================================
FILE: bitmaps/question.xbm
================================================
#define question_width 17
#define question_height 27
static unsigned char question_bits[] = {
   0xf0, 0x0f, 0x00, 0x58, 0x15, 0x00, 0xac, 0x2a, 0x00, 0x56, 0x55, 0x00,
   0x2b, 0xa8, 0x00, 0x15, 0x50, 0x01, 0x0b, 0xa0, 0x00, 0x05, 0x60, 0x01,
   0x0b, 0xa0, 0x00, 0x05, 0x60, 0x01, 0x0b, 0xb0, 0x00, 0x00, 0x58, 0x01,
   0x00, 0xaf, 0x00, 0x80, 0x55, 0x00, 0xc0, 0x2a, 0x00, 0x40, 0x15, 0x00,
   0xc0, 0x02, 0x00, 0x40, 0x01, 0x00, 0xc0, 0x02, 0x00, 0x40, 0x01, 0x00,
   0xc0, 0x02, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0xc0, 0x02, 0x00,
   0x40, 0x01, 0x00, 0xc0, 0x02, 0x00, 0x00, 0x01, 0x00};


================================================
FILE: bitmaps/warning.xbm
================================================
#define warning_width 6
#define warning_height 19
static unsigned char warning_bits[] = {
   0x0c, 0x16, 0x2b, 0x15, 0x2b, 0x15, 0x2b, 0x16, 0x0a, 0x16, 0x0a, 0x16,
   0x0a, 0x00, 0x00, 0x1e, 0x0a, 0x16, 0x0a};


================================================
FILE: changes.md
================================================

The source code for Tk is managed by fossil.  Tk developers coordinate all
changes to the Tk source code at

> [Tk Source Code](https://core.tcl-lang.org/tk/)

Release Tk 9.1a2 arises from the check-in with tag `core-9-1-a2`.

Tk 9.1a2 continues the Tk 9.x series of releases.  The Tk 9.x series
do not support Tcl 8.6.  The Tk 9.1 series extends the Tcl 9.0 series.
To make use of Tk 9.1a2, first a Tcl 9.0 or 9.1 release must be present.
As new Tk features are developed, expect them to appear in Tk 9, but not
necessarily in Tk 8.

# 9.1 Features and Interfaces
 - [MS-Win: remove Windows XP dialog variants for tk_chooseDirectory and tk_getOpenFile](https://core.tcl-lang.org/tk/tktview/441c52)
 - [Extend Tk_CanvasTextInfo](https://core.tcl-lang.org/tips/doc/trunk/tip/704.md)
 - [Add new states to ttk::treeview and ttk::notebook](https://core.tcl-lang.org/tips/doc/trunk/tip/719.md)
 - [Limit tk_messageBox to physical screen width](https://core.tcl-lang.org/tk/info/e19f1d891)
 - [Constrain own Dialogs to the physical screen size](https://core.tcl-lang.org/tk/info/7c28f835)
 - [Add a ttk::toggleswitch widget to the core](https://core.tcl-lang.org/tips/doc/trunk/tip/727.md)
 - [Add a tk attribtable command to the core](https://core.tcl-lang.org/tips/doc/trunk/tip/729.md)
 - [Implement more X11 region functions on Windows and Aqua](https://core.tcl-lang.org/tk/info/50fdbc36ad)
 - [Add accessibility/screen reader support to the core](https://core.tcl-lang.org/tips/doc/trunk/tip/733.md)
 - [Scroll entry with mouse wheel](https://core.tcl-lang.org/tips/doc/trunk/tip/736.md)
 - [Add a Wide.TSpinbox style to the core](https://core.tcl-lang.org/tips/doc/trunk/tip/739.md)
 - [Add support for native file icons to the core](https://core.tcl-lang.org/tips/doc/trunk/tip/743.md)
 - [Re-implement the Aqua send command](https://core.tcl-lang.org/tk/info/1574913cc772201e)
 - [Make the selection colors of the listbox widget fully native-conform](https://core.tcl-lang.org/tips/doc/trunk/tip/747.md)
 - [Add support for bidrectional text / RTL languages on Windows and X11](https://core.tcl-lang.org/tk/info/058e738f9f06fe20)
 - [Add Mouse Wheel Zoom Support to Tk Console](https://core.tcl-lang.org/tips/doc/trunk/tip/742.md)

# Potential incompatibilities to 9.0
 - [MS-Win: Remove the -xpstyle option from tk_chooseDirectory and tk_getOpenFile](https://core.tcl-lang.org/tk/tktview/441c52)
 - [MS-Win: Eliminate the "xpnative" ttk style, in favor of "vista"](https://core.tcl-lang.org/tk/tktview/441c52)
 - [No longer allow negative screen distances in most cases](https://core.tcl-lang.org/tips/doc/trunk/tip/698.md)
 - [RTL/bidirectional text is a configure option on X11 (--enable-bidi). Additionally, there are some visual artifacts with bidi strings in the text widget in cursor and selection events on all platforms](https://core.tcl-lang.org/tk/tktview/cf94f5afd)


================================================
FILE: doc/3DBorder.3
================================================
'\"
'\" Copyright (c) 1990-1993 The Regents of the University of California.
'\" Copyright (c) 1994-1998 Sun Microsystems, Inc.
'\"
'\" See the file "license.terms" for information on usage and redistribution
'\" of this file, and for a DISCLAIMER OF ALL WARRANTIES.
'\"
.TH Tk_Alloc3DBorderFromObj 3 8.1 Tk "Tk Library Procedures"
.so man.macros
.BS
.SH NAME
Tk_Alloc3DBorderFromObj, Tk_ClipDrawableToRect, Tk_DrawHighlightBorder, Tk_Get3DBorder, Tk_Get3DBorderColors, Tk_Get3DBorderFromObj, Tk_Draw3DRectangle, Tk_Fill3DRectangle, Tk_Draw3DPolygon, Tk_Fill3DPolygon, Tk_3DVerticalBevel, Tk_3DHorizontalBevel, Tk_SetBackgroundFromBorder, Tk_NameOf3DBorder, Tk_3DBorderColor, Tk_3DBorderGC, Tk_Free3DBorderFromObj, Tk_Free3DBorder \- draw borders with three-dimensional appearance
.SH SYNOPSIS
.nf
\fB#include <tk.h>\fR

Tk_3DBorder
\fBTk_Alloc3DBorderFromObj\fR(\fIinterp, tkwin, objPtr\fR)
.sp
\fBTk_ClipDrawableToRect\fR(\fIdisplay, drawable, x, y, width, height\fR)
.sp
\fBTk_DrawHighlightBorder\fR(\fItkwin, fgGC, bgGC, highlightWidth, drawable\fR)
.sp
Tk_3DBorder
\fBTk_Get3DBorder\fR(\fIinterp, tkwin, colorName\fR)
.sp
\fBTk_Get3DBorderColors\fR(\fIborder, bgColorPtr, darkColorPtr, lightColorPtr\fR)
.sp
Tk_3DBorder
\fBTk_Get3DBorderFromObj\fR(\fItkwin, objPtr\fR)
.sp
\fBTk_Draw3DRectangle\fR(\fItkwin, drawable, border, x, y, width, height, borderWidth, relief\fR)
.sp
\fBTk_Fill3DRectangle\fR(\fItkwin, drawable, border, x, y, width, height, borderWidth, relief\fR)
.sp
\fBTk_Draw3DPolygon\fR(\fItkwin, drawable, border, pointPtr, numPoints, polyBorderWidth, leftRelief\fR)
.sp
\fBTk_Fill3DPolygon\fR(\fItkwin, drawable, border, pointPtr, numPoints, polyBorderWidth, leftRelief\fR)
.sp
\fBTk_3DVerticalBevel\fR(\fItkwin, drawable, border, x, y, width, height, leftBevel, relief\fR)
.sp
\fBTk_3DHorizontalBevel\fR(\fItkwin, drawable, border, x, y, width, height, leftIn, rightIn, topBevel, relief\fR)
.sp
\fBTk_SetBackgroundFromBorder\fR(\fItkwin, border\fR)
.sp
const char *
\fBTk_NameOf3DBorder\fR(\fIborder\fR)
.sp
XColor *
\fBTk_3DBorderColor\fR(\fIborder\fR)
.sp
GC *
\fBTk_3DBorderGC\fR(\fItkwin, border, which\fR)
.sp
\fBTk_Free3DBorderFromObj\fR(\fItkwin, objPtr\fR)
.sp
\fBTk_Free3DBorder\fR(\fIborder\fR)
.fi
.SH ARGUMENTS
.AS "Tk_3DBorder" borderWidth
.AP Tcl_Interp *interp in
Interpreter to use for error reporting.
.AP Tk_Window tkwin in
Token for window (for all procedures except \fBTk_Get3DBorder\fR,
must be the window for which the border was allocated).
.AP Tcl_Obj *objPtr in
Pointer to value whose value describes color corresponding to
background (flat areas).  Illuminated edges will be brighter than
this and shadowed edges will be darker than this.
.AP "const char" *colorName in
Same as \fIobjPtr\fR except value is supplied as a string rather
than a value.
.AP Drawable drawable in
X token for window or pixmap;  indicates where graphics are to be drawn.
Must either be the X window for \fItkwin\fR or a pixmap with the
same screen and depth as \fItkwin\fR.
.AP Tk_3DBorder border in
Token for border previously allocated in call to \fBTk_Get3DBorder\fR.
.AP int x in
X-coordinate of upper-left corner of rectangle describing border
or bevel, in pixels.
.AP int y in
Y-coordinate of upper-left corner of rectangle describing border or
bevel, in pixels.
.AP int width in
Width of rectangle describing border or bevel, in pixels.
.AP int height in
Height of rectangle describing border or bevel, in pixels.
.AP int borderWidth in
Width of border in pixels. Positive means border is inside rectangle
given by \fIx\fR, \fIy\fR, \fIwidth\fR, \fIheight\fR, negative means
border is outside rectangle.
.AP int highlightWidth in
Width of ring around the outside of the widget if the widget has received the
input focus.
.AP int relief in
Indicates 3-D position of interior of value relative to exterior;
should be \fBTK_RELIEF_RAISED\fR, \fBTK_RELIEF_SUNKEN\fR, \fBTK_RELIEF_GROOVE\fR,
\fBTK_RELIEF_SOLID\fR, or \fBTK_RELIEF_RIDGE\fR (may also be \fBTK_RELIEF_FLAT\fR
for \fBTk_Fill3DRectangle\fR).
.AP XPoint *pointPtr in
Pointer to array of points describing the set of vertices in a polygon.
The polygon need not be closed (it will be closed automatically if it
is not).
.AP int numPoints in
Number of points at \fI*pointPtr\fR.
.AP int polyBorderWidth in
Width of border in pixels.  If positive, border is drawn to left of
trajectory given by \fIpointPtr\fR;  if negative, border is drawn to
right of trajectory.  If \fIleftRelief\fR is \fBTK_RELIEF_GROOVE\fR or
\fBTK_RELIEF_RIDGE\fR then the border is centered on the trajectory.
.AP int leftRelief in
Height of left side of polygon's path relative to right.  \fBTK_RELIEF_RAISED\fR
means left side should appear higher and \fBTK_RELIEF_SUNKEN\fR means right side
should appear higher;
\fBTK_RELIEF_GROOVE\fR and \fBTK_RELIEF_RIDGE\fR mean the obvious things.
For \fBTk_Fill3DPolygon\fR, \fBTK_RELIEF_FLAT\fR may also be specified to
indicate no difference in height.
.AP int leftBevel in
Non-zero means this bevel forms the left side of the value;  zero means
it forms the right side.
.AP int leftIn in
Non-zero means that the left edge of the horizontal bevel angles in,
so that the bottom of the edge is farther to the right than
the top.
Zero means the edge angles out, so that the bottom is farther to the
left than the top.
.AP int rightIn in
Non-zero means that the right edge of the horizontal bevel angles in,
so that the bottom of the edge is farther to the left than the top.
Zero means the edge angles out, so that the bottom is farther to the
right than the top.
.AP int topBevel in
Non-zero means this bevel forms the top side of the value;  zero means
it forms the bottom side.
.AP int which in
Specifies which of the border's graphics contexts is desired.
Must be \fBTK_3D_FLAT_GC\fR, \fBTK_3D_LIGHT_GC\fR, or \fBTK_3D_DARK_GC\fR.
.AP XColor *bgColorPtr out
Pointer to location in which to store the background color of the given border.
.AP XColor *darkColorPtr out
Pointer to location in which to store the color for darker areas of the
given border.
.AP XColor *lightColorPtr out
Pointer to location in which to store the color for lighter areas of the
given border.
.AP GC fgGC in
Foreground X graphics context.
.AP GC fgGC in
Background X graphics context.
.BE
.SH DESCRIPTION
.PP
These procedures provide facilities for drawing window borders in a
way that produces a three-dimensional appearance.
\fBTk_Alloc3DBorderFromObj\fR
allocates colors and Pixmaps needed to draw a border in the window
given by the \fItkwin\fR argument.  The value of \fIobjPtr\fR
is a standard Tk color name that determines the border colors.
The color indicated by \fIobjPtr\fR will not actually be used in
the border;  it indicates the background color for the window
(i.e. a color for flat surfaces).
The illuminated portions of the border will appear brighter than indicated
by \fIobjPtr\fR, and the shadowed portions of the border will appear
darker than \fIobjPtr\fR.
.PP
\fBTk_Alloc3DBorderFromObj\fR returns a token that may be used in later calls
to \fBTk_Draw3DRectangle\fR.  If an error occurs in allocating information
for the border (e.g. a bogus color name was given)
then NULL is returned and an error message is left as the result of
interpreter \fIinterp\fR.
If it returns successfully, \fBTk_Alloc3DBorderFromObj\fR caches
information about the return value in \fIobjPtr\fR, which speeds up
future calls to \fBTk_Alloc3DBorderFromObj\fR with the same \fIobjPtr\fR
and \fItkwin\fR.
.PP
\fBTk_ClipDrawableToRect\fR will clip all drawing into the drawable \fId\fR
to the given rectangle. If \fIwidth\fR or \fIheight\fR are negative, reset
to no clipping.
Subsequent drawing into \fId\fR is offset and clipped as specified.
The function is only used when \fBTK_NO_DOUBLE_BUFFERING\fR is specified at
compile time.
.PP
\fBTk_DrawHighlightBorder\fR draws a rectangular ring around the outside of
a widget to indicate that it has received the input focus.
On the Macintosh, this puts a 1 pixel border in the bgGC color between
the widget and the focus ring, except in the case where highlightWidth
is 0 or 1, in which case the border is left out.
For proper Mac L&F, use highlightWidth of 3.
.PP
\fBTk_Get3DBorder\fR is identical to \fBTk_Alloc3DBorderFromObj\fR except
that the color is specified with a string instead of a value.  This
prevents \fBTk_Get3DBorder\fR from caching the return value, so
\fBTk_Get3DBorder\fR is less efficient than \fBTk_Alloc3DBorderFromObj\fR.
.PP
\fBTk_Get3DBorderColors\fR returns the used colors of the given border.
.PP
\fBTk_Get3DBorderFromObj\fR returns the token for an existing border, given
the window and color name used to create the border.
\fBTk_Get3DBorderFromObj\fR does not actually create the border; it must
already have been created with a previous call to
\fBTk_Alloc3DBorderFromObj\fR or \fBTk_Get3DBorder\fR.  The return
value is cached in \fIobjPtr\fR, which speeds up
future calls to \fBTk_Get3DBorderFromObj\fR with the same \fIobjPtr\fR
and \fItkwin\fR.
.PP
Once a border structure has been created, \fBTk_Draw3DRectangle\fR may be
invoked to draw the border.
The \fItkwin\fR argument specifies the
window for which the border was allocated, and \fIdrawable\fR
specifies a window or pixmap in which the border is to be drawn.
\fIDrawable\fR need not refer to the same window as \fItkwin\fR, but it
must refer to a compatible
pixmap or window:  one associated with the same screen and with the
same depth as \fItkwin\fR.
The \fIx\fR, \fIy\fR, \fIwidth\fR, and
\fIheight\fR arguments define the bounding box of the border region
within \fIdrawable\fR (usually \fIx\fR and \fIy\fR are zero and
\fIwidth\fR and \fIheight\fR are the dimensions of the window), and
\fIborderWidth\fR specifies the number of pixels actually
occupied by the border.  The \fIrelief\fR argument indicates
which of several three-dimensional effects is desired:
\fBTK_RELIEF_RAISED\fR means that the interior of the rectangle should
appear raised relative to the exterior of the rectangle, and
\fBTK_RELIEF_SUNKEN\fR means that the interior should appear depressed.
\fBTK_RELIEF_GROOVE\fR and \fBTK_RELIEF_RIDGE\fR mean that there should
appear to be a groove or ridge around the exterior of the rectangle.
.PP
\fBTk_Fill3DRectangle\fR is somewhat like \fBTk_Draw3DRectangle\fR except
that it first fills the rectangular area with the background color
(one corresponding
to the color used to create \fIborder\fR).  Then it calls
\fBTk_Draw3DRectangle\fR to draw a border just inside the outer edge of
the rectangular area.  The argument \fIrelief\fR indicates the desired
effect (\fBTK_RELIEF_FLAT\fR means no border should be drawn; all that
happens is to fill the rectangle with the background color).
.PP
The procedure \fBTk_Draw3DPolygon\fR may be used to draw more complex
shapes with a three-dimensional appearance.  The \fIpointPtr\fR and
\fInumPoints\fR arguments define a trajectory, \fIpolyBorderWidth\fR
indicates how wide the border should be (and on which side of the
trajectory to draw it), and \fIleftRelief\fR indicates which side
of the trajectory should appear raised.  \fBTk_Draw3DPolygon\fR
draws a border around the given trajectory using the colors from
\fIborder\fR to produce a three-dimensional appearance.  If the trajectory is
non-self-intersecting, the appearance will be a raised or sunken
polygon shape.  The trajectory may be self-intersecting, although
it's not clear how useful this is.
.PP
\fBTk_Fill3DPolygon\fR is to \fBTk_Draw3DPolygon\fR what
\fBTk_Fill3DRectangle\fR is to \fBTk_Draw3DRectangle\fR:  it fills
the polygonal area with the background color from \fIborder\fR,
then calls \fBTk_Draw3DPolygon\fR to draw a border around the
area (unless \fIleftRelief\fR is \fBTK_RELIEF_FLAT\fR; in this case no
border is drawn).
.PP
The procedures \fBTk_3DVerticalBevel\fR and \fBTk_3DHorizontalBevel\fR
provide lower-level drawing primitives that are used by
procedures such as \fBTk_Draw3DRectangle\fR.
These procedures are also useful in their own right for drawing
rectilinear border shapes.
\fBTk_3DVerticalBevel\fR draws a vertical beveled edge, such as the
left or right side of a rectangle, and \fBTk_3DHorizontalBevel\fR
draws a horizontal beveled edge, such as the top or bottom of a
rectangle.
Each procedure takes \fIx\fR, \fIy\fR, \fIwidth\fR, and \fIheight\fR
arguments that describe the rectangular area of the beveled edge
(e.g., \fIwidth\fR is the border width for \fBTk_3DVerticalBevel\fR).
The \fIleftBorder\fR and \fItopBorder\fR arguments indicate the
position of the border relative to the
.QW inside
of the value, and
\fIrelief\fR indicates the relief of the inside of the value relative
to the outside.
\fBTk_3DVerticalBevel\fR just draws a rectangular region.
\fBTk_3DHorizontalBevel\fR draws a trapezoidal region to generate
mitered corners;  it should be called after \fBTk_3DVerticalBevel\fR
(otherwise \fBTk_3DVerticalBevel\fR will overwrite the mitering in
the corner).
The \fIleftIn\fR and \fIrightIn\fR arguments to \fBTk_3DHorizontalBevel\fR
describe the mitering at the corners;  a value of 1 means that the bottom
edge of the trapezoid will be shorter than the top, 0 means it will
be longer.
For example, to draw a rectangular border the top bevel should be
drawn with 1 for both \fIleftIn\fR and \fIrightIn\fR, and the
bottom bevel should be drawn with 0 for both arguments.
.PP
The procedure \fBTk_SetBackgroundFromBorder\fR will modify the background
pixel and/or pixmap of \fItkwin\fR to produce a result compatible
with \fIborder\fR.  For color displays, the resulting background will
just be the color specified when \fIborder\fR was created;  for monochrome
displays, the resulting background
will be a light stipple pattern, in order to distinguish the background from
the illuminated portion of the border.
.PP
Given a token for a border, the procedure \fBTk_NameOf3DBorder\fR
will return the color name that was used to create the border.
.PP
The procedure \fBTk_3DBorderColor\fR returns the XColor structure
that will be used for flat surfaces drawn for its \fIborder\fR
argument by procedures like \fBTk_Fill3DRectangle\fR.
The return value corresponds to the color name that was used to
create the border.
The XColor, and its associated pixel value, will remain allocated
as long as \fIborder\fR exists.
.PP
The procedure \fBTk_3DBorderGC\fR returns one of the X graphics contexts
that are used to draw the border.
The argument \fIwhich\fR selects which one of the three possible GC's:
\fBTK_3D_FLAT_GC\fR returns the context used for flat surfaces,
\fBTK_3D_LIGHT_GC\fR returns the context for light shadows,
and \fBTK_3D_DARK_GC\fR returns the context for dark shadows.
.PP
When a border is no longer needed, \fBTk_Free3DBorderFromObj\fR
or \fBTk_Free3DBorder\fR should
be called to release the resources associated with it.
For \fBTk_Free3DBorderFromObj\fR the border to release is specified
with the window and color name used to create the
border; for \fBTk_Free3DBorder\fR the border to release is specified
with the Tk_3DBorder token for the border.
There should be exactly one call to \fBTk_Free3DBorderFromObj\fR or
\fBTk_Free3DBorder\fR for each call to \fBTk_Alloc3DBorderFromObj\fR
or \fBTk_Get3DBorder\fR.
.SH KEYWORDS
3D, background, border, color, depressed, illumination, value, polygon,
raised, shadow, three-dimensional effect


================================================
FILE: doc/AddOption.3
================================================
'\"
'\" Copyright (c) 1998-2000 Scriptics Corporation.
'\" All rights reserved.
'\"
.TH Tk_AddOption 3 "" Tk "Tk Library Procedures"
.so man.macros
.BS
.SH NAME
Tk_AddOption \- Add an option to the option database
.SH SYNOPSIS
.nf
\fB#include <tk.h>\fR
.sp
void
\fBTk_AddOption\fR(\fItkwin, name, value, priority\fR)
.sp
Tcl_Obj *
\fBTk_GetSystemDefault\fR(\fItkwin, dbName, className\fR)
.fi
.SH ARGUMENTS
.AP Tk_Window tkwin in
Token for window.
.AP "const char" *name in
Multi-element name of option.
.AP "const char" *value in
Value of option.
.AP "const char" *dbName in
The option database name.
.AP "const char" *className in
The name of the option class.
.AP int priority in
Overall priority level to use for option.
.BE
.SH DESCRIPTION
.PP
\fBTk_AddOption\fR is invoked to add an option to the database
associated with \fItkwin\fR's main window.  \fIName\fR
contains the option being specified and consists of names and/or
classes separated by asterisks or dots, in the usual X format.
\fIValue\fR contains the text string to associate with \fIname\fR;
this value will be returned in calls to \fBTk_GetOption\fR.
\fIPriority\fR specifies the priority of the value; when options are
queried using \fBTk_GetOption\fR, the value with the highest priority
is returned.  \fIPriority\fR must be between 0 and \fBTK_MAX_PRIO\fR (100).
Some common priority values are:
.IP \fBTK_WIDGET_DEFAULT_PRIO\fR (20)
Used for default values hard-coded into widgets.
.IP \fBTK_STARTUP_FILE_PRIO\fR (40)
Used for options specified in application-specific startup files.
.IP \fBTK_USER_DEFAULT_PRIO\fR (60)
Used for options specified in user-specific defaults files, such as
\fB.Xdefaults\fR, resource databases loaded into the X server, or
user-specific startup files.
.IP \fBTK_INTERACTIVE_PRIO\fR (80)
Used for options specified interactively after the application starts
running.
.PP
\fBTk_GetSystemDefault\fR returns a Tcl_Obj* with the string identifying
a configuration option matching the given \fIdbname\fR and \fIclassName\fR.
Returns NULL if there are no system defaults that match this pair.
.SH KEYWORDS
class, name, option, add


================================================
FILE: doc/BindTable.3
================================================
'\"
'\" Copyright (c) 1994 The Regents of the University of California.
'\" Copyright (c) 1994-1996 Sun Microsystems, Inc.
'\"
'\" See the file "license.terms" for information on usage and redistribution
'\" of this file, and for a DISCLAIMER OF ALL WARRANTIES.
'\"
.TH Tk_CreateBindingTable 3 4.0 Tk "Tk Library Procedures"
.so man.macros
.BS
.SH NAME
Tk_CreateBindingTable, Tk_DeleteBindingTable, Tk_CreateBinding, Tk_DeleteBinding, Tk_GetBinding, Tk_GetAllBindings, Tk_DeleteAllBindings, Tk_BindEvent \- invoke scripts in response to X events
.SH SYNOPSIS
.nf
\fB#include <tk.h>\fR
.sp
Tk_BindingTable
\fBTk_CreateBindingTable\fR(\fIinterp\fR)
.sp
\fBTk_DeleteBindingTable\fR(\fIbindingTable\fR)
.sp
unsigned long
\fBTk_CreateBinding\fR(\fIinterp, bindingTable, object, eventString, script, append\fR)
.sp
int
\fBTk_DeleteBinding\fR(\fIinterp, bindingTable, object, eventString\fR)
.sp
const char *
\fBTk_GetBinding\fR(\fIinterp, bindingTable, object, eventString\fR)
.sp
\fBTk_GetAllBindings\fR(\fIinterp, bindingTable, object\fR)
.sp
\fBTk_DeleteAllBindings\fR(\fIbindingTable, object\fR)
.sp
\fBTk_BindEvent\fR(\fIbindingTable, eventPtr, tkwin, numObjects, objectPtr\fR)
.fi
.SH ARGUMENTS
.AS Tk_BindingTable bindingTable
.AP Tcl_Interp *interp in
Interpreter to use when invoking bindings in binding table.  Also
used for returning results and errors from binding procedures.
.AP Tk_BindingTable bindingTable in
Token for binding table;  must have been returned by some previous
call to \fBTk_CreateBindingTable\fR.
.AP "void *" object in
Identifies object with which binding is associated.
.AP "const char" *eventString in
String describing event sequence.
.AP "const char" *script in
Tcl script to invoke when binding triggers.
.AP int append in
Non-zero means append \fIscript\fR to existing script for binding,
if any; zero means replace existing script with new one.
.AP XEvent *eventPtr in
X event to match against bindings in \fIbindingTable\fR.
.AP Tk_Window tkwin in
Identifier for any window on the display where the event occurred.
Used to find display-related information such as key maps.
.AP Tcl_Size numObjects in
Number of object identifiers pointed to by \fIobjectPtr\fR.
.AP "void **" objectPtr in
Points to an array of object identifiers:  bindings will be considered
for each of these objects in order from first to last.
.BE
.SH DESCRIPTION
.PP
These procedures provide a general-purpose mechanism for creating
and invoking bindings.
Bindings are organized in terms of \fIbinding tables\fR.
A binding table consists of a collection of bindings plus a history
of recent events.
Within a binding table, bindings are associated with \fIobjects\fR.
The meaning of an object is defined by clients of the binding package.
For example, Tk keeps uses one binding table to hold all of the bindings
created by the \fBbind\fR command.
For this table, objects are pointers to strings such as window names, class
names, or other binding tags such as \fBall\fR.
Tk also keeps a separate binding table for each canvas widget, which manages
bindings created by the canvas's \fBbind\fR widget command;  within
this table, an object is either a pointer to the internal structure for a
canvas item or a Tk_Uid identifying a tag.
.PP
The procedure \fBTk_CreateBindingTable\fR creates a new binding
table and associates \fIinterp\fR with it (when bindings in the
table are invoked, the scripts will be evaluated in \fIinterp\fR).
\fBTk_CreateBindingTable\fR returns a token for the table, which
must be used in calls to other procedures such as \fBTk_CreateBinding\fR
or \fBTk_BindEvent\fR.
.PP
\fBTk_DeleteBindingTable\fR frees all of the state associated
with a binding table.
Once it returns the caller should not use the \fIbindingTable\fR
token again.
.PP
\fBTk_CreateBinding\fR adds a new binding to an existing table.
The \fIobject\fR argument identifies the object with which the
binding is to be associated, and it may be any one-word value.
Typically it is a pointer to a string or data structure.
The \fIeventString\fR argument identifies the event or sequence
of events for the binding;  see the documentation for the
\fBbind\fR command for a description of its format.
\fIscript\fR is the Tcl script to be evaluated when the binding
triggers.
\fIappend\fR indicates what to do if there already
exists a binding for \fIobject\fR and \fIeventString\fR:  if \fIappend\fR
is zero then \fIscript\fR replaces the old script;  if \fIappend\fR
is non-zero then the new script is appended to the old one.
\fBTk_CreateBinding\fR returns an X event mask for all the events
associated with the bindings.
This information may be useful to invoke \fBXSelectInput\fR to
select relevant events, or to disallow the use of certain events
in bindings.
If an error occurred while creating the binding (e.g., \fIeventString\fR
refers to a non-existent event), then 0 is returned and an error
message is left as the result of interpreter \fIinterp\fR.
.PP
\fBTk_DeleteBinding\fR removes from \fIbindingTable\fR the
binding given by \fIobject\fR and \fIeventString\fR, if
such a binding exists.
\fBTk_DeleteBinding\fR always returns \fBTCL_OK\fR.
In some cases it may reset the interpreter result to the default
empty value.
.PP
\fBTk_GetBinding\fR returns a pointer to the script associated
with \fIeventString\fR and \fIobject\fR in \fIbindingTable\fR.
If no such binding exists then NULL is returned and an error
message is left as the result of interpreter \fIinterp\fR.
.PP
\fBTk_GetAllBindings\fR returns in \fIinterp\fR's result a list
of all the event strings for which there are bindings in
\fIbindingTable\fR associated with \fIobject\fR.
If there are no bindings for \fIobject\fR, the result will be an empty
string.
.PP
\fBTk_DeleteAllBindings\fR deletes all of the bindings in
\fIbindingTable\fR that are associated with \fIobject\fR.
.PP
\fBTk_BindEvent\fR is called to process an event.
It makes a copy of the event in an internal history list associated
with the binding table, then it checks for bindings that match
the event.
\fBTk_BindEvent\fR processes each of the objects pointed to
by \fIobjectPtr\fR in turn.
For each object, it finds all the bindings that match the current
event history, selects the most specific binding using the priority
mechanism described in the documentation for \fBbind\fR,
and invokes the script for that binding.
If there are no matching bindings for a particular object, then
the object is skipped.
\fBTk_BindEvent\fR continues through all of the objects, handling
exceptions such as errors, \fBbreak\fR, and \fBcontinue\fR as
described in the documentation for \fBbind\fR.
.SH KEYWORDS
binding, event, object, script


================================================
FILE: doc/CanvPsY.3
================================================
'\"
'\" Copyright (c) 1994-1996 Sun Microsystems, Inc.
'\"
'\" See the file "license.terms" for information on usage and redistribution
'\" of this file, and for a DISCLAIMER OF ALL WARRANTIES.
'\"
.TH Tk_CanvasPs 3 4.0 Tk "Tk Library Procedures"
.so man.macros
.BS
.SH NAME
Tk_CanvasPsY, Tk_CanvasPsBitmap, Tk_CanvasPsColor, Tk_CanvasPsFont, Tk_CanvasPsPath, Tk_CanvasPsStipple \- utility procedures for generating Postscript for canvases
.SH SYNOPSIS
.nf
\fB#include <tk.h>\fR
.sp
double
\fBTk_CanvasPsY\fR(\fIcanvas, canvasY\fR)
.sp
int
\fBTk_CanvasPsBitmap\fR(\fIinterp, canvas, bitmap, x, y, width, height\fR)
.sp
int
\fBTk_CanvasPsColor\fR(\fIinterp, canvas, colorPtr\fR)
.sp
int
\fBTk_CanvasPsFont\fR(\fIinterp, canvas, tkFont\fR)
.sp
\fBTk_CanvasPsPath\fR(\fIinterp, canvas, coordPtr, numPoints\fR)
.sp
int
\fBTk_CanvasPsStipple\fR(\fIinterp, canvas, bitmap\fR)
.fi
.SH ARGUMENTS
.AS Tcl_Size "numPoints"
.AP Tk_Canvas canvas in
A token that identifies a canvas widget for which Postscript is
being generated.
.AP double canvasY in
Y-coordinate in the space of the canvas.
.AP Tcl_Interp *interp in/out
A Tcl interpreter;  Postscript is appended to its result, or the
result may be replaced with an error message.
.AP Pixmap bitmap in
Bitmap to use for generating Postscript.
.AP int x in
X-coordinate within \fIbitmap\fR of left edge of region to output.
.AP int y in
Y-coordinate within \fIbitmap\fR of top edge of region to output.
.AP "int" width in
Width of region of bitmap to output, in pixels.
.AP "int" height in
Height of region of bitmap to output, in pixels.
.AP XColor *colorPtr in
Information about color value to set in Postscript.
.AP Tk_Font tkFont in
Font for which Postscript is to be generated.
.AP double *coordPtr in
Pointer to an array of coordinates for one or more
points specified in canvas coordinates.
The order of values in \fIcoordPtr\fR is x1, y1, x2, y2, x3, y3,
and so on.
.AP Tcl_Size numPoints in
Number of points at \fIcoordPtr\fR.
.BE
.SH DESCRIPTION
.PP
These procedures are called by canvas type managers to carry out
common functions related to generating Postscript.
Most of the procedures take a \fIcanvas\fR argument, which
refers to a canvas widget for which Postscript is being
generated.
.PP
\fBTk_CanvasPsY\fR takes as argument a y-coordinate in the space of
a canvas and returns the value that should be used for that point
in the Postscript currently being generated for \fIcanvas\fR.
Y coordinates require transformation because Postscript uses an
origin at the lower-left corner whereas X uses an origin at the
upper-left corner.
Canvas x coordinates can be used directly in Postscript without
transformation.
.PP
\fBTk_CanvasPsBitmap\fR generates Postscript to describe a region
of a bitmap.
The Postscript is generated in proper image data format for Postscript,
i.e., as data between angle brackets, one bit per pixel.
The Postscript is appended to the result of interpreter \fIinterp\fR
and \fBTCL_OK\fR is returned unless an error occurs, in which case
\fBTCL_ERROR\fR is returned and the interpreter result is overwritten
with an error message.
.PP
\fBTk_CanvasPsColor\fR generates Postscript to set the current color
to correspond to its \fIcolorPtr\fR argument, taking into account any
color map specified in the \fBpostscript\fR command.
It appends the Postscript to the interpreter \fIinterp\fR's result and returns
\fBTCL_OK\fR unless an error occurs, in which case \fBTCL_ERROR\fR is
returned and the interpreter's result is overwritten with an error message.
.PP
\fBTk_CanvasPsFont\fR generates Postscript that sets the current font
to match \fItkFont\fR as closely as possible.
\fBTk_CanvasPsFont\fR takes into account any font map specified
in the \fBpostscript\fR command, and it does
the best it can at mapping X fonts to Postscript fonts.
It appends the Postscript to interpreter \fIinterp\fR's result and
returns \fBTCL_OK\fR unless an error occurs, in which case
\fBTCL_ERROR\fR is returned and the interpreter's result is
overwritten with an error message.
.PP
\fBTk_CanvasPsPath\fR generates Postscript to set the current path
to the set of points given by \fIcoordPtr\fR and \fInumPoints\fR.
It appends the resulting Postscript to the result of interpreter \fIinterp\fR.
.PP
\fBTk_CanvasPsStipple\fR generates Postscript that will fill the
current path in stippled fashion.
It uses \fIbitmap\fR as the stipple pattern and the current Postscript
color;  ones in the stipple bitmap are drawn in the current color, and
zeroes are not drawn at all.
The Postscript is appended to interpreter \fIinterp\fR's result and
\fBTCL_OK\fR is returned, unless an error occurs, in which case
\fBTCL_ERROR\fR is returned and the interpreter's result is
overwritten with an error message.
.SH KEYWORDS
bitmap, canvas, color, font, path, Postscript, stipple


================================================
FILE: doc/CanvTkwin.3
================================================
'\"
'\" Copyright (c) 1994-1996 Sun Microsystems, Inc.
'\"
'\" See the file "license.terms" for information on usage and redistribution
'\" of this file, and for a DISCLAIMER OF ALL WARRANTIES.
'\"
.TH Tk_CanvasTkwin 3 4.1 Tk "Tk Library Procedures"
.so man.macros
.BS
.SH NAME
Tk_CanvasTkwin, Tk_CanvasGetCoord, Tk_CanvasDrawableCoords, Tk_CanvasSetStippleOrigin, Tk_CanvasWindowCoords, Tk_CanvasEventuallyRedraw, Tk_CanvasTagsOption \- utility procedures for canvas type managers
.SH SYNOPSIS
.nf
\fB#include <tk.h>\fR
.sp
Tk_Window
\fBTk_CanvasTkwin\fR(\fIcanvas\fR)
.sp
int
\fBTk_CanvasGetCoord\fR(\fIinterp, canvas, string, doublePtr\fR)
.sp
\fBTk_CanvasDrawableCoords\fR(\fIcanvas, x, y, drawableXPtr, drawableYPtr\fR)
.sp
\fBTk_CanvasSetStippleOrigin\fR(\fIcanvas, gc\fR)
.sp
\fBTk_CanvasWindowCoords\fR(\fIcanvas, x, y, screenXPtr, screenYPtr\fR)
.sp
\fBTk_CanvasEventuallyRedraw\fR(\fIcanvas, x1, y1, x2, y2\fR)
.sp
Tk_OptionParseProc *\fBTk_CanvasTagsParseProc\fR;
.sp
Tk_OptionPrintProc *\fBTk_CanvasTagsPrintProc\fR;
.fi
.SH ARGUMENTS
.AS Tk_ItemType *drawableXPtr
.AP Tk_Canvas canvas in
A token that identifies a canvas widget.
.AP Tcl_Interp *interp in/out
Interpreter to use for error reporting.
.AP "const char" *string in
Textual description of a canvas coordinate.
.AP double *doublePtr out
Points to place to store a converted coordinate.
.AP double x in
An x coordinate in the space of the canvas.
.AP double y in
A y coordinate in the space of the canvas.
.AP short *drawableXPtr out
Pointer to a location in which to store an x coordinate in the space
of the drawable currently being used to redisplay the canvas.
.AP short *drawableYPtr out
Pointer to a location in which to store a y coordinate in the space
of the drawable currently being used to redisplay the canvas.
.AP GC gc out
Graphics context to modify.
.AP short *screenXPtr out
Points to a location in which to store the screen coordinate in the
canvas window that corresponds to \fIx\fR.
.AP short *screenYPtr out
Points to a location in which to store the screen coordinate in the
canvas window that corresponds to \fIy\fR.
.AP int x1 in
Left edge of the region that needs redisplay.  Only pixels at or to
the right of this coordinate need to be redisplayed.
.AP int y1 in
Top edge of the region that needs redisplay.  Only pixels at or below
this coordinate need to be redisplayed.
.AP int x2 in
Right edge of the region that needs redisplay.  Only pixels to
the left of this coordinate need to be redisplayed.
.AP int y2 in
Bottom edge of the region that needs redisplay.  Only pixels above
this coordinate need to be redisplayed.
.BE
.SH DESCRIPTION
.PP
These procedures are called by canvas type managers to perform various
utility functions.
.PP
\fBTk_CanvasTkwin\fR returns the Tk_Window associated with a particular
canvas.
.PP
\fBTk_CanvasGetCoord\fR translates a string specification of a
coordinate (such as \fB2p\fR or \fB1.6c\fR) into a double-precision
canvas coordinate.
If \fIstring\fR is a valid coordinate description then \fBTk_CanvasGetCoord\fR
stores the corresponding canvas coordinate at *\fIdoublePtr\fR
and returns \fBTCL_OK\fR.
Otherwise it stores an error message in the interpreter result and
returns \fBTCL_ERROR\fR.
.PP
\fBTk_CanvasDrawableCoords\fR is called by type managers during
redisplay to compute where to draw things.
Given \fIx\fR and \fIy\fR coordinates in the space of the
canvas, \fBTk_CanvasDrawableCoords\fR computes the corresponding
pixel in the drawable that is currently being used for redisplay;
it returns those coordinates in *\fIdrawableXPtr\fR and *\fIdrawableYPtr\fR.
This procedure should not be invoked except during redisplay.
.PP
\fBTk_CanvasSetStippleOrigin\fR is also used during redisplay.
It sets the stipple origin in \fIgc\fR so that stipples drawn
with \fIgc\fR in the current offscreen pixmap will line up
with stipples drawn with origin (0,0) in the canvas's actual
window.
\fBTk_CanvasSetStippleOrigin\fR is needed in order to guarantee
that stipple patterns line up properly when the canvas is
redisplayed in small pieces.
Redisplays are carried out in double-buffered fashion where a
piece of the canvas is redrawn in an offscreen pixmap and then
copied back onto the screen.
In this approach the stipple origins in graphics contexts need to
be adjusted during each redisplay to compensate for the position
of the off-screen pixmap relative to the window.
If an item is being drawn with stipples, its type manager typically
calls \fBTk_CanvasSetStippleOrigin\fR just before using \fIgc\fR
to draw something;  after it is finished drawing, the type manager
calls \fBXSetTSOrigin\fR to restore the origin in \fIgc\fR back to (0,0)
(the restore is needed because graphics contexts are shared, so
they cannot be modified permanently).
.PP
\fBTk_CanvasWindowCoords\fR is similar to \fBTk_CanvasDrawableCoords\fR
except that it returns coordinates in the canvas's window on the
screen, instead of coordinates in an off-screen pixmap.
.PP
\fBTk_CanvasEventuallyRedraw\fR may be invoked by a type manager
to inform Tk that a portion of a canvas needs to be redrawn.
The \fIx1\fR, \fIy1\fR, \fIx2\fR, and \fIy2\fR arguments
specify the region that needs to be redrawn, in canvas coordinates.
Type managers rarely need to invoke \fBTk_CanvasEventuallyRedraw\fR,
since Tk can normally figure out when an item has changed and make
the redisplay request on its behalf (this happens, for example
whenever Tk calls a \fIconfigureProc\fR or \fIscaleProc\fR).
The only time that a type manager needs to call
\fBTk_CanvasEventuallyRedraw\fR is if an item has changed on its own
without being invoked through one of the procedures in its Tk_ItemType;
this could happen, for example, in an image item if the image is
modified using image commands.
.PP
\fBTk_CanvasTagsParseProc\fR and \fBTk_CanvasTagsPrintProc\fR are
procedures that handle the \fB\-tags\fR option for canvas items.
The code of a canvas type manager will not call these procedures
directly, but will use their addresses to create a \fBTk_CustomOption\fR
structure for the \fB\-tags\fR option.   The code typically looks
like this:
.PP
.CS
static const Tk_CustomOption tagsOption = {Tk_CanvasTagsParseProc,
    Tk_CanvasTagsPrintProc, NULL
};

static const Tk_ConfigSpec configSpecs[] = {
    ...
    {TK_CONFIG_CUSTOM, "-tags", NULL, NULL,
        NULL, 0, TK_CONFIG_NULL_OK, &tagsOption},
    ...
};
.CE
.SH KEYWORDS
canvas, focus, item type, redisplay, selection, type manager


================================================
FILE: doc/CanvTxtInfo.3
================================================
'\"
'\" Copyright (c) 1994-1996 Sun Microsystems, Inc.
'\"
'\" See the file "license.terms" for information on usage and redistribution
'\" of this file, and for a DISCLAIMER OF ALL WARRANTIES.
'\"
.TH Tk_CanvasTextInfo 3 4.0 Tk "Tk Library Procedures"
.so man.macros
.BS
.SH NAME
Tk_CanvasTextInfo \- additional information for managing text items in canvases
.SH SYNOPSIS
.nf
\fB#include <tk.h>\fR
.sp
Tk_CanvasTextInfo *
\fBTk_CanvasGetTextInfo\fR(\fIcanvas\fR)
.fi
.SH ARGUMENTS
.AS Tk_Canvas canvas
.AP Tk_Canvas canvas in
A token that identifies a particular canvas widget.
.BE
.SH DESCRIPTION
.PP
Textual canvas items are somewhat more complicated to manage than
other items, due to things like the selection and the input focus.
\fBTk_CanvasGetTextInfo\fR may be invoked by a type manager
to obtain additional information needed for items that display text.
The return value from \fBTk_CanvasGetTextInfo\fR is a pointer to
a structure that is shared between Tk and all the items that display
text.
The structure has the following form:
.CS
typedef struct {
    Tk_3DBorder \fIselBorder\fR;
    int \fIselBorderWidth\fR;
    XColor *\fIselFgColorPtr\fR;
    Tk_Item *\fIselItemPtr\fR;
    Tcl_Size \fIselectFirst\fR;
    Tcl_Size \fIselectLast\fR;
    Tk_Item *\fIanchorItemPtr\fR;
    Tcl_Size \fIselectAnchor\fR;
    Tk_3DBorder \fIinsertBorder\fR;
    int \fIinsertWidth\fR;
    int \fIinsertBorderWidth\fR;
    Tk_Item *\fIfocusItemPtr\fR;
    int \fIgotFocus\fR;
    int \fIcursorOn\fR;
    Tcl_Obj *\fIinsertBorderWidthObj\fR;
    Tcl_Obj *\fIinsertWidthObj\fR;
    Tcl_Obj *\fIselBorderWidthObj\fR;
} \fBTk_CanvasTextInfo\fR;
.CE
The \fBselBorder\fR field identifies a Tk_3DBorder that should be
used for drawing the background under selected text.
\fIselBorderWidth\fR gives the width of the raised border around
selected text, in pixels. \fIselBorderWidthObj\fR contains the
same information, but the original Tcl_Obj * value;
\fIselFgColorPtr\fR points to an XColor that describes the foreground
color to be used when drawing selected text.
\fIselItemPtr\fR points to the item that is currently selected, or
NULL if there is no item selected or if the canvas does not have the
selection.
\fIselectFirst\fR and \fIselectLast\fR give the indices of the first
and last selected characters in \fIselItemPtr\fR, as returned by the
\fIindexProc\fR for that item.
\fIanchorItemPtr\fR points to the item that currently has the selection
anchor;  this is not necessarily the same as \fIselItemPtr\fR.
\fIselectAnchor\fR is an index that identifies the anchor position
within \fIanchorItemPtr\fR.
\fIinsertBorder\fR contains a Tk_3DBorder to use when drawing the
insertion cursor;  \fIinsertWidth\fR gives the total width of the
insertion cursor in pixels, and \fIinsertBorderWidth\fR gives the
width of the raised  border around the insertion cursor.
\fIinsertWidthObj\fR and \fIinsertBorderWidthObj\fR contain the
same information, but the original Tcl_Obj * value.
\fIfocusItemPtr\fR identifies the item that currently has the input
focus, or NULL if there is no such item.
\fIgotFocus\fR is 1 if the canvas widget has the input focus and
0 otherwise.
\fIcursorOn\fR is 1 if the insertion cursor should be drawn in
\fIfocusItemPtr\fR and 0 if it should not be drawn;  this field
is toggled on and off by Tk to make the cursor blink.
.PP
The structure returned by \fBTk_CanvasGetTextInfo\fR
is shared between Tk and the type managers;  typically the type manager
calls \fBTk_CanvasGetTextInfo\fR once when an item is created and
then saves the pointer in the item's record.
Tk will update information in the Tk_CanvasTextInfo;  for example,
a \fBconfigure\fR widget command might change the \fIselBorder\fR
field, or a \fBselect\fR widget command might change the \fIselectFirst\fR
field, or Tk might change \fIcursorOn\fR in order to make the insertion
cursor flash on and off during successive redisplays.
.PP
Type managers should treat all of the fields of the Tk_CanvasTextInfo
structure as read-only, except for \fIselItemPtr\fR, \fIselectFirst\fR,
\fIselectLast\fR, and \fIselectAnchor\fR.
Type managers may change \fIselectFirst\fR, \fIselectLast\fR, and
\fIselectAnchor\fR to adjust for insertions and deletions in the
item (but only if the item is the current owner of the selection or
anchor, as determined by \fIselItemPtr\fR or \fIanchorItemPtr\fR).
If all of the selected text in the item is deleted, the item should
set \fIselItemPtr\fR to NULL to indicate that there is no longer a
selection.
.SH KEYWORDS
canvas, focus, insertion cursor, selection, selection anchor, text


================================================
FILE: doc/Clipboard.3
================================================
'\"
'\" Copyright (c) 1994 The Regents of the University of California.
'\" Copyright (c) 1994-1996 Sun Microsystems, Inc.
'\"
'\" See the file "license.terms" for information on usage and redistribution
'\" of this file, and for a DISCLAIMER OF ALL WARRANTIES.
'\"
.TH Tk_ClipboardClear 3 4.0 Tk "Tk Library Procedures"
.so man.macros
.BS
.SH NAME
Tk_ClipboardClear, Tk_ClipboardAppend \- Manage the clipboard
.SH SYNOPSIS
.nf
\fB#include <tk.h>\fR
.sp
int
\fBTk_ClipboardClear\fR(\fIinterp, tkwin\fR)
.sp
int
\fBTk_ClipboardAppend\fR(\fIinterp, tkwin, target, format, buffer\fR)
.fi
.SH ARGUMENTS
.AS Tk_ClipboardClear tkwin
.AP Tcl_Interp *interp in
Interpreter to use for reporting errors.
.AP Tk_Window tkwin in
Window that determines which display's clipboard to manipulate.
.AP Atom target in
Conversion type for this clipboard item;  has same meaning as
\fItarget\fR argument to \fBTk_CreateSelHandler\fR.
.AP Atom format in
Representation to use when data is retrieved;  has same meaning as
\fIformat\fR argument to \fBTk_CreateSelHandler\fR.
.AP "const char" *buffer in
Null terminated string containing the data to be appended to the clipboard.
.BE
.SH DESCRIPTION
.PP
These two procedures manage the clipboard for Tk.
The clipboard is typically managed by calling \fBTk_ClipboardClear\fR
once, then calling \fBTk_ClipboardAppend\fR to add data for any
number of targets.
.PP
\fBTk_ClipboardClear\fR claims the CLIPBOARD selection and frees any
data items previously stored on the clipboard in this application.
It normally returns \fBTCL_OK\fR, but if an error occurs it returns
\fBTCL_ERROR\fR and leaves an error message in interpreter
\fIinterp\fR's result.
\fBTk_ClipboardClear\fR must be called before a sequence of
\fBTk_ClipboardAppend\fR calls can be issued.
.PP
\fBTk_ClipboardAppend\fR appends a buffer of data to the clipboard.
The first buffer for a given \fItarget\fR determines the \fIformat\fR
for that \fItarget\fR.
Any successive appends for that \fItarget\fR must have
the same format or an error will be returned.
\fBTk_ClipboardAppend\fR returns \fBTCL_OK\fR if the buffer is
successfully copied onto the clipboard.  If the clipboard is not
currently owned by the application, either
because \fBTk_ClipboardClear\fR has not been called or because
ownership of the clipboard has changed since the last call to
\fBTk_ClipboardClear\fR,
\fBTk_ClipboardAppend\fR returns \fBTCL_ERROR\fR and leaves an error
message in the result of interpreter \fIinterp\fR.
.PP
In order to guarantee atomicity, no event handling should occur
between \fBTk_ClipboardClear\fR and the following
\fBTk_ClipboardAppend\fR calls (otherwise someone could retrieve
a partially completed clipboard or claim ownership away from
this application).
.PP
\fBTk_ClipboardClear\fR may invoke callbacks, including arbitrary
Tcl scripts, as a result of losing the CLIPBOARD selection, so
any calling function should take care to be re-entrant at the point
\fBTk_ClipboardClear\fR is invoked.
.SH KEYWORDS
append, clipboard, clear, format, type


================================================
FILE: doc/ClrSelect.3
================================================
'\"
'\" Copyright (c) 1992-1994 The Regents of the University of California.
'\" Copyright (c) 1994-1996 Sun Microsystems, Inc.
'\"
'\" See the file "license.terms" for information on usage and redistribution
'\" of this file, and for a DISCLAIMER OF ALL WARRANTIES.
'\"
.TH Tk_ClearSelection 3 4.0 Tk "Tk Library Procedures"
.so man.macros
.BS
.SH NAME
Tk_ClearSelection \- Deselect a selection
.SH SYNOPSIS
.nf
\fB#include <tk.h>\fR
.sp
\fBTk_ClearSelection\fR(\fItkwin, selection\fR)
.fi
.SH ARGUMENTS
.AS Tk_Window tkwin
.AP Tk_Window tkwin in
The selection will be cleared from the display containing this
window.
.AP Atom selection in
The name of selection to be cleared.
.BE
.SH DESCRIPTION
.PP
\fBTk_ClearSelection\fR cancels the selection specified by the atom
\fIselection\fR for the display containing \fItkwin\fR.
The selection need not be in \fItkwin\fR itself or even in
\fItkwin\fR's application.
If there is a window anywhere on \fItkwin\fR's display that
owns \fIselection\fR, the window will be notified and the
selection will be cleared.
If there is no owner for \fIselection\fR on the display, then the
procedure has no effect.
.SH KEYWORDS
clear, selection


================================================
FILE: doc/ConfigWidg.3
================================================
'\"
'\" Copyright (c) 1990-1994 The Regents of the University of California.
'\" Copyright (c) 1994-1996 Sun Microsystems, Inc.
'\"
'\" See the file "license.terms" for information on usage and redistribution
'\" of this file, and for a DISCLAIMER OF ALL WARRANTIES.
'\"
.TH Tk_ConfigureWidget 3 4.1 Tk "Tk Library Procedures"
.so man.macros
.BS
.SH NAME
Tk_ConfigureWidget, Tk_ConfigureInfo, Tk_ConfigureValue, Tk_FreeOptions \- process configuration options for widgets
.SH SYNOPSIS
.nf
\fB#include <tk.h>\fR
.sp
int
\fBTk_ConfigureWidget\fR(\fIinterp, tkwin, specs, objc, objv, widgRec, flags\fR)
.sp
int
\fBTk_ConfigureInfo\fR(\fIinterp, tkwin, specs, widgRec, argvName, flags\fR)
.sp
int
\fBTk_ConfigureValue\fR(\fIinterp, tkwin, specs, widgRec, argvName, flags\fR)
.sp
\fBTk_FreeOptions\fR(\fIspecs, widgRec, display, flags\fR)
.fi
.SH ARGUMENTS
.AS void *widgRec in/out
.AP Tcl_Interp *interp in
Interpreter to use for returning error messages.
.AP Tk_Window tkwin in
Window used to represent widget (needed to set up X resources).
.AP "const Tk_ConfigSpec" *specs in
Pointer to table specifying legal configuration options for this
widget.
.AP Tcl_Size objc in
Number of arguments in \fIobjv\fR.
.AP "Tcl_Obj *const *" objv in
Command-line options for configuring widget.
.AP char *widgRec in/out
Points to widget record structure.  Fields in this structure get
modified by \fBTk_ConfigureWidget\fR to hold configuration information.
.AP int flags in
If non-zero, then it specifies an OR-ed combination of flags that
control the processing of configuration information.
\fBTK_CONFIG_ARGV_ONLY\fR causes the option database and defaults to be
ignored, and flag bits \fBTK_CONFIG_USER_BIT\fR and higher are used to
selectively disable entries in \fIspecs\fR.
.AP "type name" type in
The name of the type of a widget record.
.AP "field name" field in
The name of a field in records of type \fItype\fR.
.AP "const char" *argvName in
The name used on Tcl command lines to refer to a particular option
(e.g. when creating a widget or invoking the \fBconfigure\fR widget
command).  If non-NULL, then information is returned only for this
option.  If NULL, then information is returned for all available
options.
.AP Display *display in
Display containing widget whose record is being freed;  needed in
order to free up resources.
.BE
.SH DESCRIPTION
.PP
Note that \fBTk_ConfigureWidget\fR should be replaced with the new
\fBTcl_Obj\fR based API, \fBTk_SetOptions\fR.  The old interface is
retained for backward compatibility.
.PP
\fBTk_ConfigureWidget\fR is called to configure various aspects of a
widget, such as colors, fonts, border width, etc.
It is intended as a convenience procedure to reduce the amount
of code that must be written in individual widget managers to
handle configuration information.
It is typically
invoked when widgets are created, and again when the \fBconfigure\fR
command is invoked for a widget.
Although intended primarily for widgets, \fBTk_ConfigureWidget\fR
can be used in other situations where \fIobjc-objv\fR information
is to be used to fill in a record structure, such as configuring
graphical elements for a canvas widget or entries of a menu.
.PP
\fBTk_ConfigureWidget\fR processes
a table specifying the configuration options that are supported
(\fIspecs\fR) and a collection of command-line arguments (\fIobjc\fR and
\fIobjv\fR) to fill in fields of a record (\fIwidgRec\fR).
It uses the option database and defaults specified in \fIspecs\fR
to fill in fields of \fIwidgRec\fR that are not specified in \fIobjv\fR.
\fBTk_ConfigureWidget\fR normally returns the value \fBTCL_OK\fR; in this
case it does not modify \fIinterp\fR.
If an error
occurs then \fBTCL_ERROR\fR is returned and \fBTk_ConfigureWidget\fR will
leave an error message in interpreter \fIinterp\fR's result in the standard Tcl
fashion.
In the event of an error return, some of the fields of \fIwidgRec\fR
could already have been set, if configuration information for them
was successfully processed before the error occurred.
The other fields will be set to reasonable initial values so that
\fBTk_FreeOptions\fR can be called for cleanup.
.PP
The \fIspecs\fR array specifies the kinds of configuration options
expected by the widget.  Each of its entries specifies one configuration
option and has the following structure:
.CS
typedef struct {
    int \fItype\fR;
    const char *\fIargvName\fR;
    const char *\fIdbName\fR;
    const char *\fIdbClass\fR;
    const char *\fIdefValue\fR;
    Tcl_Size \fIoffset\fR;
    int \fIspecFlags\fR;
    const Tk_CustomOption *\fIcustomPtr\fR;
} \fBTk_ConfigSpec\fR;
.CE
The \fItype\fR field indicates what type of configuration option this is
(e.g. \fBTK_CONFIG_COLOR\fR for a color value, or \fBTK_CONFIG_INT\fR for
an integer value).  The \fItype\fR field indicates how to use the
value of the option (more on this below).
The \fIargvName\fR field is a string such as
.QW \-font
or
.QW \-bg ,
which is compared with the values in \fIobjv\fR (if \fIargvName\fR is
NULL it means this is a grouped entry;  see \fBGROUPED ENTRIES\fR below).  The
\fIdbName\fR and \fIdbClass\fR fields are used to look up a value
for this option in the option database.  The \fIdefValue\fR field
specifies a default value for this configuration option if no
value is specified in either \fIobjv\fR or the option database.
\fIOffset\fR indicates where in \fIwidgRec\fR to store information
about this option, and \fIspecFlags\fR contains additional information
to control the processing of this configuration option (see FLAGS
below).
The last field, \fIcustomPtr\fR, is only used if \fItype\fR is
\fBTK_CONFIG_CUSTOM\fR;  see CUSTOM OPTION TYPES below.
.PP
\fBTk_ConfigureWidget\fR first processes \fIobjv\fR to see which
(if any) configuration options are specified there.  \fIArgv\fR
must contain an even number of fields;  the first of each pair
of fields must match the \fIargvName\fR of some entry in \fIspecs\fR
(unique abbreviations are acceptable),
and the second field of the pair contains the value for that
configuration option.  If there are entries in \fIspec\fR for which
there were no matching entries in \fIobjv\fR,
\fBTk_ConfigureWidget\fR uses the \fIdbName\fR and \fIdbClass\fR
fields of the \fIspecs\fR entry to probe the option database;  if
a value is found, then it is used as the value for the option.
Finally, if no entry is found in the option database, the
\fIdefValue\fR field of the \fIspecs\fR entry is used as the
value for the configuration option.  If the \fIdefValue\fR is
NULL, or if the \fBTK_CONFIG_DONT_SET_DEFAULT\fR bit is set in
\fIflags\fR, then there is no default value and this \fIspecs\fR entry
will be ignored if no value is specified in \fIobjv\fR or the
option database.
.PP
Once a string value has been determined for a configuration option,
\fBTk_ConfigureWidget\fR translates the string value into a more useful
form, such as a color if \fItype\fR is \fBTK_CONFIG_COLOR\fR or an integer
if \fItype\fR is \fBTK_CONFIG_INT\fR.  This value is then stored in the
record pointed to by \fIwidgRec\fR.  This record is assumed to
contain information relevant to the manager of the widget;  its exact
type is unknown to \fBTk_ConfigureWidget\fR.  The \fIoffset\fR field
of each \fIspecs\fR entry indicates where in \fIwidgRec\fR to store
the information about this configuration option.  You should use the
\fBoffsetof\fR macro to generate \fIoffset\fR values.  The location
indicated by \fIwidgRec\fR and \fIoffset\fR will be referred to as the
.QW target
in the descriptions below.
.PP
The \fItype\fR field of each entry in \fIspecs\fR determines what
to do with the string value of that configuration option.  The
legal values for \fItype\fR, and the corresponding actions, are:
.TP
\fBTK_CONFIG_ACTIVE_CURSOR\fR
.
The value
must be an ASCII string identifying a cursor in a form
suitable for passing to \fBTk_GetCursor\fR.
The value is converted to a \fBTk_Cursor\fR by calling
\fBTk_GetCursor\fR and the result is stored in the target.
In addition, the resulting cursor is made the active cursor
for \fItkwin\fR by calling \fBXDefineCursor\fR.
If \fBTK_CONFIG_NULL_OK\fR is specified in \fIspecFlags\fR then the value
may be an empty string, in which case the target and \fItkwin\fR's
active cursor will be set to \fBNone\fR.
If the previous value of the target
was not \fBNone\fR, then it is freed by passing it to \fBTk_FreeCursor\fR.
.TP
\fBTK_CONFIG_ANCHOR\fR
.
The value must be an ASCII string identifying an anchor point in one of the ways
accepted by \fBTk_GetAnchor\fR.
The string is converted to a \fBTk_Anchor\fR by calling
\fBTk_GetAnchor\fR and the result is stored in the target.
.TP
\fBTK_CONFIG_BITMAP\fR
.
The value must be an ASCII string identifying a bitmap in a form
suitable for passing to \fBTk_GetBitmap\fR.  The value is converted
to a \fBPixmap\fR by calling \fBTk_GetBitmap\fR and the result
is stored in the target.
If \fBTK_CONFIG_NULL_OK\fR is specified in \fIspecFlags\fR then the value
may be an empty string, in which case the target is set to \fBNone\fR.
If the previous value of the target
was not \fBNone\fR, then it is freed by passing it to \fBTk_FreeBitmap\fR.
.TP
\fBTK_CONFIG_BOOLEAN\fR
.
The value must be an ASCII string specifying a boolean value.  Any
of the values
.QW true ,
.QW yes ,
.QW on ,
or
.QW 1 ,
or an abbreviation of one of these values, means true;
any of the values
.QW false ,
.QW no ,
.QW off ,
or
.QW 0 ,
or an abbreviation of one of these values, means false.
The target is expected to be an integer;  for true values it will
be set to 1 and for false values it will be set to 0.
.TP
\fBTK_CONFIG_BORDER\fR
.
The value must be an ASCII string identifying a border color in a form
suitable for passing to \fBTk_Get3DBorder\fR.  The value is converted
to a (\fBTk_3DBorder *\fR) by calling \fBTk_Get3DBorder\fR and the result
is stored in the target.
If \fBTK_CONFIG_NULL_OK\fR is specified in \fIspecFlags\fR then the value
may be an empty string, in which case the target will be set to NULL.
If the previous value of the target
was not NULL, then it is freed by passing it to \fBTk_Free3DBorder\fR.
.TP
\fBTK_CONFIG_CAP_STYLE\fR
.
The value must be
an ASCII string identifying a cap style in one of the ways
accepted by \fBTk_GetCapStyle\fR.
The string is converted to an integer value corresponding
to the cap style by calling
\fBTk_GetCapStyle\fR and the result is stored in the target.
.TP
\fBTK_CONFIG_COLOR\fR
.
The value must be an ASCII string identifying a color in a form
suitable for passing to \fBTk_GetColor\fR.  The value is converted
to an (\fBXColor *\fR) by calling \fBTk_GetColor\fR and the result
is stored in the target.
If \fBTK_CONFIG_NULL_OK\fR is specified in \fIspecFlags\fR then the value
may be an empty string, in which case the target will be set to \fBNone\fR.
If the previous value of the target
was not NULL, then it is freed by passing it to \fBTk_FreeColor\fR.
.TP
\fBTK_CONFIG_CURSOR\fR
.
This option is identical to \fBTK_CONFIG_ACTIVE_CURSOR\fR except
that the new cursor is not made the active one for \fItkwin\fR.
.TP
\fBTK_CONFIG_CUSTOM\fR
.
This option allows applications to define new option types.
The \fIcustomPtr\fR field of the entry points to a structure
defining the new option type.
See the section \fBCUSTOM OPTION TYPES\fR below for details.
.TP
\fBTK_CONFIG_DOUBLE\fR
.
The value must be an ASCII floating-point number in
the format accepted by \fBstrtol\fR.  The string is converted
to a \fBdouble\fR value, and the value is stored in the
target.
.TP
\fBTK_CONFIG_END\fR
.
Marks the end of the table.  The last entry in \fIspecs\fR
must have this type;  all of its other fields are ignored and it
will never match any arguments.
.TP
\fBTK_CONFIG_FONT\fR
.
The value must be an ASCII string identifying a font in a form
suitable for passing to \fBTk_GetFont\fR.  The value is converted
to a \fBTk_Font\fR by calling \fBTk_GetFont\fR and the result
is stored in the target.
If \fBTK_CONFIG_NULL_OK\fR is specified in \fIspecFlags\fR then the value
may be an empty string, in which case the target will be set to NULL.
If the previous value of the target
was not NULL, then it is freed by passing it to \fBTk_FreeFont\fR.
.TP
\fBTK_CONFIG_INT\fR
.
The value must be an ASCII integer string
in the format accepted by \fBstrtol\fR (e.g.
.QW 0
and
.QW 0x
prefixes may be used to specify octal or hexadecimal
numbers, respectively).  The string is converted to an integer
value and the integer is stored in the target.
.TP
\fBTK_CONFIG_JOIN_STYLE\fR
.
The value must be
an ASCII string identifying a join style in one of the ways
accepted by \fBTk_GetJoinStyle\fR.
The string is converted to an integer value corresponding
to the join style by calling
\fBTk_GetJoinStyle\fR and the result is stored in the target.
.TP
\fBTK_CONFIG_JUSTIFY\fR
.
The value must be
an ASCII string identifying a justification method in one of the
ways accepted by \fBTk_GetJustify\fR.
The string is converted to a \fBTk_Justify\fR by calling
\fBTk_GetJustify\fR and the result is stored in the target.
.TP
\fBTK_CONFIG_MM\fR
.
The value must specify a screen distance in one of the forms acceptable
to \fBTk_GetScreenMM\fR.
The string is converted to double-precision floating-point distance
in millimeters and the value is stored in the target.
.TP
\fBTK_CONFIG_PIXELS\fR
.
The value must specify screen units in one of the forms acceptable
to \fBTk_GetPixels\fR.
The string is converted to an integer distance in pixels and the
value is stored in the target.
.TP
\fBTK_CONFIG_RELIEF\fR
.
The value must be an ASCII string identifying a relief in a form
suitable for passing to \fBTk_GetRelief\fR.  The value is converted
to an integer relief value by calling \fBTk_GetRelief\fR and the result
is stored in the target.
.TP
\fBTK_CONFIG_STRING\fR
.
A copy of the value is made by allocating memory space with
\fBTcl_Alloc\fR and copying the value into the dynamically-allocated
space.  A pointer to the new string is stored in the target.
If \fBTK_CONFIG_NULL_OK\fR is specified in \fIspecFlags\fR then the value
may be an empty string, in which case the target will be set to NULL.
If the previous value of the target was not NULL, then it is
freed by passing it to \fBTcl_Free\fR.
.TP
\fBTK_CONFIG_SYNONYM\fR
.
This \fItype\fR value identifies special entries in \fIspecs\fR that
are synonyms for other entries.  If an \fIobjv\fR value matches the
\fIargvName\fR of a \fBTK_CONFIG_SYNONYM\fR entry, the entry is not used
directly. Instead, \fBTk_ConfigureWidget\fR searches \fIspecs\fR
for another entry whose \fIargvName\fR is the same as the \fIdbName\fR
field in the \fBTK_CONFIG_SYNONYM\fR entry;  this new entry is used just
as if its \fIargvName\fR had matched the \fIobjv\fR value.  The
synonym mechanism allows multiple \fIobjv\fR values to be used for
a single configuration option, such as
.QW \-background
and
.QW \-bg .
.TP
\fBTK_CONFIG_UID\fR
.
The value is translated to a \fBTk_Uid\fR
(by passing it to \fBTk_GetUid\fR).  The resulting value
is stored in the target.
If \fBTK_CONFIG_NULL_OK\fR is specified in \fIspecFlags\fR and the value
is an empty string then the target will be set to NULL.
.TP
\fBTK_CONFIG_WINDOW\fR
.
The value must be a window path name.  It is translated to a
\fBTk_Window\fR token and the token is stored in the target.
.SH "GROUPED ENTRIES"
.PP
In some cases it is useful to generate multiple resources from
a single configuration value.  For example, a color name might
be used both to generate the background color for a widget (using
\fBTK_CONFIG_COLOR\fR) and to generate a 3-D border to draw around the
widget (using \fBTK_CONFIG_BORDER\fR).  In cases like this it is possible
to specify that several consecutive entries in \fIspecs\fR are to
be treated as a group.  The first entry is used to determine a value
(using its \fIargvName\fR, \fIdbName\fR,
\fIdbClass\fR, and \fIdefValue\fR fields).  The value will be processed
several times (one for each entry in the group), generating multiple
different resources and modifying multiple targets within \fIwidgRec\fR.
Each of the entries after the first must have a NULL value in its
\fIargvName\fR field;  this indicates that the entry is to be grouped
with the entry that precedes it.  Only the \fItype\fR and \fIoffset\fR
fields are used from these follow-on entries.
.SH "FLAGS"
.PP
The \fIflags\fR argument passed to \fBTk_ConfigureWidget\fR is used
in conjunction with the \fIspecFlags\fR fields in the entries of \fIspecs\fR
to provide additional control over the processing of configuration
options.  These values are used in three different ways as
described below.
.PP
First, if the \fIflags\fR argument to \fBTk_ConfigureWidget\fR has
the \fBTK_CONFIG_ARGV_ONLY\fR bit set
(i.e., \fIflags\fR | \fBTK_CONFIG_ARGV_ONLY\fR != 0),
then the option database and
\fIdefValue\fR fields are not used.  In this case, if an entry in
\fIspecs\fR does not match a field in \fIobjv\fR then nothing happens:
the corresponding target is not modified.  This feature is useful
when the goal is to modify certain configuration options while
leaving others in their current state, such as when a \fBconfigure\fR
widget command is being processed.
.PP
Second, the \fIspecFlags\fR field of an entry in \fIspecs\fR may be used
to control the processing of that entry.  Each \fIspecFlags\fR
field may consists of an OR-ed combination of the following values:
.TP
\fBTK_CONFIG_COLOR_ONLY\fR
.
If this bit is set then the entry will only be considered if the
display for \fItkwin\fR has more than one bit plane.  If the display
is monochromatic then this \fIspecs\fR entry will be ignored.
.TP
\fBTK_CONFIG_MONO_ONLY\fR
.
If this bit is set then the entry will only be considered if the
display for \fItkwin\fR has exactly one bit plane.  If the display
is not monochromatic then this \fIspecs\fR entry will be ignored.
.TP
\fBTK_CONFIG_NULL_OK\fR
.
This bit is only relevant for some types of entries (see the
descriptions of the various entry types above).
If this bit is set, it indicates that an empty string value
for the field is acceptable and if it occurs then the
target should be set to NULL or \fBNone\fR, depending
on the type of the target.
This flag is typically used to allow a
feature to be turned off entirely, e.g. set a cursor value to
\fBNone\fR so that a window simply inherits its parent's cursor.
If this bit is not set then empty strings are processed as strings,
which generally results in an error.
.TP
\fBTK_CONFIG_DONT_SET_DEFAULT\fR
.
If this bit is one, it means that the \fIdefValue\fR field of the
entry should only be used for returning the default value in
\fBTk_ConfigureInfo\fR.
In calls to \fBTk_ConfigureWidget\fR no default will be supplied
for entries with this flag set;  it is assumed that the
caller has already supplied a default value in the target location.
This flag provides a performance optimization where it is expensive
to process the default string:  the client can compute the default
once, save the value, and provide it before calling
\fBTk_ConfigureWidget\fR.
.PP
The \fBTK_CONFIG_MONO_ONLY\fR and \fBTK_CONFIG_COLOR_ONLY\fR flags are typically
used to specify different default values for
monochrome and color displays.  This is done by creating two
entries in \fIspecs\fR that are identical except for their
\fIdefValue\fR and \fIspecFlags\fR fields.  One entry should have
the value \fBTK_CONFIG_MONO_ONLY\fR in its \fIspecFlags\fR and the
default value for monochrome displays in its \fIdefValue\fR;  the
other entry should have the value \fBTK_CONFIG_COLOR_ONLY\fR in
its \fIspecFlags\fR and the appropriate \fIdefValue\fR for
color displays.
.PP
Third, it is possible to use \fIflags\fR and \fIspecFlags\fR
together to selectively disable some entries.  This feature is
not needed very often.  It is useful in cases where several
similar kinds of widgets are implemented in one place.  It allows
a single \fIspecs\fR table to be created with all the configuration
options for all the widget types.  When processing a particular
widget type, only entries relevant to that type will be used.  This
effect is achieved by setting the high-order bits (those in positions
equal to or greater than \fBTK_CONFIG_USER_BIT\fR) in \fIspecFlags\fR
values or in \fIflags\fR.  In order for a particular entry in
\fIspecs\fR to be used, its high-order bits must match exactly
the high-order bits of the \fIflags\fR value passed to
\fBTk_ConfigureWidget\fR.  If a \fIspecs\fR table is being used
for N different widget types, then N of the high-order bits will
be used.  Each \fIspecs\fR entry will have one of more of those
bits set in its \fIspecFlags\fR field to indicate the widget types
for which this entry is valid.  When calling \fBTk_ConfigureWidget\fR,
\fIflags\fR will have a single one of these bits set to select the
entries for the desired widget type.  For a working example of
this feature, see the code in tkButton.c.
.SH TK_CONFIGUREINFO
.PP
The \fBTk_ConfigureInfo\fR procedure may be used to obtain
information about one or all of the options for a given widget.
Given a token for a window (\fItkwin\fR), a table describing the
configuration options for a class of widgets (\fIspecs\fR), a
pointer to a widget record containing the current information for
a widget (\fIwidgRec\fR), and a NULL \fIargvName\fR argument,
\fBTk_ConfigureInfo\fR generates a string describing all of the
configuration options for the window.  The string is placed
in interpreter \fIinterp\fR's result.  Under normal circumstances
it returns \fBTCL_OK\fR;  if an error occurs then it returns \fBTCL_ERROR\fR
and the interpreter's result will contain an error message.
.PP
If \fIargvName\fR is NULL, then the value left in
the interpreter's result by \fBTk_ConfigureInfo\fR
consists of a list of one or more entries, each of which describes
one configuration option (i.e. one entry in \fIspecs\fR).  Each
entry in the list will contain either two or five values.  If the
corresponding entry in \fIspecs\fR has type \fBTK_CONFIG_SYNONYM\fR, then
the list will contain two values:  the \fIargvName\fR for the entry
and the \fIdbName\fR (synonym name).  Otherwise the list will contain
five values:  \fIargvName\fR, \fIdbName\fR, \fIdbClass\fR, \fIdefValue\fR,
and current value.  The current value is computed from the appropriate
field of \fIwidgRec\fR by calling procedures like \fBTk_NameOfColor\fR.
.PP
If the \fIargvName\fR argument to \fBTk_ConfigureInfo\fR is non-NULL,
then it indicates a single option, and information is returned only
for that option.  The string placed in the interpreter's result will be
a list containing two or five values as described above;  this will
be identical to the corresponding sublist that would have been returned
if \fIargvName\fR had been NULL.
.PP
The \fIflags\fR argument to \fBTk_ConfigureInfo\fR is used to restrict
the \fIspecs\fR entries to consider, just as for \fBTk_ConfigureWidget\fR.
.SH TK_CONFIGUREVALUE
.PP
\fBTk_ConfigureValue\fR takes arguments similar to \fBTk_ConfigureInfo\fR;
instead of returning a list of values, it just returns the current value
of the option given by \fIargvName\fR (\fIargvName\fR must not be NULL).
The value is returned in interpreter \fIinterp\fR's result and \fBTCL_OK\fR is
normally returned as the procedure's result.
If an error occurs in \fBTk_ConfigureValue\fR (e.g., \fIargvName\fR is
not a valid option name), \fBTCL_ERROR\fR is returned and an error message
is left in the interpreter's result.
This procedure is typically called to implement \fBcget\fR widget
commands.
.SH TK_FREEOPTIONS
.PP
The \fBTk_FreeOptions\fR procedure may be invoked during widget cleanup
to release all of the resources associated with configuration options.
It scans through \fIspecs\fR and for each entry corresponding to a
resource that must be explicitly freed (e.g. those with
type \fBTK_CONFIG_COLOR\fR), it frees the resource in the widget record.
If the field in the widget record does not refer to a resource (e.g.
it contains a null pointer) then no resource is freed for that
entry.
After freeing a resource, \fBTk_FreeOptions\fR sets the
corresponding field of the widget record to null.
.SH "CUSTOM OPTION TYPES"
.PP
Applications can extend the built-in configuration types with additional
configuration types by writing procedures to parse and print options
of the a type and creating a structure pointing to those procedures:
.CS
typedef struct {
    Tk_OptionParseProc *\fIparseProc\fR;
    Tk_OptionPrintProc *\fIprintProc\fR;
    void *\fIclientData\fR;
} \fBTk_CustomOption\fR;

typedef int \fBTk_OptionParseProc\fR(
        void *\fIclientData\fR,
        Tcl_Interp *\fIinterp\fR,
        Tk_Window \fItkwin\fR,
        const char *\fIvalue\fR,
        char *\fIwidgRec\fR,
        Tcl_Size \fIoffset\fR);

typedef const char *\fBTk_OptionPrintProc\fR(
        void *\fIclientData\fR,
        Tk_Window \fItkwin\fR,
        char *\fIwidgRec\fR,
        Tcl_Size \fIoffset\fR,
        Tcl_FreeProc **\fIfreeProcPtr\fR);
.CE
The Tk_CustomOption structure contains three fields, which are pointers
to the two procedures and a \fIclientData\fR value to be passed to those
procedures when they are invoked.  The \fIclientData\fR value typically
points to a structure containing information that is needed by the
procedures when they are parsing and printing options.
.PP
The \fIparseProc\fR procedure is invoked by
\fBTk_ConfigureWidget\fR to parse a string and store the resulting
value in the widget record.
The \fIclientData\fR argument is a copy of the \fIclientData\fR
field in the Tk_CustomOption structure.
The \fIinterp\fR argument points to a Tcl interpreter used for
error reporting.  \fITkwin\fR is a copy of the \fItkwin\fR argument
to \fBTk_ConfigureWidget\fR.  The \fIvalue\fR argument is a string
describing the value for the option;  it could have been specified
explicitly in the call to \fBTk_ConfigureWidget\fR or it could
come from the option database or a default.
\fIValue\fR will never be a null pointer but it may point to
an empty string.
\fIRecordPtr\fR is the same as the \fIwidgRec\fR argument to
\fBTk_ConfigureWidget\fR;  it points to the start of the widget
record to modify.
The last argument, \fIoffset\fR, gives the offset in bytes from the start
of the widget record to the location where the option value is to
be placed.  The procedure should translate the string to whatever
form is appropriate for the option and store the value in the widget
record.  It should normally return \fBTCL_OK\fR, but if an error occurs
in translating the string to a value then it should return \fBTCL_ERROR\fR
and store an error message in interpreter \fIinterp\fR's result.
.PP
The \fIprintProc\fR procedure is called
by \fBTk_ConfigureInfo\fR to produce a string value describing an
existing option.
Its \fIclientData\fR, \fItkwin\fR, \fIwidgRec\fR, and \fIoffset\fR
arguments all have the same meaning as for Tk_OptionParseProc
procedures.
The \fIprintProc\fR procedure should examine the option whose value
is stored at \fIoffset\fR in \fIwidgRec\fR, produce a string describing
that option, and return a pointer to the string.
If the string is stored in dynamically-allocated memory, then
the procedure must set \fI*freeProcPtr\fR to the address of
a procedure to call to free the string's memory;  \fBTk_ConfigureInfo\fR
will call this procedure when it is finished with the string.
If the result string is stored in static memory then \fIprintProc\fR
need not do anything with the \fIfreeProcPtr\fR argument.
.PP
Once \fIparseProc\fR and \fIprintProc\fR have been defined and a
Tk_CustomOption structure has been created for them, options of this
new type may be manipulated with Tk_ConfigSpec entries whose \fItype\fR
fields are \fBTK_CONFIG_CUSTOM\fR and whose \fIcustomPtr\fR fields point
to the Tk_CustomOption structure.
.SH EXAMPLES
.PP
Although the explanation of \fBTk_ConfigureWidget\fR is fairly
complicated, its actual use is pretty straightforward.
The easiest way to get started is to copy the code
from an existing widget.
The library implementation of frames
(tkFrame.c) has a simple configuration table, and the library
implementation of buttons (tkButton.c) has a much more complex
table that uses many of the fancy \fIspecFlags\fR mechanisms.
.SH "SEE ALSO"
Tk_SetOptions(3)
.SH KEYWORDS
anchor, bitmap, boolean, border, cap style, color, configuration options,
cursor, custom, double, font, integer, join style, justify, millimeters,
pixels, relief, synonym, uid


================================================
FILE: doc/ConfigWind.3
================================================
'\"
'\" Copyright (c) 1990-1993 The Regents of the University of California.
'\" Copyright (c) 1994-1996 Sun Microsystems, Inc.
'\"
'\" See the file "license.terms" for information on usage and redistribution
'\" of this file, and for a DISCLAIMER OF ALL WARRANTIES.
'\"
.TH Tk_ConfigureWindow 3 4.0 Tk "Tk Library Procedures"
.so man.macros
.BS
.SH NAME
Tk_ConfigureWindow, Tk_MoveWindow, Tk_ResizeWindow, Tk_MoveResizeWindow, Tk_SetWindowBorderWidth, Tk_ChangeWindowAttributes, Tk_SetWindowBackground, Tk_SetWindowBackgroundPixmap, Tk_SetWindowBorder, Tk_SetWindowBorderPixmap, Tk_SetWindowColormap, Tk_DefineCursor, Tk_UndefineCursor \- change window configuration or attributes
.SH SYNOPSIS
.nf
\fB#include <tk.h>\fR
.sp
\fBTk_ConfigureWindow\fR(\fItkwin, valueMask, valuePtr\fR)
.sp
\fBTk_MoveWindow\fR(\fItkwin, x, y\fR)
.sp
\fBTk_ResizeWindow\fR(\fItkwin, width, height\fR)
.sp
\fBTk_MoveResizeWindow\fR(\fItkwin, x,  y, width, height\fR)
.sp
\fBTk_SetWindowBorderWidth\fR(\fItkwin, borderWidth\fR)
.sp
\fBTk_ChangeWindowAttributes\fR(\fItkwin, valueMask, attsPtr\fR)
.sp
\fBTk_SetWindowBackground\fR(\fItkwin, pixel\fR)
.sp
\fBTk_SetWindowBackgroundPixmap\fR(\fItkwin, pixmap\fR)
.sp
\fBTk_SetWindowBorder\fR(\fItkwin, pixel\fR)
.sp
\fBTk_SetWindowBorderPixmap\fR(\fItkwin, pixmap\fR)
.sp
\fBTk_SetWindowColormap\fR(\fItkwin, colormap\fR)
.sp
\fBTk_DefineCursor\fR(\fItkwin, cursor\fR)
.sp
\fBTk_UndefineCursor\fR(\fItkwin\fR)
.fi
.SH ARGUMENTS
.AS XSetWindowAttributes borderWidth
.AP Tk_Window tkwin in
Token for window.
.AP "unsigned int" valueMask in
OR-ed mask of values like \fBCWX\fR or \fBCWBorderPixel\fR,
indicating which fields of \fI*valuePtr\fR or \fI*attsPtr\fR to use.
.AP XWindowChanges *valuePtr in
Points to a structure containing new values for the configuration
parameters selected by \fIvalueMask\fR.  Fields not selected
by \fIvalueMask\fR are ignored.
.AP int x in
New x-coordinate for \fItkwin\fR's top left pixel (including
border, if any) within tkwin's parent.
.AP int y in
New y-coordinate for \fItkwin\fR's top left pixel (including
border, if any) within tkwin's parent.
.AP "int" width in
New width for \fItkwin\fR (interior, not including border).
.AP "int" height in
New height for \fItkwin\fR (interior, not including border).
.AP "int" borderWidth in
New width for \fItkwin\fR's border.
.AP XSetWindowAttributes *attsPtr in
Points to a structure containing new values for the attributes
given by the \fIvalueMask\fR argument.  Attributes not selected
by \fIvalueMask\fR are ignored.
.AP "unsigned long" pixel in
New background or border color for window.
.AP Pixmap pixmap in
New pixmap to use for background or border of \fItkwin\fR.  WARNING:
cannot necessarily be deleted immediately, as for Xlib calls.  See
note below.
.AP Colormap colormap in
New colormap to use for \fItkwin\fR.
.AP Tk_Cursor cursor in
New cursor to use for \fItkwin\fR.  If \fBNone\fR is specified, then
\fItkwin\fR will not have its own cursor;  it will use the cursor
of its parent.
.BE
.SH DESCRIPTION
.PP
These procedures are analogous to the X library procedures
with similar names, such as \fBXConfigureWindow\fR.  Each
one of the above procedures calls the corresponding X procedure
and also saves the configuration information in Tk's local
structure for the window.  This allows the information to
be retrieved quickly by the application (using macros such
as \fBTk_X\fR and \fBTk_Height\fR) without having to contact
the X server.  In addition, if no X window has actually been
created for \fItkwin\fR yet, these procedures do not issue
X operations or cause event handlers to be invoked;  they save
the information in Tk's local
structure for the window;  when the window is created later,
the saved information will be used to configure the window.
.PP
See the X library documentation for details on what these
procedures do and how they use their arguments.
.PP
In the procedures \fBTk_ConfigureWindow\fR, \fBTk_MoveWindow\fR,
\fBTk_ResizeWindow\fR, \fBTk_MoveResizeWindow\fR, and
\fBTk_SetWindowBorderWidth\fR,
if \fItkwin\fR is an internal window then event handlers interested
in configure events are invoked immediately, before the procedure
returns.  If \fItkwin\fR is a top-level window
then the event handlers will be invoked later, after X has seen
the request and returned an event for it.
.PP
Applications using Tk should never call procedures like
\fBXConfigureWindow\fR directly;  they should always use the
corresponding Tk procedures.
.PP
The size and location of a window should only be modified by the
appropriate geometry manager for that window and never by a window
itself (but see \fBTk_MoveToplevelWindow\fR for moving a top-level
window).
.PP
You may not use \fBTk_ConfigureWindow\fR to change the
stacking order of a window (\fIvalueMask\fR may not contain the
\fBCWSibling\fR or \fBCWStackMode\fR bits).
To change the stacking order, use the procedure \fBTk_RestackWindow\fR.
.PP
The procedure \fBTk_SetWindowColormap\fR will automatically add
\fItkwin\fR to the \fBTK_COLORMAP_WINDOWS\fR property of its
nearest top-level ancestor if the new colormap is different from
that of \fItkwin\fR's parent and \fItkwin\fR is not already in
the \fBTK_COLORMAP_WINDOWS\fR property.
.SH BUGS
.PP
\fBTk_SetWindowBackgroundPixmap\fR and \fBTk_SetWindowBorderPixmap\fR
differ slightly from their Xlib counterparts in that the \fIpixmap\fR
argument may not necessarily be deleted immediately after calling
one of these procedures.  This is because \fItkwin\fR's window
may not exist yet at the time of the call, in which case \fIpixmap\fR
is merely saved and used later when \fItkwin\fR's window is actually
created.  If you wish to delete \fIpixmap\fR, then call
\fBTk_MakeWindowExist\fR first to be sure that \fItkwin\fR's window exists
and \fIpixmap\fR has been passed to the X server.
.PP
A similar problem occurs for the \fIcursor\fR argument passed to
\fBTk_DefineCursor\fR.  The solution is the same as for pixmaps above:
call \fBTk_MakeWindowExist\fR before freeing the cursor.
.SH "SEE ALSO"
Tk_MoveToplevelWindow, Tk_RestackWindow
.SH KEYWORDS
attributes, border, color, configure, height, pixel, pixmap, width, window, x, y


================================================
FILE: doc/CoordToWin.3
================================================
'\"
'\" Copyright (c) 1990-1993 The Regents of the University of California.
'\" Copyright (c) 1994-1996 Sun Microsystems, Inc.
'\"
'\" See the file "license.terms" for information on usage and redistribution
'\" of this file, and for a DISCLAIMER OF ALL WARRANTIES.
'\"
.TH Tk_CoordsToWindow 3 "" Tk "Tk Library Procedures"
.so man.macros
.BS
.SH NAME
Tk_CoordsToWindow \- Find window containing a point
.SH SYNOPSIS
.nf
\fB#include <tk.h>\fR
.sp
Tk_Window
\fBTk_CoordsToWindow\fR(\fIrootX, rootY, tkwin\fR)
.fi
.SH ARGUMENTS
.AS Tk_Window tkwin
.AP int rootX in
X-coordinate (in root window coordinates).
.AP int rootY in
Y-coordinate (in root window coordinates).
.AP Tk_Window tkwin in
Token for window that identifies application.
.BE
.SH DESCRIPTION
.PP
\fBTk_CoordsToWindow\fR locates the window that contains a given point.
The point is specified in root coordinates with \fIrootX\fR and
\fIrootY\fR (if a virtual-root window manager is in use then
\fIrootX\fR and \fIrootY\fR are in the coordinate system of the
virtual root window).
The return value from the procedure is a token for the window that
contains the given point.
If the point is not in any window, or if the containing window
is not in the same application as \fItkwin\fR, then NULL is
returned.
.PP
The containing window is decided using the same rules that determine
which window contains the mouse cursor:  if a parent and a child both
contain the point then the child gets preference, and if two siblings
both contain the point then the highest one in the stacking order
(i.e. the one that's visible on the screen) gets preference.
.SH KEYWORDS
containing, coordinates, root window


================================================
FILE: doc/CrtCmHdlr.3
================================================
'\"
'\" Copyright (c) 2000 Ajuba Solutions.
'\"
'\" See the file "license.terms" for information on usage and redistribution
'\" of this file, and for a DISCLAIMER OF ALL WARRANTIES.
'\"
.TH Tk_CreateClientMessageHandler 3 "8.4" Tk "Tk Library Procedures"
.so man.macros
.BS
.SH NAME
Tk_CreateClientMessageHandler, Tk_DeleteClientMessageHandler \- associate procedure callback with ClientMessage type X events
.SH SYNOPSIS
.nf
\fB#include <tk.h>\fR
.sp
\fBTk_CreateClientMessageHandler\fR(\fIproc\fR)
.sp
\fBTk_DeleteClientMessageHandler\fR(\fIproc\fR)
.fi
.SH ARGUMENTS
.AP Tk_ClientMessageProc *proc in
Procedure to invoke whenever a ClientMessage X event occurs on any display.
.BE
.SH DESCRIPTION
.PP
\fBTk_CreateClientMessageHandler\fR arranges for \fIproc\fR to be invoked
in the future whenever a ClientMessage X event occurs that is not handled by
\fBWM_PROTOCOL\fR.  \fBTk_CreateClientMessageHandler\fR is intended for use
by applications which need to watch X ClientMessage events, such as drag and
drop applications.
.PP
The callback to \fIproc\fR will be made by \fBTk_HandleEvent\fR;
this mechanism only works in programs that dispatch events
through \fBTk_HandleEvent\fR (or through other Tk procedures that
call \fBTk_HandleEvent\fR, such as \fBTcl_DoOneEvent\fR or
\fBTk_MainLoop\fR).
.PP
\fIProc\fR should have arguments and result that match the
type \fBTk_ClientMessageProc\fR:
.CS
typedef int \fBTk_ClientMessageProc\fR(
        Tk_Window \fItkwin\fR,
        XEvent *\fIeventPtr\fR);
.CE
The \fItkwin\fR parameter to \fIproc\fR is the Tk window which is
associated with this event.  \fIEventPtr\fR is a pointer to the X event.
.PP
Whenever an X ClientMessage event is processed by \fBTk_HandleEvent\fR,
the \fIproc\fR is called if it was not handled as a \fBWM_PROTOCOL\fR.
The return value from \fIproc\fR is normally 0.
A non-zero return value indicates that the event is not to be handled
further; that is, \fIproc\fR has done all processing that is to be
allowed for the event.
.PP
If there are multiple ClientMessage event handlers, each one is called
for each event, in the order in which they were established.
.PP
\fBTk_DeleteClientMessageHandler\fR may be called to delete a
previously-created ClientMessage event handler: it deletes each handler it
finds that matches the \fIproc\fR argument.  If no such handler exists,
then \fBTk_DeleteClientMessageHandler\fR returns without doing anything.
Although Tk supports it, it's probably a bad idea to have more than one
callback with the same \fIproc\fR argument.
.SH KEYWORDS
bind, callback, event, handler


================================================
FILE: doc/CrtConsoleChan.3
================================================
'\"
'\" Copyright (c) 2007 ActiveState Software Inc.
'\"
'\" See the file "license.terms" for information on usage and redistribution
'\" of this file, and for a DISCLAIMER OF ALL WARRANTIES.
'\"
.TH Tk_InitConsoleChannels 3 8.5 Tk "Tk Library Procedures"
.so man.macros
.BS
.SH NAME
Tk_InitConsoleChannels \- Install the console channels as standard channels
.SH SYNOPSIS
.nf
\fB#include <tk.h>\fR
.sp
\fBTk_InitConsoleChannels\fR(\fIinterp\fR)
.fi
.SH ARGUMENTS
.AS Tcl_Interp *interp in
.AP Tcl_Interp *interp in
Interpreter in which the console channels are created.
.BE
.SH DESCRIPTION
.PP
\fBTk_InitConsoleChannels\fR is invoked to create a set of console
channels and install them as the standard channels. All I/O on these
channels will be discarded until \fBTk_CreateConsoleWindow\fR is
called to attach the console to a text widget.
.PP
This function is for use by shell applications based on Tk, like
\fBwish\fR, on platforms which have no standard channels in graphical
mode, like Win32.
.PP
The \fIinterp\fR argument is the interpreter in which to create and
install the console channels.
.PP
\fBNOTE:\fR If this function is used it has to be called before the
first call to \fBTcl_RegisterChannel\fR, directly, or indirectly
through other channel functions. Because otherwise the standard
channels will be already initialized to the system defaults, which will
be nonsensical for the case \fBTk_InitConsoleChannels\fR is for.
.SH "SEE ALSO"
console(n)
.SH KEYWORDS
standard channels, console


================================================
FILE: doc/CrtErrHdlr.3
================================================
'\"
'\" Copyright (c) 1990 The Regents of the University of California.
'\" Copyright (c) 1994-1996 Sun Microsystems, Inc.
'\"
'\" See the file "license.terms" for information on usage and redistribution
'\" of this file, and for a DISCLAIMER OF ALL WARRANTIES.
'\"
.TH Tk_CreateErrorHandler 3 "" Tk "Tk Library Procedures"
.so man.macros
.BS
.SH NAME
Tk_CreateErrorHandler, Tk_DeleteErrorHandler \- handle X protocol errors
.SH SYNOPSIS
.nf
\fB#include <tk.h>\fR
.sp
Tk_ErrorHandler
\fBTk_CreateErrorHandler\fR(\fIdisplay, error, request, minor, proc, clientData\fR)
.sp
\fBTk_DeleteErrorHandler\fR(\fIhandler\fR)
.fi
.SH ARGUMENTS
.AS "Tk_ErrorHandler" clientData
.AP Display *display in
Display whose errors are to be handled.
.AP int error in
Match only error events with this value in the \fIerror_code\fR
field.  If \-1, then match any \fIerror_code\fR value.
.AP int request in
Match only error events with this value in the \fIrequest_code\fR
field.  If \-1, then match any \fIrequest_code\fR value.
.AP int minor in
Match only error events with this value in the \fIminor_code\fR
field.  If \-1, then match any \fIminor_code\fR value.
.AP Tk_ErrorProc *proc in
Procedure to invoke whenever an error event is received for
\fIdisplay\fR and matches \fIerror\fR, \fIrequest\fR, and \fIminor\fR.
NULL means ignore any matching errors.
.AP void *clientData in
Arbitrary one-word value to pass to \fIproc\fR.
.AP Tk_ErrorHandler handler in
Token for error handler to delete (return value from a previous
call to \fBTk_CreateErrorHandler\fR).
.BE
.SH DESCRIPTION
.PP
\fBTk_CreateErrorHandler\fR arranges for a particular procedure
(\fIproc\fR) to be called whenever certain protocol errors occur on a
particular display (\fIdisplay\fR).  Protocol errors occur when
the X protocol is used incorrectly, such as attempting to map a window
that does not exist.  See the Xlib documentation for \fBXSetErrorHandler\fR
for more information on the kinds of errors that can occur.
For \fIproc\fR to be invoked
to handle a particular error, five things must occur:
.IP [1]
The error must pertain to \fIdisplay\fR.
.IP [2]
Either the \fIerror\fR argument to \fBTk_CreateErrorHandler\fR
must have been \-1, or the \fIerror\fR argument must match
the \fIerror_code\fR field from the error event.
.IP [3]
Either the \fIrequest\fR argument to \fBTk_CreateErrorHandler\fR
must have been \-1, or the \fIrequest\fR argument must match
the \fIrequest_code\fR field from the error event.
.IP [4]
Either the \fIminor\fR argument to \fBTk_CreateErrorHandler\fR
must have been \-1, or the \fIminor\fR argument must match
the \fIminor_code\fR field from the error event.
.IP [5]
The protocol request to which the error pertains must have been
made when the handler was active (see below for more information).
.PP
\fIProc\fR should have arguments and result that match the
following type:
.CS
typedef int \fBTk_ErrorProc\fR(
        void *\fIclientData\fR,
        XErrorEvent *\fIerrEventPtr\fR);
.CE
The \fIclientData\fR parameter to \fIproc\fR is a copy of the \fIclientData\fR
argument given to \fBTcl_CreateErrorHandler\fR when the callback
was created.  Typically, \fIclientData\fR points to a data
structure containing application-specific information that is
needed to deal with the error.  \fIErrEventPtr\fR is
a pointer to the X error event.
The procedure \fIproc\fR should return an integer value.  If it
returns 0 it means that \fIproc\fR handled the error completely and there
is no need to take any other action for the error.  If it returns
non-zero it means \fIproc\fR was unable to handle the error.
.PP
If a value of NULL is specified for \fIproc\fR, all matching errors
will be ignored:  this will produce the same result as if a procedure
had been specified that always returns 0.
.PP
If more than more than one handler matches a particular error, then
they are invoked in turn.  The handlers will be invoked in reverse
order of creation:  most recently declared handler first.
If any handler returns 0, then subsequent (older) handlers will
not be invoked.  If no handler returns 0, then Tk invokes X's
default error handler, which prints an error message and aborts the
program.  If you wish to have a default handler that deals with errors
that no other handler can deal with, then declare it first.
.PP
The X documentation states that
.QW "the error handler should not call any functions (directly or indirectly) on the display that will generate protocol requests or that will look for input events."
This restriction applies to handlers declared by \fBTk_CreateErrorHandler\fR;
disobey it at your own risk.
.PP
\fBTk_DeleteErrorHandler\fR may be called to delete a
previously-created error handler.  The \fIhandler\fR argument
identifies the error handler, and should be a value returned by
a previous call to \fBTk_CreateEventHandler\fR.
.PP
A particular error handler applies to errors resulting
from protocol requests generated between
the call to \fBTk_CreateErrorHandler\fR and the call to
\fBTk_DeleteErrorHandler\fR.  However, the actual callback
to \fIproc\fR may not occur until after the \fBTk_DeleteErrorHandler\fR
call, due to buffering in the client and server.
If an error event pertains to
a protocol request made just before calling \fBTk_DeleteErrorHandler\fR,
then the error event may not have been processed
before the \fBTk_DeleteErrorHandler\fR
call.  When this situation arises, Tk will save information about
the handler and
invoke the handler's \fIproc\fR later when the error event
finally arrives.
If an application wishes to delete an error handler and know
for certain that all relevant errors have been processed,
it should first call \fBTk_DeleteErrorHandler\fR and then
call \fBXSync\fR;  this will flush out any buffered requests and errors,
but will result in a performance penalty because
it requires communication to and from the X server.  After the
\fBXSync\fR call Tk is guaranteed not to call any error
handlers deleted before the \fBXSync\fR call.
.PP
For the Tk error handling mechanism to work properly, it is essential
that application code never calls \fBXSetErrorHandler\fR directly;
applications should use only \fBTk_CreateErrorHandler\fR.
.SH KEYWORDS
callback, error, event, handler


================================================
FILE: doc/CrtGenHdlr.3
================================================
'\"
'\" Copyright (c) 1992-1994 The Regents of the University of California.
'\" Copyright (c) 1994-1996 Sun Microsystems, Inc.
'\"
'\" See the file "license.terms" for information on usage and redistribution
'\" of this file, and for a DISCLAIMER OF ALL WARRANTIES.
'\"
.TH Tk_CreateGenericHandler 3 "" Tk "Tk Library Procedures"
.so man.macros
.BS
.SH NAME
Tk_CreateGenericHandler, Tk_DeleteGenericHandler \- associate procedure callback with all X events
.SH SYNOPSIS
.nf
\fB#include <tk.h>\fR
.sp
\fBTk_CreateGenericHandler\fR(\fIproc, clientData\fR)
.sp
\fBTk_DeleteGenericHandler\fR(\fIproc, clientData\fR)
.fi
.SH ARGUMENTS
.AS "Tk_GenericProc" clientData
.AP Tk_GenericProc *proc in
Procedure to invoke whenever any X event occurs on any display.
.AP void *clientData in
Arbitrary one-word value to pass to \fIproc\fR.
.BE
.SH DESCRIPTION
.PP
\fBTk_CreateGenericHandler\fR arranges for \fIproc\fR to be
invoked in the future whenever any X event occurs.  This mechanism is
\fInot\fR intended for dispatching X events on windows managed by Tk
(you should use \fBTk_CreateEventHandler\fR for this purpose).
\fBTk_CreateGenericHandler\fR is intended for other purposes, such
as tracing X events, monitoring events on windows not owned by Tk,
accessing X-related libraries that were not originally designed for
use with Tk, and so on.
.PP
The callback to \fIproc\fR will be made by \fBTk_HandleEvent\fR;
this mechanism only works in programs that dispatch events
through \fBTk_HandleEvent\fR (or through other Tk procedures that
call \fBTk_HandleEvent\fR, such as \fBTcl_DoOneEvent\fR or
\fBTk_MainLoop\fR).
.PP
\fIProc\fR should have arguments and result that match the
type \fBTk_GenericProc\fR:
.CS
typedef int \fBTk_GenericProc\fR(
        void *\fIclientData\fR,
        XEvent *\fIeventPtr\fR);
.CE
The \fIclientData\fR parameter to \fIproc\fR is a copy of the \fIclientData\fR
argument given to \fBTk_CreateGenericHandler\fR when the callback
was created.  Typically, \fIclientData\fR points to a data
structure containing application-specific information about
how to handle events.
\fIEventPtr\fR is a pointer to the X event.
.PP
Whenever an X event is processed by \fBTk_HandleEvent\fR, \fIproc\fR
is called.  The return value from \fIproc\fR is normally 0.
A non-zero return value indicates that the event is not to be handled
further; that is, \fIproc\fR has done all processing that is to be
allowed for the event.
.PP
If there are multiple generic event handlers, each one is called
for each event, in the order in which they were established.
.PP
\fBTk_DeleteGenericHandler\fR may be called to delete a
previously-created generic event handler:  it deletes each handler
it finds that matches the \fIproc\fR and \fIclientData\fR arguments.  If
no such handler exists, then \fBTk_DeleteGenericHandler\fR returns
without doing anything.  Although Tk supports it, it's probably
a bad idea to have more than one callback with the same
\fIproc\fR and \fIclientData\fR arguments.
.PP
Establishing a generic event handler does nothing to ensure that the
process will actually receive the X events that the handler wants to
process.
For example, it is the caller's responsibility to invoke
\fBXSelectInput\fR to select the desired events, if that is necessary.
.SH KEYWORDS
bind, callback, event, handler


================================================
FILE: doc/CrtImgType.3
================================================
'\"
'\" Copyright (c) 1994 The Regents of the University of California.
'\" Copyright (c) 1994-1997 Sun Microsystems, Inc.
'\"
'\" See the file "license.terms" for information on usage and redistribution
'\" of this file, and for a DISCLAIMER OF ALL WARRANTIES.
'\"
.TH Tk_CreateImageType 3 8.5 Tk "Tk Library Procedures"
.so man.macros
.BS
.SH NAME
Tk_CreateImageType, Tk_GetImageModelData \- define new kind of image
.SH SYNOPSIS
.nf
\fB#include <tk.h>\fR
.sp
\fBTk_CreateImageType\fR(\fItypePtr\fR)
.sp
void *
\fBTk_GetImageModelData\fR(\fIinterp, name, typePtrPtr\fR)
.fi
.SH ARGUMENTS
.AS "const Tk_ImageType" *typePtrPtr
.AP "const Tk_ImageType" *typePtr in
Structure that defines the new type of image.
For Tk 8.4 and earlier this must be static: a
pointer to this structure is retained by the image code.
In Tk 8.5, this limitation was relaxed.
.AP Tcl_Interp *interp in
Interpreter in which image was created.
.AP "const char" *name in
Name of existing image.
.AP Tk_ImageType **typePtrPtr out
Points to word in which to store a pointer to type information for
the given image, if it exists.
.AP char ***argvPtr in/out
Pointer to argument list
.BE
.SH DESCRIPTION
.PP
\fBTk_CreateImageType\fR is invoked to define a new kind of image.
An image type corresponds to a particular value of the \fItype\fR
argument for the \fBimage create\fR command.  There may exist
any number of different image types, and new types may be defined
dynamically by calling \fBTk_CreateImageType\fR.
For example, there might be one type for 2-color bitmaps,
another for multi-color images, another for dithered images,
another for video, and so on.
.PP
The code that implements a new image type is called an
\fIimage manager\fR.
It consists of a collection of procedures plus three different
kinds of data structures.
The first data structure is a Tk_ImageType structure, which contains
the name of the image type and pointers to five procedures provided
by the image manager to deal with images of this type:
.CS
typedef struct {
    const char *\fIname\fR;
    Tk_ImageCreateProc *\fIcreateProc\fR;
    Tk_ImageGetProc *\fIgetProc\fR;
    Tk_ImageDisplayProc *\fIdisplayProc\fR;
    Tk_ImageFreeProc *\fIfreeProc\fR;
    Tk_ImageDeleteProc *\fIdeleteProc\fR;
} \fBTk_ImageType\fR;
.CE
The fields of this structure will be described in later subsections
of this entry.
.PP
The second major data structure manipulated by an image manager
is called an \fIimage model\fR;  it contains overall information
about a particular image, such as the values of the configuration
options specified in an \fBimage create\fR command.
There will usually be one of these structures for each
invocation of the \fBimage create\fR command.
.PP
The third data structure related to images is an \fIimage instance\fR.
There will usually be one of these structures for each usage of an
image in a particular widget.
It is possible for a single image to appear simultaneously
in multiple widgets, or even multiple times in the same widget.
Furthermore, different instances may be on different screens
or displays.
The image instance data structure describes things that may
vary from instance to instance, such as colors and graphics
contexts for redisplay.
There is usually one instance structure for each \fB\-image\fR
option specified for a widget or canvas item.
.PP
The following subsections describe the fields of a Tk_ImageType
in more detail.
.SS NAME
.PP
\fItypePtr->name\fR provides a name for the image type.
Once \fBTk_CreateImageType\fR returns, this name may be used
in \fBimage create\fR commands to create images of the new
type.
If there already existed an image type by this name then
the new image type replaces the old one.
.SS CREATEPROC
.PP
\fItypePtr->createProc\fR provides the address of a procedure for
Tk to call whenever \fBimage create\fR is invoked to create
an image of the new type.
\fItypePtr->createProc\fR must match the following prototype:
.CS
typedef int \fBTk_ImageCreateProc\fR(
        Tcl_Interp *\fIinterp\fR,
        const char *\fIname\fR,
        int \fIobjc\fR,
        Tcl_Obj *const *\fIobjv\fR,
        const Tk_ImageType *\fItypePtr\fR,
        Tk_ImageModel \fImodel\fR,
        void **\fImodelDataPtr\fR);
.CE
The \fIinterp\fR argument is the interpreter in which the \fBimage\fR
command was invoked, and \fIname\fR is the name for the new image,
which was either specified explicitly in the \fBimage\fR command
or generated automatically by the \fBimage\fR command.
The \fIobjc\fR and \fIobjv\fR arguments describe all the configuration
options for the new image (everything after the name argument to
\fBimage\fR).
The \fImodel\fR argument is a token that refers to Tk's information
about this image;  the image manager must return this token to
Tk when invoking the \fBTk_ImageChanged\fR procedure.
Typically \fIcreateProc\fR will parse \fIobjc\fR and \fIobjv\fR
and create an image model data structure for the new image.
\fIcreateProc\fR may store an arbitrary one-word value at
*\fImodelDataPtr\fR, which will be passed back to the
image manager when other callbacks are invoked.
Typically the value is a pointer to the model data
structure for the image.
.PP
If \fIcreateProc\fR encounters an error, it should leave an error
message in the interpreter result and return \fBTCL_ERROR\fR;  otherwise
it should return \fBTCL_OK\fR.
.PP
\fIcreateProc\fR should call \fBTk_ImageChanged\fR in order to set the
size of the image and request an initial redisplay.
.SS GETPROC
.PP
\fItypePtr->getProc\fR is invoked by Tk whenever a widget
calls \fBTk_GetImage\fR to use a particular image.
This procedure must match the following prototype:
.CS
typedef void *\fBTk_ImageGetProc\fR(
        Tk_Window \fItkwin\fR,
        void *\fImodelData\fR);
.CE
The \fItkwin\fR argument identifies the window in which the
image will be used and \fImodelData\fR is the value
returned by \fIcreateProc\fR when the image model was created.
\fIgetProc\fR will usually create a data structure for the new
instance, including such things as the resources needed to
display the image in the given window.
\fIgetProc\fR returns a one-word token for the instance, which
is typically the address of the instance data structure.
Tk will pass this value back to the image manager when invoking
its \fIdisplayProc\fR and \fIfreeProc\fR procedures.
.SS DISPLAYPROC
.PP
\fItypePtr->displayProc\fR is invoked by Tk whenever an image needs
to be displayed (i.e., whenever a widget calls \fBTk_RedrawImage\fR).
\fIdisplayProc\fR must match the following prototype:
.CS
typedef void \fBTk_ImageDisplayProc\fR(
        void *\fIinstanceData\fR,
        Display *\fIdisplay\fR,
        Drawable \fIdrawable\fR,
        int \fIimageX\fR,
        int \fIimageY\fR,
        int \fIwidth\fR,
        int \fIheight\fR,
        int \fIdrawableX\fR,
        int \fIdrawableY\fR);
.CE
The \fIinstanceData\fR will be the same as the value returned by
\fIgetProc\fR when the instance was created.
\fIdisplay\fR and \fIdrawable\fR indicate where to display the
image;  \fIdrawable\fR may be a pixmap rather than
the window specified to \fIgetProc\fR (this is usually the case,
since most widgets double-buffer their redisplay to get smoother
visual effects).
\fIimageX\fR, \fIimageY\fR, \fIwidth\fR, and \fIheight\fR
identify the region of the image that must be redisplayed.
This region will always be within the size of the image
as specified in the most recent call to \fBTk_ImageChanged\fR.
\fIdrawableX\fR and \fIdrawableY\fR indicate where in \fIdrawable\fR
the image should be displayed;  \fIdisplayProc\fR should display
the given region of the image so that point (\fIimageX\fR, \fIimageY\fR)
in the image appears at (\fIdrawableX\fR, \fIdrawableY\fR) in \fIdrawable\fR.
.SS FREEPROC
.PP
\fItypePtr->freeProc\fR contains the address of a procedure that
Tk will invoke when an image instance is released (i.e., when
\fBTk_FreeImage\fR is invoked).
This can happen, for example, when a widget is deleted or a image item
in a canvas is deleted, or when the image displayed in a widget or
canvas item is changed.
\fIfreeProc\fR must match the following prototype:
.CS
typedef void \fBTk_ImageFreeProc\fR(
        void *\fIinstanceData\fR,
        Display *\fIdisplay\fR);
.CE
The \fIinstanceData\fR will be the same as the value returned by
\fIgetProc\fR when the instance was created, and \fIdisplay\fR
is the display containing the window for the instance.
\fIfreeProc\fR should release any resources associated with the
image instance, since the instance will never be used again.
.SS DELETEPROC
.PP
\fItypePtr->deleteProc\fR is a procedure that Tk invokes when an
image is being deleted (i.e. when the \fBimage delete\fR command
is invoked).
Before invoking \fIdeleteProc\fR Tk will invoke \fIfreeProc\fR for
each of the image's instances.
\fIdeleteProc\fR must match the following prototype:
.CS
typedef void \fBTk_ImageDeleteProc\fR(
        void *\fImodelData\fR);
.CE
The \fImodelData\fR argument will be the same as the value
stored in \fI*modelDataPtr\fR by \fIcreateProc\fR when the
image was created.
\fIdeleteProc\fR should release any resources associated with
the image.
.SH TK_GETIMAGEMODELDATA
.PP
The procedure \fBTk_GetImageModelData\fR may be invoked to retrieve
information about an image.  For example, an image manager can use this
procedure to locate its image model data for an image.
If there exists an image named \fIname\fR
in the interpreter given by \fIinterp\fR, then \fI*typePtrPtr\fR is
filled in with type information for the image (the \fItypePtr\fR value
passed to \fBTk_CreateImageType\fR when the image type was registered)
and the return value is the clientData value returned by the
\fIcreateProc\fR when the image was created (this is typically a
pointer to the image model data structure).  If no such image exists
then NULL is returned and NULL is stored at \fI*typePtrPtr\fR.
.SH "SEE ALSO"
Tk_ImageChanged, Tk_GetImage, Tk_FreeImage, Tk_RedrawImage, Tk_SizeOfImage
.SH KEYWORDS
image manager, image type, instance, model


================================================
FILE: doc/CrtItemType.3
================================================
'\"
'\" Copyright (c) 1994-1995 Sun Microsystems, Inc.
'\"
'\" See the file "license.terms" for information on usage and redistribution
'\" of this file, and for a DISCLAIMER OF ALL WARRANTIES.
'\"
.TH Tk_CreateItemType 3 4.0 Tk "Tk Library Procedures"
.so man.macros
.BS
.SH NAME
Tk_CreateItemType, Tk_GetItemTypes \- define new kind of canvas item
.SH SYNOPSIS
.nf
\fB#include <tk.h>\fR
.sp
\fBTk_CreateItemType\fR(\fItypePtr\fR)
.sp
Tk_ItemType *
\fBTk_GetItemTypes\fR()
.fi
.SH ARGUMENTS
.AS Tk_ItemType *typePtr
.AP Tk_ItemType *typePtr in
Structure that defines the new type of canvas item.
Note that this is not \fIconst\fR; Tk may write to these structures.
.BE
.SH INTRODUCTION
.PP
\fBTk_CreateItemType\fR is invoked to define a new kind of canvas item
described by the \fItypePtr\fR argument.
An item type corresponds to a particular value of the \fItype\fR
argument to the \fBcreate\fR widget command for canvases, and
the code that implements a canvas item type is called a \fItype manager\fR.
Tk defines several built-in item types, such as \fBrectangle\fR
and \fBtext\fR and \fBimage\fR, but \fBTk_CreateItemType\fR
allows additional item types to be defined.
Once \fBTk_CreateItemType\fR returns, the new item type may be used
in new or existing canvas widgets just like the built-in item
types.
.PP
\fBTk_GetItemTypes\fR returns a pointer to the first in the list
of all item types currently defined for canvases.
The entries in the list are linked together through their
\fInextPtr\fR fields, with the end of the list marked by a
NULL \fInextPtr\fR.
.PP
You may find it easier to understand the rest of this manual entry
by looking at the code for an existing canvas item type such as
bitmap (in the file tkCanvBmap.c) or text (tkCanvText.c).
The easiest way to create a new type manager is to copy the code
for an existing type and modify it for the new type.
.PP
Tk provides a number of utility procedures for the use of canvas
type managers, such as \fBTk_CanvasCoords\fR and \fBTk_CanvasPsColor\fR;
these are described in separate manual entries.
.SH "DATA STRUCTURES"
.PP
A type manager consists of a collection of procedures that provide a
standard set of operations on items of that type.
The type manager deals with three kinds of data
structures.
The first data structure is a Tk_ItemType; it contains
information such as the name of the type and pointers to
the standard procedures implemented by the type manager:
.PP
.CS
typedef struct Tk_ItemType {
    const char *\fIname\fR;
    Tcl_Size \fIitemSize\fR;
    Tk_ItemCreateProc *\fIcreateProc\fR;
    const Tk_ConfigSpec *\fIconfigSpecs\fR;
    Tk_ItemConfigureProc *\fIconfigProc\fR;
    Tk_ItemCoordProc *\fIcoordProc\fR;
    Tk_ItemDeleteProc *\fIdeleteProc\fR;
    Tk_ItemDisplayProc *\fIdisplayProc\fR;
    int \fIflags\fR;
    Tk_ItemPointProc *\fIpointProc\fR;
    Tk_ItemAreaProc *\fIareaProc\fR;
    Tk_ItemPostscriptProc *\fIpostscriptProc\fR;
    Tk_ItemScaleProc *\fIscaleProc\fR;
    Tk_ItemTranslateProc *\fItranslateProc\fR;
    Tk_ItemIndexProc *\fIindexProc\fR;
    Tk_ItemCursorProc *\fIicursorProc\fR;
    Tk_ItemSelectionProc *\fIselectionProc\fR;
    Tk_ItemInsertProc *\fIinsertProc\fR;
    Tk_ItemDCharsProc *\fIdCharsProc\fR;
    struct Tk_ItemType *\fInextPtr\fR;
.VS "9.0, TIP164"
    Tk_ItemRotateProc *\fIrotateProc\fR;
.VE "9.0, TIP164"
} \fBTk_ItemType\fR;
.CE
.PP
The fields of a Tk_ItemType structure are described in more detail
later in this manual entry.
When \fBTk_CreateItemType\fR is called, its \fItypePtr\fR
argument must point to a structure with all of the fields initialized
except \fInextPtr\fR, which Tk sets to link all the types together
into a list.
The structure must be in permanent memory (either statically
allocated or dynamically allocated but never freed); Tk retains
a pointer to this structure.
.PP
The second data structure manipulated by a type manager is an
\fIitem record\fR.
For each item in a canvas there exists one item record.
All of the items of a given type generally have item records with
the same structure, but different types usually have different
formats for their item records.
The first part of each item record is a header with a standard structure
defined by Tk via the type Tk_Item; the rest of the item
record is defined by the type manager.
A type manager must define its item records with a Tk_Item as
the first field.
For example, the item record for bitmap items is defined as follows:
.PP
.CS
typedef struct {
    Tk_Item \fIheader\fR;
    double \fIx\fR, \fIy\fR;
    Tk_Anchor \fIanchor\fR;
    Pixmap \fIbitmap\fR;
    XColor *\fIfgColor\fR;
    XColor *\fIbgColor\fR;
    GC \fIgc\fR;
} \fBBitmapItem\fR;
.CE
.PP
The \fIheader\fR substructure contains information used by Tk
to manage the item, such as its identifier, its tags, its type,
and its bounding box.
The fields starting with \fIx\fR belong to the type manager:
Tk will never read or write them.
The type manager should not need to read or write any of the
fields in the header except for four fields
whose names are \fIx1\fR, \fIy1\fR, \fIx2\fR, and \fIy2\fR.
These fields give a bounding box for the items using integer
canvas coordinates: the item should not cover any pixels
with x-coordinate lower than \fIx1\fR or y-coordinate
lower than \fIy1\fR, nor should it cover any pixels with
x-coordinate greater than or equal to \fIx2\fR or y-coordinate
greater than or equal to \fIy2\fR.
It is up to the type manager to keep the bounding box up to
date as the item is moved and reconfigured.
.PP
Whenever Tk calls a procedure in a type manager it passes in a pointer
to an item record.
The argument is always passed as a pointer to a Tk_Item; the type
manager will typically cast this into a pointer to its own specific
type, such as BitmapItem.
.PP
The third data structure used by type managers has type
Tk_Canvas; it serves as an opaque handle for the canvas widget
as a whole.
Type managers need not know anything about the contents of this
structure.
A Tk_Canvas handle is typically passed in to the
procedures of a type manager, and the type manager can pass the
handle back to library procedures such as Tk_CanvasTkwin
to fetch information about the canvas.
.SH "TK_ITEMTYPE FIELDS"
.SS NAME
.PP
This section and the ones that follow describe each of the fields
in a Tk_ItemType structure in detail.
The \fIname\fR field provides a string name for the item type.
Once \fBTk_CreateImageType\fR returns, this name may be used
in \fBcreate\fR widget commands to create items of the new
type.
If there already existed an item type by this name then
the new item type replaces the old one.
.SS "FLAGS (IN ALWAYSREDRAW)"
.PP
The \fItypePtr\->flags\fR field
contains a collection of flag bits that modify how the canvas core interacts
with the item. The following bits are defined:
.TP
\fBTK_ALWAYS_REDRAW\fR
.
Indicates that the item should always be redrawn when any part of the canvas
is redrawn, rather than only when the bounding box of the item overlaps the
area being redrawn. This is used by window items, for example, which need to
unmap subwindows that are not on the screen.
.TP
\fBTK_MOVABLE_POINTS\fR
.VS 8.6
Indicates that the item supports the \fIdCharsProc\fR, \fIindexProc\fR and
\fIinsertProc\fR with the same semantics as Tk's built-in line and polygon
types, and that hence individual coordinate points can be moved. Must not be
set if any of the above methods is NULL.
.VE 8.6
.SS ITEMSIZE
.PP
\fItypePtr\->itemSize\fR gives the size in bytes of item records
of this type, including the Tk_Item header.
Tk uses this size to allocate memory space for items of the type.
All of the item records for a given type must have the same size.
If variable length fields are needed for an item (such as a list
of points for a polygon), the type manager can allocate a separate
object of variable length and keep a pointer to it in the item record.
.SS CREATEPROC
.PP
\fItypePtr\->createProc\fR points to a procedure for
Tk to call whenever a new item of this type is created.
\fItypePtr\->createProc\fR must match the following prototype:
.PP
.CS
typedef int \fBTk_ItemCreateProc\fR(
        Tcl_Interp *\fIinterp\fR,
        Tk_Canvas \fIcanvas\fR,
        Tk_Item *\fIitemPtr\fR,
        int \fIobjc\fR,
        Tcl_Obj *const *\fIobjv\fR);
.CE
.PP
The \fIinterp\fR argument is the interpreter in which the canvas's
\fBcreate\fR widget command was invoked, and \fIcanvas\fR is a
handle for the canvas widget.
\fIitemPtr\fR is a pointer to a newly-allocated item of
size \fItypePtr\->itemSize\fR.
Tk has already initialized the item's header (the first
\fBsizeof(Tk_ItemType)\fR bytes).
The \fIobjc\fR and \fIobjv\fR arguments describe all of the
arguments to the \fBcreate\fR command after the \fItype\fR
argument.
For example, in the widget command:
.PP
.CS
\fB\&.c create rectangle 10 20 50 50 \-fill black\fR
.CE
.PP
\fIobjc\fR will be \fB6\fR and \fIobjv\fR[0] will contain the
integer object \fB10\fR.
.PP
\fIcreateProc\fR should use \fIobjc\fR and \fIobjv\fR to initialize
the type-specific parts of the item record and set an initial value
for the bounding box in the item's header.
It should return a standard Tcl completion code and leave an
error message in the interpreter result if an error occurs.
If an error occurs Tk will free the item record, so \fIcreateProc\fR
must be sure to leave the item record in a clean state if it returns an error
(e.g., it must free any additional memory that it allocated for
the item).
.SS CONFIGSPECS
.PP
Each type manager must provide a standard table describing its
configuration options, in a form suitable for use with
\fBTk_ConfigureWidget\fR.
This table will normally be used by \fItypePtr\->createProc\fR
and \fItypePtr\->configProc\fR, but Tk also uses it directly
to retrieve option information in the \fBitemcget\fR and
\fBitemconfigure\fR widget commands.
\fItypePtr\->configSpecs\fR must point to the configuration table
for this type.
.PP
Note that Tk provides a custom option type \fBtk_CanvasTagsOption\fR
for implementing the \fB\-tags\fR option; see an existing type
manager for an example of how to use it in \fIconfigSpecs\fR.
.SS CONFIGPROC
.PP
\fItypePtr\->configProc\fR is called by Tk whenever the
\fBitemconfigure\fR widget command is invoked to change the
configuration options for a canvas item.
This procedure must match the following prototype:
.PP
.CS
typedef int \fBTk_ItemConfigureProc\fR(
        Tcl_Interp *\fIinterp\fR,
        Tk_Canvas \fIcanvas\fR,
        Tk_Item *\fIitemPtr\fR,
        int \fIobjc\fR,
        Tcl_Obj *const *\fIobjv\fR,
        int \fIflags\fR);
.CE
.PP
The \fIinterp\fR argument identifies the interpreter in which the
widget command was invoked, \fIcanvas\fR is a handle for the canvas
widget, and \fIitemPtr\fR is a pointer to the item being configured.
\fIobjc\fR and \fIobjv\fR contain the configuration options.
For example, if the following command is invoked:
.PP
.CS
\fB\&.c itemconfigure 2 \-fill red \-outline black\fR
.CE
.PP
\fIobjc\fR is \fB4\fR and \fIobjv\fR contains the string objects \fB\-fill\fR
through \fBblack\fR.
\fIobjc\fR will always be an even value.
The \fIflags\fR argument contains flags to pass to \fBTk_ConfigureWidget\fR;
currently this value is always \fBTK_CONFIG_ARGV_ONLY\fR when Tk
invokes \fItypePtr\->configProc\fR, but the type manager's \fIcreateProc\fR
procedure will usually invoke \fIconfigProc\fR with different flag values.
.PP
\fItypePtr\->configProc\fR returns a standard Tcl completion code and
leaves an error message in the interpreter result if an error occurs.
It must update the item's bounding box to reflect the new configuration
options.
.SS COORDPROC
.PP
\fItypePtr\->coordProc\fR is invoked by Tk to implement the \fBcoords\fR
widget command for an item.
It must match the following prototype:
.PP
.CS
typedef int \fBTk_ItemCoordProc\fR(
        Tcl_Interp *\fIinterp\fR,
        Tk_Canvas \fIcanvas\fR,
        Tk_Item *\fIitemPtr\fR,
        int \fIobjc\fR,
        Tcl_Obj *const *\fIobjv\fR);
.CE
.PP
The arguments \fIinterp\fR, \fIcanvas\fR, and \fIitemPtr\fR
all have the standard meanings, and \fIobjc\fR and \fIobjv\fR
describe the coordinate arguments.
For example, if the following widget command is invoked:
.PP
.CS
\fB\&.c coords 2 30 90\fR
.CE
.PP
\fIobjc\fR will be \fB2\fR and \fBobjv\fR will contain the integer objects
\fB30\fR and \fB90\fR.
.PP
The \fIcoordProc\fR procedure should process the new coordinates,
update the item appropriately (e.g., it must reset the bounding
box in the item's header), and return a standard Tcl completion
code.
If an error occurs, \fIcoordProc\fR must leave an error message in
the interpreter result.
.SS DELETEPROC
.PP
\fItypePtr\->deleteProc\fR is invoked by Tk to delete an item
and free any resources allocated to it.
It must match the following prototype:
.PP
.CS
typedef void \fBTk_ItemDeleteProc\fR(
        Tk_Canvas \fIcanvas\fR,
        Tk_Item *\fIitemPtr\fR,
        Display *\fIdisplay\fR);
.CE
.PP
The \fIcanvas\fR and \fIitemPtr\fR arguments have the usual
interpretations, and \fIdisplay\fR identifies the X display containing
the canvas.
\fIdeleteProc\fR must free up any resources allocated for the item,
so that Tk can free the item record.
\fIdeleteProc\fR should not actually free the item record; this will
be done by Tk when \fIdeleteProc\fR returns.
.SS "DISPLAYPROC"
.PP
\fItypePtr\->displayProc\fR is invoked by Tk to redraw an item
on the screen.
It must match the following prototype:
.PP
.CS
typedef void \fBTk_ItemDisplayProc\fR(
        Tk_Canvas \fIcanvas\fR,
        Tk_Item *\fIitemPtr\fR,
        Display *\fIdisplay\fR,
        Drawable \fIdst\fR,
        int \fIx\fR,
        int \fIy\fR,
        int \fIwidth\fR,
        int \fIheight\fR);
.CE
.PP
The \fIcanvas\fR and \fIitemPtr\fR arguments have the usual meaning.
\fIdisplay\fR identifies the display containing the canvas, and
\fIdst\fR specifies a drawable in which the item should be rendered;
typically this is an off-screen pixmap, which Tk will copy into
the canvas's window once all relevant items have been drawn.
\fIx\fR, \fIy\fR, \fIwidth\fR, and \fIheight\fR specify a rectangular
region in canvas coordinates, which is the area to be redrawn;
only information that overlaps this area needs to be redrawn.
Tk will not call \fIdisplayProc\fR unless the item's bounding box
overlaps the redraw area, but the type manager may wish to use
the redraw area to optimize the redisplay of the item.
.PP
Because of scrolling and the use of off-screen pixmaps for
double-buffered redisplay, the item's coordinates in \fIdst\fR
will not necessarily be the same as those in the canvas.
\fIdisplayProc\fR should call \fBTk_CanvasDrawableCoords\fR
to transform coordinates from those of the canvas to those
of \fIdst\fR.
.PP
Normally an item's \fIdisplayProc\fR is only invoked if the item
overlaps the area being displayed.
However, if bit zero of \fItypePtr\->flags\fR is 1,
(i.e.\|
.QW "\fItypePtr\->flags & 1 == 1\fR" )
then \fIdisplayProc\fR is invoked during every redisplay operation,
even if the item does not overlap the area of redisplay; this is useful for
cases such as window items, where the subwindow needs to be unmapped when it
is off the screen.
.SS POINTPROC
.PP
\fItypePtr\->pointProc\fR is invoked by Tk to find out how close
a given point is to a canvas item.
Tk uses this procedure for purposes such as locating the item
under the mouse or finding the closest item to a given point.
The procedure must match the following prototype:
.PP
.CS
typedef double \fBTk_ItemPointProc\fR(
        Tk_Canvas \fIcanvas\fR,
        Tk_Item *\fIitemPtr\fR,
        double *\fIpointPtr\fR);
.CE
.PP
\fIcanvas\fR and \fIitemPtr\fR have the usual meaning.
\fIpointPtr\fR points to an array of two numbers giving
the x and y coordinates of a point.
\fIpointProc\fR must return a real value giving the distance
from the point to the item, or 0 if the point lies inside
the item.
.SS AREAPROC
.PP
\fItypePtr\->areaProc\fR is invoked by Tk to find out the relationship
between an item and a rectangular area.
It must match the following prototype:
.PP
.CS
typedef int \fBTk_ItemAreaProc\fR(
        Tk_Canvas \fIcanvas\fR,
        Tk_Item *\fIitemPtr\fR,
        double *\fIrectPtr\fR);
.CE
.PP
\fIcanvas\fR and \fIitemPtr\fR have the usual meaning.
\fIrectPtr\fR points to an array of four real numbers;
the first two give the x and y coordinates of the upper left
corner of a rectangle, and the second two give the x and y
coordinates of the lower right corner.
\fIareaProc\fR must return \-1 if the item lies entirely outside
the given area, 0 if it lies partially inside and partially
outside the area, and 1 if it lies entirely inside the area.
.SS POSTSCRIPTPROC
.PP
\fItypePtr\->postscriptProc\fR is invoked by Tk to generate
Postscript for an item during the \fBpostscript\fR widget command.
If the type manager is not capable of generating Postscript then
\fItypePtr\->postscriptProc\fR should be NULL.
The procedure must match the following prototype:
.PP
.CS
typedef int \fBTk_ItemPostscriptProc\fR(
        Tcl_Interp *\fIinterp\fR,
        Tk_Canvas \fIcanvas\fR,
        Tk_Item *\fIitemPtr\fR,
        int \fIprepass\fR);
.CE
.PP
The \fIinterp\fR, \fIcanvas\fR, and \fIitemPtr\fR arguments all have
standard meanings; \fIprepass\fR will be described below.
If \fIpostscriptProc\fR completes successfully, it should append
Postscript for the item to the information in the interpreter result
(e.g. by calling \fBTcl_AppendResult\fR, not \fBTcl_SetResult\fR)
and return \fBTCL_OK\fR.
If an error occurs, \fIpostscriptProc\fR should clear the result
and replace its contents with an error message; then it should
return \fBTCL_ERROR\fR.
.PP
Tk provides a collection of utility procedures to simplify
\fIpostscriptProc\fR.
For example, \fBTk_CanvasPsColor\fR will generate Postscript to set
the current color to a given Tk color and \fBTk_CanvasPsFont\fR will
set up font information.
When generating Postscript, the type manager is free to change the
graphics state of the Postscript interpreter, since Tk places
\fBgsave\fR and \fBgrestore\fR commands around the Postscript for
the item.
The type manager can use canvas x coordinates directly in its Postscript,
but it must call \fBTk_CanvasPsY\fR to convert y coordinates from
the space of the canvas (where the origin is at the
upper left) to the space of Postscript (where the origin is at the
lower left).
.PP
In order to generate Postscript that complies with the Adobe Document
Structuring Conventions, Tk actually generates Postscript in two passes.
It calls each item's \fIpostscriptProc\fR in each pass.
The only purpose of the first pass is to collect font information
(which is done by \fBTk_CanvasPsFont\fR); the actual Postscript is
discarded.
Tk sets the \fIprepass\fR argument to \fIpostscriptProc\fR to 1
during the first pass; the type manager can use \fIprepass\fR to skip
all Postscript generation except for calls to \fBTk_CanvasPsFont\fR.
During the second pass \fIprepass\fR will be 0, so the type manager
must generate complete Postscript.
.SS SCALEPROC
.PP
\fItypePtr\->scaleProc\fR is invoked by Tk to rescale a canvas item
during the \fBscale\fR widget command.
The procedure must match the following prototype:
.PP
.CS
typedef void \fBTk_ItemScaleProc\fR(
        Tk_Canvas \fIcanvas\fR,
        Tk_Item *\fIitemPtr\fR,
        double \fIoriginX\fR,
        double \fIoriginY\fR,
        double \fIscaleX\fR,
        double \fIscaleY\fR);
.CE
.PP
The \fIcanvas\fR and \fIitemPtr\fR arguments have the usual meaning.
\fIoriginX\fR and \fIoriginY\fR specify an origin relative to which
the item is to be scaled, and \fIscaleX\fR and \fIscaleY\fR give the
x and y scale factors.
The item should adjust its coordinates so that a point in the item
that used to have coordinates \fIx\fR and \fIy\fR will have new
coordinates \fIx\(fm\fR and \fIy\(fm\fR, where
.PP
.CS
\fIx\(fm\fR = \fIoriginX\fR + \fIscaleX\fR \(mu (\fIx\fR \(mi \fIoriginX\fR)
\fIy\(fm\fR = \fIoriginY\fR + \fIscaleY\fR \(mu (\fIy\fR \(mi \fIoriginY\fR)
.CE
.PP
\fIscaleProc\fR must also update the bounding box in the item's
header.
.SS TRANSLATEPROC
.PP
\fItypePtr\->translateProc\fR is invoked by Tk to translate a canvas item
during the \fBmove\fR widget command.
The procedure must match the following prototype:
.PP
.CS
typedef void \fBTk_ItemTranslateProc\fR(
        Tk_Canvas \fIcanvas\fR,
        Tk_Item *\fIitemPtr\fR,
        double \fIdeltaX\fR,
        double \fIdeltaY\fR);
.CE
.PP
The \fIcanvas\fR and \fIitemPtr\fR arguments have the usual meaning,
and \fIdeltaX\fR and \fIdeltaY\fR give the amounts that should be
added to each x and y coordinate within the item.
The type manager should adjust the item's coordinates and
update the bounding box in the item's header.
.SS ROTATEPROC
.VS "9.0, TIP164"
.PP
\fItypePtr\->rotateProc\fR is invoked by Tk to rotate a canvas item
during the \fBrotate\fR widget command.
The procedure must match the following prototype:
.PP
.CS
typedef void \fBTk_ItemRotateProc\fR(
        Tk_Canvas \fIcanvas\fR,
        Tk_Item *\fIitemPtr\fR,
        double \fIoriginX\fR,
        double \fIoriginY\fR,
        double \fIangleRad\fR);
.CE
.PP
The \fIcanvas\fR and \fIitemPtr\fR arguments have the usual meaning.
\fIoriginX\fR and \fIoriginY\fR specify an origin relative to which
the item is to be rotated, and \fIangleRad\fR gives the anticlockwise
rotation to be applied in radians.
The item should adjust the coordinates of its control points so that where
they used to have coordinates \fIx\fR and \fIy\fR, they will have new
coordinates \fIx\(fm\fR and \fIy\(fm\fR, where
.PP
.CS
\fIrelX\fR = \fIx\fR \(mi \fIoriginX\fR
\fIrelY\fR = \fIy\fR \(mi \fIoriginY\fR
\fIx\(fm\fR = \fIoriginX\fR + \fIrelX\fR \(mu cos(\fIangleRad\fR) + \fIrelY\fR \(mu sin(\fIangleRad\fR)
\fIy\(fm\fR = \fIoriginY\fR \(mi \fIrelX\fR \(mu sin(\fIangleRad\fR) + \fIrelY\fR \(mu cos(\fIangleRad\fR)
.CE
.PP
The control points for an item are not necessarily the coordinates provided to
the item when it is created (or via the \fItypePtr\->coordProc\fR), but could
instead be derived from them.
\fIrotateProc\fR must also update the bounding box in the item's header.
.PP
Item types do not need to provide a \fItypePtr\->rotateProc\fR. If the
\fItypePtr\->rotateProc\fR is NULL, the \fItypePtr\->coordProc\fR will be
used instead to retrieve and update the list of coordinates.
.VE "9.0, TIP164"
.SS INDEXPROC
.PP
\fItypePtr\->indexProc\fR is invoked by Tk to translate a string
index specification into a numerical index, for example during the
\fBindex\fR widget command.
It is only relevant for item types that support indexable text or coordinates;
\fItypePtr\->indexProc\fR may be specified as NULL for non-textual
item types if they do not support detailed coordinate addressing.
The procedure must match the following prototype:
.PP
.CS
typedef int \fBTk_ItemIndexProc\fR(
        Tcl_Interp *\fIinterp\fR,
        Tk_Canvas \fIcanvas\fR,
        Tk_Item *\fIitemPtr\fR,
        Tcl_Obj *\fIindexObj\fR,
        int *\fIindexPtr\fR);
.CE
.PP
The \fIinterp\fR, \fIcanvas\fR, and \fIitemPtr\fR arguments all
have the usual meaning.
\fIindexObj\fR contains a textual description of an index,
and \fIindexPtr\fR points to an integer value that should be
filled in with a numerical index.
It is up to the type manager to decide what forms of index
are supported (e.g., numbers, \fBinsert\fR, \fBsel.first\fR,
\fBend\fR, etc.).
\fIindexProc\fR should return a Tcl completion code and set
the interpreter result in the event of an error.
.SS ICURSORPROC
.PP
\fItypePtr\->icursorProc\fR is invoked by Tk during
the \fBicursor\fR widget command to set the position of the
insertion cursor in a textual item.
It is only relevant for item types that support an insertion cursor;
\fItypePtr\->icursorProc\fR may be specified as NULL for item types
that do not support an insertion cursor.
The procedure must match the following prototype:
.PP
.CS
typedef void \fBTk_ItemCursorProc\fR(
        Tk_Canvas \fIcanvas\fR,
        Tk_Item *\fIitemPtr\fR,
        int \fIindex\fR);
.CE
.PP
\fIcanvas\fR and \fIitemPtr\fR have the usual meanings, and
\fIindex\fR is an index into the item's text, as returned by a
previous call to \fItypePtr\->insertProc\fR.
The type manager should position the insertion cursor in the
item just before the character given by \fIindex\fR.
Whether or not to actually display the insertion cursor is
determined by other information provided by \fBTk_CanvasGetTextInfo\fR.
.SS SELECTIONPROC
.PP
\fItypePtr\->selectionProc\fR is invoked by Tk during selection
retrievals; it must return part or all of the selected text in
the item (if any).
It is only relevant for item types that support text;
\fItypePtr\->selectionProc\fR may be specified as NULL for non-textual
item types.
The procedure must match the following prototype:
.PP
.CS
typedef int \fBTk_ItemSelectionProc\fR(
        Tk_Canvas \fIcanvas\fR,
        Tk_Item *\fIitemPtr\fR,
        int \fIoffset\fR,
        char *\fIbuffer\fR,
        int \fImaxBytes\fR);
.CE
.PP
\fIcanvas\fR and \fIitemPtr\fR have the usual meanings.
\fIoffset\fR is an offset in bytes into the selection where 0 refers
to the first byte of the selection; it identifies
the first character that is to be returned in this call.
\fIbuffer\fR points to an area of memory in which to store the
requested bytes, and \fImaxBytes\fR specifies the maximum number
of bytes to return.
\fIselectionProc\fR should extract up to \fImaxBytes\fR characters
from the selection and copy them to \fImaxBytes\fR; it should
return a count of the number of bytes actually copied, which may
be less than \fImaxBytes\fR if there are not \fIoffset+maxBytes\fR bytes
in the selection.
.SS INSERTPROC
.PP
\fItypePtr\->insertProc\fR is invoked by Tk during
the \fBinsert\fR widget command to insert new text or coordinates into a
canvas item.
It is only relevant for item types that support the \fBinsert\fR method;
\fItypePtr\->insertProc\fR may be specified as NULL for other
item types.
The procedure must match the following prototype:
.PP
.CS
typedef void \fBTk_ItemInsertProc\fR(
        Tk_Canvas \fIcanvas\fR,
        Tk_Item *\fIitemPtr\fR,
        int \fIindex\fR,
        Tcl_Obj *\fIobj\fR);
.CE
.PP
\fIcanvas\fR and \fIitemPtr\fR have the usual meanings.
\fIindex\fR is an index into the item's text, as returned by a
previous call to \fItypePtr\->insertProc\fR, and \fIobj\fR
contains new text to insert just before the character given
by \fIindex\fR.
If the item supports modification of the coordinates list by this
.PP
The type manager should insert the text and recompute the bounding
box in the item's header.
.SS DCHARSPROC
.PP
\fItypePtr\->dCharsProc\fR is invoked by Tk during the \fBdchars\fR
widget command to delete a range of text from a canvas item or a range of
coordinates from a pathed item.
It is only relevant for item types that support text;
\fItypePtr\->dCharsProc\fR may be specified as NULL for non-textual
item types that do not want to support coordinate deletion.
The procedure must match the following prototype:
.PP
.CS
typedef void \fBTk_ItemDCharsProc\fR(
        Tk_Canvas \fIcanvas\fR,
        Tk_Item *\fIitemPtr\fR,
        int \fIfirst\fR,
        int \fIlast\fR);
.CE
.PP
\fIcanvas\fR and \fIitemPtr\fR have the usual meanings.
\fIfirst\fR and \fIlast\fR give the indices of the first and last bytes
to be deleted, as returned by previous calls to \fItypePtr\->indexProc\fR.
The type manager should delete the specified characters and update
the bounding box in the item's header.
.SH "SEE ALSO"
Tk_CanvasPsY, Tk_CanvasTextInfo, Tk_CanvasTkwin
.SH KEYWORDS
canvas, focus, item type, selection, type manager


================================================
FILE: doc/CrtPhImgFmt.3
================================================
'\"
'\" Copyright (c) 1994 The Australian National University
'\" Copyright (c) 1994-1997 Sun Microsystems, Inc.
'\"
'\" See the file "license.terms" for information on usage and redistribution
'\" of this file, and for a DISCLAIMER OF ALL WARRANTIES.
'\"
'\" Author: Paul Mackerras (paulus@cs.anu.edu.au),
'\"	    Department of Computer Science,
'\"	    Australian National University.
'\"
.TH Tk_CreatePhotoImageFormat 3 9.0 Tk "Tk Library Procedures"
.so man.macros
.BS
.SH NAME
Tk_CreatePhotoImageFormat \- define new file format for photo images
.SH SYNOPSIS
.nf
\fB#include <tk.h>\fR
.sp
.VS 9.0
\fBTk_CreatePhotoImageFormatVersion3\fR(\fIformatVersion3Ptr\fR)
.VE 9.0
.sp
\fBTk_CreatePhotoImageFormat\fR(\fIformatPtr\fR)
.SH ARGUMENTS
.AS "const Tk_PhotoImageFormatVersion3" *formatVersion3Ptr
.VS 9.0
.AP "const Tk_PhotoImageFormatVersion3" *formatVersion3Ptr in
Structure that defines the new file format including metadata functionality.
.VE 9.0
.AP "const Tk_PhotoImageFormat" *formatPtr in
Structure that defines the new file format.
.BE
.SH DESCRIPTION
.PP
\fBTk_CreatePhotoImageFormatVersion3\fR is invoked to define a new file format
for image data for use with photo images.  The code that implements an
image file format is called an image file format handler, or
handler for short.  The photo image code
maintains a list of handlers that can be used to read and
write data to or from a file.  Some handlers may also
support reading image data from a string or converting image data to a
string format.
The user can specify which handler to use with the \fB\-format\fR
image configuration option or the \fB\-format\fR option to the
\fBread\fR and \fBwrite\fR photo image subcommands.
.PP
The alternate version 2 function \fBTk_CreatePhotoImageFormat\fR has
identical functionality, but does not allow the handler to get or return
the metadata dictionary of the image.
It is described in section \fBVERSION 2 INTERFACE\fR below.
.PP
An image file format handler consists of a collection of procedures
plus a \fBTk_PhotoImageFormatVersion3\fR structure, which contains the
name of the image file format and pointers to six procedures provided
by the handler to deal with files and strings in this format.  The
Tk_PhotoImageFormatVersion3 structure contains the following fields:
.VS 9.0
.CS
typedef struct {
    const char *\fIname\fR;
    Tk_ImageFileMatchProcVersion3 *\fIfileMatchProc\fR;
    Tk_ImageStringMatchProcVersion3 *\fIstringMatchProc\fR;
    Tk_ImageFileReadProcVersion3 *\fIfileReadProc\fR;
    Tk_ImageStringReadProcVersion3 *\fIstringReadProc\fR;
    Tk_ImageFileWriteProcVersion3 *\fIfileWriteProc\fR;
    Tk_ImageStringWriteProcVersion3 *\fIstringWriteProc\fR;
} \fBTk_PhotoImageFormatVersion3\fR;
.CE
.VE 9.0
.PP
The handler need not provide implementations of all six procedures.
For example, the procedures that handle string data would not be
provided for a format in which the image data are stored in binary,
and could therefore contain null characters.  If any procedure is not
implemented, the corresponding pointer in the Tk_PhotoImageFormat
structure should be set to NULL.  The handler must provide the
\fIfileMatchProc\fR procedure if it provides the \fIfileReadProc\fR
procedure, and the \fIstringMatchProc\fR procedure if it provides the
\fIstringReadProc\fR procedure.
.SS NAME
.PP
\fIformatPtr->name\fR provides a name for the image type.
Once \fBTk_CreatePhotoImageFormatVersion3\fR returns, this name may be
used in the \fB\-format\fR photo image configuration and subcommand
option.
The manual page for the photo image (photo(n)) describes how image
file formats are chosen based on their names and the value given to
the \fB\-format\fR option. The first character of \fIformatPtr->name\fR
must not be an uppercase character from the ASCII character set
(that is, one of the characters \fBA\fR-\fBZ\fR).  Such names are used
only for legacy interface support (see below).
.VS 9.0
.SS FILEMATCHPROC
.PP
\fIformatPtr->fileMatchProc\fR provides the address of a procedure for
Tk to call when it is searching for an image file format handler
suitable for reading data in a given file.
\fIformatPtr->fileMatchProc\fR must match the following prototype:
.CS
typedef int \fBTk_ImageFileMatchProcVersion3\fR(
        Tcl_Interp *\fIinterp\fR,
        Tcl_Channel \fIchan\fR,
        const char *\fIfileName\fR,
        Tcl_Obj *\fIformat\fR,
        Tcl_Obj *\fImetadataIn\fR,
        int *\fIwidthPtr\fR,
        int *\fIheightPtr\fR,
        Tcl_Obj *\fImetadataOut\fR);
.CE
The \fIfileName\fR argument is the name of the file containing the
image data, which is open for reading as \fIchan\fR.  The
\fIformat\fR argument contains the value given for the
\fB\-format\fR option, or NULL if the option was not specified.
\fBmetadataIn\fR and \fBmetadataOut\fR inputs and returns a metadata
dictionary as described in section \fBMETADATA INTERFACE\fR below.
If the data in the file appears to be in the format supported by this
handler, the \fIformatPtr->fileMatchProc\fR procedure should store the
width and height of the image in *\fIwidthPtr\fR and *\fIheightPtr\fR
respectively, and return 1.  Otherwise it should return 0.
.SS STRINGMATCHPROC
.PP
\fIformatPtr->stringMatchProc\fR provides the address of a procedure
for Tk to call when it is searching for an image file format handler
suitable for reading data from a given string.
\fIformatPtr->stringMatchProc\fR must match the following prototype:
.CS
typedef int \fBTk_ImageStringMatchProcVersion3\fR(
        Tcl_Interp *\fIinterp\fR,
        Tcl_Obj *\fIdata\fR,
        Tcl_Obj *\fIformat\fR,
        Tcl_Obj *\fImetadataIn\fR,
        int *\fIwidthPtr\fR,
        int *\fIheightPtr\fR,
        Tcl_Obj *\fImetadataOut\fR);
.CE
The \fIdata\fR argument points to the object containing the image
data.  The \fIformat\fR argument contains the value given for
the \fB\-format\fR option, or NULL if the option was not specified.
\fBmetadataIn\fR and \fBmetadataOut\fR inputs and returns a metadata
dictionary as described in section \fBMETADATA INTERFACE\fR below.
If the data in the string appears to be in the format supported by
this handler, the \fIformatPtr->stringMatchProc\fR procedure should
store the width and height of the image in *\fIwidthPtr\fR and
*\fIheightPtr\fR respectively, and return 1.  Otherwise it should
return 0.
.SS FILEREADPROC
.PP
\fIformatPtr->fileReadProc\fR provides the address of a procedure for
Tk to call to read data from an image file into a photo image.
\fIformatPtr->fileReadProc\fR must match the following prototype:
.CS
typedef int \fBTk_ImageFileReadProcVersion3\fR(
        Tcl_Interp *\fIinterp\fR,
        Tcl_Channel \fIchan\fR,
        const char *\fIfileName\fR,
        Tcl_Obj *\fIformat\fR,
        Tcl_Obj *\fImetadataIn\fR,
        PhotoHandle \fIimageHandle\fR,
        int \fIdestX\fR, int \fIdestY\fR,
        int \fIwidth\fR, int \fIheight\fR,
        int \fIsrcX\fR, int \fIsrcY\fR,
        Tcl_Obj *\fImetadataOut\fR);
.CE
The \fIinterp\fR argument is the interpreter in which the command was
invoked to read the image; it should be used for reporting errors.
The image data is in the file named \fIfileName\fR, which is open for
reading as \fIchan\fR.  The \fIformat\fR argument contains the
value given for the \fB\-format\fR option, or NULL if the option was
not specified.  The image data in the file, or a subimage of it, is to
be read into the photo image identified by the handle
\fIimageHandle\fR.  The subimage of the data in the file is of
dimensions \fIwidth\fR x \fIheight\fR and has its top-left corner at
coordinates (\fIsrcX\fR,\fIsrcY\fR).  It is to be stored in the photo
image with its top-left corner at coordinates
(\fIdestX\fR,\fIdestY\fR) using the \fBTk_PhotoPutBlock\fR procedure.
\fBmetadataIn\fR and \fBmetadataOut\fR inputs and returns a metadata
dictionary as described in section \fBMETADATA INTERFACE\fR below.
The return value is a standard Tcl return value.
.SS STRINGREADPROC
.PP
\fIformatPtr->stringReadProc\fR provides the address of a procedure
for Tk to call to read data from a string into a photo image.
\fIformatPtr->stringReadProc\fR must match the following prototype:
.CS
typedef int \fBTk_ImageStringReadProcVersion3\fR(
        Tcl_Interp *\fIinterp\fR,
        Tcl_Obj *\fIdata\fR,
        Tcl_Obj *\fIformat\fR,
        Tcl_Obj *\fImetadataIn\fR,
        PhotoHandle \fIimageHandle\fR,
        int \fIdestX\fR, int \fIdestY\fR,
        int \fIwidth\fR, int \fIheight\fR,
        int \fIsrcX\fR, int \fIsrcY\fR,
        Tcl_Obj *\fImetadataOut\fR);
.CE
The \fIinterp\fR argument is the interpreter in which the command was
invoked to read the image; it should be used for reporting errors.
The \fIdata\fR argument points to the image data in object form.
The \fIformat\fR argument contains the
value given for the \fB\-format\fR option, or NULL if the option was
not specified.  The image data in the string, or a subimage of it, is
to be read into the photo image identified by the handle
\fIimageHandle\fR.  The subimage of the data in the string is of
dimensions \fIwidth\fR x \fIheight\fR and has its top-left corner at
coordinates (\fIsrcX\fR,\fIsrcY\fR).  It is to be stored in the photo
image with its top-left corner at coordinates
(\fIdestX\fR,\fIdestY\fR) using the \fBTk_PhotoPutBlock\fR procedure.
\fBmetadataIn\fR and \fBmetadataOut\fR inputs and returns a metadata
dictionary as described in section \fBMETADATA INTERFACE\fR below.
The return value is a standard Tcl return value.
.SS FILEWRITEPROC
.PP
\fIformatPtr->fileWriteProc\fR provides the address of a procedure for
Tk to call to write data from a photo image to a file.
\fIformatPtr->fileWriteProc\fR must match the following prototype:
.CS
typedef int \fBTk_ImageFileWriteProcVersion3\fR(
        Tcl_Interp *\fIinterp\fR,
        const char *\fIfileName\fR,
        Tcl_Obj *\fIformat\fR,
        Tcl_Obj *\fImetadataIn\fR,
        Tk_PhotoImageBlock *\fIblockPtr\fR);
.CE
The \fIinterp\fR argument is the interpreter in which the command was
invoked to write the image; it should be used for reporting errors.
The image data to be written are in memory and are described by the
Tk_PhotoImageBlock structure pointed to by \fIblockPtr\fR; see the
manual page FindPhoto(3) for details.  The \fIfileName\fR argument
points to the string giving the name of the file in which to write the
image data.  The \fIformat\fR argument contains the
value given for the \fB\-format\fR option, or NULL if the option was
not specified.  The format string can contain extra characters
after the name of the format.  If appropriate, the
\fIformatPtr->fileWriteProc\fR procedure may interpret these
characters to specify further details about the image file.
\fBmetadataIn\fR may contain metadata keys that a driver may include
into the output data.
The return value is a standard Tcl return value.
.SS STRINGWRITEPROC
.PP
\fIformatPtr->stringWriteProc\fR provides the address of a procedure
for Tk to call to translate image data from a photo image into a
string.
\fIformatPtr->stringWriteProc\fR must match the following prototype:
.CS
typedef int \fBTk_ImageStringWriteProcVersion3\fR(
        Tcl_Interp *\fIinterp\fR,
        Tcl_Obj *\fIformat\fR,
        Tcl_Obj *\fImetadataIn\fR,
        Tk_PhotoImageBlock *\fIblockPtr\fR);
.CE
The \fIinterp\fR argument is the interpreter in which the command was
invoked to convert the image; it should be used for reporting errors.
The image data to be converted are in memory and are described by the
Tk_PhotoImageBlock structure pointed to by \fIblockPtr\fR; see the
manual page FindPhoto(3) for details.  The data for the string
should be put in the interpreter \fIinterp\fR result.
The \fIformat\fR argument contains the
value given for the \fB\-format\fR option, or NULL if the option was
not specified.  The format string can contain extra characters
after the name of the format.  If appropriate, the
\fIformatPtr->stringWriteProc\fR procedure may interpret these
characters to specify further details about the image file.
\fBmetadataIn\fR may contain metadata keys that a driver may include
into the output data.
The return value is a standard Tcl return value.
.PP
.SH "METADATA INTERFACE"
.PP
Image formats contain a description of the image bitmap and may
contain additional information like image resolution or comments.
Image metadata may be read from image files and passed to the script
level by including dictionary keys into the metadata property of the
image. Image metadata may be written to image data on file write or
image data output.
.PP
.SS "METADATA KEYS"
.PP
The metadata may contain any key.
A driver will handle only a set of dictionary keys documented in the
documentation. See the photo image manual page for currently defined
keys for the system drivers.
.PP
The following rules may give guidance to name metadata keys:
.IP \(bu
Abbreviations are in upper case.
.IP \(bu
Words are in US English in small case (except proper nouns)
.IP \(bu
Vertical DPI is expressed as DPI/aspect. The reason is, that some
image formats may feature aspect and no resolution value.
.SS "METADATA INPUT"
.PP
Each driver function gets a Tcl object pointer \fBmetadataIn\fR as
parameter. This parameter serves to input a metadata dict to the
driver function.
It may be NULL to flag that the metadata dict is empty.
.PP
A typical driver code snipped to check for a metadata key is:
.CS
if (NULL != metadataIn) {
    Tcl_Obj *itemData;
    Tcl_DictObjGet(interp, metadataIn, Tcl_NewStringObj("Comment",-1),
            &itemData));
    // use value reference in itemData
}
.CE
.PP
The \fB\-metadata\fR command option data of the following commands is passed
to the driver: \fBimage create\fR, \fBconfigure\fR, \fBput\fR,
\fBread\fR, \fBdata\fR and \fBwrite\fR.
If no \fB\-metadata\fR command option available or not given, the metadata
property of the image is passed to the driver using the following
commands: \fBcget\fR, \fBconfigure\fR, \fBdata\fR and \fBwrite\fR.
.PP
Note that setting the \fB\-metadata\fR property of an image using
\fBconfigure\fR without any other option does not invoke any driver
function.
.PP
The metadata dictionary is not suited to pass options to the driver
related to the bitmap representation, as the image bitmap is not
recreated on a metadata change. The format string should be used for
this purpose.
.PP
.SS "METADATA OUTPUT"
.PP
The image match and read driver functions may set keys in a prepared
metadata dict to return them.
Those functions get a Tcl object pointer \fImetadataOut\fR as
parameter.
\fImetadataOut\fR may be NULL to indicate, that no metadata return is
required (\fBput\fR, \fBread\fR subcommands). The variable pointed to
by \fImetadataOut\fR is initialized to an empty unshared dict object if
metadata return is attended (\fBimage create\fR command, \fBconfigure\fR
subcommand). The driver may set dict keys in this object to return
metadata.
If a match function succeeds, the metadataOut pointer is passed to the
corresponding read function.
.PP
A sample driver code snippet is:
.CS
if (NULL != metadataOut) {
    Tcl_DictObjPut(NULL, metadataOut, Tcl_NewStringObj("XMP",-1),
            Tcl_NewStringObj(xmpMetadata));
}
.CE
.PP
The metadata keys returned by the driver are merged into the present
metadata property of the image or into the metadata dict given by the
\fB\-metadata\fR command line option.
At the script level, the command \fBimage create\fR and the
\fBconfigure\fR method may return metadata from the driver.
.PP
Format string options or metadata keys may influence the creation of
metadata within the driver.
For example, the creation of an expensive metadata key may depend on a
format string option or on a metadata input key.
.PP
.VE 9.0
.SH "VERSION 2 INTERFACE"
.PP
Version 2 Interface does not include the possibility for the driver to
use the metadata dict for input or output.
.SS SYNOPSIS
\fB#include <tk.h>\fR
.sp
\fBTk_CreatePhotoImageFormat\fR(\fIformatPtr\fR)
.SS ARGUMENTS
.AS "const Tk_PhotoImageFormat" *formatPtr
.AP "const Tk_PhotoImageFormat" *formatPtr in
Structure that defines the new file format.
.BE
.SS DESCRIPTION
A driver using the version 2 interface invokes \fBTk_CreatePhotoImageFormat\fR
for driver registration. The Tk_PhotoImageFormat structure
contains the following fields:
.CS
typedef struct {
    const char *\fIname\fR;
    Tk_ImageFileMatchProc *\fIfileMatchProc\fR;
    Tk_ImageStringMatchProc *\fIstringMatchProc\fR;
    Tk_ImageFileReadProc *\fIfileReadProc\fR;
    Tk_ImageStringReadProc *\fIstringReadProc\fR;
    Tk_ImageFileWriteProc *\fIfileWriteProc\fR;
    Tk_ImageStringWriteProc *\fIstringWriteProc\fR;
} \fBTk_PhotoImageFormat\fR;
.CE
.PP
.SS FILEMATCHPROC
.PP
\fIformatPtr->fileMatchProc\fR must match the following prototype:
.CS
typedef int \fBTk_ImageFileMatchProc\fR(
        Tcl_Channel \fIchan\fR,
        const char *\fIfileName\fR,
        Tcl_Obj *\fIformat\fR,
        int *\fIwidthPtr\fR,
        int *\fIheightPtr\fR,
        Tcl_Interp *\fIinterp\fR);
.CE
.PP
.SS STRINGMATCHPROC
.PP
\fIformatPtr->stringMatchProc\fR must match the following prototype:
.CS
typedef int \fBTk_ImageStringMatchProc\fR(
        Tcl_Obj *\fIdata\fR,
        Tcl_Obj *\fIformat\fR,
        int *\fIwidthPtr\fR,
        int *\fIheightPtr\fR,
        Tcl_Interp *\fIinterp\fR);
.CE
.SS FILEREADPROC
.PP
\fIformatPtr->fileReadProc\fR must match the following prototype:
.CS
typedef int \fBTk_ImageFileReadProc\fR(
        Tcl_Interp *\fIinterp\fR,
        Tcl_Channel \fIchan\fR,
        const char *\fIfileName\fR,
        Tcl_Obj *\fIformat\fR,
        PhotoHandle \fIimageHandle\fR,
        int \fIdestX\fR, int \fIdestY\fR,
        int \fIwidth\fR, int \fIheight\fR,
        int \fIsrcX\fR, int \fIsrcY\fR);
.CE
.SS STRINGREADPROC
.PP
\fIformatPtr->stringReadProc\fR must match the following prototype:
.CS
typedef int \fBTk_ImageStringReadProc\fR(
        Tcl_Interp *\fIinterp\fR,
        Tcl_Obj *\fIdata\fR,
        Tcl_Obj *\fIformat\fR,
        PhotoHandle \fIimageHandle\fR,
        int \fIdestX\fR, int \fIdestY\fR,
        int \fIwidth\fR, int \fIheight\fR,
        int \fIsrcX\fR, int \fIsrcY\fR);
.CE
.SS FILEWRITEPROC
.PP
\fIformatPtr->fileWriteProc\fR must match the following prototype:
.CS
typedef int \fBTk_ImageFileWriteProc\fR(
        Tcl_Interp *\fIinterp\fR,
        const char *\fIfileName\fR,
        Tcl_Obj *\fIformat\fR,
        Tk_PhotoImageBlock *\fIblockPtr\fR);
.CE
.SS STRINGWRITEPROC
.PP
\fIformatPtr->stringWriteProc\fR must match the following prototype:
.CS
typedef int \fBTk_ImageStringWriteProc\fR(
        Tcl_Interp *\fIinterp\fR,
        Tcl_Obj *\fIformat\fR,
        Tk_PhotoImageBlock *\fIblockPtr\fR);
.CE
.SH "SEE ALSO"
Tk_FindPhoto, Tk_PhotoPutBlock
.SH KEYWORDS
photo image, image file


================================================
FILE: doc/CrtSelHdlr.3
================================================
'\"
'\" Copyright (c) 1990-1994 The Regents of the University of California.
'\" Copyright (c) 1994-1996 Sun Microsystems, Inc.
'\"
'\" See the file "license.terms" for information on usage and redistribution
'\" of this file, and for a DISCLAIMER OF ALL WARRANTIES.
'\"
.TH Tk_CreateSelHandler 3 4.0 Tk "Tk Library Procedures"
.so man.macros
.BS
.SH NAME
Tk_CreateSelHandler, Tk_DeleteSelHandler \- arrange to handle requests for a selection
.SH SYNOPSIS
.nf
\fB#include <tk.h>\fR
.sp
\fBTk_CreateSelHandler\fR(\fItkwin, selection, target, proc, clientData, format\fR)
.sp
\fBTk_DeleteSelHandler\fR(\fItkwin, selection, target\fR)
.fi
.SH ARGUMENTS
.AS Tk_SelectionProc clientData
.AP Tk_Window tkwin in
Window for which \fIproc\fR will provide selection information.
.AP Atom selection in
The name of the selection for which \fIproc\fR will provide
selection information.
.AP Atom target in
Form in which \fIproc\fR can provide the selection (e.g. STRING
or FILE_NAME).  Corresponds to \fItype\fR arguments in \fBselection\fR
commands.
.AP Tk_SelectionProc *proc in
Procedure to invoke whenever the selection is owned by \fItkwin\fR
and the selection contents are requested in the format given by
\fItarget\fR.
.AP void *clientData in
Arbitrary one-word value to pass to \fIproc\fR.
.AP Atom format in
If the selection requestor is not in this process, \fIformat\fR determines
the representation used to transmit the selection to its
requestor.
.BE
.SH DESCRIPTION
.PP
\fBTk_CreateSelHandler\fR arranges for a particular procedure
(\fIproc\fR) to be called whenever \fIselection\fR is owned by
\fItkwin\fR and the selection contents are requested in the
form given by \fItarget\fR.
\fITarget\fR should be one of
the entries defined in the left column of Table 2 of the
X Inter-Client Communication Conventions M
Download .txt
gitextract_crrrkqg_/

├── .fossil-settings/
│   ├── binary-glob
│   ├── crlf-glob
│   ├── encoding-glob
│   ├── ignore-glob
│   └── manifest
├── .gitattributes
├── .github/
│   ├── ISSUE_TEMPLATE.md
│   ├── PULL_REQUEST_TEMPLATE.md
│   └── workflows/
│       ├── linux-build.yml
│       ├── linux-with-tcl9-build.yml
│       ├── mac-build.yml
│       ├── onefiledist.yml
│       └── win-build.yml
├── .gitignore
├── .project
├── .settings/
│   ├── org.eclipse.core.resources.prefs
│   └── org.eclipse.core.runtime.prefs
├── README.md
├── bitmaps/
│   ├── error.xbm
│   ├── gray12.xbm
│   ├── gray25.xbm
│   ├── gray50.xbm
│   ├── gray75.xbm
│   ├── hourglass.xbm
│   ├── info.xbm
│   ├── questhead.xbm
│   ├── question.xbm
│   └── warning.xbm
├── changes.md
├── doc/
│   ├── 3DBorder.3
│   ├── AddOption.3
│   ├── BindTable.3
│   ├── CanvPsY.3
│   ├── CanvTkwin.3
│   ├── CanvTxtInfo.3
│   ├── Clipboard.3
│   ├── ClrSelect.3
│   ├── ConfigWidg.3
│   ├── ConfigWind.3
│   ├── CoordToWin.3
│   ├── CrtCmHdlr.3
│   ├── CrtConsoleChan.3
│   ├── CrtErrHdlr.3
│   ├── CrtGenHdlr.3
│   ├── CrtImgType.3
│   ├── CrtItemType.3
│   ├── CrtPhImgFmt.3
│   ├── CrtSelHdlr.3
│   ├── CrtWindow.3
│   ├── DeleteImg.3
│   ├── DrawFocHlt.3
│   ├── EventHndlr.3
│   ├── FindPhoto.3
│   ├── FontId.3
│   ├── GeomReq.3
│   ├── GetAnchor.3
│   ├── GetBitmap.3
│   ├── GetCapStyl.3
│   ├── GetClrmap.3
│   ├── GetColor.3
│   ├── GetCursor.3
│   ├── GetDash.3
│   ├── GetFont.3
│   ├── GetGC.3
│   ├── GetHINSTANCE.3
│   ├── GetHWND.3
│   ├── GetImage.3
│   ├── GetJoinStl.3
│   ├── GetJustify.3
│   ├── GetOption.3
│   ├── GetPixels.3
│   ├── GetPixmap.3
│   ├── GetRelief.3
│   ├── GetRootCrd.3
│   ├── GetScroll.3
│   ├── GetSelect.3
│   ├── GetUid.3
│   ├── GetVRoot.3
│   ├── GetVisual.3
│   ├── Grab.3
│   ├── HWNDToWindow.3
│   ├── HandleEvent.3
│   ├── IdToWindow.3
│   ├── ImgChanged.3
│   ├── Inactive.3
│   ├── InternAtom.3
│   ├── MainLoop.3
│   ├── MainWin.3
│   ├── MaintGeom.3
│   ├── ManageGeom.3
│   ├── MapWindow.3
│   ├── MeasureChar.3
│   ├── MoveToplev.3
│   ├── Name.3
│   ├── NameOfImg.3
│   ├── OwnSelect.3
│   ├── ParseArgv.3
│   ├── QWinEvent.3
│   ├── Restack.3
│   ├── RestrictEv.3
│   ├── SetAppName.3
│   ├── SetCaret.3
│   ├── SetClass.3
│   ├── SetClassProcs.3
│   ├── SetGrid.3
│   ├── SetOptions.3
│   ├── SetVisual.3
│   ├── StrictMotif.3
│   ├── TextLayout.3
│   ├── TkInitStubs.3
│   ├── Tk_Init.3
│   ├── Tk_Main.3
│   ├── WinUtil.3
│   ├── WindowId.3
│   ├── accessible.n
│   ├── attribtable.n
│   ├── bell.n
│   ├── bind.n
│   ├── bindtags.n
│   ├── bitmap.n
│   ├── busy.n
│   ├── button.n
│   ├── canvas.n
│   ├── checkbutton.n
│   ├── chooseColor.n
│   ├── chooseDirectory.n
│   ├── clipboard.n
│   ├── colors.n
│   ├── console.n
│   ├── cursors.n
│   ├── destroy.n
│   ├── dialog.n
│   ├── entry.n
│   ├── event.n
│   ├── fileicon.n
│   ├── focus.n
│   ├── focusNext.n
│   ├── font.n
│   ├── fontchooser.n
│   ├── frame.n
│   ├── getOpenFile.n
│   ├── grab.n
│   ├── grid.n
│   ├── image.n
│   ├── keysyms.n
│   ├── label.n
│   ├── labelframe.n
│   ├── listbox.n
│   ├── loadTk.n
│   ├── lower.n
│   ├── man.macros
│   ├── menu.n
│   ├── menubutton.n
│   ├── message.n
│   ├── messageBox.n
│   ├── nsimage.n
│   ├── option.n
│   ├── optionMenu.n
│   ├── options.n
│   ├── pack.n
│   ├── palette.n
│   ├── panedwindow.n
│   ├── photo.n
│   ├── place.n
│   ├── popup.n
│   ├── print.n
│   ├── radiobutton.n
│   ├── raise.n
│   ├── scale.n
│   ├── scrollbar.n
│   ├── selection.n
│   ├── send.n
│   ├── spinbox.n
│   ├── sysnotify.n
│   ├── systray.n
│   ├── text.n
│   ├── tk.n
│   ├── tk_mac.n
│   ├── tkerror.n
│   ├── tkvars.n
│   ├── tkwait.n
│   ├── toplevel.n
│   ├── ttk_Geometry.3
│   ├── ttk_Theme.3
│   ├── ttk_button.n
│   ├── ttk_checkbutton.n
│   ├── ttk_combobox.n
│   ├── ttk_entry.n
│   ├── ttk_frame.n
│   ├── ttk_image.n
│   ├── ttk_intro.n
│   ├── ttk_label.n
│   ├── ttk_labelframe.n
│   ├── ttk_menubutton.n
│   ├── ttk_notebook.n
│   ├── ttk_panedwindow.n
│   ├── ttk_progressbar.n
│   ├── ttk_radiobutton.n
│   ├── ttk_scale.n
│   ├── ttk_scrollbar.n
│   ├── ttk_separator.n
│   ├── ttk_sizegrip.n
│   ├── ttk_spinbox.n
│   ├── ttk_style.n
│   ├── ttk_toggleswitch.n
│   ├── ttk_treeview.n
│   ├── ttk_vsapi.n
│   ├── ttk_widget.n
│   ├── winfo.n
│   ├── wish.1
│   └── wm.n
├── generic/
│   ├── README
│   ├── default.h
│   ├── ks_names.h
│   ├── nanosvg.h
│   ├── nanosvgrast.h
│   ├── tk.decls
│   ├── tk.h
│   ├── tk3d.c
│   ├── tk3d.h
│   ├── tkAccessibility.c
│   ├── tkArgv.c
│   ├── tkArray.h
│   ├── tkAtom.c
│   ├── tkBind.c
│   ├── tkBitmap.c
│   ├── tkBusy.c
│   ├── tkBusy.h
│   ├── tkButton.c
│   ├── tkButton.h
│   ├── tkCanvArc.c
│   ├── tkCanvBmap.c
│   ├── tkCanvImg.c
│   ├── tkCanvLine.c
│   ├── tkCanvPoly.c
│   ├── tkCanvPs.c
│   ├── tkCanvText.c
│   ├── tkCanvUtil.c
│   ├── tkCanvWind.c
│   ├── tkCanvas.c
│   ├── tkCanvas.h
│   ├── tkClipboard.c
│   ├── tkCmds.c
│   ├── tkColor.c
│   ├── tkColor.h
│   ├── tkConfig.c
│   ├── tkConsole.c
│   ├── tkCursor.c
│   ├── tkDList.h
│   ├── tkDecls.h
│   ├── tkEntry.c
│   ├── tkEntry.h
│   ├── tkError.c
│   ├── tkEvent.c
│   ├── tkFileFilter.c
│   ├── tkFileFilter.h
│   ├── tkFocus.c
│   ├── tkFont.c
│   ├── tkFont.h
│   ├── tkFrame.c
│   ├── tkGC.c
│   ├── tkGeometry.c
│   ├── tkGet.c
│   ├── tkGrab.c
│   ├── tkGrid.c
│   ├── tkIcu.c
│   ├── tkImage.c
│   ├── tkImgBmap.c
│   ├── tkImgGIF.c
│   ├── tkImgListFormat.c
│   ├── tkImgPNG.c
│   ├── tkImgPPM.c
│   ├── tkImgPhInstance.c
│   ├── tkImgPhoto.c
│   ├── tkImgPhoto.h
│   ├── tkImgSVGnano.c
│   ├── tkImgUtil.c
│   ├── tkInt.decls
│   ├── tkInt.h
│   ├── tkIntDecls.h
│   ├── tkIntPlatDecls.h
│   ├── tkIntXlibDecls.h
│   ├── tkListbox.c
│   ├── tkMacWinMenu.c
│   ├── tkMain.c
│   ├── tkMenu.c
│   ├── tkMenu.h
│   ├── tkMenuDraw.c
│   ├── tkMenubutton.c
│   ├── tkMenubutton.h
│   ├── tkMessage.c
│   ├── tkObj.c
│   ├── tkOldConfig.c
│   ├── tkOption.c
│   ├── tkPack.c
│   ├── tkPanedWindow.c
│   ├── tkPkgConfig.c
│   ├── tkPlace.c
│   ├── tkPlatDecls.h
│   ├── tkPointer.c
│   ├── tkPort.h
│   ├── tkRectOval.c
│   ├── tkScale.c
│   ├── tkScale.h
│   ├── tkScrollbar.c
│   ├── tkScrollbar.h
│   ├── tkSelect.c
│   ├── tkSelect.h
│   ├── tkSquare.c
│   ├── tkStubInit.c
│   ├── tkStubLib.c
│   ├── tkStyle.c
│   ├── tkTest.c
│   ├── tkText.c
│   ├── tkText.h
│   ├── tkTextBTree.c
│   ├── tkTextDisp.c
│   ├── tkTextImage.c
│   ├── tkTextIndex.c
│   ├── tkTextMark.c
│   ├── tkTextTag.c
│   ├── tkTextWind.c
│   ├── tkTrig.c
│   ├── tkUndo.c
│   ├── tkUndo.h
│   ├── tkUtil.c
│   ├── tkVisual.c
│   ├── tkWindow.c
│   └── ttk/
│       ├── ttk.decls
│       ├── ttkBlink.c
│       ├── ttkButton.c
│       ├── ttkCache.c
│       ├── ttkClamTheme.c
│       ├── ttkClassicTheme.c
│       ├── ttkDecls.h
│       ├── ttkDefaultTheme.c
│       ├── ttkElements.c
│       ├── ttkEntry.c
│       ├── ttkFrame.c
│       ├── ttkImage.c
│       ├── ttkInit.c
│       ├── ttkLabel.c
│       ├── ttkLayout.c
│       ├── ttkManager.c
│       ├── ttkManager.h
│       ├── ttkNotebook.c
│       ├── ttkPanedwindow.c
│       ├── ttkProgress.c
│       ├── ttkScale.c
│       ├── ttkScroll.c
│       ├── ttkScrollbar.c
│       ├── ttkSeparator.c
│       ├── ttkSquare.c
│       ├── ttkState.c
│       ├── ttkStubInit.c
│       ├── ttkStubLib.c
│       ├── ttkTagSet.c
│       ├── ttkTheme.c
│       ├── ttkTheme.h
│       ├── ttkThemeInt.h
│       ├── ttkToggleswitch.c
│       ├── ttkTrace.c
│       ├── ttkTrack.c
│       ├── ttkTreeview.c
│       ├── ttkWidget.c
│       └── ttkWidget.h
├── library/
│   ├── accessibility.tcl
│   ├── bgerror.tcl
│   ├── button.tcl
│   ├── choosedir.tcl
│   ├── clrpick.tcl
│   ├── comdlg.tcl
│   ├── console.tcl
│   ├── demos/
│   │   ├── README
│   │   ├── accessiblewidget
│   │   ├── anilabel.tcl
│   │   ├── aniwave.tcl
│   │   ├── arrow.tcl
│   │   ├── bind.tcl
│   │   ├── bitmap.tcl
│   │   ├── browse
│   │   ├── button.tcl
│   │   ├── check.tcl
│   │   ├── clrpick.tcl
│   │   ├── colors.tcl
│   │   ├── combo.tcl
│   │   ├── cscroll.tcl
│   │   ├── ctext.tcl
│   │   ├── dialog1.tcl
│   │   ├── dialog2.tcl
│   │   ├── en.msg
│   │   ├── entry1.tcl
│   │   ├── entry2.tcl
│   │   ├── entry3.tcl
│   │   ├── filebox.tcl
│   │   ├── floor.tcl
│   │   ├── fontchoose.tcl
│   │   ├── form.tcl
│   │   ├── goldberg.tcl
│   │   ├── hello
│   │   ├── hscale.tcl
│   │   ├── icon.tcl
│   │   ├── image1.tcl
│   │   ├── image2.tcl
│   │   ├── images/
│   │   │   ├── flagdown.xbm
│   │   │   ├── flagup.xbm
│   │   │   ├── gray25.xbm
│   │   │   ├── letters.xbm
│   │   │   ├── noletter.xbm
│   │   │   ├── pattern.xbm
│   │   │   └── teapot.ppm
│   │   ├── items.tcl
│   │   ├── ixset
│   │   ├── knightstour.tcl
│   │   ├── label.tcl
│   │   ├── labelframe.tcl
│   │   ├── mac_styles.tcl
│   │   ├── mac_tabs.tcl
│   │   ├── mac_wm.tcl
│   │   ├── mclist.tcl
│   │   ├── menu.tcl
│   │   ├── menubu.tcl
│   │   ├── msgbox.tcl
│   │   ├── nl.msg
│   │   ├── paned1.tcl
│   │   ├── paned2.tcl
│   │   ├── pendulum.tcl
│   │   ├── plot.tcl
│   │   ├── print.tcl
│   │   ├── puzzle.tcl
│   │   ├── radio.tcl
│   │   ├── rmt
│   │   ├── rolodex
│   │   ├── ruler.tcl
│   │   ├── sayings.tcl
│   │   ├── search.tcl
│   │   ├── spin.tcl
│   │   ├── square
│   │   ├── states.tcl
│   │   ├── style.tcl
│   │   ├── systray.tcl
│   │   ├── tclIndex
│   │   ├── tcolor
│   │   ├── text.tcl
│   │   ├── textpeer.tcl
│   │   ├── timer
│   │   ├── toolbar.tcl
│   │   ├── tree.tcl
│   │   ├── ttkbut.tcl
│   │   ├── ttkmenu.tcl
│   │   ├── ttknote.tcl
│   │   ├── ttkpane.tcl
│   │   ├── ttkprogress.tcl
│   │   ├── ttkscale.tcl
│   │   ├── ttkspin.tcl
│   │   ├── twind.tcl
│   │   ├── unicodeout.tcl
│   │   ├── vscale.tcl
│   │   ├── widget
│   │   └── windowicons.tcl
│   ├── dialog.tcl
│   ├── entry.tcl
│   ├── fileicon.tcl
│   ├── focus.tcl
│   ├── fontchooser.tcl
│   ├── iconbadges.tcl
│   ├── iconlist.tcl
│   ├── icons.tcl
│   ├── images/
│   │   ├── README
│   │   ├── logo.eps
│   │   └── pwrdLogo.eps
│   ├── listbox.tcl
│   ├── megawidget.tcl
│   ├── menu.tcl
│   ├── mkpsenc.tcl
│   ├── msgbox.tcl
│   ├── msgs/
│   │   ├── cs.msg
│   │   ├── da.msg
│   │   ├── de.msg
│   │   ├── el.msg
│   │   ├── en.msg
│   │   ├── en_gb.msg
│   │   ├── eo.msg
│   │   ├── es.msg
│   │   ├── fi.msg
│   │   ├── fr.msg
│   │   ├── hu.msg
│   │   ├── it.msg
│   │   ├── nl.msg
│   │   ├── pl.msg
│   │   ├── pt.msg
│   │   ├── ru.msg
│   │   ├── sv.msg
│   │   └── zh_cn.msg
│   ├── optMenu.tcl
│   ├── palette.tcl
│   ├── panedwindow.tcl
│   ├── print.tcl
│   ├── safetk.tcl
│   ├── scale.tcl
│   ├── scaling.tcl
│   ├── scrlbar.tcl
│   ├── spinbox.tcl
│   ├── systray.tcl
│   ├── tclIndex
│   ├── tearoff.tcl
│   ├── text.tcl
│   ├── tk.tcl
│   ├── tkfbox.tcl
│   ├── ttk/
│   │   ├── altTheme.tcl
│   │   ├── aquaTheme.tcl
│   │   ├── button.tcl
│   │   ├── clamTheme.tcl
│   │   ├── classicTheme.tcl
│   │   ├── combobox.tcl
│   │   ├── cursors.tcl
│   │   ├── defaults.tcl
│   │   ├── elements.tcl
│   │   ├── entry.tcl
│   │   ├── fonts.tcl
│   │   ├── menubutton.tcl
│   │   ├── notebook.tcl
│   │   ├── panedwindow.tcl
│   │   ├── progress.tcl
│   │   ├── scale.tcl
│   │   ├── scrollbar.tcl
│   │   ├── sizegrip.tcl
│   │   ├── spinbox.tcl
│   │   ├── toggleswitch.tcl
│   │   ├── treeview.tcl
│   │   ├── ttk.tcl
│   │   ├── utils.tcl
│   │   ├── vistaTheme.tcl
│   │   ├── wideSpinbox.tcl
│   │   └── winTheme.tcl
│   └── xmfbox.tcl
├── license.terms
├── macosx/
│   ├── Credits.html.in
│   ├── GNUmakefile
│   ├── README
│   ├── Tk-Info.plist.in
│   ├── Tk.icns
│   ├── Tk.tiff
│   ├── Wish-Info.plist.in
│   ├── Wish.sdef
│   ├── configure.ac
│   ├── tkMacOSX.h
│   ├── tkMacOSXAccessibility.c
│   ├── tkMacOSXBitmap.c
│   ├── tkMacOSXButton.c
│   ├── tkMacOSXClipboard.c
│   ├── tkMacOSXColor.c
│   ├── tkMacOSXColor.h
│   ├── tkMacOSXConfig.c
│   ├── tkMacOSXConstants.h
│   ├── tkMacOSXCursor.c
│   ├── tkMacOSXCursors.h
│   ├── tkMacOSXDebug.c
│   ├── tkMacOSXDebug.h
│   ├── tkMacOSXDefault.h
│   ├── tkMacOSXDialog.c
│   ├── tkMacOSXDraw.c
│   ├── tkMacOSXEmbed.c
│   ├── tkMacOSXEntry.c
│   ├── tkMacOSXEvent.c
│   ├── tkMacOSXFileTypes.c
│   ├── tkMacOSXFont.c
│   ├── tkMacOSXFont.h
│   ├── tkMacOSXHLEvents.c
│   ├── tkMacOSXImage.c
│   ├── tkMacOSXImage.h
│   ├── tkMacOSXInit.c
│   ├── tkMacOSXInt.h
│   ├── tkMacOSXKeyEvent.c
│   ├── tkMacOSXKeyboard.c
│   ├── tkMacOSXKeysyms.h
│   ├── tkMacOSXMenu.c
│   ├── tkMacOSXMenubutton.c
│   ├── tkMacOSXMenus.c
│   ├── tkMacOSXMouseEvent.c
│   ├── tkMacOSXNotify.c
│   ├── tkMacOSXPort.h
│   ├── tkMacOSXPrint.c
│   ├── tkMacOSXPrivate.h
│   ├── tkMacOSXRegion.c
│   ├── tkMacOSXScrlbr.c
│   ├── tkMacOSXSend.c
│   ├── tkMacOSXServices.c
│   ├── tkMacOSXSubwindows.c
│   ├── tkMacOSXSysTray.c
│   ├── tkMacOSXTest.c
│   ├── tkMacOSXWindowEvent.c
│   ├── tkMacOSXWm.c
│   ├── tkMacOSXWm.h
│   ├── tkMacOSXXCursors.h
│   ├── tkMacOSXXStubs.c
│   ├── ttkMacOSXTheme.c
│   └── ttkMacOSXTheme.h
├── tests/
│   ├── README
│   ├── all.tcl
│   ├── arc.tcl
│   ├── attribtable.test
│   ├── bell.test
│   ├── bevel.tcl
│   ├── bgerror.test
│   ├── bind.test
│   ├── bitmap.test
│   ├── border.test
│   ├── busy.test
│   ├── butGeom.tcl
│   ├── butGeom2.tcl
│   ├── button.test
│   ├── canvImg.test
│   ├── canvMoveto.test
│   ├── canvPs.test
│   ├── canvPsArc.tcl
│   ├── canvPsBmap.tcl
│   ├── canvPsGrph.tcl
│   ├── canvPsImg.tcl
│   ├── canvPsText.tcl
│   ├── canvRect.test
│   ├── canvText.test
│   ├── canvWind.test
│   ├── canvas.test
│   ├── choosedir.test
│   ├── clipboard.test
│   ├── clrpick.test
│   ├── cluster.test
│   ├── cmap.tcl
│   ├── cmds.test
│   ├── color.test
│   ├── config.test
│   ├── constraints.tcl
│   ├── cursor.test
│   ├── dialog.test
│   ├── embed.test
│   ├── entry.test
│   ├── event.test
│   ├── face.xbm
│   ├── filebox.test
│   ├── flagdown.xbm
│   ├── flagup.xbm
│   ├── focus.test
│   ├── focusTcl.test
│   ├── font.test
│   ├── fontchooser.test
│   ├── frame.test
│   ├── geometry.test
│   ├── get.test
│   ├── grab.test
│   ├── grid.test
│   ├── image.test
│   ├── imgBmap.test
│   ├── imgListFormat.test
│   ├── imgPNG.test
│   ├── imgPPM.test
│   ├── imgPhoto.test
│   ├── imgSVGnano.test
│   ├── listbox.test
│   ├── main.tcl
│   ├── main.test
│   ├── menu.test
│   ├── menuDraw.test
│   ├── menubut.test
│   ├── message.test
│   ├── msgbox.test
│   ├── obj.test
│   ├── option.file1
│   ├── option.file2
│   ├── option.file3
│   ├── option.test
│   ├── pack.test
│   ├── packgrid.test
│   ├── panedwindow.test
│   ├── pkgconfig.test
│   ├── place.test
│   ├── raise.test
│   ├── safe.test
│   ├── safePrimarySelection.test
│   ├── scale.test
│   ├── scrollbar.test
│   ├── select.test
│   ├── send.test
│   ├── spinbox.test
│   ├── systray.test
│   ├── teapot.ppm
│   ├── testutils.GUIDE
│   ├── testutils.tcl
│   ├── testutils.test
│   ├── text.test
│   ├── textBTree.test
│   ├── textDisp.test
│   ├── textImage.test
│   ├── textIndex.test
│   ├── textMark.test
│   ├── textTag.test
│   ├── textWind.test
│   ├── tk.test
│   ├── ttk/
│   │   ├── all.tcl
│   │   ├── checkbutton.test
│   │   ├── combobox.test
│   │   ├── entry.test
│   │   ├── image.test
│   │   ├── labelframe.test
│   │   ├── layout.test
│   │   ├── notebook.test
│   │   ├── panedwindow.test
│   │   ├── progressbar.test
│   │   ├── radiobutton.test
│   │   ├── scale.test
│   │   ├── scrollbar.test
│   │   ├── spinbox.test
│   │   ├── toggleswitch.test
│   │   ├── treetags.test
│   │   ├── treeview.test
│   │   ├── ttk.test
│   │   ├── validate.test
│   │   └── vsapi.test
│   ├── unixButton.test
│   ├── unixEmbed.test
│   ├── unixFont.test
│   ├── unixMenu.test
│   ├── unixSelect.test
│   ├── unixWm.test
│   ├── util.test
│   ├── visual.test
│   ├── visual_bb.test
│   ├── winButton.test
│   ├── winClipboard.test
│   ├── winDialog.test
│   ├── winFont.test
│   ├── winMenu.test
│   ├── winMsgbox.test
│   ├── winSend.test
│   ├── winWm.test
│   ├── window.test
│   ├── winfo.test
│   ├── wm.test
│   └── xmfbox.test
├── unix/
│   ├── Makefile.in
│   ├── README
│   ├── aclocal.m4
│   ├── bidi/
│   │   ├── Headers/
│   │   │   └── SheenBidi/
│   │   │       ├── SBAlgorithm.h
│   │   │       ├── SBAllocator.h
│   │   │       ├── SBAttributeInfo.h
│   │   │       ├── SBAttributeList.h
│   │   │       ├── SBAttributeRegistry.h
│   │   │       ├── SBBase.h
│   │   │       ├── SBBidiType.h
│   │   │       ├── SBCodepoint.h
│   │   │       ├── SBCodepointSequence.h
│   │   │       ├── SBConfig.h
│   │   │       ├── SBGeneralCategory.h
│   │   │       ├── SBLine.h
│   │   │       ├── SBMirrorLocator.h
│   │   │       ├── SBParagraph.h
│   │   │       ├── SBRun.h
│   │   │       ├── SBScript.h
│   │   │       ├── SBScriptLocator.h
│   │   │       ├── SBText.h
│   │   │       ├── SBTextConfig.h
│   │   │       ├── SBTextIterators.h
│   │   │       ├── SBTextType.h
│   │   │       ├── SBVersion.h
│   │   │       └── SheenBidi.h
│   │   ├── LICENSE_SHEENBIDI
│   │   ├── SheenBidi.c
│   │   └── Source/
│   │       ├── API/
│   │       │   ├── SBAlgorithm.c
│   │       │   ├── SBAlgorithm.h
│   │       │   ├── SBAllocator.c
│   │       │   ├── SBAllocator.h
│   │       │   ├── SBAssert.h
│   │       │   ├── SBAttributeInfo.h
│   │       │   ├── SBAttributeList.c
│   │       │   ├── SBAttributeList.h
│   │       │   ├── SBAttributeRegistry.c
│   │       │   ├── SBAttributeRegistry.h
│   │       │   ├── SBBase.c
│   │       │   ├── SBBase.h
│   │       │   ├── SBCodepoint.c
│   │       │   ├── SBCodepoint.h
│   │       │   ├── SBCodepointSequence.c
│   │       │   ├── SBCodepointSequence.h
│   │       │   ├── SBLine.c
│   │       │   ├── SBLine.h
│   │       │   ├── SBLog.c
│   │       │   ├── SBLog.h
│   │       │   ├── SBMirrorLocator.c
│   │       │   ├── SBMirrorLocator.h
│   │       │   ├── SBParagraph.c
│   │       │   ├── SBParagraph.h
│   │       │   ├── SBScriptLocator.c
│   │       │   ├── SBScriptLocator.h
│   │       │   ├── SBText.c
│   │       │   ├── SBText.h
│   │       │   ├── SBTextConfig.c
│   │       │   ├── SBTextConfig.h
│   │       │   ├── SBTextIterators.c
│   │       │   └── SBTextIterators.h
│   │       ├── Core/
│   │       │   ├── AtomicFlag.h
│   │       │   ├── AtomicPointer.h
│   │       │   ├── AtomicUInt.h
│   │       │   ├── List.c
│   │       │   ├── List.h
│   │       │   ├── Memory.c
│   │       │   ├── Memory.h
│   │       │   ├── Object.c
│   │       │   ├── Object.h
│   │       │   ├── Once.c
│   │       │   ├── Once.h
│   │       │   ├── ThreadFence.h
│   │       │   └── ThreadLocalStorage.h
│   │       ├── Data/
│   │       │   ├── BidiTypeLookup.c
│   │       │   ├── BidiTypeLookup.h
│   │       │   ├── GeneralCategoryLookup.c
│   │       │   ├── GeneralCategoryLookup.h
│   │       │   ├── PairingLookup.c
│   │       │   ├── PairingLookup.h
│   │       │   ├── ScriptLookup.c
│   │       │   └── ScriptLookup.h
│   │       ├── Script/
│   │       │   ├── ScriptStack.c
│   │       │   └── ScriptStack.h
│   │       ├── Text/
│   │       │   ├── AttributeDictionary.c
│   │       │   ├── AttributeDictionary.h
│   │       │   ├── AttributeManager.c
│   │       │   └── AttributeManager.h
│   │       └── UBA/
│   │           ├── BidiChain.c
│   │           ├── BidiChain.h
│   │           ├── BracketQueue.c
│   │           ├── BracketQueue.h
│   │           ├── BracketType.h
│   │           ├── IsolatingRun.c
│   │           ├── IsolatingRun.h
│   │           ├── LevelRun.c
│   │           ├── LevelRun.h
│   │           ├── RunExtrema.h
│   │           ├── RunKind.h
│   │           ├── RunQueue.c
│   │           ├── RunQueue.h
│   │           ├── StatusStack.c
│   │           └── StatusStack.h
│   ├── configure
│   ├── configure.ac
│   ├── install-sh
│   ├── installManPage
│   ├── tcl.m4
│   ├── tk.pc.in
│   ├── tk.spec
│   ├── tkAppInit.c
│   ├── tkConfig.h.in
│   ├── tkConfig.sh.in
│   ├── tkUnix.c
│   ├── tkUnix3d.c
│   ├── tkUnixAccessibility.c
│   ├── tkUnixBidiFont.c
│   ├── tkUnixButton.c
│   ├── tkUnixColor.c
│   ├── tkUnixConfig.c
│   ├── tkUnixCursor.c
│   ├── tkUnixDefault.h
│   ├── tkUnixDraw.c
│   ├── tkUnixEmbed.c
│   ├── tkUnixEvent.c
│   ├── tkUnixFocus.c
│   ├── tkUnixFont.c
│   ├── tkUnixInit.c
│   ├── tkUnixInt.h
│   ├── tkUnixKey.c
│   ├── tkUnixMenu.c
│   ├── tkUnixMenubu.c
│   ├── tkUnixPort.h
│   ├── tkUnixPrint.c
│   ├── tkUnixRFont.c
│   ├── tkUnixScale.c
│   ├── tkUnixScrlbr.c
│   ├── tkUnixSelect.c
│   ├── tkUnixSend.c
│   ├── tkUnixSysNotify.c
│   ├── tkUnixSysTray.c
│   ├── tkUnixWm.c
│   └── tkUnixXId.c
├── win/
│   ├── Makefile.in
│   ├── README
│   ├── aclocal.m4
│   ├── buildall.vc.bat
│   ├── configure
│   ├── configure.ac
│   ├── gitmanifest.in
│   ├── makefile.vc
│   ├── nmakehlp.c
│   ├── rc/
│   │   ├── cursor00.cur
│   │   ├── cursor02.cur
│   │   ├── cursor04.cur
│   │   ├── cursor06.cur
│   │   ├── cursor08.cur
│   │   ├── cursor0a.cur
│   │   ├── cursor0c.cur
│   │   ├── cursor0e.cur
│   │   ├── cursor10.cur
│   │   ├── cursor12.cur
│   │   ├── cursor14.cur
│   │   ├── cursor16.cur
│   │   ├── cursor18.cur
│   │   ├── cursor1a.cur
│   │   ├── cursor1c.cur
│   │   ├── cursor1e.cur
│   │   ├── cursor20.cur
│   │   ├── cursor22.cur
│   │   ├── cursor24.cur
│   │   ├── cursor26.cur
│   │   ├── cursor28.cur
│   │   ├── cursor2a.cur
│   │   ├── cursor2c.cur
│   │   ├── cursor2e.cur
│   │   ├── cursor30.cur
│   │   ├── cursor32.cur
│   │   ├── cursor34.cur
│   │   ├── cursor36.cur
│   │   ├── cursor38.cur
│   │   ├── cursor3a.cur
│   │   ├── cursor3c.cur
│   │   ├── cursor3e.cur
│   │   ├── cursor40.cur
│   │   ├── cursor42.cur
│   │   ├── cursor44.cur
│   │   ├── cursor46.cur
│   │   ├── cursor48.cur
│   │   ├── cursor4a.cur
│   │   ├── cursor4c.cur
│   │   ├── cursor4e.cur
│   │   ├── cursor50.cur
│   │   ├── cursor52.cur
│   │   ├── cursor54.cur
│   │   ├── cursor56.cur
│   │   ├── cursor58.cur
│   │   ├── cursor5a.cur
│   │   ├── cursor5c.cur
│   │   ├── cursor5e.cur
│   │   ├── cursor60.cur
│   │   ├── cursor62.cur
│   │   ├── cursor64.cur
│   │   ├── cursor66.cur
│   │   ├── cursor68.cur
│   │   ├── cursor6a.cur
│   │   ├── cursor6c.cur
│   │   ├── cursor6e.cur
│   │   ├── cursor70.cur
│   │   ├── cursor72.cur
│   │   ├── cursor74.cur
│   │   ├── cursor76.cur
│   │   ├── cursor78.cur
│   │   ├── cursor7a.cur
│   │   ├── cursor7c.cur
│   │   ├── cursor7e.cur
│   │   ├── cursor80.cur
│   │   ├── cursor82.cur
│   │   ├── cursor84.cur
│   │   ├── cursor86.cur
│   │   ├── cursor88.cur
│   │   ├── cursor8a.cur
│   │   ├── cursor8c.cur
│   │   ├── cursor8e.cur
│   │   ├── cursor90.cur
│   │   ├── cursor92.cur
│   │   ├── cursor94.cur
│   │   ├── cursor96.cur
│   │   ├── cursor98.cur
│   │   ├── cursor9a.cur
│   │   ├── tk.rc
│   │   ├── tk_base.rc
│   │   ├── tktest.rc
│   │   └── wish.rc
│   ├── rules-ext.vc
│   ├── rules.vc
│   ├── stubs.c
│   ├── svnmanifest.in
│   ├── targets.vc
│   ├── tcl.m4
│   ├── tkConfig.sh.in
│   ├── tkUuid.h.in
│   ├── tkWin.h
│   ├── tkWin32Dll.c
│   ├── tkWin3d.c
│   ├── tkWinAccessibility.c
│   ├── tkWinButton.c
│   ├── tkWinClipboard.c
│   ├── tkWinColor.c
│   ├── tkWinConfig.c
│   ├── tkWinCursor.c
│   ├── tkWinDefault.h
│   ├── tkWinDialog.c
│   ├── tkWinDraw.c
│   ├── tkWinEmbed.c
│   ├── tkWinFont.c
│   ├── tkWinGDI.c
│   ├── tkWinIco.c
│   ├── tkWinIco.h
│   ├── tkWinImage.c
│   ├── tkWinInit.c
│   ├── tkWinInt.h
│   ├── tkWinKey.c
│   ├── tkWinMenu.c
│   ├── tkWinPixmap.c
│   ├── tkWinPointer.c
│   ├── tkWinPort.h
│   ├── tkWinRegion.c
│   ├── tkWinScrlbr.c
│   ├── tkWinSend.c
│   ├── tkWinSendCom.c
│   ├── tkWinSendCom.h
│   ├── tkWinSysTray.c
│   ├── tkWinTest.c
│   ├── tkWinWindow.c
│   ├── tkWinWm.c
│   ├── tkWinX.c
│   ├── ttkWinMonitor.c
│   ├── ttkWinTheme.c
│   ├── ttkWinVistaTheme.c
│   ├── winMain.c
│   └── wish.exe.manifest.in
└── xlib/
    ├── X11/
    │   ├── DECkeysym.h
    │   ├── HPkeysym.h
    │   ├── Sunkeysym.h
    │   ├── X.h
    │   ├── XF86keysym.h
    │   ├── Xatom.h
    │   ├── Xfuncproto.h
    │   ├── Xlib.h
    │   ├── Xutil.h
    │   ├── ap_keysym.h
    │   ├── cursorfont.h
    │   ├── keysym.h
    │   └── keysymdef.h
    ├── rgb.txt
    ├── xbytes.h
    ├── xcolors.c
    ├── xdraw.c
    ├── xgc.c
    ├── ximage.c
    └── xutil.c
Download .txt
Showing preview only (369K chars total). Download the full file or copy to clipboard to get everything.
SYMBOL INDEX (5770 symbols across 346 files)

FILE: generic/nanosvg.h
  type NSVGpaintType (line 107) | enum NSVGpaintType {
  type NSVGspreadType (line 115) | enum NSVGspreadType {
  type NSVGlineJoin (line 121) | enum NSVGlineJoin {
  type NSVGlineCap (line 127) | enum NSVGlineCap {
  type NSVGfillRule (line 133) | enum NSVGfillRule {
  type NSVGflags (line 138) | enum NSVGflags {
  type NSVGpaintOrder (line 142) | enum NSVGpaintOrder {
  type NSVGgradientStop (line 148) | typedef struct NSVGgradientStop {
  type NSVGgradient (line 153) | typedef struct NSVGgradient {
  type NSVGpaint (line 161) | typedef struct NSVGpaint {
  type NSVGpath (line 169) | typedef struct NSVGpath
  type NSVGshape (line 178) | typedef struct NSVGshape
  type NSVGimage (line 202) | typedef struct NSVGimage
  function nsvg__isspace (line 259) | static int nsvg__isspace(char c)
  function nsvg__isdigit (line 264) | static int nsvg__isdigit(char c)
  function NSVG_INLINE (line 269) | static NSVG_INLINE float nsvg__minf(float a, float b) { return a < b ? a...
  function NSVG_INLINE (line 270) | static NSVG_INLINE float nsvg__maxf(float a, float b) { return a > b ? a...
  function nsvg__parseContent (line 279) | static void nsvg__parseContent(char* s,
  function nsvg__parseElement (line 291) | static void nsvg__parseElement(char* s,
  function NANOSVG_SCOPE (line 367) | NANOSVG_SCOPE
  type NSVGgradientUnits (line 404) | enum NSVGgradientUnits {
  type NSVGunits (line 411) | enum NSVGunits {
  type NSVGvisible (line 424) | enum NSVGvisible {
  type NSVGcoordinate (line 429) | typedef struct NSVGcoordinate {
  type NSVGlinearData (line 434) | typedef struct NSVGlinearData {
  type NSVGradialData (line 438) | typedef struct NSVGradialData {
  type NSVGgradientData (line 442) | typedef struct NSVGgradientData
  type NSVGattrib (line 459) | typedef struct NSVGattrib
  type NSVGstyles (line 488) | typedef struct NSVGstyles
  type NSVGparser (line 495) | typedef struct NSVGparser
  function nsvg__xformIdentity (line 515) | static void nsvg__xformIdentity(float* t)
  function nsvg__xformSetTranslation (line 522) | static void nsvg__xformSetTranslation(float* t, float tx, float ty)
  function nsvg__xformSetScale (line 529) | static void nsvg__xformSetScale(float* t, float sx, float sy)
  function nsvg__xformSetSkewX (line 536) | static void nsvg__xformSetSkewX(float* t, float a)
  function nsvg__xformSetSkewY (line 543) | static void nsvg__xformSetSkewY(float* t, float a)
  function nsvg__xformSetRotation (line 550) | static void nsvg__xformSetRotation(float* t, float a)
  function nsvg__xformMultiply (line 558) | static void nsvg__xformMultiply(float* t, float* s)
  function nsvg__xformInverse (line 571) | static void nsvg__xformInverse(float* inv, float* t)
  function nsvg__xformPremultiply (line 587) | static void nsvg__xformPremultiply(float* t, float* s)
  function nsvg__xformPoint (line 595) | static void nsvg__xformPoint(float* dx, float* dy, float x, float y, flo...
  function nsvg__xformVec (line 601) | static void nsvg__xformVec(float* dx, float* dy, float x, float y, float...
  function nsvg__ptInBounds (line 609) | static int nsvg__ptInBounds(float* pt, float* bounds)
  function nsvg__evalBezier (line 615) | static double nsvg__evalBezier(double t, double p0, double p1, double p2...
  function nsvg__curveBounds (line 621) | static void nsvg__curveBounds(float* bounds, float* curve)
  function nsvg__encodePaintOrder (line 672) | static unsigned char nsvg__encodePaintOrder(enum NSVGpaintOrder a, enum ...
  function NSVGparser (line 676) | static NSVGparser* nsvg__createParser(void)
  function nsvg__deleteStyles (line 715) | static void nsvg__deleteStyles(NSVGstyles* style) {
  function nsvg__deletePaths (line 727) | static void nsvg__deletePaths(NSVGpath* path)
  function nsvg__deletePaint (line 738) | static void nsvg__deletePaint(NSVGpaint* paint)
  function nsvg__deleteGradientData (line 744) | static void nsvg__deleteGradientData(NSVGgradientData* grad)
  function nsvg__deleteParser (line 755) | static void nsvg__deleteParser(NSVGparser* p)
  function nsvg__resetPath (line 767) | static void nsvg__resetPath(NSVGparser* p)
  function nsvg__addPoint (line 772) | static void nsvg__addPoint(NSVGparser* p, float x, float y)
  function nsvg__moveTo (line 784) | static void nsvg__moveTo(NSVGparser* p, float x, float y)
  function nsvg__lineTo (line 794) | static void nsvg__lineTo(NSVGparser* p, float x, float y)
  function nsvg__cubicBezTo (line 808) | static void nsvg__cubicBezTo(NSVGparser* p, float cpx1, float cpy1, floa...
  function NSVGattrib (line 817) | static NSVGattrib* nsvg__getAttr(NSVGparser* p)
  function nsvg__pushAttr (line 822) | static void nsvg__pushAttr(NSVGparser* p)
  function nsvg__popAttr (line 830) | static void nsvg__popAttr(NSVGparser* p)
  function nsvg__actualOrigX (line 836) | static float nsvg__actualOrigX(NSVGparser* p)
  function nsvg__actualOrigY (line 841) | static float nsvg__actualOrigY(NSVGparser* p)
  function nsvg__actualWidth (line 846) | static float nsvg__actualWidth(NSVGparser* p)
  function nsvg__actualHeight (line 851) | static float nsvg__actualHeight(NSVGparser* p)
  function nsvg__actualLength (line 856) | static float nsvg__actualLength(NSVGparser* p)
  function nsvg__convertToPixels (line 862) | static float nsvg__convertToPixels(NSVGparser* p, NSVGcoordinate c, floa...
  function NSVGgradientData (line 881) | static NSVGgradientData* nsvg__findGradientData(NSVGparser* p, const cha...
  function NSVGgradient (line 894) | static NSVGgradient* nsvg__createGradient(NSVGparser* p, const char* id,...
  function nsvg__getAverageScale (line 981) | static float nsvg__getAverageScale(float* t)
  function nsvg__getLocalBounds (line 988) | static void nsvg__getLocalBounds(float* bounds, NSVGshape *shape, float*...
  function nsvg__addShape (line 1018) | static void nsvg__addShape(NSVGparser* p)
  function nsvg__addPath (line 1103) | static void nsvg__addPath(NSVGparser* p, char closed)
  function nsvg__atof (line 1164) | static double nsvg__atof(const char* s)
  function nsvg__parseColorHex (line 1309) | static unsigned int nsvg__parseColorHex(const char* str)
  function nsvg__parseColorRGB (line 1325) | static unsigned int nsvg__parseColorRGB(const char* str)
  type NSVGNamedColor (line 1377) | typedef struct NSVGNamedColor {
  function nsvg__parseColorName (line 1536) | static unsigned int nsvg__parseColorName(const char* str)
  function nsvg__parseColor (line 1549) | static unsigned int nsvg__parseColor(const char* str)
  function nsvg__parseOpacity (line 1561) | static float nsvg__parseOpacity(const char* str)
  function nsvg__parseMiterLimit (line 1570) | static float nsvg__parseMiterLimit(const char* str)
  function nsvg__parseUnits (line 1578) | static int nsvg__parseUnits(const char* units)
  function nsvg__isCoordinate (line 1601) | static int nsvg__isCoordinate(const char* s)
  function NSVGcoordinate (line 1610) | static NSVGcoordinate nsvg__parseCoordinateRaw(const char* str)
  function NSVGcoordinate (line 1619) | static NSVGcoordinate nsvg__coord(float v, int units)
  function nsvg__parseCoordinate (line 1625) | static float nsvg__parseCoordinate(NSVGparser* p, const char* str, float...
  function nsvg__parseTransformArgs (line 1631) | static int nsvg__parseTransformArgs(const char* str, float* args, int ma...
  function nsvg__parseMatrix (line 1660) | static int nsvg__parseMatrix(float* xform, const char* str)
  function nsvg__parseTranslate (line 1670) | static int nsvg__parseTranslate(float* xform, const char* str)
  function nsvg__parseScale (line 1683) | static int nsvg__parseScale(float* xform, const char* str)
  function nsvg__parseSkewX (line 1695) | static int nsvg__parseSkewX(float* xform, const char* str)
  function nsvg__parseSkewY (line 1706) | static int nsvg__parseSkewY(float* xform, const char* str)
  function nsvg__parseRotate (line 1717) | static int nsvg__parseRotate(float* xform, const char* str)
  function nsvg__parseTransform (line 1746) | static void nsvg__parseTransform(float* xform, const char* str)
  function nsvg__parseUrl (line 1780) | static void nsvg__parseUrl(char* id, const char* str)
  function nsvg__parseLineCap (line 1793) | static char nsvg__parseLineCap(const char* str)
  function nsvg__parseLineJoin (line 1805) | static char nsvg__parseLineJoin(const char* str)
  function nsvg__parseFillRule (line 1817) | static char nsvg__parseFillRule(const char* str)
  function nsvg__parsePaintOrder (line 1827) | static unsigned char nsvg__parsePaintOrder(const char* str)
  function nsvg__parseStrokeDashArray (line 1861) | static int nsvg__parseStrokeDashArray(NSVGparser* p, const char* str, fl...
  function nsvg__parseAttr (line 1889) | static int nsvg__parseAttr(NSVGparser* p, const char* name, const char* ...
  function nsvg__parseNameValue (line 1981) | static int nsvg__parseNameValue(NSVGparser* p, const char* start, const ...
  function nsvg__parseStyle (line 2013) | static void nsvg__parseStyle(NSVGparser* p, const char* str)
  function nsvg__parseAttribs (line 2034) | static void nsvg__parseAttribs(NSVGparser* p, const char** attr)
  function nsvg__getArgsPerElement (line 2046) | static int nsvg__getArgsPerElement(char cmd)
  function nsvg__pathMoveTo (line 2079) | static void nsvg__pathMoveTo(NSVGparser* p, float* cpx, float* cpy, floa...
  function nsvg__pathLineTo (line 2091) | static void nsvg__pathLineTo(NSVGparser* p, float* cpx, float* cpy, floa...
  function nsvg__pathHLineTo (line 2103) | static void nsvg__pathHLineTo(NSVGparser* p, float* cpx, float* cpy, flo...
  function nsvg__pathVLineTo (line 2112) | static void nsvg__pathVLineTo(NSVGparser* p, float* cpx, float* cpy, flo...
  function nsvg__pathCubicBezTo (line 2121) | static void nsvg__pathCubicBezTo(NSVGparser* p, float* cpx, float* cpy,
  function nsvg__pathCubicBezShortTo (line 2150) | static void nsvg__pathCubicBezShortTo(NSVGparser* p, float* cpx, float* ...
  function nsvg__pathQuadBezTo (line 2180) | static void nsvg__pathQuadBezTo(NSVGparser* p, float* cpx, float* cpy,
  function nsvg__pathQuadBezShortTo (line 2214) | static void nsvg__pathQuadBezShortTo(NSVGparser* p, float* cpx, float* cpy,
  function nsvg__sqr (line 2247) | static float nsvg__sqr(float x) { return x*x; }
  function nsvg__vmag (line 2248) | static float nsvg__vmag(float x, float y) { return sqrtf(x*x + y*y); }
  function nsvg__vecrat (line 2250) | static float nsvg__vecrat(float ux, float uy, float vx, float vy)
  function nsvg__vecang (line 2255) | static float nsvg__vecang(float ux, float uy, float vx, float vy)
  function nsvg__pathArcTo (line 2263) | static void nsvg__pathArcTo(NSVGparser* p, float* cpx, float* cpy, float...
  function nsvg__parsePath (line 2384) | static void nsvg__parsePath(NSVGparser* p, const char** attr)
  function nsvg__parseRect (line 2532) | static void nsvg__parseRect(NSVGparser* p, const char** attr)
  function nsvg__parseCircle (line 2587) | static void nsvg__parseCircle(NSVGparser* p, const char** attr)
  function nsvg__parseEllipse (line 2617) | static void nsvg__parseEllipse(NSVGparser* p, const char** attr)
  function nsvg__parseLine (line 2650) | static void nsvg__parseLine(NSVGparser* p, const char** attr)
  function nsvg__parsePoly (line 2677) | static void nsvg__parsePoly(NSVGparser* p, const char** attr, int closeF...
  function nsvg__parseSVG (line 2713) | static void nsvg__parseSVG(NSVGparser* p, const char** attr)
  function nsvg__parseGradient (line 2753) | static void nsvg__parseGradient(NSVGparser* p, const char** attr, signed...
  function nsvg__parseGradientStop (line 2823) | static void nsvg__parseGradientStop(NSVGparser* p, const char** attr)
  function nsvg__startElement (line 2865) | static void nsvg__startElement(void* ud, const char* el, const char** attr)
  function nsvg__endElement (line 2929) | static void nsvg__endElement(void* ud, const char* el)
  function nsvg__content (line 2960) | static void nsvg__content(void* ud, const char* s)
  function nsvg__imageBounds (line 3012) | static void nsvg__imageBounds(NSVGparser* p, float* bounds)
  function nsvg__viewAlign (line 3032) | static float nsvg__viewAlign(float content, float container, int type)
  function nsvg__scaleGradient (line 3042) | static void nsvg__scaleGradient(NSVGgradient* grad, float tx, float ty, ...
  function nsvg__scaleToViewbox (line 3052) | static void nsvg__scaleToViewbox(NSVGparser* p, const char* units)
  function nsvg__createGradients (line 3143) | static void nsvg__createGradients(NSVGparser* p)
  function NANOSVG_SCOPE (line 3173) | NANOSVG_SCOPE
  function NANOSVG_SCOPE (line 3201) | NANOSVG_SCOPE
  function NANOSVG_SCOPE (line 3231) | NANOSVG_SCOPE

FILE: generic/nanosvgrast.h
  type NSVGrasterizer (line 50) | typedef struct NSVGrasterizer NSVGrasterizer;
  type NSVGedge (line 101) | typedef struct NSVGedge {
  type NSVGpoint (line 107) | typedef struct NSVGpoint {
  type NSVGactiveEdge (line 115) | typedef struct NSVGactiveEdge {
  type NSVGmemPage (line 122) | typedef struct NSVGmemPage {
  type NSVGcachedPaint (line 128) | typedef struct NSVGcachedPaint {
  type NSVGrasterizer (line 135) | struct NSVGrasterizer
  function NANOSVG_SCOPE (line 165) | NANOSVG_SCOPE
  function NANOSVG_SCOPE (line 182) | NANOSVG_SCOPE
  function NSVGmemPage (line 204) | static NSVGmemPage* nsvg__nextPage(NSVGrasterizer* r, NSVGmemPage* cur)
  function nsvg__resetPool (line 227) | static void nsvg__resetPool(NSVGrasterizer* r)
  function nsvg__ptEquals (line 249) | static int nsvg__ptEquals(float x1, float y1, float x2, float y2, float ...
  function nsvg__addPathPoint (line 256) | static void nsvg__addPathPoint(NSVGrasterizer* r, float x, float y, int ...
  function nsvg__appendPathPoint (line 281) | static void nsvg__appendPathPoint(NSVGrasterizer* r, NSVGpoint pt)
  function nsvg__duplicatePoints (line 292) | static void nsvg__duplicatePoints(NSVGrasterizer* r)
  function nsvg__addEdge (line 304) | static void nsvg__addEdge(NSVGrasterizer* r, float x0, float y0, float x...
  function nsvg__normalize (line 336) | static float nsvg__normalize(float *x, float* y)
  function nsvg__absf (line 347) | static float nsvg__absf(float x) { return x < 0 ? -x : x; }
  function nsvg__roundf (line 348) | static float nsvg__roundf(float x) { return (x >= 0) ? floorf(x + 0.5) :...
  function nsvg__flattenCubicBez (line 350) | static void nsvg__flattenCubicBez(NSVGrasterizer* r,
  function nsvg__flattenShape (line 388) | static void nsvg__flattenShape(NSVGrasterizer* r, NSVGshape* shape, floa...
  type NSVGpointFlags (line 409) | enum NSVGpointFlags
  function nsvg__initClosed (line 416) | static void nsvg__initClosed(NSVGpoint* left, NSVGpoint* right, NSVGpoin...
  function nsvg__buttCap (line 430) | static void nsvg__buttCap(NSVGrasterizer* r, NSVGpoint* left, NSVGpoint*...
  function nsvg__squareCap (line 448) | static void nsvg__squareCap(NSVGrasterizer* r, NSVGpoint* left, NSVGpoin...
  function nsvg__roundCap (line 470) | static void nsvg__roundCap(NSVGrasterizer* r, NSVGpoint* left, NSVGpoint...
  function nsvg__bevelJoin (line 506) | static void nsvg__bevelJoin(NSVGrasterizer* r, NSVGpoint* left, NSVGpoin...
  function nsvg__miterJoin (line 526) | static void nsvg__miterJoin(NSVGrasterizer* r, NSVGpoint* left, NSVGpoin...
  function nsvg__roundJoin (line 562) | static void nsvg__roundJoin(NSVGrasterizer* r, NSVGpoint* left, NSVGpoin...
  function nsvg__straightJoin (line 603) | static void nsvg__straightJoin(NSVGrasterizer* r, NSVGpoint* left, NSVGp...
  function nsvg__curveDivs (line 616) | static int nsvg__curveDivs(float r, float arc, float tol)
  function nsvg__expandStroke (line 624) | static void nsvg__expandStroke(NSVGrasterizer* r, NSVGpoint* points, int...
  function nsvg__prepareStroke (line 695) | static void nsvg__prepareStroke(NSVGrasterizer* r, float miterLimit, int...
  function nsvg__flattenShapeStroke (line 752) | static void nsvg__flattenShapeStroke(NSVGrasterizer* r, NSVGshape* shape...
  function nsvg__cmpEdge (line 863) | static int nsvg__cmpEdge(const void *p, const void *q)
  function NSVGactiveEdge (line 874) | static NSVGactiveEdge* nsvg__addActive(NSVGrasterizer* r, NSVGedge* e, f...
  function nsvg__freeActive (line 905) | static void nsvg__freeActive(NSVGrasterizer* r, NSVGactiveEdge* z)
  function nsvg__fillScanline (line 911) | static void nsvg__fillScanline(unsigned char* scanline, int len, int x0,...
  function nsvg__fillActiveEdges (line 942) | static void nsvg__fillActiveEdges(unsigned char* scanline, int len, NSVG...
  function nsvg__clampf (line 976) | static float nsvg__clampf(float a, float mn, float mx) {
  function nsvg__RGBA (line 982) | static unsigned int nsvg__RGBA(unsigned char r, unsigned char g, unsigne...
  function nsvg__lerpRGBA (line 987) | static unsigned int nsvg__lerpRGBA(unsigned int c0, unsigned int c1, flo...
  function nsvg__applyOpacity (line 997) | static unsigned int nsvg__applyOpacity(unsigned int c, float u)
  function nsvg__div255 (line 1007) | static inline int nsvg__div255(int x)
  function nsvg__scanlineSolid (line 1012) | static void nsvg__scanlineSolid(unsigned char* dst, int count, unsigned ...
  function nsvg__rasterizeSortedEdges (line 1140) | static void nsvg__rasterizeSortedEdges(NSVGrasterizer *r, float tx, floa...
  function nsvg__unpremultiplyAlpha (line 1228) | static void nsvg__unpremultiplyAlpha(unsigned char* image, int w, int h,...
  function nsvg__initPaint (line 1288) | static void nsvg__initPaint(NSVGcachedPaint* cache, NSVGpaint* paint, fl...
  function NANOSVG_SCOPE (line 1391) | NANOSVG_SCOPE

FILE: generic/tk.h
  type Tk_BindingTable_ (line 128) | struct Tk_BindingTable_
  type Tk_Canvas_ (line 129) | struct Tk_Canvas_
  type Tk_Cursor_ (line 130) | struct Tk_Cursor_
  type Tk_ErrorHandler_ (line 131) | struct Tk_ErrorHandler_
  type Tk_Font_ (line 132) | struct Tk_Font_
  type Tk_Image__ (line 133) | struct Tk_Image__
  type Tk_ImageModel_ (line 134) | struct Tk_ImageModel_
  type Tk_OptionTable_ (line 135) | struct Tk_OptionTable_
  type Tk_PostscriptInfo_ (line 136) | struct Tk_PostscriptInfo_
  type Tk_TextLayout_ (line 137) | struct Tk_TextLayout_
  type Tk_Window_ (line 138) | struct Tk_Window_
  type Tk_3DBorder_ (line 139) | struct Tk_3DBorder_
  type Tk_Style_ (line 140) | struct Tk_Style_
  type Tk_StyleEngine_ (line 141) | struct Tk_StyleEngine_
  type Tk_StyledElement_ (line 142) | struct Tk_StyledElement_
  type Tk_OptionType (line 157) | typedef enum {
  type Tk_OptionSpec (line 187) | typedef struct Tk_OptionSpec {
  type Tcl_Obj (line 246) | typedef Tcl_Obj *(Tk_CustomOptionGetProc) (void *clientData,
  type Tk_ObjCustomOption (line 253) | typedef struct Tk_ObjCustomOption {
  type Tk_SavedOption (line 281) | typedef struct Tk_SavedOption {
  type Tk_SavedOptions (line 305) | typedef struct Tk_SavedOptions {
  type Tk_CustomOption (line 339) | typedef struct Tk_CustomOption {
  type Tk_ConfigSpec (line 358) | typedef struct Tk_ConfigSpec {
  type Tk_ConfigTypes (line 386) | typedef enum {
  type Tk_ArgvInfo (line 421) | typedef struct {
  type Tk_RestrictAction (line 466) | typedef enum {
  type Tk_Anchor (line 513) | typedef enum {
  type Tk_Justify (line 524) | typedef enum {
  type Tk_FontMetrics (line 534) | typedef struct Tk_FontMetrics {
  type Window (line 571) | typedef Window (Tk_ClassCreateProc) (Tk_Window tkwin, Window parent,
  type Tk_ClassProcs (line 576) | typedef struct Tk_ClassProcs {
  type Tk_GeomMgr (line 619) | typedef struct Tk_GeomMgr {
  type XVirtualEvent (line 674) | typedef struct {
  type XActivateDeactivateEvent (line 696) | typedef struct {
  type XActivateDeactivateEvent (line 704) | typedef XActivateDeactivateEvent XActivateEvent;
  type XActivateDeactivateEvent (line 705) | typedef XActivateDeactivateEvent XDeactivateEvent;
  type Tk_FakeWin (line 774) | typedef struct Tk_FakeWin {
  type Tk_State (line 917) | typedef enum {
  type Tk_SmoothMethod (line 922) | typedef struct Tk_SmoothMethod {
  type Tk_Item (line 938) | typedef struct Tk_Item {
  type Tcl_Size (line 1026) | typedef Tcl_Size (Tk_ItemSelectionProc)(Tk_Canvas canvas, Tk_Item *itemPtr,
  type Tk_ItemType (line 1033) | typedef struct Tk_ItemType {
  type Tk_CanvasTextInfo (line 1107) | typedef struct Tk_CanvasTextInfo {
  type Tk_Dash (line 1150) | typedef struct Tk_Dash {
  type Tk_TSOffset (line 1158) | typedef struct Tk_TSOffset {
  type Tk_Outline (line 1177) | typedef struct Tk_Outline {
  type Tk_ImageType (line 1208) | typedef struct Tk_ImageType Tk_ImageType;
  type Tk_ImageType (line 1232) | struct Tk_ImageType {
  type Tk_PhotoImageBlock (line 1279) | typedef struct Tk_PhotoImageBlock {
  type Tk_PhotoImageFormat (line 1305) | typedef struct Tk_PhotoImageFormat Tk_PhotoImageFormat;
  type Tk_PhotoImageFormatVersion3 (line 1326) | typedef struct Tk_PhotoImageFormatVersion3 Tk_PhotoImageFormatVersion3;
  type Tk_PhotoImageFormat (line 1357) | struct Tk_PhotoImageFormat {
  type Tk_PhotoImageFormatVersion3 (line 1389) | struct Tk_PhotoImageFormatVersion3 {
  type Tk_ElementOptionSpec (line 1449) | typedef struct Tk_ElementOptionSpec {
  type Tk_ElementSpec (line 1455) | typedef struct Tk_ElementSpec {
  type Tk_RestrictAction (line 1526) | typedef Tk_RestrictAction (Tk_RestrictProc) (void *clientData,
  type Tcl_Size (line 1528) | typedef Tcl_Size (Tk_SelectionProc) (void *clientData, Tcl_Size offset,

FILE: generic/tk3d.c
  function Tk_3DBorder (line 82) | Tk_3DBorder
  function Tk_3DBorder (line 181) | Tk_3DBorder
  function Tk_Draw3DRectangle (line 276) | void
  function XColor (line 345) | XColor *
  function GC (line 368) | GC
  function Tk_Free3DBorder (line 416) | void
  function Tk_Free3DBorderFromObj (line 487) | void
  function FreeBorderObjProc (line 516) | static void
  function FreeBorderObj (line 524) | static void
  function DupBorderObjProc (line 558) | static void
  function Tk_SetBackgroundFromBorder (line 590) | void
  function Tk_GetReliefFromObj (line 618) | int
  function Tk_GetRelief (line 647) | int
  function Tk_Draw3DPolygon (line 750) | void
  function Tk_Fill3DRectangle (line 954) | void
  function Tk_Fill3DPolygon (line 1020) | void
  function BorderInit (line 1063) | static void
  function ShiftLine (line 1088) | static void
  function Intersect (line 1174) | static int
  function Tk_3DBorder (line 1243) | Tk_3DBorder
  function InitBorderObj (line 1330) | static void
  function Tcl_Obj (line 1368) | Tcl_Obj *
  function Tk_Get3DBorderColors (line 1415) | void

FILE: generic/tk3d.h
  type TkBorder (line 23) | typedef struct TkBorder {

FILE: generic/tkAccessibility.c
  function Tk_SetAccessibleRole (line 73) | int
  function Tk_SetAccessibleName (line 142) | int
  function Tk_SetAccessibleDescription (line 203) | int
  function Tk_SetAccessibleValue (line 264) | int
  function Tk_SetAccessibleState (line 323) | int
  function Tk_SetAccessibleAction (line 382) | int
  function Tk_SetAccessibleHelp (line 441) | int
  function Tk_GetAccessibleRole (line 503) | int
  function Tk_GetAccessibleName (line 560) | int
  function Tk_GetAccessibleDescription (line 619) | int
  function Tk_GetAccessibleValue (line 678) | int
  function Tk_GetAccessibleState (line 736) | int
  function Tk_GetAccessibleAction (line 795) | int
  function Tk_GetAccessibleHelp (line 852) | int
  function WindowDestroyHandler (line 909) | static void WindowDestroyHandler(
  function TkAccessibility_Cleanup (line 959) | void
  function TkAccessibility_Init (line 1020) | int

FILE: generic/tkArgv.c
  function Tk_ParseArgv (line 57) | int
  function PrintUsage (line 320) | static void

FILE: generic/tkAtom.c
  function Atom (line 75) | Atom
  function AtomInit (line 180) | static void

FILE: generic/tkBind.c
  type KeySym (line 83) | typedef KeySym Info;
  type Detail (line 85) | typedef union {
  type Event (line 95) | typedef struct {
  type PatSeq (line 105) | struct PatSeq
  type PSEntry (line 110) | typedef struct PSEntry {
  type LookupTables (line 136) | typedef struct {
  type BindingTable (line 159) | typedef struct Tk_BindingTable_ {
  type VirtualEventTable (line 184) | typedef struct {
  type PatternTableKey (line 206) | typedef struct {
  type TkPattern (line 223) | typedef struct {
  type PatSeq (line 263) | typedef struct PatSeq {
  type ScreenInfo (line 321) | typedef struct {
  type BindInfo (line 332) | typedef struct TkBindInfo_ {
  type KeySymInfo (line 354) | typedef struct {
  type ModInfo (line 375) | typedef struct {
  type EventInfo (line 461) | typedef struct {
  function Tcl_Size (line 740) | static Tcl_Size Max(Tcl_Size a, Tcl_Size b) { return a < b ? b : a; }
  function Abs (line 741) | static int Abs(int n) { return n < 0 ? -n : n; }
  function IsOdd (line 742) | static int IsOdd(int n) { return n & 1; }
  function TestNearbyTime (line 744) | static int TestNearbyTime(int lhs, int rhs) { return Abs(lhs - rhs) <= N...
  function TestNearbyCoords (line 745) | static int TestNearbyCoords(int lhs, int rhs) { return Abs(lhs - rhs) <=...
  function IsSubsetOf (line 747) | static int
  function GetButtonNumber (line 776) | static unsigned
  function Time (line 786) | static Time
  function Info (line 795) | static Info
  function GetCount (line 806) | static unsigned
  function CountSpecialized (line 817) | static int
  function IsKeyEventType (line 839) | static int
  function IsButtonEventType (line 846) | static int
  function MatchEventNearby (line 853) | static int
  function MatchEventRepeat (line 870) | static int
  function FreePatSeq (line 884) | static void
  function RemoveListEntry (line 899) | static void
  function ClearList (line 914) | static void
  function PSEntry (line 938) | static PSEntry *
  function ResolveModifiers (line 950) | static unsigned
  function ButtonNumberFromState (line 973) | static int
  function SetupPatternKey (line 989) | static void
  function PSEntry (line 1032) | static PSEntry *
  function PSList (line 1089) | static PSList *
  function ClearLookupTable (line 1143) | static void
  function ClearPromotionLists (line 1193) | static void
  function TkBindInit (line 1238) | void
  function TkBindFree (line 1408) | void
  function Tk_BindingTable (line 1448) | Tk_BindingTable
  function Tk_DeleteBindingTable (line 1494) | void
  function InsertPatSeq (line 1558) | static void
  function Tk_CreateBinding (line 1616) | unsigned long
  function Tk_DeleteBinding (line 1715) | int
  function Tk_GetAllBindings (line 1826) | void
  function RemovePatSeqFromLookup (line 1870) | static void
  function RemovePatSeqFromPromotionLists (line 1916) | static void
  function PatSeq (line 1957) | static PatSeq *
  function Tk_DeleteAllBindings (line 2016) | void
  function ResetCounters (line 2074) | static void
  function IsBetterMatch (line 2093) | static bool
  function Tk_BindEvent (line 2138) | void
  function VirtPatIsBound (line 2635) | static bool
  function Compare (line 2686) | static int
  function CompareModMasks (line 2700) | static int
  function IsPSInPSList (line 2746) | static bool
  function PatSeq (line 2761) | static PatSeq *
  function ExpandPercents (line 2957) | static void
  function ChangeScreen (line 3292) | static void
  function Tk_EventObjCmd (line 3327) | int
  function InitVirtualEventTable (line 3453) | static void
  function DeleteVirtualEventTable (line 3482) | static void
  function CreateVirtualEvent (line 3538) | static bool
  function DeleteVirtualEvent (line 3615) | static int
  function GetVirtualEvent (line 3748) | static int
  function GetAllVirtualEvents (line 3799) | static void
  function HandleEventGenerate (line 3854) | static int
  function NameToWindow (line 4486) | static bool
  function TkDoWarpWrtWin (line 4548) | void
  function Tk_Uid (line 4598) | static Tk_Uid
  function PatSeq (line 4650) | static PatSeq *
  function FinalizeParseEventDescription (line 4826) | static unsigned
  function ParseEventDescription (line 4845) | static unsigned
  function Tcl_Obj (line 5136) | static Tcl_Obj *
  function KeySym (line 5253) | KeySym
  function XEvent (line 5385) | XEvent *
  function TkpDumpPS (line 5412) | void
  function TkpDumpPSList (line 5448) | void

FILE: generic/tkBitmap.c
  type TkBitmap (line 55) | typedef struct TkBitmap {
  type DataKey (line 90) | typedef struct {
  type ThreadSpecificData (line 95) | typedef struct {
  function Pixmap (line 162) | Pixmap
  function Pixmap (line 258) | Pixmap
  function TkBitmap (line 301) | static TkBitmap *
  function Tk_DefineBitmap (line 470) | int
  function Tk_SizeOfBitmap (line 570) | void
  function FreeBitmap (line 614) | static void
  function Tk_FreeBitmap (line 662) | void
  function Tk_FreeBitmapFromObj (line 702) | void
  function FreeBitmapObjProc (line 730) | static void
  function FreeBitmapObj (line 738) | static void
  function DupBitmapObjProc (line 772) | static void
  function Pixmap (line 813) | Pixmap
  function Pixmap (line 873) | Pixmap
  function TkBitmap (line 903) | static TkBitmap *
  function InitBitmapObj (line 973) | static void
  function BitmapInit (line 1011) | static void
  function TkReadBitmapFile (line 1097) | int
  function Tcl_Obj (line 1142) | Tcl_Obj *
  function Tcl_HashTable (line 1193) | Tcl_HashTable *

FILE: generic/tkBusy.c
  function Tk_Window (line 79) | static inline Tk_Window
  function Tk_Window (line 88) | static inline Tk_Window
  function SetWindowInstanceData (line 100) | static inline void
  function BusyCustodyProc (line 129) | static void
  function BusyGeometryProc (line 162) | static void
  function DoConfigureNotify (line 189) | static void
  function RefWinEventProc (line 251) | static void
  function DestroyBusy (line 334) | static void
  function BusyEventProc (line 377) | static void
  function MakeTransparentWindowExist (line 416) | static void
  function Busy (line 518) | static Busy *
  function ConfigureBusy (line 635) | static int
  function Busy (line 680) | static Busy *
  function HoldBusy (line 725) | static int
  function Tk_BusyObjCmd (line 791) | int

FILE: generic/tkBusy.h
  type Busy (line 15) | typedef struct Busy {

FILE: generic/tkButton.c
  type ThreadSpecificData (line 19) | typedef struct {
  type command (line 498) | enum command {
  type command (line 502) | enum command
  function Tk_ButtonObjCmd (line 560) | int
  function Tk_CheckbuttonObjCmd (line 570) | int
  function Tk_LabelObjCmd (line 580) | int
  function Tk_RadiobuttonObjCmd (line 590) | int
  function ButtonCreate (line 618) | static int
  function ButtonWidgetObjCmd (line 766) | static int
  function DestroyButton (line 935) | static void
  function ConfigureButton (line 1018) | static int
  function TkButtonWorldChanged (line 1325) | void
  function ButtonEventProc (line 1438) | static void
  function ButtonCmdDeletedProc (line 1501) | static void
  function TkInvokeButton (line 1539) | int
  function ButtonImageProc (line 1794) | static void
  function ButtonSelectImageProc (line 1833) | static void
  function ButtonTristateImageProc (line 1881) | static void

FILE: generic/tkButton.h
  type compound (line 24) | enum compound {
  type state (line 33) | enum state {
  type defaultState (line 41) | enum defaultState {
  type TkButton (line 50) | typedef struct {

FILE: generic/tkCanvArc.c
  type Style (line 23) | typedef enum {
  type ArcItem (line 27) | typedef struct ArcItem {
  type Tk_Item (line 191) | struct Tk_Item
  function CreateArc (line 272) | static int
  function ArcCoords (line 351) | static int
  function ConfigureArc (line 433) | static int
  function ComputeArcParametersFromHeight (line 611) | static void
  function DeleteArc (line 708) | static void
  function ComputeArcBbox (line 760) | static void
  function DisplayArc (line 896) | static void
  function ArcToPoint (line 1077) | static double
  function ArcToArea (line 1241) | static int
  function ScaleArc (line 1492) | static void
  function RotateArc (line 1528) | static void
  function TranslateArc (line 1581) | static void
  function ComputeArcOutline (line 1617) | static void
  function HorizLineToArc (line 1828) | static int
  function VertLineToArc (line 1889) | static int
  function AngleInRange (line 1951) | static int
  function ArcToPostscript (line 1996) | static int
  function StyleParseProc (line 2194) | static int

FILE: generic/tkCanvBmap.c
  type BitmapItem (line 21) | typedef struct BitmapItem  {
  type Tk_Item (line 102) | struct Tk_Item
  function TkcCreateBitmap (line 166) | static int
  function BitmapCoords (line 242) | static int
  function ConfigureBitmap (line 306) | static int
  function DeleteBitmap (line 418) | static void
  function ComputeBitmapBbox (line 476) | static void
  function DisplayBitmap (line 575) | static void
  function BitmapToPoint (line 673) | static double
  function BitmapToArea (line 729) | static int
  function ScaleBitmap (line 775) | static void
  function RotateBitmap (line 809) | static void
  function TranslateBitmap (line 841) | static void
  function BitmapToPostscript (line 874) | static int

FILE: generic/tkCanvImg.c
  type ImageItem (line 20) | typedef struct ImageItem  {
  type Tk_Item (line 89) | struct Tk_Item
  function CreateImage (line 153) | static int
  function ImageCoords (line 225) | static int
  function ConfigureImage (line 289) | static int
  function DeleteImage (line 380) | static void
  function ComputeImageBbox (line 426) | static void
  function DisplayImage (line 524) | static void
  function ImageToPoint (line 588) | static double
  function ImageToArea (line 644) | static int
  function ImageToPostscript (line 688) | static int
  function RotateImage (line 781) | static void
  function ScaleImage (line 815) | static void
  function TranslateImage (line 848) | static void
  function ImageChangedProc (line 880) | static void

FILE: generic/tkCanvLine.c
  type Arrows (line 26) | typedef enum {
  type LineItem (line 30) | typedef struct LineItem {
  type Tk_Item (line 90) | struct Tk_Item
  function CreateLine (line 280) | static int
  function LineCoords (line 359) | static int
  function ConfigureLine (line 470) | static int
  function DeleteLine (line 610) | static void
  function ComputeLineBbox (line 650) | static void
  function DisplayLine (line 835) | static void
  function LineInsert (line 959) | static void
  function LineDeleteCoords (line 1214) | static void
  function LineToPoint (line 1454) | static double
  function LineToArea (line 1681) | static int
  function ScaleLine (line 1804) | static void
  function GetLineIndex (line 1865) | static int
  function TranslateLine (line 1953) | static void
  function RotateLine (line 2005) | static void
  function ParseArrowShape (line 2055) | static int
  function ArrowParseProc (line 2160) | static int
  function ConfigureArrows (line 2271) | static int
  function LineToPostscript (line 2427) | static int
  function ArrowheadPostscript (line 2626) | static int

FILE: generic/tkCanvPoly.c
  type PolygonItem (line 22) | typedef struct PolygonItem  {
  type Tk_Item (line 156) | struct Tk_Item
  function CreatePolygon (line 244) | static int
  function PolygonCoords (line 328) | static int
  function ConfigurePolygon (line 427) | static int
  function DeletePolygon (line 566) | static void
  function ComputePolygonBbox (line 618) | static void
  function TkFillPolygon (line 800) | void
  function DisplayPolygon (line 872) | static void
  function PolygonInsert (line 1014) | static void
  function PolygonDeleteCoords (line 1206) | static void
  function PolygonToPoint (line 1283) | static double
  function PolygonToArea (line 1472) | static int
  function ScalePolygon (line 1665) | static void
  function GetPolygonIndex (line 1705) | static int
  function RotatePolygon (line 1791) | static void
  function TranslatePolygon (line 1827) | static void
  function PolygonToPostscript (line 1865) | static int

FILE: generic/tkCanvPs.c
  type TkColormapData (line 28) | typedef struct TkColormapData {	/* Hold color information for a window */
  type TkPostscriptInfo (line 43) | typedef struct TkPostscriptInfo {
  function TkCanvPostscriptObjCmd (line 157) | int
  function Tcl_Obj (line 656) | static inline Tcl_Obj *
  function Tk_PostscriptColor (line 690) | int
  function Tk_PostscriptFont (line 762) | int
  function Tk_PostscriptBitmap (line 848) | int
  function PostscriptBitmap (line 869) | static void
  function Tk_PostscriptStipple (line 968) | int
  function Tk_PostscriptY (line 1025) | double
  function Tk_PostscriptPath (line 1052) | void
  function GetPostscriptPoints (line 1098) | static int
  function TkImageGetColor (line 1198) | static void
  function TkImageGetColor (line 1212) | static void
  function TkPostscriptImage (line 1256) | int
  function Tk_PostscriptPhoto (line 1496) | int

FILE: generic/tkCanvText.c
  type TextItem (line 25) | typedef struct TextItem {
  function UnderlineParseProc (line 98) | static int
  type Tk_Item (line 223) | struct Tk_Item
  function CreateText (line 309) | static int
  function TextCoords (line 404) | static int
  function ConfigureText (line 471) | static int
  function DeleteText (line 644) | static void
  function ComputeTextBbox (line 707) | static void
  function DisplayCanvText (line 867) | static void
  function TextInsert (line 1086) | static void
  function TextDeleteChars (line 1168) | static void
  function TextToPoint (line 1265) | static double
  function TextToArea (line 1311) | static int
  function RotateText (line 1354) | static void
  function ScaleText (line 1385) | static void
  function TranslateText (line 1419) | static void
  function GetTextIndex (line 1452) | static int
  function SetTextCursor (line 1556) | static void
  function Tcl_Size (line 1596) | static Tcl_Size
  function TextToPostscript (line 1650) | static int

FILE: generic/tkCanvUtil.c
  type SmoothAssocData (line 24) | typedef struct SmoothAssocData {
  function Tcl_Obj (line 60) | static inline Tcl_Obj *
  function Tk_Window (line 90) | Tk_Window
  function Tk_CanvasDrawableCoords (line 118) | void
  function Tk_CanvasWindowCoords (line 177) | void
  function Tk_CanvasGetCoord (line 236) | int
  function Tk_CanvasGetCoordFromObj (line 272) | int
  function Tk_CanvasSetStippleOrigin (line 301) | void
  function Tk_CanvasSetOffset (line 331) | void
  function Tk_CanvasTextInfo (line 379) | Tk_CanvasTextInfo *
  function Tk_CanvasTagsParseProc (line 404) | int
  function TkCanvasDashParseProc (line 513) | int
  function SmoothAssocData (line 603) | static SmoothAssocData *
  function Tk_CreateSmoothMethod (line 642) | void
  function SmoothMethodCleanupProc (line 699) | static void
  function TkSmoothParseProc (line 731) | int
  function Tk_GetDash (line 856) | int
  function Tk_CreateOutline (line 965) | void
  function Tk_DeleteOutline (line 1008) | void
  function Tk_ConfigOutlineGC (line 1065) | int
  function Tk_ChangeOutlineGC (line 1181) | int
  function Tk_ResetOutlineGC (line 1303) | int
  function Tk_CanvasPsOutline (line 1399) | int
  function DashConvert (line 1525) | static int
  function TranslateAndAppendCoords (line 1599) | static void
  function Tcl_Size (line 1661) | Tcl_Size
  function TkRotatePoint (line 1901) | void

FILE: generic/tkCanvWind.c
  type WindowItem (line 20) | typedef struct WindowItem  {
  type Tk_Item (line 73) | struct Tk_Item
  function CreateWinItem (line 169) | static int
  function WinItemCoords (line 240) | static int
  function ConfigureWinItem (line 303) | static int
  function DeleteWinItem (line 403) | static void
  function ComputeWindowBbox (line 441) | static void
  function DisplayWinItem (line 558) | static void
  function WinItemToPoint (line 664) | static double
  function WinItemToArea (line 720) | static int
  function xerrorhandler (line 763) | static int
  function WinItemToPostscript (line 791) | static int
  function CanvasPsWindow (line 835) | static int
  function RotateWinItem (line 949) | static void
  function ScaleWinItem (line 982) | static void
  function TranslateWinItem (line 1021) | static void
  function WinItemStructureProc (line 1053) | static void
  function WinItemRequestProc (line 1083) | static void
  function WinItemLostContentProc (line 1118) | static void

FILE: generic/tkCanvas.c
  type TagSearch (line 48) | typedef struct TagSearch {
  function typedef (line 194) | TCL_DECLARE_MUTEX(typeListMutex)
  function AlwaysRedraw (line 324) | static inline int
  function ItemConfigure (line 331) | static inline int
  function ItemConfigInfo (line 344) | static inline int
  function ItemConfigValue (line 355) | static inline int
  function ItemCoords (line 366) | static inline int
  function ItemCreate (line 385) | static inline int
  function ItemCursor (line 399) | static inline void
  function ItemDelChars (line 408) | static inline void
  function ItemDelete (line 418) | static inline void
  function ItemDisplay (line 427) | static inline void
  function ItemIndex (line 439) | static int
  function ItemInsert (line 455) | static inline void
  function ItemOverlap (line 466) | static inline int
  function ItemPoint (line 475) | static inline double
  function ItemScale (line 489) | static inline void
  function Tcl_Size (line 500) | static inline Tcl_Size
  function ItemTranslate (line 516) | static inline void
  function ItemRotate (line 527) | static inline void
  function DefaultRotateImplementation (line 554) | static void
  function Tk_CanvasObjCmd (line 641) | int
  function CanvasWidgetCmd (line 792) | static int
  function DestroyCanvas (line 2189) | static void
  function ConfigureCanvas (line 2255) | static int
  function CanvasWorldChanged (line 2430) | static void
  function DecomposeMaskToShiftAndBits (line 2470) | static void
  function DrawCanvas (line 2546) | static int
  function DisplayCanvas (line 3003) | static void
  function CanvasEventProc (line 3267) | static void
  function CanvasCmdDeletedProc (line 3358) | static void
  function Tk_CanvasEventuallyRedraw (line 3395) | void
  function EventuallyRedrawItem (line 3463) | static void
  function Tk_CreateItemType (line 3530) | void
  function Tk_ItemType (line 3583) | Tk_ItemType *
  function InitCanvas (line 3609) | static void
  function SearchUids (line 3649) | static SearchUids *
  function TagSearchExprInit (line 3684) | static void
  function TagSearchExprDestroy (line 3716) | static void
  function TagSearchScan (line 3750) | static int
  function TagSearchDestroy (line 3920) | static void
  function TagSearchScanExpr (line 3950) | static int
  function TagSearchEvalExpr (line 4205) | static int
  function Tk_Item (line 4362) | static Tk_Item *
  function Tk_Item (line 4476) | static Tk_Item *
  function DoItem (line 4578) | static void
  function FindItems (line 4654) | static int
  function FindArea (line 4904) | static int
  function RelinkItems (line 4989) | static int
  function CanvasBindProc (line 5093) | static void
  function PickCurrentItem (line 5186) | static void
  function Tk_Item (line 5398) | static Tk_Item *
  function CanvasDoEvent (line 5453) | static void
  function CanvasBlinkProc (line 5564) | static void
  function CanvasFocusProc (line 5603) | static void
  function CanvasSelectTo (line 5652) | static void
  function Tcl_Size (line 5717) | static Tcl_Size
  function CanvasLostSelection (line 5751) | static void
  function GridAlign (line 5778) | static double
  function Tcl_Obj (line 5813) | static Tcl_Obj *
  function CanvasUpdateScrollbars (line 5865) | static void
  function CanvasSetOrigin (line 5957) | static void
  function Tk_CanvasPsColor (line 6093) | int
  function Tk_CanvasPsFont (line 6125) | int
  function Tk_CanvasPsBitmap (line 6156) | int
  function Tk_CanvasPsStipple (line 6192) | int
  function Tk_CanvasPsY (line 6220) | double
  function Tk_CanvasPsPath (line 6246) | void

FILE: generic/tkCanvas.h
  type TagSearchExpr (line 22) | typedef struct TagSearchExpr_s TagSearchExpr;
  type TagSearchExpr_s (line 24) | struct TagSearchExpr_s {
  type TkCanvas (line 44) | typedef struct TkCanvas {

FILE: generic/tkClipboard.c
  function Tcl_Size (line 51) | static Tcl_Size
  function Tcl_Size (line 129) | static Tcl_Size
  function Tcl_Size (line 174) | static Tcl_Size
  function ClipboardLostSel (line 205) | static void
  function Tk_ClipboardClear (line 239) | int
  function Tk_ClipboardAppend (line 320) | int
  function Tk_ClipboardObjCmd (line 419) | int
  function TkClipInit (line 642) | int
  function ClipboardGetProc (line 708) | static int

FILE: generic/tkCmds.c
  function Tk_BellObjCmd (line 97) | int
  function Tk_BindObjCmd (line 166) | int
  function TkBindEventProc (line 271) | void
  function Tk_BindtagsObjCmd (line 350) | int
  function TkFreeBindingTags (line 450) | void
  function Tk_DestroyObjCmd (line 490) | int
  function Tk_LowerObjCmd (line 537) | int
  function Tk_RaiseObjCmd (line 596) | int
  function TkInitTkCmd (line 654) | int
  function AppnameCmd (line 688) | int
  type AttribTableData (line 719) | typedef struct AttribTableData {
  type AttribTableValue (line 723) | typedef struct AttribTableValue {
  function AttribtableCmd (line 729) | int
  function AttribTableProc (line 785) | int
  function AttribTableDeleteProc (line 1068) | void
  function AttribTableDestroyHandler (line 1109) | void
  function CaretCmd (line 1135) | int
  function InactiveCmd (line 1228) | int
  function ScalingCmd (line 1274) | int
  function UseinputmethodsCmd (line 1347) | int
  function WindowingsystemCmd (line 1393) | int
  function Tk_TkwaitObjCmd (line 1436) | int
  function WaitVisibilityProc (line 1580) | static void
  function WaitWindowProc (line 1594) | static void
  function Tk_UpdateObjCmd (line 1623) | int
  function Tk_WinfoObjCmd (line 1721) | int
  function Tcl_Size (line 2299) | Tcl_Size
  function TkDeadAppObjCmd (line 2355) | int
  function TkWindow (line 2386) | static TkWindow *

FILE: generic/tkColor.c
  type ValueKey (line 27) | typedef struct {
  type ThreadSpecificData (line 38) | typedef struct {
  function XColor (line 92) | XColor *
  function XColor (line 187) | XColor *
  function XColor (line 290) | XColor *
  function GC (line 424) | GC
  function Tk_FreeColor (line 469) | void
  function Tk_FreeColorFromObj (line 550) | void
  function FreeColorObjProc (line 579) | static void
  function FreeColorObj (line 587) | static void
  function DupColorObjProc (line 620) | static void
  function XColor (line 654) | XColor *
  function InitColorObj (line 738) | static void
  function ColorInit (line 773) | static void
  function Tcl_Obj (line 804) | Tcl_Obj *
  function Status (line 865) | Status

FILE: generic/tkColor.h
  type TkColor (line 28) | typedef struct TkColor {

FILE: generic/tkConfig.c
  type ThreadSpecificData (line 48) | typedef struct {
  type Option (line 69) | typedef struct TkOption {
  type OptionTable (line 107) | typedef struct OptionTable {
  function Tk_OptionTable (line 181) | Tk_OptionTable
  function Tk_DeleteOptionTable (line 341) | void
  function Tk_InitOptions (line 394) | int
  function DoObjConfig (line 564) | static int
  function TkObjIsEmpty (line 1117) | bool
  function Option (line 1155) | static Option *
  function Option (line 1241) | static Option *
  function Tk_OptionSpec (line 1314) | const Tk_OptionSpec *
  function FreeOptionInternalRep (line 1348) | static void
  function DupOptionInternalRep (line 1371) | static void
  function Tk_SetOptions (line 1408) | int
  function Tk_RestoreSavedOptions (line 1525) | void
  function Tk_FreeSavedOptions (line 1737) | void
  function Tk_FreeConfigOptions (line 1778) | void
  function FreeResources (line 1841) | static void
  function Tcl_Obj (line 1962) | Tcl_Obj *
  function Tcl_Obj (line 2032) | static Tcl_Obj *
  function Tcl_Obj (line 2110) | static Tcl_Obj *
  function Tcl_Obj (line 2362) | Tcl_Obj *
  function Tcl_Obj (line 2425) | Tcl_Obj *

FILE: generic/tkConsole.c
  type ConsoleInfo (line 24) | typedef struct ConsoleInfo {
  type ChannelData (line 37) | typedef struct ChannelData {
  function ShouldUseConsoleChannel (line 106) | static int
  function Tk_InitConsoleChannels (line 212) | void
  function Tk_CreateConsoleWindow (line 332) | int
  function ConsoleOutput (line 492) | static int
  function ConsoleInput (line 559) | static int
  function ConsoleClose (line 586) | static int
  function Console2Close (line 607) | static int
  function ConsoleWatch (line 637) | static void
  function ConsoleHandle (line 663) | static int
  function ConsoleObjCmd (line 691) | static int
  function InterpreterObjCmd (line 783) | static int
  function DeleteConsoleInterp (line 857) | static void
  function InterpDeleteProc (line 883) | static void
  function ConsoleDeleteProc (line 916) | static void
  function ConsoleEventProc (line 949) | static void

FILE: generic/tkCursor.c
  type DataKey (line 29) | typedef struct {
  function Tk_Cursor (line 95) | Tk_Cursor
  function Tk_Cursor (line 188) | Tk_Cursor
  function TkCursor (line 229) | static TkCursor *
  function Tk_Cursor (line 315) | Tk_Cursor
  function FreeCursor (line 465) | static void
  function Tk_FreeCursor (line 513) | void
  function Tk_FreeCursorFromObj (line 553) | void
  function FreeCursorObjProc (line 582) | static void
  function FreeCursorObj (line 590) | static void
  function DupCursorObjProc (line 623) | static void
  function Tk_Cursor (line 658) | Tk_Cursor
  function TkCursor (line 692) | static TkCursor *
  function InitCursorObj (line 764) | static void
  function CursorInit (line 799) | static void
  function Tcl_Obj (line 846) | Tcl_Obj *

FILE: generic/tkDList.h
  type ElemType (line 54) | struct ElemType
  type ElemType (line 232) | struct ElemType
  type ElemType (line 235) | struct ElemType
  type ElemType (line 235) | struct ElemType
  function __TK_DLIST_UNUSED (line 237) | __TK_DLIST_UNUSED								\
  function __TK_DLIST_UNUSED (line 246) | __TK_DLIST_UNUSED								\
  function __TK_DLIST_UNUSED (line 255) | __TK_DLIST_UNUSED								\
  function __TK_DLIST_UNUSED (line 263) | __TK_DLIST_UNUSED								\
  function __TK_DLIST_UNUSED (line 271) | __TK_DLIST_UNUSED								\
  function __TK_DLIST_UNUSED (line 279) | __TK_DLIST_UNUSED								\
  type ElemType (line 305) | struct ElemType
  type ElemType (line 313) | struct ElemType
  function __TK_DLIST_UNUSED (line 319) | __TK_DLIST_UNUSED								\
  function __TK_DLIST_UNUSED (line 334) | __TK_DLIST_UNUSED								\
  function __TK_DLIST_UNUSED (line 346) | __TK_DLIST_UNUSED								\
  function __TK_DLIST_UNUSED (line 358) | __TK_DLIST_UNUSED								\
  function __TK_DLIST_UNUSED (line 375) | __TK_DLIST_UNUSED								\
  function __TK_DLIST_UNUSED (line 392) | __TK_DLIST_UNUSED								\
  function __TK_DLIST_UNUSED (line 412) | __TK_DLIST_UNUSED								\
  function __TK_DLIST_UNUSED (line 438) | __TK_DLIST_UNUSED								\
  function __TK_DLIST_UNUSED (line 446) | __TK_DLIST_UNUSED								\
  function __TK_DLIST_UNUSED (line 454) | __TK_DLIST_UNUSED								\
  function __TK_DLIST_UNUSED (line 462) | __TK_DLIST_UNUSED								\
  function __TK_DLIST_UNUSED (line 470) | __TK_DLIST_UNUSED								\
  function __TK_DLIST_UNUSED (line 478) | __TK_DLIST_UNUSED								\
  function __TK_DLIST_UNUSED (line 502) | __TK_DLIST_UNUSED								\
  function __TK_DLIST_UNUSED (line 516) | __TK_DLIST_UNUSED								\

FILE: generic/tkDecls.h
  type TkStubHooks (line 911) | typedef struct {
  type TkStubs (line 918) | typedef struct TkStubs {

FILE: generic/tkEntry.c
  type validateType (line 53) | enum validateType {
  type entryCmd (line 338) | enum entryCmd {
  type selCmd (line 348) | enum selCmd {
  type sbCmd (line 365) | enum sbCmd {
  type sbselCmd (line 376) | enum sbselCmd {
  function Tk_EntryObjCmd (line 482) | int
  function EntryWidgetObjCmd (line 595) | static int
  function DestroyEntry (line 1032) | static void
  function ConfigureEntry (line 1100) | static int
  function EntryWorldChanged (line 1443) | static void
  function TkpDrawEntryBorderAndFocus (line 1556) | bool
  function TkpDrawSpinboxButtons (line 1583) | int
  function DisplayEntry (line 1608) | static void
  function EntryComputeGeometry (line 1970) | static void
  function InsertChars (line 2156) | static int
  function DeleteChars (line 2255) | static int
  function EntryValueChanged (line 2372) | static int
  function EntrySetValue (line 2445) | static void
  function EntryEventProc (line 2552) | static void
  function EntryCmdDeletedProc (line 2634) | static void
  function GetEntryIndex (line 2672) | static int
  function EntryScanTo (line 2790) | static void
  function EntrySelectTo (line 2848) | static void
  function Tcl_Size (line 2914) | static Tcl_Size
  function EntryLostSelection (line 2966) | static void
  function EventuallyRedraw (line 3009) | static void
  function EntryVisibleRange (line 3047) | static void
  function EntryUpdateScrollbar (line 3098) | static void
  function EntryBlinkProc (line 3153) | static void
  function EntryFocusProc (line 3194) | static void
  function EntryValidate (line 3332) | static int
  function EntryValidateChange (line 3392) | static int
  function ExpandPercents (line 3535) | static void
  function Tk_SpinboxObjCmd (line 3700) | int
  function SpinboxWidgetObjCmd (line 3833) | static int
  function GetSpinboxElement (line 4347) | static int
  function SpinboxInvoke (line 4388) | static int
  function ComputeFormat (line 4560) | static int

FILE: generic/tkEntry.h
  type EntryType (line 19) | enum EntryType {
  type Entry (line 28) | typedef struct {
  type Spinbox (line 193) | typedef struct {
  type state (line 286) | enum state {
  type selelement (line 295) | enum selelement {

FILE: generic/tkError.c
  function Tk_ErrorHandler (line 69) | Tk_ErrorHandler
  function Tk_DeleteErrorHandler (line 145) | void
  function ErrorProc (line 225) | static int

FILE: generic/tkEvent.c
  type InProgress (line 37) | typedef struct InProgress {
  type GenericHandler (line 52) | typedef struct GenericHandler {
  type TkWindowEvent (line 75) | typedef struct TkWindowEvent {
  type ExitHandler (line 135) | typedef struct ExitHandler {
  type ThreadSpecificData (line 148) | typedef struct {
  function InvokeFocusHandlers (line 238) | static int
  function InvokeMouseHandlers (line 284) | static int
  function CreateXIC (line 325) | static void
  function TkWindow (line 390) | static TkWindow *
  function GetEventMaskFromXEvent (line 451) | static unsigned long
  function RefreshKeyboardMappingIfNeeded (line 497) | static int
  function Tk_GetButtonMask (line 538) | unsigned
  function InvokeClientMessageHandlers (line 561) | static void
  function InvokeGenericHandlers (line 624) | static int
  function Tk_CreateEventHandler (line 689) | void
  function Tk_DeleteEventHandler (line 780) | void
  function Tk_CreateGenericHandler (line 857) | void
  function Tk_DeleteGenericHandler (line 898) | void
  function Tk_CreateClientMessageHandler (line 932) | void
  function Tk_DeleteClientMessageHandler (line 978) | void
  function TkXErrorHandler (line 1010) | static int
  function Window (line 1038) | static Window
  function Tk_HandleEvent (line 1098) | void
  function TkEventDeadWindow (line 1319) | void
  function Time (line 1370) | Time
  function Tk_RestrictProc (line 1421) | Tk_RestrictProc *
  function Tk_CollapseMotionEvents (line 1456) | int
  function Tk_QueueWindowEvent (line 1491) | void
  function TkQueueEventForAllChildren (line 1591) | void
  function TkGenerateActivateEvents (line 1633) | void
  function WindowEventProc (line 1677) | static int
  function CleanUpTkEvent (line 1731) | static void
  function DelayedMotionProc (line 1781) | static void
  function TkCreateExitHandler (line 1811) | void
  function TkDeleteExitHandler (line 1866) | void
  function TkCreateThreadExitHandler (line 1908) | void
  function TkDeleteThreadExitHandler (line 1949) | void
  function TkFinalize (line 1992) | void
  function TkFinalizeThread (line 2044) | void
  function Tk_MainLoop (line 2089) | void

FILE: generic/tkFileFilter.c
  function TkInitFileFilters (line 44) | void
  function TkGetFileFilters (line 75) | int
  function TkFreeFileFilters (line 158) | void
  function AddClause (line 223) | static int
  function FileFilter (line 430) | static FileFilter *

FILE: generic/tkFileFilter.h
  type GlobPattern (line 22) | typedef struct GlobPattern {
  type MacFileType (line 29) | typedef struct MacFileType {
  type FileFilterClause (line 35) | typedef struct FileFilterClause {
  type FileFilter (line 45) | typedef struct FileFilter {
  type FileFilterList (line 70) | typedef struct FileFilterList {

FILE: generic/tkFocus.c
  type ToplevelFocusInfo (line 20) | typedef struct TkToplevelFocusInfo {
  type DisplayFocusInfo (line 44) | typedef struct TkDisplayFocusInfo {
  function Tk_FocusObjCmd (line 106) | int
  function TkFocusFilterEvent (line 249) | bool
  function TkSetFocusWin (line 533) | void
  function TkWindow (line 695) | TkWindow *
  function TkWindow (line 732) | TkWindow *
  function TkFocusDeadWindow (line 809) | void
  function GenerateFocusEvents (line 925) | static void
  function FocusMapProc (line 972) | static void
  function DisplayFocusInfo (line 1010) | static DisplayFocusInfo *
  function TkFocusFree (line 1058) | void
  function TkFocusSplit (line 1094) | void
  function TkFocusJoin (line 1194) | void

FILE: generic/tkFont.c
  type TkFontInfo (line 30) | typedef struct TkFontInfo {
  type NamedFont (line 50) | typedef struct NamedFont {
  type LayoutChunk (line 72) | typedef struct LayoutChunk {
  type TextLayout (line 96) | typedef struct TextLayout {
  function TkFontPkgInit (line 384) | void
  function TkFontPkgFree (line 417) | void
  function Tk_FontObjCmd (line 477) | int
  function UpdateDependentFonts (line 850) | static void
  function TheWorldHasChanged (line 886) | static void
  function RecomputeWidgets (line 896) | static void
  function TkCreateNamedFont (line 963) | int
  function TkDeleteNamedFont (line 1019) | int
  function Tk_Font (line 1070) | Tk_Font
  function Tk_Font (line 1109) | Tk_Font
  function Tk_Font (line 1309) | Tk_Font
  function SetFontFromAny (line 1394) | static int
  function Tk_FreeFont (line 1462) | void
  function Tk_FreeFontFromObj (line 1526) | void
  function FreeFontObjProc (line 1554) | static void
  function FreeFontObj (line 1562) | static void
  function DupFontObjProc (line 1595) | static void
  function Font (line 1631) | Font
  function Tk_GetFontMetrics (line 1662) | void
  function Tk_PostscriptFontName (line 1702) | int
  function Tk_TextWidth (line 1864) | int
  function Tk_UnderlineChars (line 1902) | void
  function Tk_UnderlineCharsInContext (line 1923) | void
  function Tk_TextLayout (line 1983) | Tk_TextLayout
  function Tk_FreeTextLayout (line 2287) | void
  function Tk_DrawTextLayout (line 2318) | void
  function TkDrawAngledTextLayout (line 2389) | void
  function Tk_UnderlineTextLayout (line 2499) | void
  function TkUnderlineAngledTextLayout (line 2524) | void
  function Tcl_Size (line 2619) | Tcl_Size
  function Tk_CharBbox (line 2760) | int
  function Tk_DistanceToTextLayout (line 2881) | int
  function Tk_IntersectTextLayout (line 2964) | int
  function PointInQuadrilateral (line 3056) | static inline int
  function SidesIntersect (line 3078) | static inline int
  function TkIntersectAngledTextLayout (line 3135) | int
  function Tk_TextLayoutToPostscript (line 3320) | void
  function ConfigAttributesObj (line 3440) | static int
  function GetAttributeInfoObj (line 3543) | static int
  function Tcl_Obj (line 3633) | Tcl_Obj *
  function ParseFontNameObj (line 3692) | static int
  function LayoutChunk (line 3852) | static LayoutChunk *
  function TkFontParseXLFD (line 3910) | int
  function FieldSpecified (line 4113) | static int
  function TkFontGetPixels (line 4147) | double
  function TkFontGetPoints (line 4181) | double
  function Tcl_Obj (line 4321) | Tcl_Obj *

FILE: generic/tkFont.h
  type TkFontAttributes (line 27) | struct TkFontAttributes {
  type TkFontMetrics (line 72) | typedef struct TkFontMetrics {
  type TkFont (line 87) | typedef struct TkFont {
  type TkXLFDAttributes (line 149) | typedef struct TkXLFDAttributes {

FILE: generic/tkFrame.c
  type FrameType (line 22) | enum FrameType {
  type Frame (line 31) | typedef struct {
  type Labelframe (line 108) | typedef struct {
  type labelanchor (line 162) | enum labelanchor {
  function Tk_FrameObjCmd (line 388) | int
  function Tk_ToplevelObjCmd (line 398) | int
  function Tk_LabelframeObjCmd (line 408) | int
  function TkCreateFrame (line 437) | int
  function FrameWidgetObjCmd (line 696) | static int
  function DestroyFrame (line 824) | static void
  function DestroyFramePartly (line 869) | static void
  function ConfigureFrame (line 910) | static int
  function FrameWorldChanged (line 1070) | static void
  function ComputeFrameGeometry (line 1256) | static void
  function DisplayFrame (line 1406) | static void
  function TkpDrawFrame (line 1635) | void
  function FrameEventProc (line 1671) | static void
  function FrameCmdDeletedProc (line 1768) | static void
  function MapFrame (line 1819) | static void
  function TkInstallFrameMenu (line 1871) | void
  function FrameStructureProc (line 1906) | static void
  function FrameRequestProc (line 1944) | static void
  function FrameLostContentProc (line 1971) | static void
  function TkMapTopFrame (line 1997) | void
  function Tk_Window (line 2051) | Tk_Window
  function FrameBgImageProc (line 2090) | static void
  function DrawFrameBackground (line 2129) | static void

FILE: generic/tkGC.c
  type TkGC (line 23) | typedef struct {
  type ValueKey (line 31) | typedef struct {
  function GC (line 66) | GC
  function Tk_FreeGC (line 288) | void
  function TkGCCleanup (line 340) | void
  function GCInit (line 378) | static void

FILE: generic/tkGeometry.c
  type MaintainContent (line 22) | typedef struct MaintainContent {
  type MaintainContainer (line 40) | typedef struct MaintainContainer {
  function Tk_ManageGeometry (line 83) | void
  function Tk_GeometryRequest (line 128) | void
  function Tk_SetInternalBorderEx (line 179) | void
  function Tk_SetInternalBorder (line 251) | void
  function Tk_SetMinimumRequestSize (line 277) | void
  function TkSetGeometryContainer (line 320) | int
  function TkFreeGeometryContainer (line 366) | void
  function Tk_MaintainGeometry (line 412) | void
  function Tk_UnmaintainGeometry (line 562) | void
  function MaintainContainerProc (line 655) | static void
  function MaintainContentProc (line 709) | static void
  function MaintainCheckProc (line 742) | static void

FILE: generic/tkGet.c
  type ThreadSpecificData (line 25) | typedef struct {
  function Tk_GetAnchorFromObj (line 63) | int
  function Tk_GetAnchor (line 101) | int
  function Tk_GetJoinStyle (line 217) | int
  function Tk_GetCapStyle (line 298) | int
  function Tk_GetJustifyFromObj (line 378) | int
  function Tk_GetJustify (line 416) | int
  function FreeUidThreadExitProc (line 496) | static void
  function Tk_Uid (line 529) | Tk_Uid
  function Tk_GetScreenMM (line 567) | int
  function Tk_GetPixels (line 655) | int
  function TkGetDoublePixels (line 697) | int

FILE: generic/tkGrab.c
  type GrabInfo (line 92) | typedef struct {
  type NewGrabWinEvent (line 120) | typedef struct NewGrabWinEvent {
  function Tk_GrabObjCmd (line 171) | int
  function Tk_Grab (line 390) | int
  function Tk_Ungrab (line 567) | void
  function ReleaseButtonGrab (line 640) | static void
  function TkPointerEvent (line 690) | bool
  function TkChangeEventWindow (line 934) | void
  function TkInOutEvents (line 1000) | void
  function MovePointer2 (line 1152) | static void
  function TkGrabDeadWindow (line 1215) | void
  function EatGrabEvents (line 1263) | static void
  function Tk_RestrictAction (line 1302) | static Tk_RestrictAction
  function QueueGrabWindowChange (line 1356) | static void
  function GrabWinEventProc (line 1397) | static int
  function TkWindow (line 1436) | static TkWindow *
  function TkPositionInTree (line 1531) | int
  function TkGrabState (line 1582) | int

FILE: generic/tkGrid.c
  type SlotInfo (line 73) | typedef struct SlotInfo {
  type GridLayout (line 101) | typedef struct GridLayout {
  type GridContainer (line 130) | typedef struct {
  type Gridder (line 155) | typedef struct Gridder {
  type UniformGroup (line 229) | typedef struct UniformGroup {
  function Tk_GridObjCmd (line 331) | int
  function GridAnchorCommand (line 441) | static int
  function GridBboxCommand (line 512) | static int
  function GridForgetRemoveCommand (line 644) | static int
  function GridInfoCommand (line 736) | static int
  function GridLocationCommand (line 800) | static int
  function GridPropagateCommand (line 895) | static int
  function GridRowColumnConfigureCommand (line 985) | static int
  function GridSizeCommand (line 1322) | static int
  function GridContentCommand (line 1375) | static int
  function GridReqProc (line 1461) | static void
  function GridLostContentProc (line 1494) | static void
  function AdjustOffsets (line 1529) | static int
  function AdjustForSticky (line 1693) | static void
  function ArrangeGrid (line 1753) | static void
  function ResolveConstraints (line 1931) | static int
  function Gridder (line 2454) | static Gridder *
  function SetGridSize (line 2531) | static void
  function SetContentColumn (line 2566) | static int
  function SetContentRow (line 2607) | static int
  function CheckSlotData (line 2651) | static int
  function InitContainerData (line 2736) | static void
  function Unlink (line 2779) | static void
  function DestroyGrid (line 2849) | static void
  function GridStructureProc (line 2891) | static void
  function ConfigureContent (line 2971) | static int
  function Tcl_Obj (line 3609) | static Tcl_Obj *
  function StringToSticky (line 3649) | static int
  function Tcl_Obj (line 3695) | static Tcl_Obj *
  function Tcl_Obj (line 3722) | static Tcl_Obj *

FILE: generic/tkIcu.c
  type UBreakIteratorTypex (line 18) | typedef enum UBreakIteratorTypex {
  type UErrorCodex (line 23) | typedef enum UErrorCodex {
  function startEndOfCmd (line 67) | static int
  function icuCleanup (line 194) | static void
  function Icu_Init (line 208) | void

FILE: generic/tkImage.c
  type Image (line 26) | typedef struct Image {
  type ImageModel (line 54) | typedef struct ImageModel {
  type ThreadSpecificData (line 75) | typedef struct {
  function ImageTypeThreadExitProc (line 108) | static void
  function Tk_CreateImageType (line 142) | void
  function Tk_ImageObjCmd (line 180) | int
  function Tk_ImageChanged (line 472) | void
  function Tk_Image (line 548) | Tk_Image
  function Tk_FreeImage (line 618) | void
  function Tk_PostscriptImage (line 679) | int
  function Tk_RedrawImage (line 777) | void
  function Tk_SizeOfImage (line 843) | void
  function Tk_DeleteImage (line 872) | void
  function DeleteImage (line 910) | static void
  function EventuallyDeleteImage (line 959) | static void
  function TkDeleteAllImages (line 992) | void
  function Tk_SetTSOrigin (line 1075) | void

FILE: generic/tkImgBmap.c
  type BitmapModel (line 21) | typedef struct {
  type BitmapInstance (line 51) | typedef struct BitmapInstance {
  type ParseInfo (line 132) | typedef struct ParseInfo {
  function ImgBmapCreate (line 171) | static int
  function ImgBmapConfigureModel (line 229) | static int
  function ImgBmapConfigureInstance (line 329) | static void
  function NextBitmapWord (line 671) | static int
  function ImgBmapCmd (line 740) | static int
  function ImgBmapDisplay (line 872) | static void
  function ImgBmapFree (line 933) | static void
  function ImgBmapDelete (line 995) | static void
  function ImgBmapCmdDeletedProc (line 1036) | static void
  function GetByte (line 1065) | static int
  function ImgBmapPsImagemask (line 1108) | static void
  function ImgBmapPostscript (line 1177) | static int

FILE: generic/tkImgGIF.c
  type GIFGraphicControlExtensionBlock (line 53) | typedef struct {
  type MFile (line 66) | typedef struct mFile {
  type GIFImageConfig (line 109) | typedef struct {
  type Tcl_Size (line 126) | typedef Tcl_Size (WriteBytesFunc) (void *clientData, const char *bytes,
  type GifWriterState (line 236) | typedef struct {
  type GIFState_t (line 264) | typedef struct {
  function FileMatchGIF (line 371) | static int
  function FileReadGIF (line 408) | static int
  function ReadOneByte (line 923) | static int
  function StringMatchGIF (line 963) | static int
  function StringReadGIF (line 1032) | static int
  function ReadGIFHeader (line 1094) | static int
  function ReadColorMap (line 1126) | static int
  function DoExtension (line 1173) | static int
  function GetDataBlock (line 1268) | static int
  function ReadImage (line 1314) | static int
  function GetCode (line 1597) | static int
  function mInit (line 1683) | static void
  function Tcl_Size (line 1713) | static Tcl_Size
  function Mgetc (line 1746) | static int
  function char64 (line 1810) | static int
  function Tcl_Size (line 1862) | static Tcl_Size
  function FileWriteGIF (line 1924) | static int
  function StringWriteGIF (line 1954) | static int
  function Tcl_Size (line 1975) | static Tcl_Size
  function Tcl_Size (line 1986) | static Tcl_Size
  function CommonWriteGIF (line 2001) | static int
  function ColorNumber (line 2188) | static int
  function IsNewColor (line 2205) | static int
  function SaveMap (line 2222) | static void
  function ReadValue (line 2262) | static int
  function Compress (line 2303) | static void
  function Output (line 2423) | static void
  function ClearForBlock (line 2489) | static void
  function ClearHashTable (line 2500) | static void
  function CharInit (line 2547) | static void
  function CharOut (line 2561) | static void
  function FlushChar (line 2576) | static void

FILE: generic/tkImgListFormat.c
  type ColorFormatType (line 57) | enum ColorFormatType {
  type FormatOptions (line 88) | struct FormatOptions {
  type FormatOptions (line 125) | struct FormatOptions
  function ParseFormatOptions (line 188) | static int
  function Tcl_Obj (line 304) | static Tcl_Obj *
  function StringMatchDef (line 361) | static int
  function StringReadDef (line 459) | static int
  function StringWriteDef (line 622) | static int
  function ParseColor (line 767) | static int
  function ParseColorAsList (line 838) | static int
  function ParseColorAsHex (line 913) | static int
  function ParseColorAsStandard (line 988) | static int
  function TkDebugPhotoStringMatchDef (line 1119) | bool

FILE: generic/tkImgPNG.c
  type PNGImage (line 121) | typedef struct {
  function InitPNGImage (line 317) | static int
  function CleanupPNGImage (line 397) | static void
  function ReadBase64 (line 453) | static int
  function ReadByteArray (line 578) | static int
  function ReadData (line 636) | static int
  function ReadInt32 (line 709) | static inline int
  function CheckCRC (line 745) | static inline int
  function SkipChunk (line 794) | static int
  function ReadChunkHeader (line 882) | static int
  function CheckColor (line 1091) | static int
  function ReadIHDR (line 1260) | static int
  function ReadPLTE (line 1455) | static int
  function ReadTRNS (line 1542) | static int
  function ReadPHYS (line 1687) | static int
  function Paeth (line 1765) | static inline unsigned char
  function UnfilterLine (line 1808) | static int
  function DecodeLine (line 1930) | static int
  function ReadIDAT (line 2191) | static int
  function ApplyAlpha (line 2338) | static void
  function ParseFormat (line 2390) | static int
  function DecodePNG (line 2478) | static int
  function FileMatchPNG (line 2821) | static int
  function FileReadPNG (line 2868) | static int
  function StringMatchPNG (line 2927) | static int
  function StringReadPNG (line 2972) | static int
  function WriteData (line 3029) | static int
  function WriteByte (line 3082) | static inline int
  function LongToInt32 (line 3109) | static inline void
  function WriteInt32 (line 3137) | static inline int
  function WriteChunk (line 3166) | static inline int
  function WriteIHDR (line 3227) | static int
  function WriteIDAT (line 3337) | static int
  function WriteExtraChunks (line 3461) | static int
  function EncodePNG (line 3611) | static int
  function FileWritePNG (line 3736) | static int
  function StringWritePNG (line 3803) | static int

FILE: generic/tkImgPPM.c
  function FileMatchPPM (line 98) | static int
  function FileReadPPM (line 133) | static int
  function FileWritePPM (line 285) | static int
  function StringWritePPM (line 369) | static int
  function StringMatchPPM (line 445) | static int
  function StringReadPPM (line 479) | static int
  function ReadPPMFileHeader (line 647) | static int
  function ReadPPMStringHeader (line 752) | static int

FILE: generic/tkImgPhInstance.c
  function TkImgPhotoConfigureInstance (line 87) | void
  function BlendComplexAlpha (line 463) | static void
  function TkImgPhotoDisplay (line 632) | void
  function TkImgPhotoFree (line 758) | void
  function TkImgPhotoInstanceSetSize (line 805) | void
  function IsValidPalette (line 946) | static int
  function CountBits (line 1031) | static int
  function GetColorTable (line 1066) | static void
  function FreeColorTable (line 1159) | static void
  function AllocateColors (line 1200) | static void
  function DisposeColorTable (line 1482) | static void
  function ReclaimColors (line 1529) | static int
  function TkImgDisposeInstance (line 1616) | void
  function TkImgDitherInstance (line 1670) | void
  function TkImgResetDither (line 2015) | void

FILE: generic/tkImgPhoto.c
  type SubcommandOptions (line 28) | struct SubcommandOptions {
  type ThreadSpecificData (line 138) | typedef struct {
  type SubcommandOptions (line 190) | struct SubcommandOptions
  type SubcommandOptions (line 202) | struct SubcommandOptions
  function PhotoFormatThreadExitProc (line 235) | static void
  function Tk_CreatePhotoImageFormat (line 278) | void
  function Tk_CreatePhotoImageFormatVersion3 (line 304) | void
  function ImgPhotoCreate (line 348) | static int
  function ImgPhotoCmd (line 410) | static int
  function ParseSubcommandOptions (line 1556) | static int
  function ImgPhotoConfigureModel (line 1854) | static int
  function ToggleComplexAlphaIfNeeded (line 2265) | static int
  function ImgPhotoDelete (line 2311) | static void
  function ImgPhotoCmdDeletedProc (line 2366) | static void
  function ImgPhotoSetSize (line 2398) | static int
  function MatchFileFormat (line 2591) | static int
  function MatchStringFormat (line 2773) | static int
  function Tk_PhotoHandle (line 2969) | Tk_PhotoHandle
  function Tk_PhotoPutBlock (line 3004) | int
  function Tk_PhotoPutZoomedBlock (line 3438) | int
  function Tk_DitherPhoto (line 3795) | void
  function Tk_PhotoBlank (line 3872) | void
  function Tk_PhotoExpand (line 3933) | int
  function Tk_PhotoGetSize (line 3980) | void
  function Tk_PhotoSetSize (line 4012) | int
  function Region (line 4058) | Region
  type SubcommandOptions (line 4096) | struct SubcommandOptions
  function Tk_PhotoGetImage (line 4283) | int
  function ImgPhotoPostscript (line 4322) | static int

FILE: generic/tkImgPhoto.h
  type ColorTableId (line 31) | typedef struct ColorTableId	ColorTableId;
  type ColorTable (line 32) | typedef struct ColorTable	ColorTable;
  type PhotoInstance (line 33) | typedef struct PhotoInstance	PhotoInstance;
  type PhotoModel (line 34) | typedef struct PhotoModel	PhotoModel;
  type schar (line 43) | typedef signed char schar;
  type schar (line 46) | typedef char schar;
  type schar (line 48) | typedef short schar;
  type ColorTableId (line 73) | struct ColorTableId {
  type ColorTable (line 87) | struct ColorTable {
  type PhotoModel (line 137) | struct PhotoModel {
  type PhotoInstance (line 193) | struct PhotoInstance {

FILE: generic/tkImgSVGnano.c
  type RastOpts (line 32) | typedef struct {
  type NSVGcache (line 44) | typedef struct {
  function FileMatchSVG (line 161) | static int
  function FileReadSVG (line 229) | static int
  function StringMatchSVG (line 285) | static int
  function StringReadSVG (line 338) | static int
  function NSVGimage (line 380) | static NSVGimage *
  function RasterizeSVG (line 565) | static int
  function GetScaleFromParameters (line 661) | static double
  function NSVGcache (line 719) | static NSVGcache *
  function CacheSVG (line 749) | static int
  function NSVGimage (line 790) | static NSVGimage *
  function CleanCache (line 835) | static void
  function FreeCache (line 865) | static void

FILE: generic/tkInt.h
  type TkColormap (line 146) | typedef struct TkColormap TkColormap;
  type TkFontAttributes (line 147) | typedef struct TkFontAttributes TkFontAttributes;
  type TkGrabEvent (line 148) | typedef struct TkGrabEvent TkGrabEvent;
  type Cursor (line 150) | typedef Cursor TkpCursor;
  type Region (line 151) | typedef Region TkRegion;
  type TkStressedCmap (line 153) | typedef struct TkStressedCmap TkStressedCmap;
  type TkBindInfo_ (line 154) | struct TkBindInfo_
  type Busy (line 155) | struct Busy
  type TkCursor (line 163) | typedef struct TkCursor {
  type TkCaret (line 197) | typedef struct TkCaret {
  type TkLockUsage (line 211) | typedef enum TkLockUsage {LU_IGNORE, LU_CAPS, LU_SHIFT} TkLockUsage;
  type TkDisplay (line 213) | typedef struct TkDisplay {
  type TkErrorHandler (line 592) | typedef struct TkErrorHandler {
  type TkEventHandler (line 621) | typedef struct TkEventHandler {
  type TkMainInfo (line 637) | typedef struct TkMainInfo {
  type TkPredefBitmap (line 706) | typedef struct {
  type TkWindow (line 723) | typedef struct TkWindow {
  type TkKeyEvent (line 900) | typedef struct {
  type TkEnsemble (line 934) | typedef struct TkEnsemble {
  type TkStateMap (line 946) | typedef struct TkStateMap {
  type TkpClipMask (line 956) | typedef struct TkpClipMask {
  type TkFontAttributes (line 1221) | struct TkFontAttributes

FILE: generic/tkIntDecls.h
  type TkText (line 25) | struct TkText
  type TkTextBTree_ (line 26) | struct TkTextBTree_
  type TkTextDispChunk (line 27) | struct TkTextDispChunk
  type TkTextIndex (line 28) | struct TkTextIndex
  type TkTextSegment (line 29) | struct TkTextSegment
  type TkSharedText (line 30) | struct TkSharedText
  type TkText (line 424) | struct TkText
  type TkTextIndex (line 425) | struct TkTextIndex
  type TkText (line 427) | struct TkText
  type TkTextIndex (line 428) | struct TkTextIndex
  type TkTextIndex (line 429) | struct TkTextIndex
  type TkText (line 431) | struct TkText
  type TkTextIndex (line 432) | struct TkTextIndex
  type TkTextIndex (line 433) | struct TkTextIndex
  type TkText (line 436) | struct TkText
  type TkTextIndex (line 438) | struct TkTextIndex
  type TkText (line 440) | struct TkText
  type TkTextIndex (line 441) | struct TkTextIndex
  type TkText (line 444) | struct TkText
  type TkTextIndex (line 446) | struct TkTextIndex
  type TkText (line 448) | struct TkText
  type TkSharedText (line 452) | struct TkSharedText
  type TkText (line 453) | struct TkText
  type TkTextIndex (line 454) | struct TkTextIndex
  type TkTextIndex (line 455) | struct TkTextIndex
  type TkText (line 458) | struct TkText
  type TkText (line 460) | struct TkText
  type TkTextDispChunk (line 461) | struct TkTextDispChunk
  type TkIntStubs (line 545) | typedef struct TkIntStubs {

FILE: generic/tkIntPlatDecls.h
  type TkIntPlatStubs (line 277) | typedef struct TkIntPlatStubs {

FILE: generic/tkIntXlibDecls.h
  type _XrmHashBucketRec (line 446) | struct _XrmHashBucketRec
  type _XrmHashBucketRec (line 451) | struct _XrmHashBucketRec
  type _XrmHashBucketRec (line 457) | struct _XrmHashBucketRec
  type TkIntXlibStubs (line 479) | typedef struct TkIntXlibStubs {

FILE: generic/tkListbox.c
  type ListboxOptionTables (line 18) | typedef struct {
  type Listbox (line 32) | typedef struct {
  type ItemAttr (line 186) | typedef struct {
  type state (line 221) | enum state {
  type activeStyle (line 225) | enum activeStyle {
  type command (line 361) | enum command {
  type selcommand (line 372) | enum selcommand {
  type scancommand (line 379) | enum scancommand {
  type indices (line 386) | enum indices {
  function Tk_ListboxObjCmd (line 476) | int
  function ListboxWidgetObjCmd (line 607) | static int
  function ListboxBboxSubCmd (line 1084) | static int
  function ListboxSelectionSubCmd (line 1166) | static int
  function ListboxXviewSubCmd (line 1257) | static int
  function ListboxYviewSubCmd (line 1337) | static int
  function ItemAttr (line 1411) | static ItemAttr *
  function DestroyListbox (line 1456) | static void
  function DestroyListboxOptionTables (line 1537) | static void
  function ConfigureListbox (line 1566) | static int
  function ConfigureListboxItem (line 1726) | static int
  function ListboxWorldChanged (line 1773) | static void
  function DisplayListbox (line 1847) | static void
  function ListboxComputeGeometry (line 2207) | static void
  function ListboxInsertSubCmd (line 2304) | static int
  function ListboxDeleteSubCmd (line 2421) | static int
  function ListboxEventProc (line 2596) | static void
  function ListboxCmdDeletedProc (line 2672) | static void
  function GetListboxIndex (line 2708) | static int
  function ChangeListboxView (line 2816) | static void
  function ChangeListboxOffset (line 2851) | static void
  function ListboxScanTo (line 2899) | static void
  function NearestListboxElement (line 2966) | static int
  function ListboxSelect (line 3007) | static int
  function Tcl_Size (line 3100) | static Tcl_Size
  function ListboxLostSelection (line 3183) | static void
  function GenerateListboxSelectEvent (line 3213) | static void
  function EventuallyRedrawRange (line 3237) | static void
  function ListboxUpdateVScrollbar (line 3280) | static void
  function ListboxUpdateHScrollbar (line 3350) | static void
  function MigrateHashEntries (line 3573) | static void
  function GetMaxOffset (line 3635) | static int GetMaxOffset(

FILE: generic/tkMacWinMenu.c
  type ThreadSpecificData (line 16) | typedef struct {
  function PreprocessMenu (line 41) | static int
  function TkPreprocessMenu (line 128) | int

FILE: generic/tkMain.c
  type TclIntPlatStubs (line 43) | typedef struct TclIntPlatStubs {
  function Tcl_Obj (line 66) | static inline Tcl_Obj *
  function WinIsTty (line 96) | static bool WinIsTty(int fd) {
  type InteractiveState (line 125) | typedef struct {
  function Tk_MainEx (line 166) | void
  function StdinProc (line 398) | static void
  function Prompt (line 501) | static void

FILE: generic/tkMenu.c
  type ThreadSpecificData (line 80) | typedef struct {
  type options (line 312) | enum options {
  function Tk_MenuObjCmd (line 395) | int
  function MenuWidgetObjCmd (line 611) | static int
  function TkInvokeMenu (line 1020) | int
  function DestroyMenuInstance (line 1135) | static void
  function TkDestroyMenu (line 1279) | void
  function UnhookCascadeEntry (line 1358) | static void
  function DestroyMenuEntry (line 1438) | static void
  function MenuWorldChanged (line 1542) | static void
  function ConfigureMenu (line 1577) | static int
  function PostProcessEntry (line 1747) | static int
  function ConfigureMenuEntry (line 1960) | static int
  function CheckForLoops0 (line 2041) | static int
  function CheckForLoops (line 2108) | static int
  function ConfigureMenuCloneEntries (line 2160) | static int
  function GetMenuIndex (line 2300) | int
  function MenuCmdDeletedProc (line 2396) | static void
  function TkMenuEntry (line 2439) | static TkMenuEntry *
  function MenuAddOrInsert (line 2536) | static int
  function TkActivateMenuEntry (line 2825) | int
  function TkPostCommand (line 2874) | int
  function CloneMenu (line 2920) | static int
  function MenuDoXPosition (line 3098) | static int
  function MenuDoYPosition (line 3135) | static int
  function Tcl_Size (line 3179) | static Tcl_Size
  function RecursivelyDeleteMenu (line 3262) | static void
  function Tcl_Obj (line 3307) | Tcl_Obj *
  function Tk_SetWindowMenubar (line 3386) | void
  function DestroyMenuHashTable (line 3549) | static void
  function Tcl_HashTable (line 3576) | Tcl_HashTable *
  function TkMenuReferences (line 3613) | TkMenuReferences *
  function TkMenuReferences (line 3657) | TkMenuReferences *
  function TkMenuReferences (line 3694) | TkMenuReferences *
  function TkFreeMenuReferences (line 3722) | bool
  function DeleteMenuCloneEntries (line 3754) | static void
  function MenuCleanup (line 3807) | static void
  function TkMenuInit (line 3831) | void

FILE: generic/tkMenu.h
  type TkMenuPlatformData_ (line 28) | struct TkMenuPlatformData_
  type TkMenuPlatformEntryData_ (line 29) | struct TkMenuPlatformEntryData_
  type compound (line 36) | enum compound {
  type DrawMenuFlags (line 51) | typedef enum {
  type TkMenuEntry (line 63) | typedef struct TkMenuEntry {
  type TkMenu (line 258) | typedef struct TkMenu {
  type TkMenuTopLevelList (line 396) | typedef struct TkMenuTopLevelList {
  type TkMenuReferences (line 417) | typedef struct TkMenuReferences {

FILE: generic/tkMenuDraw.c
  function TkMenuInitializeDrawingFields (line 42) | void
  function TkMenuInitializeEntryDrawingFields (line 72) | void
  function TkMenuFreeDrawOptions (line 105) | void
  function TkMenuEntryFreeDrawOptions (line 146) | void
  function TkMenuConfigureDrawOptions (line 181) | void
  function TkMenuConfigureEntryDrawOptions (line 298) | int
  function TkEventuallyRecomputeMenu (line 429) | void
  function TkRecomputeMenu (line 456) | void
  function TkEventuallyRedrawMenu (line 484) | void
  function ComputeMenuGeometry (line 529) | static void
  function TkMenuSelectImageProc (line 580) | void
  function DisplayMenu (line 615) | static void
  function TkMenuEventProc (line 759) | void
  function TkMenuImageProc (line 820) | void
  function TkPostTearoffMenu (line 855) | int
  function TkPostSubmenu (line 884) | int
  function AdjustMenuCoords (line 981) | static void

FILE: generic/tkMenubutton.c
  type command (line 150) | enum command {
  function Tk_MenubuttonObjCmd (line 191) | int
  function MenuButtonWidgetObjCmd (line 321) | static int
  function DestroyMenuButton (line 399) | static void
  function ConfigureMenuButton (line 468) | static int
  function TkMenuButtonWorldChanged (line 638) | void
  function MenuButtonEventProc (line 741) | static void
  function MenuButtonCmdDeletedProc (line 804) | static void
  function MenuButtonImageProc (line 925) | static void

FILE: generic/tkMenubutton.h
  type direction (line 28) | enum direction {
  type state (line 37) | enum state {
  type TkMenuButton (line 46) | typedef struct {

FILE: generic/tkMessage.c
  type Message (line 24) | typedef struct {
  function Tk_MessageObjCmd (line 210) | int
  function MessageWidgetObjCmd (line 297) | static int
  function DestroyMessage (line 378) | static void
  function ConfigureMessage (line 432) | static int
  function MessageWorldChanged (line 507) | static void
  function ComputeMessageGeometry (line 558) | static void
  function DisplayMessage (line 658) | static void
  function MessageEventProc (line 749) | static void
  function MessageCmdDeletedProc (line 806) | static void

FILE: generic/tkObj.c
  type PixelRep (line 18) | typedef struct PixelRep {
  type ThreadSpecificData (line 50) | typedef struct {
  type MMRep (line 59) | typedef struct MMRep {
  type WindowRep (line 72) | typedef struct WindowRep {
  function Tcl_Size (line 112) | Tcl_Size
  function Tcl_Size (line 158) | Tcl_Size
  function ThreadSpecificData (line 189) | static ThreadSpecificData *
  function TkGetIntForIndex (line 225) | int
  function GetPixelsFromObjEx (line 260) | static
  function Tk_GetPixelsFromObj (line 350) | int
  function Tk_GetDoublePixelsFromObj (line 381) | int
  function FreePixelInternalRep (line 429) | static void
  function DupPixelInternalRep (line 460) | static void
  function SetPixelFromAny (line 501) | static int
  function Tk_GetMMFromObj (line 620) | int
  function FreeMMInternalRep (line 676) | static void
  function DupMMInternalRep (line 703) | static void
  function UpdateStringOfMM (line 739) | static void
  function SetMMFromAny (line 780) | static int
  function TkGetWindowFromObj (line 898) | int
  function SetWindowFromAny (line 959) | static int
  function DupWindowInternalRep (line 1006) | static void
  function FreeWindowInternalRep (line 1040) | static void
  function Tcl_Obj (line 1066) | Tcl_Obj *
  function TkParsePadAmount (line 1105) | int
  function TkRegisterObjTypes (line 1208) | void

FILE: generic/tkOldConfig.c
  function Tk_ConfigureWidget (line 73) | int
  function Tk_ConfigSpec (line 233) | static Tk_ConfigSpec *
  function DoConfig (line 331) | static int
  function Tk_ConfigureInfo (line 625) | int
  function Tk_ConfigureValue (line 947) | int
  function Tk_FreeOptions (line 1017) | void
  function Tk_ConfigSpec (line 1106) | static Tk_ConfigSpec *
  function DeleteSpecCacheTable (line 1207) | static void

FILE: generic/tkOption.c
  type Element (line 56) | typedef struct Element {
  type ElArray (line 111) | typedef struct ElArray {
  type StackLevel (line 170) | typedef struct StackLevel {
  type ThreadSpecificData (line 179) | typedef struct {
  function Tk_AddOption (line 245) | void
  function Tk_Uid (line 399) | Tk_Uid
  function Tk_OptionObjCmd (line 611) | int
  function TkOptionDeadWindow (line 739) | void
  function TkOptionClassChanged (line 793) | void
  function ParsePriority (line 851) | static int
  function AddFromString (line 914) | static int
  function ReadOptionFile (line 1074) | static int
  function ElArray (line 1149) | static ElArray *
  function ElArray (line 1178) | static ElArray *
  function SetupStacks (line 1219) | static void
  function ExtendStacks (line 1384) | static void
  function OptionThreadExitProc (line 1421) | static void
  function OptionInit (line 1455) | static void
  function ClearOptionTree (line 1520) | static void
  function GetDefaultOptions (line 1556) | static int

FILE: generic/tkPack.c
  type Side (line 16) | typedef enum {BOTTOM, LEFT, RIGHT, TOP} Side;
  type Packer (line 27) | typedef struct Packer {
  function TkAppendPadAmount (line 149) | void
  function Tk_PackObjCmd (line 188) | int
  function PackReqProc (line 425) | static void
  function PackLostContentProc (line 458) | static void
  function ArrangePacking (line 492) | static void
  function XExpansion (line 817) | static int
  function YExpansion (line 883) | static int
  function Packer (line 944) | static Packer *
  function Unlink (line 1008) | static void
  function DestroyPacker (line 1075) | static void
  function PackStructureProc (line 1105) | static void
  function ConfigureContent (line 1199) | static int

FILE: generic/tkPanedWindow.c
  type orient (line 42) | enum orient { ORIENT_HORIZONTAL, ORIENT_VERTICAL }
  type stretch (line 52) | enum stretch {
  type OptionTables (line 71) | typedef struct {
  type Pane (line 81) | typedef struct Pane {
  type PanedWindow (line 116) | typedef struct PanedWindow {
  function Tk_PanedWindowObjCmd (line 374) | int
  function PanedWindowWidgetObjCmd (line 521) | static int
  function ConfigurePanes (line 756) | static int
  function PanedWindowSashCommand (line 1081) | static int
  function ConfigurePanedWindow (line 1234) | static int
  function PanedWindowWorldChanged (line 1284) | static void
  function PanedWindowEventProc (line 1350) | static void
  function PanedWindowCmdDeletedProc (line 1404) | static void
  function DisplayPanedWindow (line 1441) | static void
  function DestroyPanedWindow (line 1551) | static void
  function PanedWindowReqProc (line 1631) | static void
  function PanedWindowLostPaneProc (line 1677) | static void
  function ArrangePanes (line 1717) | static void
  function Unlink (line 2033) | static void
  function Pane (line 2106) | static Pane *
  function GetFirstLastVisiblePane (line 2138) | static void
  function PaneStructureProc (line 2176) | static void
  function ComputeGeometry (line 2209) | static void
  function DestroyOptionTables (line 2403) | static void
  function Tcl_Obj (line 2428) | static Tcl_Obj *
  function SetSticky (line 2476) | static int
  function RestoreSticky (line 2556) | static void
  function AdjustForSticky (line 2585) | static void
  function MoveSash (line 2638) | static void
  function ProxyWindowEventProc (line 2798) | static void
  function DisplayProxyWindow (line 2831) | static void
  function PanedWindowProxyCommand (line 2894) | static int
  function PanedWindowIdentifyCoords (line 3071) | static int

FILE: generic/tkPkgConfig.c
  function TkInitEmbeddedConfigurationInformation (line 139) | void

FILE: generic/tkPlace.c
  type BorderMode (line 31) | typedef enum {BM_INSIDE, BM_IGNORE, BM_OUTSIDE} BorderMode;
  type Content (line 38) | typedef struct Content {
  type Container (line 114) | typedef struct Container {
  function Tk_PlaceObjCmd (line 188) | int
  function Content (line 371) | static Content *
  function FreeContent (line 424) | static void
  function Content (line 454) | static Content *
  function UnlinkContent (line 485) | static void
  function Container (line 533) | static Container *
  function Container (line 577) | static Container *
  function ConfigureContent (line 610) | static int
  function PlaceInfoCommand (line 775) | static int
  function RecomputePlacement (line 844) | static void
  function PlaceStructureProc (line 1063) | static void
  function ContentStructureProc (line 1142) | static void
  function PlaceRequestProc (line 1179) | static void
  function PlaceLostContentProc (line 1224) | static void

FILE: generic/tkPlatDecls.h
  type TkPlatStubs (line 80) | typedef struct TkPlatStubs {

FILE: generic/tkPointer.c
  type ThreadSpecificData (line 25) | typedef struct {
  function InitializeEvent (line 64) | static void
  function GenerateEnterLeave (line 121) | static int
  function Tk_UpdatePointer (line 214) | void
  function XGrabPointer (line 415) | int
  function XUngrabPointer (line 457) | int
  function TkPointerDeadWindow (line 489) | void
  function UpdateCursor (line 535) | static void
  function XDefineCursor (line 579) | int

FILE: generic/tkRectOval.c
  type RectOvalItem (line 21) | typedef struct RectOvalItem  {
  function CreateRectOval (line 235) | static int
  function RectOvalCoords (line 310) | static int
  function ConfigureRectOval (line 397) | static int
  function DeleteRectOval (line 575) | static void
  function ComputeRectOvalBbox (line 624) | static void
  function DisplayRectOval (line 740) | static void
  function RectToPoint (line 964) | static double
  function OvalToPoint (line 1083) | static double
  function RectToArea (line 1137) | static int
  function OvalToArea (line 1210) | static int
  function RotateRectOval (line 1306) | static void
  function ScaleRectOval (line 1356) | static void
  function TranslateRectOval (line 1392) | static void
  function RectOvalToPostscript (line 1428) | static int

FILE: generic/tkScale.c
  type command (line 142) | enum command {
  function ScaleDigit (line 191) | static inline int
  function ScaleMax (line 198) | static inline double
  function ScaleMin (line 206) | static inline double
  function ScaleRound (line 214) | static inline int
  function Tk_ScaleObjCmd (line 238) | int
  function ScaleWidgetObjCmd (line 371) | static int
  function DestroyScale (line 533) | static void
  function ConfigureScale (line 591) | static int
  function ScaleWorldChanged (line 753) | static void
  function MaxTickRoundingError (line 816) | static double
  function ComputeFormat (line 863) | static void
  function ComputeScaleGeometry (line 1012) | static void
  function ScaleEventProc (line 1161) | static void
  function ScaleCmdDeletedProc (line 1213) | static void
  function TkEventuallyRedrawScale (line 1252) | void
  function TkRoundValueToResolution (line 1290) | double
  function TkRoundIntervalToResolution (line 1299) | double
  function TkScaleSetValue (line 1444) | void
  function ScaleSetVariable (line 1502) | static void
  function TkScalePixelToValue (line 1538) | double
  function TkScaleValueToPixel (line 1599) | int

FILE: generic/tkScale.h
  type orient (line 25) | enum orient {
  type state (line 33) | enum state {
  type TkScale (line 42) | typedef struct TkScale {

FILE: generic/tkScrollbar.c
  function Tk_ScrollbarObjCmd (line 122) | int
  function ScrollbarWidgetObjCmd (line 213) | static int
  function ConfigureScrollbar (line 464) | static int
  function TkScrollbarEventProc (line 514) | void
  function ScrollbarCmdDeletedProc (line 583) | static void
  function TkScrollbarEventuallyRedraw (line 619) | void

FILE: generic/tkScrollbar.h
  type TkScrollbar (line 24) | typedef struct TkScrollbar {

FILE: generic/tkSelect.c
  type CommandInfo (line 27) | typedef struct {
  type LostCommand (line 46) | typedef struct LostCommand {
  type ThreadSpecificData (line 55) | typedef struct {
  function Tk_CreateSelHandler (line 116) | void
  function Tk_DeleteSelHandler (line 237) | void
  function Tk_OwnSelection (line 351) | void
  function Tk_ClearSelection (line 462) | void
  function Tk_GetSelection (line 547) | int
  function Tk_SelectionObjCmd (line 669) | int
  function TkSelInProgress (line 1045) | TkSelInProgress *
  function TkSelSetInProgress (line 1071) | void
  function TkSelDeadWindow (line 1098) | void
  function TkSelInit (line 1173) | void
  function TkSelClearSelection (line 1226) | void
  function SelGetProc (line 1293) | static int
  function Tcl_Size (line 1325) | static Tcl_Size
  function Tcl_Size (line 1469) | Tcl_Size
  function LostSelection (line 1570) | static void

FILE: generic/tkSelect.h
  type TkSelectionInfo (line 25) | typedef struct TkSelectionInfo {
  type TkSelHandler (line 47) | typedef struct TkSelHandler {
  type TkSelRetrievalInfo (line 72) | typedef struct TkSelRetrievalInfo {
  type TkClipboardBuffer (line 104) | typedef struct TkClipboardBuffer {
  type TkClipboardTarget (line 112) | typedef struct TkClipboardTarget {
  type clipboardOption (line 130) | typedef enum {
  type TkSelInProgress (line 145) | typedef struct TkSelInProgress {

FILE: generic/tkSquare.c
  type Square (line 32) | typedef struct {
  function SquareObjCmd (line 124) | int
  function SquareWidgetObjCmd (line 217) | static int
  function SquareConfigure (line 317) | static int
  function SquareObjEventProc (line 377) | static void
  function SquareDeletedProc (line 431) | static void
  function SquareDisplay (line 468) | static void
  function KeepInWindow (line 549) | static void

FILE: generic/tkStubInit.c
  function PointToChar (line 47) | static int PointToChar(Tk_TextLayout layout, int x, int y)
  function doNothing (line 53) | static int
  function TkCreateXEventSource (line 75) | void
  function TkSetPixmapColormap (line 112) | void
  function TkpPrintWindowId (line 121) | void
  function TkPutImage (line 161) | int

FILE: generic/tkStubLib.c
  function isDigit (line 48) | static int
  function MODULE_SCOPE (line 72) | MODULE_SCOPE const char *

FILE: generic/tkStyle.c
  type StyledWidgetSpec (line 21) | typedef struct StyledWidgetSpec {
  type StyledElement (line 41) | typedef struct StyledElement {
  type StyleEngine (line 60) | typedef struct StyleEngine {
  type Style (line 77) | typedef struct Style {
  type Element (line 88) | typedef struct Element {
  type ThreadSpecificData (line 101) | typedef struct {
  function TkStylePkgInit (line 180) | void
  function TkStylePkgFree (line 235) | void
  function Tk_StyleEngine (line 304) | Tk_StyleEngine
  function InitStyleEngine (line 359) | static void
  function FreeStyleEngine (line 419) | static void
  function Tk_StyleEngine (line 453) | Tk_StyleEngine
  function InitElement (line 490) | static void
  function FreeElement (line 523) | static void
  function InitStyledElement (line 546) | static void
  function FreeStyledElement (line 569) | static void
  function CreateElement (line 601) | static int
  function Tk_GetElementId (line 686) | int
  function Tk_RegisterStyledElement (line 752) | int
  function StyledElement (line 841) | static StyledElement *
  function InitWidgetSpec (line 900) | static void
  function FreeWidgetSpec (line 963) | static void
  function StyledWidgetSpec (line 988) | static StyledWidgetSpec *
  function Tk_StyledElement (line 1036) | Tk_StyledElement
  function Tk_GetElementSize (line 1075) | void
  function Tk_GetElementBox (line 1116) | void
  function Tk_GetElementBorderWidth (line 1158) | int
  function Tk_DrawElement (line 1189) | void
  function Tk_Style (line 1226) | Tk_Style
  function InitStyle (line 1310) | static void
  function Tk_Style (line 1342) | Tk_Style
  function Tk_FreeStyle (line 1378) | void
  function Tk_Style (line 1400) | Tk_Style
  function SetStyleFromAny (line 1432) | static int
  function FreeStyleObjProc (line 1475) | static void
  function DupStyleObjProc (line 1494) | static void

FILE: generic/tkTest.c
  type TImageModel (line 63) | typedef struct TImageModel {
  type TImageInstance (line 77) | typedef struct TImageInstance {
  type NewApp (line 120) | typedef struct NewApp {
  type TrivialCommandHeader (line 140) | typedef struct TrivialCommandHeader {
  function Tktest_Init (line 201) | int
  function TestbitmapObjCmd (line 295) | static int
  function TestborderObjCmd (line 328) | static int
  function TestcolorObjCmd (line 361) | static int
  function TestcursorObjCmd (line 394) | static int
  function TestdeleteappsObjCmd (line 428) | static int
  function TestobjconfigObjCmd (line 464) | static int
  function TrivialConfigObjCmd (line 1101) | static int
  function TrivialCmdDeletedProc (line 1208) | static void
  function TrivialEventProc (line 1246) | static void
  function TestfontObjCmd (line 1283) | static int
  function ImageCreate (line 1342) | static int
  function ImageObjCmd (line 1407) | static int
  function ImageDisplay (line 1505) | static void
  function ImageFree (line 1596) | static void
  function ImageDelete (line 1629) | static void
  function TestmakeexistObjCmd (line 1666) | static int
  function TestmenubarObjCmd (line 1707) | static int
  function TestmetricsObjCmd (line 1773) | static int
  function TestpropObjCmd (line 1820) | static int
  function TestprintfObjCmd (line 1896) | static int
  function TestwrapperObjCmd (line 1947) | static int
  function CustomOptionSet (line 2004) | static int
  function Tcl_Obj (line 2065) | static Tcl_Obj *
  function CustomOptionRestore (line 2075) | static void
  function CustomOptionFree (line 2086) | static void
  function TestPhotoStringMatchCmd (line 2117) | static int

FILE: generic/tkText.c
  type SearchSpec (line 255) | struct SearchSpec
  type SearchSpec (line 258) | struct SearchSpec
  type SearchSpec (line 262) | struct SearchSpec
  type SearchSpec (line 266) | struct SearchSpec
  type SearchSpec (line 269) | typedef struct SearchSpec {
  function Tk_TextObjCmd (line 435) | int
  function CreateWidget (line 473) | static int
  function TextWidgetObjCmd (line 670) | static int
  function SharedTextObjCmd (line 1584) | static int
  function TextPeerCmd (line 1690) | static int
  function TextReplaceCmd (line 1769) | static int
  function TextIndexSortProc (line 1842) | static int
  function DestroyText (line 1891) | static void
  function ConfigureText (line 2057) | static int
  function TextWorldChangedCallback (line 2345) | static void
  function TextWorldChanged (line 2374) | static void
  function TextEventProc (line 2447) | static void
  function TextCmdDeletedProc (line 2557) | static void
  function Tcl_Size (line 2602) | static Tcl_Size
  function TextPushUndoAction (line 2749) | static void
  function TextUndoRedoCallback (line 2936) | int
  function Tcl_Size (line 3034) | static Tcl_Size
  function DeleteIndexRange (line 3089) | static int
  function Tcl_Size (line 3389) | static Tcl_Size
  function TkTextLostSelection (line 3526) | void
  function TkTextSelectionEvent (line 3581) | void
  function TextBlinkProc (line 3611) | static void
  function TextInsertCmd (line 3689) | static int
  function TextSearchCmd (line 3769) | static int
  function TextSearchGetLineIndex (line 3988) | static int
  function Tcl_Size (line 4054) | static Tcl_Size
  function TextSearchFoundMatch (line 4236) | static bool
  function TkTextTabArray (line 4477) | TkTextTabArray *
  function TextDumpCmd (line 4629) | static int
  function DumpLine (line 4820) | static bool
  function DumpSegment (line 5018) | static bool
  function TextEditUndo (line 5079) | static int
  function TextEditRedo (line 5153) | static int
  function TextEditCmd (line 5219) | static int
  function Tcl_Obj (line 5389) | static Tcl_Obj *
  function GenerateModifiedEvent (line 5456) | static void
  function GenerateUndoStackEvent (line 5486) | static void
  function UpdateDirtyFlag (line 5513) | static void
  function TkTextRunAfterSyncCmd (line 5569) | void
  function SearchPerform (line 5619) | static int
  function SearchCore (line 5716) | static int
  function Tcl_Obj (line 6748) | static Tcl_Obj *
  function SetLineStartEnd (line 6783) | static int
  function RestoreLineStartEnd (line 6842) | static void
  function TkpTesttextCmd (line 6870) | int

FILE: generic/tkText.h
  type TkTextLine (line 30) | typedef struct TkTextLine {
  type TkTextToggle (line 63) | typedef struct TkTextToggle {
  type TkTextMark (line 75) | typedef struct TkTextMark {
  type TkTextEmbWindowClient (line 89) | typedef struct TkTextEmbWindowClient {
  type TkAlignMode (line 102) | typedef enum {
  type TkTextEmbWindow (line 106) | typedef struct TkTextEmbWindow {
  type TkTextEmbImage (line 136) | typedef struct TkTextEmbImage {
  type TkTextSegment (line 164) | typedef struct TkTextSegment {
  type TkTextIndex (line 195) | typedef struct TkTextIndex {
  type TkTextDispChunk (line 211) | typedef struct TkTextDispChunk TkTextDispChunk;
  type TkText (line 213) | struct TkText
  type TkText (line 217) | struct TkText
  type Tcl_Size (line 219) | typedef Tcl_Size	Tk_ChunkMeasureProc(TkTextDispChunk *chunkPtr, int x);
  type TkText (line 220) | struct TkText
  type TkTextDispChunk (line 231) | struct TkTextDispChunk {
  type TkWrapMode (line 290) | typedef enum {
  type TkTextTabStyle (line 302) | typedef enum {
  type TkTextTag (line 313) | typedef struct TkTextTag {
  type TkTextSearch (line 430) | typedef struct TkTextSearch {
  type TkTextTabAlign (line 458) | typedef enum {LEFT, RIGHT, CENTER, NUMERIC} TkTextTabAlign;
  type TkTextTab (line 460) | typedef struct TkTextTab {
  type TkTextTabArray (line 467) | typedef struct TkTextTabArray {
  type TkTextEditMode (line 483) | typedef enum {
  type TkTextDirtyMode (line 495) | typedef enum {
  type TkTextState (line 508) | typedef enum {
  type TkSharedText (line 517) | typedef struct TkSharedText {
  type TkTextInsertUnfocussed (line 590) | typedef enum {
  type TkText (line 601) | typedef struct TkText {
  type TkTextSegment (line 825) | typedef TkTextSegment *	Tk_SegSplitProc(struct TkTextSegment *segPtr,
  type TkTextSegment (line 827) | struct TkTextSegment
  type TkTextSegment (line 829) | typedef TkTextSegment *	Tk_SegCleanupProc(struct TkTextSegment *segPtr,
  type TkTextSegment (line 831) | struct TkTextSegment
  type TkText (line 833) | struct TkText
  type TkTextIndex (line 834) | struct TkTextIndex
  type TkTextDispChunk (line 837) | struct TkTextDispChunk
  type Tk_SegType (line 841) | typedef struct Tk_SegType {
  type TkTextCountType (line 877) | typedef int TkTextCountType;
  type TkTextElideInfo (line 893) | typedef struct TkTextElideInfo {
  type TkTextInvalidateAction (line 939) | typedef enum {

FILE: generic/tkTextBTree.c
  type Summary (line 45) | typedef struct Summary {
  type Node (line 58) | typedef struct Node {
  type BTree (line 103) | typedef struct BTree {
  type TagInfo (line 123) | typedef struct TagInfo {
  function TkTextBTree (line 260) | TkTextBTree
  function TkBTreeAddClient (line 362) | void
  function TkBTreeClientRangeChanged (line 422) | void
  function TkBTreeDestroy (line 467) | void
  function Tcl_Size (line 504) | Tcl_Size
  function TkBTreeRemoveClient (line 532) | void
  function AdjustStartEndRefs (line 613) | static void
  function AdjustPixelClient (line 701) | static int
  function RemovePixelClient (line 790) | static void
  function DestroyNode (line 859) | static void
  function DeleteSummaries (line 909) | static void
  function TkBTreeAdjustPixelHeight (line 940) | int
  function TkBTreeInsertChars (line 1009) | void
  function TkTextSegment (line 1194) | static TkTextSegment *
  function CleanupLine (line 1266) | static void
  function TkBTreeDeleteIndexRange (line 1320) | void
  function TkTextLine (line 1600) | TkTextLine *
  function TkTextLine (line 1689) | TkTextLine *
  function TkTextLine (line 1783) | TkTextLine *
  function TkTextLine (line 1839) | TkTextLine *
  function TkBTreePixelsTo (line 1921) | int
  function Tcl_Size (line 1983) | Tcl_Size
  function TkBTreeLinkSegment (line 2068) | void
  function TkBTreeUnlinkSegment (line 2110) | void
  function TkBTreeTag (line 2162) | int
  function ChangeNodeToggleCount (line 2312) | static void
  function TkTextSegment (line 2494) | static TkTextSegment *
  function TkTextSegment (line 2579) | static TkTextSegment *
  function TkBTreeStartSearch (line 2673) | void
  function TkBTreeStartSearchBack (line 2769) | void
  function TkBTreeNextTag (line 2876) | int
  function TkBTreePrevTag (line 3041) | int
  function TkBTreeCharTagged (line 3255) | bool
  function TkTextTag (line 3366) | TkTextTag **
  function TkTextIsElided (line 3511) | bool
  function TkTextFreeElideInfo (line 3689) | void
  function IncCount (line 3719) | static void
  function TkBTreeCheck (line 3783) | void
  function CheckNodeConsistency (line 3925) | static void
  function Rebalance (line 4114) | static void
  function RecomputeNodeCounts (line 4350) | static void
  function Tcl_Size (line 4509) | Tcl_Size
  function TkBTreeNumPixels (line 4550) | int
  function TkTextSegment (line 4576) | static TkTextSegment *
  function TkTextSegment (line 4618) | static TkTextSegment *
  function CharDeleteProc (line 4658) | static int
  function CharCheckProc (line 4687) | static void
  function ToggleDeleteProc (line 4732) | static int
  function TkTextSegment (line 4783) | static TkTextSegment *
  function ToggleLineChangeProc (line 4847) | static void
  function ToggleCheckProc (line 4876) | static void

FILE: generic/tkTextDisp.c
  type StyleValues (line 122) | typedef struct StyleValues {
  type TextStyle (line 170) | typedef struct TextStyle {
  type DLine (line 220) | typedef struct DLine {
  type TextDInfo (line 310) | typedef struct TextDInfo {
  type CharInfo (line 435) | typedef struct CharInfo {
  type CharInfo (line 448) | typedef struct CharInfo {
  type BaseCharInfo (line 461) | typedef struct BaseCharInfo {
  function TkTextCreateDInfo (line 649) | void
  function TkTextFreeDInfo (line 708) | void
  function TextStyle (line 761) | static TextStyle *
  function FreeStyle (line 1063) | static void
  function DLine (line 1121) | static DLine *
  function UpdateDisplayInfo (line 1829) | static void
  function FreeDLines (line 2348) | static void
  function DisplayDLine (line 2429) | static void
  function DisplayLineBackground (line 2724) | static void
  function AsyncUpdateLineMetrics (line 3119) | static void
  function GenerateWidgetViewSyncEvent (line 3254) | static void
  function Tcl_Size (line 3300) | Tcl_Size
  function TkTextInvalidateLineMetrics (line 3522) | void
  function TextInvalidateLineMetrics (line 3543) | static void
  function TkTextFindDisplayLineEnd (line 3708) | void
  function CalculateDisplayLineHeight (line 3855) | static int
  function TkTextIndexYPixels (line 3947) | int
  function TkTextUpdateOneLine (line 4047) | int
  function DisplayText (line 4265) | static void
  function TkTextEventuallyRepick (line 4789) | void
  function TkTextRedrawRegion (line 4820) | void
  function TextInvalidateRegion (line 4868) | static void
  function TkTextChanged (line 4939) | void
  function TextChanged (line 4958) | static void
  function TkTextRedrawTag (line 5095) | void
  function TextRedrawTag (line 5120) | static void
  function TkTextRelayoutWindow (line 5313) | void
  function TkTextSetYView (line 5455) | void
  function TkTextMeasureDown (line 5655) | int
  function MeasureUp (line 5718) | static void
  function TkTextSeeCmd (line 5835) | int
  function TkTextXviewCmd (line 5972) | int
  function YScrollByPixels (line 6052) | static void
  function YScrollByLines (line 6137) | static void
  function TkTextYviewCmd (line 6273) | int
  function Bool (line 6453) | Bool
  function TkTextScanCmd (line 6480) | int
  function GetXView (line 6598) | static void
  function GetYPixelCount (line 6692) | static int
  function GetYView (line 6805) | static void
  function AsyncUpdateYScrollbar (line 6963) | static void
  function DLine (line 6999) | static DLine *
  function IsStartOfNotMergedLine (line 7110) | static int
  function TkTextPixelIndex (line 7159) | void
  function DlineIndexOfX (line 7263) | static void
  function TkTextIndexOfX (line 7355) | void
  function DlineXOfIndex (line 7394) | static int
  function TkTextIndexBbox (line 7457) | int
  function TkTextDLineInfo (line 7632) | int
  function ElideBboxProc (line 7691) | static void
  function Tcl_Size (line 7720) | static Tcl_Size
  function TkTextCharLayoutProc (line 7750) | int
  function Tcl_Size (line 8013) | static Tcl_Size
  function CharDisplayProc (line 8106) | static void
  function CharUndisplayProc (line 8269) | static void
  function Tcl_Size (line 8324) | static Tcl_Size
  function CharBboxProc (line 8358) | static void
  function AdjustForTab (line 8433) | static void
  function SizeOfTab (line 8625) | static int
  function NextTabStop (line 8761) | static int
  function Tcl_Size (line 8815) | static Tcl_Size
  function TextGetScrollInfoObj (line 8919) | static int
  function FinalizeBaseChunk (line 9023) | static void
  function FreeBaseChunk (line 9106) | static void
  function IsSameFGStyle (line 9161) | static int
  function RemoveFromBaseChunk (line 9224) | static void

FILE: generic/tkTextImage.c
  function TkTextImageCmd (line 118) | int
  function EmbImageConfigure (line 325) | static int
  function EmbImageDeleteProc (line 431) | static int
  function TkTextSegment (line 487) | static TkTextSegment *
  function EmbImageLayoutProc (line 513) | static int
  function EmbImageCheckProc (line 608) | static void
  function EmbImageDisplayProc (line 640) | static void
  function EmbImageBboxProc (line 703) | static void
  function TkTextImageIndex (line 776) | int
  function EmbImageProc (line 828) | static void

FILE: generic/tkTextIndex.c
  type indexModifier (line 32) | typedef enum {
  function FreeTextIndexInternalRep (line 89) | static void
  function DupTextIndexInternalRep (line 109) | static void
  function UpdateStringOfTextIndex (line 139) | static void
  function TkTextIndex (line 179) | static TkTextIndex *
  function TkTextIndex (line 204) | const TkTextIndex *
  function Tcl_Obj (line 269) | Tcl_Obj *
  function TkTextMakePixelIndex (line 324) | int
  function TkTextIndex (line 384) | TkTextIndex *
  function TkTextIndex (line 477) | TkTextIndex *
  function TkTextSegment (line 572) | TkTextSegment *
  function Tcl_Size (line 610) | Tcl_Size
  function TkTextGetObjIndex (line 642) | int
  function TkTextSharedGetObjIndex (line 671) | int
  function TkTextGetIndex (line 702) | int
  function GetIndex (line 735) | static int
  function TkTextIndexAdjustToStartEnd (line 1038) | int
  function Tcl_Size (line 1097) | Tcl_Size
  function TkTextIndexCmp (line 1161) | int
  function TkTextIndexForwBytes (line 1479) | bool
  function TkTextIndexForwChars (line 1551) | void
  function Tcl_Size (line 1724) | Tcl_Size
  function Tcl_Size (line 1741) | static Tcl_Size
  function Tcl_Size (line 1814) | Tcl_Size
  function TkTextIndexBackBytes (line 2010) | bool
  function TkTextIndexBackChars (line 2080) | void

FILE: generic/tkTextMark.c
  function TkTextMarkCmd (line 94) | int
  function TkTextSegment (line 270) | TkTextSegment *
  function TkTextMarkSegToIndex (line 387) | void
  function TkTextMarkNameToIndex (line 430) | int
  function MarkDeleteProc (line 489) | static int
  function TkTextSegment (line 517) | static TkTextSegment *
  function MarkLayoutProc (line 545) | static int
  function TkTextInsertDisplayProc (line 604) | void
  function InsertUndisplayProc (line 714) | static void
  function MarkCheckProc (line 740) | static void
  function MarkFindNext (line 793) | static int
  function MarkFindPrev (line 884) | static int
  function Tcl_Obj (line 981) | static Tcl_Obj *

FILE: generic/tkTextTag.c
  function TkTextTagCmd (line 116) | int
  function TkTextTag (line 872) | TkTextTag *
  function TkTextTag (line 983) | static TkTextTag *
  function TkTextDeleteTag (line 1039) | void
  function TkTextFreeTag (line 1097) | void
  function SortTags (line 1173) | static void
  function TagSortProc (line 1224) | static int
  function ChangeTagPriority (line 1259) | static void
  function TkTextBindProc (line 1325) | void
  function TkTextPickCurrent (line 1434) | void
  function TagBindEvent (line 1637) | static void

FILE: generic/tkTextWind.c
  function TkTextWindowCmd (line 130) | int
  function EmbWinConfigure (line 376) | static int
  function EmbWinStructureProc (line 518) | static void
  function EmbWinRequestProc (line 564) | static void
  function EmbWinLostContentProc (line 608) | static void
  function TkTextWinFreeClient (line 678) | void
  function EmbWinDeleteProc (line 734) | static int
  function TkTextSegment (line 787) | static TkTextSegment *
  function EmbWinLayoutProc (line 813) | static int
  function EmbWinCheckProc (line 1055) | static void
  function TkTextEmbWinDisplayProc (line 1086) | void
  function EmbWinUndisplayProc (line 1181) | static void
  function EmbWinBboxProc (line 1230) | static void
  function EmbWinDelayedUnmap (line 1314) | static void
  function TkTextWindowIndex (line 1348) | int
  function TkTextEmbWindowClient (line 1408) | static TkTextEmbWindowClient *

FILE: generic/tkTrig.c
  function TkLineToPoint (line 40) | double
  function TkLineToArea (line 144) | int
  function TkThickPolyLineToArea (line 285) | int
  function TkPolygonToPoint (line 428) | double
  function TkPolygonToArea (line 584) | int
  function TkOvalToPoint (line 654) | double
  function TkOvalToArea (line 750) | int
  function TkIncludePoint (line 868) | void
  function TkBezierScreenPoints (line 913) | void
  function TkBezierPoints (line 960) | void
  function TkMakeBezierCurve (line 1011) | int
  function TkMakeRawCurve (line 1185) | int
  function TkMakeBezierPostscript (line 1362) | void
  function TkMakeRawCurvePostscript (line 1464) | void
  function TkGetMiterPoints (line 1575) | bool
  function TkGetButtPoints (line 1706) | void

FILE: generic/tkUndo.c
  function TkUndoPushStack (line 35) | void
  function TkUndoAtom (line 60) | TkUndoAtom *
  function TkUndoInsertSeparator (line 90) | int
  function TkUndoClearStack (line 121) | void
  function TkUndoPushAction (line 176) | void
  function TkUndoSubAtom (line 224) | TkUndoSubAtom *
  function TkUndoSubAtom (line 286) | TkUndoSubAtom *
  function TkUndoRedoStack (line 337) | TkUndoRedoStack *
  function TkUndoSetMaxDepth (line 370) | void
  function TkUndoClearStacks (line 444) | void
  function TkUndoFreeStack (line 470) | void
  function TkUndoCanRedo (line 494) | bool
  function TkUndoCanUndo (line 517) | bool
  function TkUndoInsertUndoSeparator (line 541) | void
  function TkUndoRevert (line 567) | int
  function TkUndoApply (line 630) | int
  function EvaluateActionList (line 694) | static int

FILE: generic/tkUndo.h
  type TkUndoAtomType (line 23) | typedef enum {
  type TkUndoSubAtom (line 42) | typedef struct TkUndoSubAtom {
  type TkUndoAtom (line 61) | typedef struct TkUndoAtom {
  type TkUndoRedoStack (line 76) | typedef struct TkUndoRedoStack {

FILE: generic/tkUtil.c
  function TkStateParseProc (line 52) | int
  function TkOrientParseProc (line 175) | int
  function TkOffsetParseProc (line 263) | int
  function TkPixelParseProc (line 479) | int
  function TkDrawInsetFocusHighlight (line 552) | void
  function Tk_DrawFocusHighlight (line 608) | void
  function TkDrawDottedRect (line 640) | void
  function Tk_GetScrollInfo (line 709) | int
  function Tk_GetScrollInfoObj (line 792) | int
  function TkComputeAnchor (line 875) | void
  function TkFindStateNum (line 989) | int
  function TkFindStateNumObj (line 1029) | int
  function TkBackgroundEvalObjv (line 1109) | int
  function Tcl_Command (line 1167) | Tcl_Command
  function TkScalingLevel (line 1255) | double
  function Tk_SendVirtualEvent (line 1286) | void

FILE: generic/tkVisual.c
  type VisualDictionary (line 22) | typedef struct VisualDictionary {
  type TkColormap (line 46) | struct TkColormap {
  function Visual (line 85) | Visual *
  function Colormap (line 368) | Colormap
  function Tk_FreeColormap (line 453) | void
  function Tk_PreserveColormap (line 513) | void

FILE: generic/tkWindow.c
  type TkHalfdeadWindow (line 35) | typedef struct TkHalfdeadWindow {
  type ThreadSpecificData (line 41) | typedef struct {
  type TkCmd (line 100) | typedef struct {
  function TkCloseDisplay (line 251) | static void
  function Tk_Window (line 318) | static Tk_Window
  function TkDisplay (line 429) | static TkDisplay *
  function TkDisplay (line 542) | TkDisplay *
  function TkDisplay (line 577) | TkDisplay *
  function TkMainInfo (line 604) | TkMainInfo *
  function TkWindow (line 629) | TkWindow *
  function NameWindow (line 713) | static int
  function Tk_Window (line 840) | Tk_Window
  function Tk_Window (line 1103) | Tk_Window
  function Tk_Window (line 1169) | Tk_Window
  function Tk_Window (line 1237) | Tk_Window
  function SendEnterLeaveForDestroy (line 1354) | static void SendEnterLeaveForDestroy(
  function SendEnterLeaveForDestroy (line 1380) | static void SendEnterLeaveForDestroy(
  function Tk_DestroyWindow (line 1386) | void
  function Tk_MapWindow (line 1785) | void
  function Tk_MakeWindowExist (line 1846) | void
  function Tk_UnmapWindow (line 1955) | void
  function Tk_ConfigureWindow (line 1989) | void
  function Tk_MoveWindow (line 2027) | void
  function Tk_ResizeWindow (line 2045) | void
  function Tk_MoveResizeWindow (line 2064) | void
  function Tk_SetWindowBorderWidth (line 2086) | void
  function Tk_ChangeWindowAttributes (line 2104) | void
  function Tk_SetWindowBackground (line 2169) | void
  function Tk_SetWindowBackgroundPixmap (line 2187) | void
  function Tk_SetWindowBorder (line 2205) | void
  function Tk_SetWindowBorderPixmap (line 2222) | void
  function Tk_DefineCursor (line 2240) | void
  function Tk_UndefineCursor (line 2256) | void
  function Tk_SetWindowColormap (line 2263) | void
  function Tk_SetWindowVisual (line 2303) | int
  function TkDoConfigureNotify (line 2351) | void
  function Tk_SetClass (line 2394) | void
  function Tk_SetClassProcs (line 2426) | void
  function Tk_Window (line 2458) | Tk_Window
  function Tk_Window (line 2513) | Tk_Window
  function Tcl_Interp (line 2580) | Tcl_Interp *
  function UnlinkWindow (line 2606) | static void
  function Tk_RestackWindow (line 2652) | int
  function Tk_Window (line 2779) | Tk_Window
  function Tk_StrictMotif (line 2829) | int
  function Tk_GetNumMainWindows (line 2854) | int
  function Tk_AlwaysShowSelection (line 2890) | int
  function DeleteWindowsExitProc (line 2917) | static void
  function MODULE_SCOPE (line 3010) | MODULE_SCOPE void
  function Tk_Init (line 3065) | int
  function Tk_SafeInit (line 3100) | int
  function CopyValue (line 3176) | static int
  function Initialize (line 3186) | static int

FILE: generic/ttk/ttkBlink.c
  type CursorManager (line 24) | typedef struct
  function CursorManagerDeleteProc (line 35) | static void CursorManagerDeleteProc(
  function CursorManager (line 50) | static CursorManager *GetCursorManager(Tcl_Interp *interp)
  function CursorBlinkProc (line 93) | static void
  function LoseCursor (line 113) | static void LoseCursor(CursorManager *cm, WidgetCore *corePtr)
  function ClaimCursor (line 131) | static void ClaimCursor(CursorManager *cm, WidgetCore *corePtr)
  function CursorEventProc (line 158) | static void
  function TtkSetBlinkCursorOnTime (line 185) | void TtkSetBlinkCursorOnTime(Tcl_Interp* interp, int onTime)
  function TtkSetBlinkCursorOffTime (line 194) | void TtkSetBlinkCursorOffTime(Tcl_Interp* interp, int offTime)
  function TtkSetBlinkCursorTimes (line 210) | void TtkSetBlinkCursorTimes(Tcl_Interp* interp)
  function TtkBlinkCursor (line 235) | void TtkBlinkCursor(WidgetCore *corePtr)

FILE: generic/ttk/ttkButton.c
  type BasePart (line 19) | typedef struct
  type Base (line 51) | typedef struct
  function TextVariableChanged (line 105) | static void TextVariableChanged(void *clientData, const char *value)
  function BaseInitialize (line 123) | static void
  function BaseCleanup (line 134) | static void
  function BaseImageChanged (line 146) | static void
  function BaseConfigure (line 161) | static int BaseConfigure(Tcl_Interp *interp, void *recordPtr, int mask)
  function BasePostConfigure (line 205) | static int
  type LabelPart (line 226) | typedef struct
  type Label (line 237) | typedef struct
  function TTK_END_LAYOUT (line 302) | TTK_END_LAYOUT
  type Button (line 315) | typedef struct
  function ButtonConfigure (line 337) | static int ButtonConfigure(Tcl_Interp *interp, void *recordPtr, int mask)
  function ButtonInvokeCommand (line 363) | static int
  function TTK_END_LAYOUT (line 410) | TTK_END_LAYOUT
  type Checkbutton (line 426) | typedef struct
  function CheckbuttonVariableChanged (line 458) | static void CheckbuttonVariableChanged(void *clientData, const char *value)
  function CheckbuttonInitialize (line 479) | static void
  function CheckbuttonCleanup (line 493) | static void
  function CheckbuttonConfigure (line 502) | static int
  function CheckbuttonPostConfigure (line 530) | static int
  function CheckbuttonInvokeCommand (line 549) | static int
  function TTK_END_LAYOUT (line 623) | TTK_END_LAYOUT
  type Radiobutton (line 639) | typedef struct
  function RadiobuttonVariableChanged (line 668) | static void
  function RadiobuttonCleanup (line 690) | static void
  function RadiobuttonConfigure (line 699) | static int
  function RadiobuttonPostConfigure (line 722) | static int
  function RadiobuttonInvokeCommand (line 741) | static int
  type MenubuttonPart (line 810) | typedef struct
  type Menubutton (line 816) | typedef struct
  function TtkButton_Init (line 879) | void

FILE: generic/ttk/ttkCache.c
  type Ttk_Cached (line 43) | typedef struct {
  type Ttk_ResourceCache_ (line 56) | struct Ttk_ResourceCache_ {
  function Ttk_ResourceCache (line 71) | Ttk_ResourceCache Ttk_CreateResourceCache(Tcl_Interp *interp)
  function Ttk_ClearCache (line 90) | static void Ttk_ClearCache(Ttk_ResourceCache cache)
  function Ttk_FreeResourceCache (line 210) | void Ttk_FreeResourceCache(Ttk_ResourceCache cache)
  function CacheWinEventHandler (line 239) | static void CacheWinEventHandler(void *clientData, XEvent *eventPtr)
  function InitCacheWindow (line 256) | static void InitCacheWindow(Ttk_ResourceCache cache)
  function Ttk_RegisterNamedColor (line 270) | void Ttk_RegisterNamedColor(
  function Tcl_Obj (line 300) | static Tcl_Obj *CheckNamedColor(Ttk_ResourceCache cache, Tcl_Obj *objPtr)
  function Tcl_Obj (line 325) | static Tcl_Obj *Ttk_Use(
  function Tcl_Obj (line 387) | Tcl_Obj *Ttk_UseFont(Ttk_ResourceCache cache, Tk_Window tkwin, Tcl_Obj *...
  function Tcl_Obj (line 398) | Tcl_Obj *Ttk_UseColor(Ttk_ResourceCache cache, Tk_Window tkwin, Tcl_Obj ...
  function Tcl_Obj (line 410) | Tcl_Obj *Ttk_UseBorder(
  function NullImageChanged (line 423) | static void NullImageChanged(
  function Tk_Image (line 438) | Tk_Image Ttk_UseImage(Ttk_ResourceCache cache, Tk_Window tkwin, Tcl_Obj ...

FILE: generic/ttk/ttkClamTheme.c
  function GC (line 36) | static GC Ttk_GCForColor(Tk_Window tkwin, Tcl_Obj* colorObj, Drawable d)
  function DrawSmoothBorder (line 57) | static void DrawSmoothBorder(
  function GC (line 91) | static GC BackgroundGC(Tk_Window tkwin, Tcl_Obj *backgroundObj)
  type BorderElement (line 101) | typedef struct {
  function BorderElementSize (line 131) | static void BorderElementSize(
  function BorderElementDraw (line 147) | static void BorderElementDraw(
  type FieldElement (line 201) | typedef struct {
  function FieldElementSize (line 217) | static void FieldElementSize(
  function FieldElementDraw (line 228) | static void FieldElementDraw(
  function ComboboxFieldElementDraw (line 259) | static void ComboboxFieldElementDraw(
  type IndicatorSpec (line 289) | typedef struct {
  type IndicatorElement (line 348) | typedef struct {
  function IndicatorElementSize (line 370) | static void IndicatorElementSize(
  function ColorToStr (line 385) | static void ColorToStr(
  function ImageChanged (line 392) | static void ImageChanged(		/* to be passed to Tk_GetImage() */
  function IndicatorElementDraw (line 403) | static void IndicatorElementDraw(
  type GripElement (line 551) | typedef struct {
  function GripElementSize (line 567) | static void GripElementSize(
  function GripElementDraw (line 584) | static void GripElementDraw(
  type ScrollbarElement (line 631) | typedef struct { /* Common element record for scrollbar elements */
  function TroughElementDraw (line 668) | static void TroughElementDraw(
  function ThumbElementSize (line 692) | static void ThumbElementSize(
  function ThumbElementDraw (line 707) | static void ThumbElementDraw(
  function SliderElementSize (line 766) | static void SliderElementSize(
  function PbarElementSize (line 802) | static void PbarElementSize(
  function PbarElementDraw (line 813) | static void PbarElementDraw(
  function ArrowElementSize (line 844) | static void ArrowElementSize(
  function ArrowElementDraw (line 867) | static void ArrowElementDraw(
  function SpinboxArrowElementSize (line 922) | static void SpinboxArrowElementSize(
  type NotebookElement (line 956) | typedef struct {
  function TabElementSize (line 975) | static void TabElementSize(
  function TabElementDraw (line 1010) | static void TabElementDraw(
  function ClientElementSize (line 1161) | static void ClientElementSize(
  function ClientElementDraw (line 1174) | static void ClientElementDraw(
  function TtkClamTheme_Init (line 1219) | int

FILE: generic/ttk/ttkClassicTheme.c
  type HighlightElement (line 19) | typedef struct {
  function HighlightElementSize (line 35) | static void HighlightElementSize(
  function HighlightElementDraw (line 50) | static void HighlightElementDraw(
  type ButtonBorderElement (line 96) | typedef struct {
  function ButtonBorderElementSize (line 116) | static void ButtonBorderElementSize(
  function ButtonBorderElementDraw (line 142) | static void ButtonBorderElementDraw(
  type IndicatorElement (line 221) | typedef struct {
  function SquareIndicatorElementSize (line 249) | static void SquareIndicatorElementSize(
  function SquareIndicatorElementDraw (line 267) | static void SquareIndicatorElementDraw(
  function DiamondIndicatorElementSize (line 300) | static void DiamondIndicatorElementSize(
  function DiamondIndicatorElementDraw (line 318) | static void DiamondIndicatorElementDraw(
  type MenuIndicatorElement (line 384) | typedef struct {
  function MenuIndicatorElementSize (line 409) | static void MenuIndicatorElementSize(
  function MenuIndicatorElementDraw (line 427) | static void MenuIndicatorElementDraw(
  type ArrowElement (line 462) | typedef struct
  function ArrowElementSize (line 482) | static void ArrowElementSize(
  function ArrowElementDraw (line 497) | static void ArrowElementDraw(
  type SliderElement (line 560) | typedef struct {
  function SliderElementSize (line 585) | static void SliderElementSize(
  function SliderElementDraw (line 614) | static void SliderElementDraw(
  type SashElement (line 683) | typedef struct {
  function SashElementSize (line 708) | static void SashElementSize(
  function SashElementDraw (line 732) | static void SashElementDraw(
  function TtkClassicTheme_Init (line 891) | int

FILE: generic/ttk/ttkDecls.h
  type TtkStubs (line 146) | typedef struct TtkStubs {

FILE: generic/ttk/ttkDefaultTheme.c
  type BorderColor (line 37) | enum BorderColor { FLAT = 1, LITE = 2, DARK = 3, BRDR = 4 }
  type BorderColor (line 40) | enum BorderColor
  type BorderColor (line 50) | enum BorderColor
  function DrawCorner (line 59) | static void DrawCorner(
  function DrawBorder (line 91) | static void DrawBorder(
  function DrawFieldBorder (line 126) | static void DrawFieldBorder(
  function ArrowPoints (line 146) | static void ArrowPoints(Ttk_Box b, ArrowDirection direction, XPoint poin...
  function TtkArrowSize (line 194) | void TtkArrowSize(int h, ArrowDirection direction, int *widthPtr, int *h...
  function TtkFillArrow (line 209) | void TtkFillArrow(
  function TtkDrawArrow (line 222) | void TtkDrawArrow(
  type BorderElement (line 244) | typedef struct {
  function BorderElementSize (line 266) | static void BorderElementSize(
  function BorderElementDraw (line 288) | static void BorderElementDraw(
  type FieldElement (line 335) | typedef struct {
  function FieldElementSize (line 354) | static void FieldElementSize(
  function FieldElementDraw (line 365) | static void FieldElementDraw(
  type IndicatorSpec (line 441) | typedef struct {
  type IndicatorElement (line 514) | typedef struct {
  function IndicatorElementSize (line 542) | static void IndicatorElementSize(
  function ColorToStr (line 557) | static void ColorToStr(
  function ImageChanged (line 564) | static void ImageChanged(		/* to be passed to Tk_GetImage() */
  function IndicatorElementDraw (line 575) | static void IndicatorElementDraw(
  type ArrowElement (line 734) | typedef struct {
  function ArrowElementSize (line 763) | static void ArrowElementSize(
  function ArrowElementDraw (line 791) | static void ArrowElementDraw(
  function BoxArrowElementSize (line 856) | static void BoxArrowElementSize(
  function BoxArrowElementDraw (line 880) | static void BoxArrowElementDraw(
  type MenubuttonArrowElement (line 937) | typedef struct {
  function MenubuttonArrowElementSize (line 960) | static void MenubuttonArrowElementSize(
  function MenubuttonArrowElementDraw (line 985) | static void MenubuttonArrowElementDraw(
  type ThumbElement (line 1041) | typedef struct {
  function ThumbElementSize (line 1063) | static void ThumbElementSize(
  function ThumbElementDraw (line 1087) | static void ThumbElementDraw(
  type SliderElement (line 1135) | typedef struct {
  function SliderElementSize (line 1160) | static void SliderElementSize(
  function SliderElementDraw (line 1188) | static void SliderElementDraw(
  type TreeitemIndicator (line 1222) | typedef struct {
  function TreeitemIndicatorSize (line 1238) | static void TreeitemIndicatorSize(
  function TreeitemIndicatorDraw (line 1257) | static void TreeitemIndicatorDraw(
  function MODULE_SCOPE (line 1303) | MODULE_SCOPE int

FILE: generic/ttk/ttkElements.c
  function Fill3DRectangle (line 48) | static void Fill3DRectangle(
  function TtkNullElementSize (line 93) | void
  function TtkNullElementDraw (line 104) | void
  type BackgroundElement (line 132) | typedef struct {
  function FillElementDraw (line 142) | static void FillElementDraw(
  function BackgroundElementDraw (line 158) | static void BackgroundElementDraw(
  type BorderElement (line 189) | typedef struct {
  function BorderElementSize (line 205) | static void BorderElementSize(
  function BorderElementDraw (line 220) | static void BorderElementDraw(
  type FieldElement (line 254) | typedef struct {
  function FieldElementSize (line 274) | static void FieldElementSize(
  function FieldElementDraw (line 293) | static void FieldElementDraw(
  type PaddingElement (line 375) | typedef struct {
  function PaddingElementSize (line 391) | static void PaddingElementSize(
  type FocusElement (line 422) | typedef struct {
  function DrawFocusRing (line 432) | static void DrawFocusRing(
  function FocusElementSize (line 485) | static void FocusElementSize(
  function FocusElementDraw (line 500) | static void FocusElementDraw(
  type SeparatorElement (line 535) | typedef struct {
  function SeparatorElementSize (line 548) | static void SeparatorElementSize(
  function HorizontalSeparatorElementDraw (line 559) | static void HorizontalSeparatorElementDraw(
  function VerticalSeparatorElementDraw (line 576) | static void VerticalSeparatorElementDraw(
  function GeneralSeparatorElementDraw (line 593) | static void GeneralSeparatorElementDraw(
  type SizegripElement (line 641) | typedef struct {
  function SizegripSize (line 654) | static void SizegripSize(
  function SizegripDraw (line 669) | static void SizegripDraw(
  type IndicatorSpec (line 717) | typedef struct {
  type IndicatorElement (line 773) | typedef struct {
  function IndicatorElementSize (line 798) | static void IndicatorElementSize(
  function ColorToStr (line 813) | static void ColorToStr(
  function ImageChanged (line 820) | static void ImageChanged(               /* to be passed to Tk_GetImage() */
  function IndicatorElementDraw (line 831) | static void IndicatorElementDraw(
  type ArrowElement (line 986) | typedef struct {
  function ArrowElementSize (line 1010) | static void ArrowElementSize(
  function ArrowElementDraw (line 1038) | static void ArrowElementDraw(
  function BoxArrowElementSize (line 1102) | static void BoxArrowElementSize(
  function BoxArrowElementDraw (line 1126) | static void BoxArrowElementDraw(
  type MenuIndicatorElement (line 1184) | typedef struct {
  function MenuIndicatorElementSize (line 1200) | static void MenuIndicatorElementSize(
  function MenuIndicatorElementDraw (line 1219) | static void MenuIndicatorElementDraw(
  type TroughElement (line 1260) | typedef struct {
  function TroughElementSize (line 1282) | static void TroughElementSize(
  function TroughElementDraw (line 1301) | static void TroughElementDraw(
  type ThumbElement (line 1357) | typedef struct {
  function ThumbElementSize (line 1379) | static void ThumbElementSize(
  function ThumbElementDraw (line 1401) | static void ThumbElementDraw(
  type SliderElement (line 1440) | typedef struct {
  function SliderElementSize (line 1459) | static void SliderElementSize(
  function SliderElementDraw (line 1470) | static void SliderElementDraw(
  type PbarElement (line 1629) | typedef struct {
  function PbarElementSize (line 1654) | static void PbarElementSize(
  function PbarElementDraw (line 1681) | static void PbarElementDraw(
  type TabElement (line 1711) | typedef struct {
  function TabElementSize (line 1730) | static void TabElementSize(
  function TabElementDraw (line 1767) | static void TabElementDraw(
  type TabElement (line 1961) | typedef TabElement ClientElement;
  function ClientElementSize (line 1964) | static void ClientElementSize(
  function ClientElementDraw (line 1978) | static void ClientElementDraw(
  function MODULE_SCOPE (line 2007) | MODULE_SCOPE void

FILE: generic/ttk/ttkEntry.c
  type VMODE (line 30) | typedef enum validateMode {
  type VREASON (line 41) | typedef enum validateReason {
  type EntryStyleData (line 75) | typedef struct {
  type EntryPart (line 86) | typedef struct {
  type Entry (line 138) | typedef struct {
  function EntryInitStyleDefaults (line 225) | static void EntryInitStyleDefaults(EntryStyleData *es)
  function EntryFreeStyleDefaults (line 240) | static void EntryFreeStyleDefaults(EntryStyleData *es)
  function EntryInitStyleData (line 255) | static void EntryInitStyleData(Entry *entryPtr, EntryStyleData *es)
  function EntryUpdateTextLayout (line 320) | static void EntryUpdateTextLayout(Entry *entryPtr)
  function EntryEditable (line 342) | static int
  function Tcl_Size (line 355) | static Tcl_Size
  function EntryLostSelection (line 390) | static void EntryLostSelection(void *clientData)
  function EntryOwnSelection (line 402) | static void EntryOwnSelection(Entry *entryPtr)
  function ExpandPercents (line 421) | static void
  function RunValidationScript (line 528) | static int RunValidationScript(
  function EntryNeedsValidation (line 567) | static int EntryNeedsValidation(VMODE vmode, VREASON reason)
  function EntryValidateChange (line 592) | static int
  function EntryRevalidate (line 659) | static int EntryRevalidate(
  function EntryRevalidateBG (line 679) | static void EntryRevalidateBG(Entry *entryPtr, VREASON reason)
  function Tcl_Size (line 699) | static Tcl_Size AdjustIndex(Tcl_Size i0, Tcl_Size index, Tcl_Size nChars)
  function AdjustIndices (line 715) | static void AdjustIndices(Entry *entryPtr, Tcl_Size index, Tcl_Size nChars)
  function EntryStoreValue (line 736) | static void
  function EntrySetValue (line 788) | static int EntrySetValue(Entry *entryPtr, const char *value)
  function EntryTextVariableTrace (line 816) | static void EntryTextVariableTrace(void *recordPtr, const char *value)
  function InsertChars (line 841) | static int
  function DeleteChars (line 882) | static int
  function EntryEventProc (line 934) | static void
  function EntryInitialize (line 959) | static void
  function EntryCleanup (line 988) | static void
  function EntryConfigure (line 1013) | static int EntryConfigure(Tcl_Interp *interp, void *recordPtr, int mask)
  function EntryPostConfigure (line 1081) | static int EntryPostConfigure(
  function EntryCharPosition (line 1104) | static int
  function EntryDoLayout (line 1122) | static void
  function GC (line 1185) | static GC EntryGetGC(Entry *entryPtr, Tcl_Obj *colorObj, Region clip)
  function EntryDisplay (line 1210) | static void EntryDisplay(void *clientData, Drawable d)
  function EntryIndex (line 1407) | static int
  function EntryBBoxCommand (line 1496) | static int
  function EntryDeleteCommand (line 1526) | static int
  function EntryGetCommand (line 1555) | static int
  function EntryICursorCommand (line 1571) | static int
  function EntryIndexCommand (line 1591) | static int
  function EntryInsertCommand (line 1613) | static int
  function EntrySelectionClearCommand (line 1636) | static int EntrySelectionClearCommand(
  function EntrySelectionPresentCommand (line 1653) | static int EntrySelectionPresentCommand(
  function EntrySelectionRangeCommand (line 1669) | static int EntrySelectionRangeCommand(
  function EntrySetCommand (line 1707) | static int EntrySetCommand(
  function EntryValidateCommand (line 1723) | static int EntryValidateCommand(
  function EntryXViewCommand (line 1746) | static int EntryXViewCommand(
  type ComboboxPart (line 1803) | typedef struct {
  type Combobox (line 1810) | typedef struct {
  function ComboboxInitialize (line 1832) | static void
  function ComboboxConfigure (line 1845) | static int
  function ComboboxCurrentCommand (line 1866) | static int ComboboxCurrentCommand(
  type SpinboxPart (line 1971) | typedef struct {
  type Spinbox (line 1983) | typedef struct {
  function SpinboxInitialize (line 2020) | static void
  function SpinboxConfigure (line 2042) | static int
  type TextareaElement (line 2099) | typedef struct {
  function TextareaElementSize (line 2112) | static void TextareaElementSize(
  function TtkEntry_Init (line 2174) | void

FILE: generic/ttk/ttkFrame.c
  type FramePart (line 16) | typedef struct {
  type Frame (line 24) | typedef struct {
  function Ttk_Padding (line 65) | static Ttk_Padding FrameMargins(Frame *framePtr)
  function FrameSize (line 92) | static int FrameSize(
  function FrameConfigure (line 116) | static int FrameConfigure(Tcl_Interp *interp, void *recordPtr, int mask)
  function TtkGetLabelAnchorFromObj (line 178) | int TtkGetLabelAnchorFromObj(
  function Ttk_Side (line 222) | static Ttk_Side LabelAnchorSide(Ttk_PositionSpec flags)
  type LabelframePart (line 235) | typedef struct {
  type Labelframe (line 246) | typedef struct {
  type LabelframeStyle (line 273) | typedef struct {
  function LabelframeStyleOptions (line 281) | static void LabelframeStyleOptions(Labelframe *lf, LabelframeStyle *style)
  function LabelframeLabelSize (line 323) | static void
  function LabelframeSize (line 344) | static int LabelframeSize(
  function Ttk_Layout (line 391) | static Ttk_Layout LabelframeGetLayout(
  function LabelframeDoLayout (line 423) | static void LabelframeDoLayout(void *recordPtr)
  function LabelframeDisplay (line 469) | static void LabelframeDisplay(void *recordPtr, Drawable d)
  function LabelframePlaceContent (line 484) | static void LabelframePlaceContent(void *recordPtr)
  function LabelRequest (line 497) | static int LabelRequest(
  function LabelRemoved (line 513) | static void LabelRemoved(
  function LabelframeInitialize (line 533) | static void LabelframeInitialize(
  function LabelframeCleanup (line 549) | static void LabelframeCleanup(void *recordPtr)
  function RaiseLabelWidget (line 563) | static void RaiseLabelWidget(Labelframe *lframe)
  function LabelframeConfigure (line 580) | static int LabelframeConfigure(Tcl_Interp *interp,void *recordPtr,int mask)
  function TtkFrame_Init (line 658) | void

FILE: generic/ttk/ttkImage.c
  type TtkImageSpec (line 22) | struct TtkImageSpec {
  function NullImageChanged (line 34) | static void NullImageChanged(
  function ImageSpecImageChanged (line 49) | static void ImageSpecImageChanged(void *clientData,
  function Ttk_ImageSpec (line 65) | Ttk_ImageSpec *
  function Ttk_ImageSpec (line 77) | Ttk_ImageSpec *
  function TtkFreeImageSpec (line 150) | void TtkFreeImageSpec(Ttk_ImageSpec *imageSpec)
  function Tk_Image (line 168) | Tk_Image TtkSelectImage(
  function Ttk_Box (line 189) | static Ttk_Box LPadding(Ttk_Box b, Ttk_Padding p)
  function Ttk_Box (line 192) | static Ttk_Box CPadding(Ttk_Box b, Ttk_Padding p)
  function Ttk_Box (line 195) | static Ttk_Box RPadding(Ttk_Box b, Ttk_Padding p)
  function Ttk_Box (line 201) | static Ttk_Box TPadding(Ttk_Box b, Ttk_Padding p)
  function Ttk_Box (line 204) | static Ttk_Box MPadding(Ttk_Box b, Ttk_Padding p)
  function Ttk_Box (line 207) | static Ttk_Box BPadding(Ttk_Box b, Ttk_Padding p)
  function Ttk_Fill (line 214) | static void Ttk_Fill(
  function Ttk_Stripe (line 241) | static void Ttk_Stripe(
  function Ttk_Tile (line 253) | static void Ttk_Tile(
  type ImageData (line 266) | typedef struct {		/* ClientData for image elements */
  function FreeImageData (line 280) | static void FreeImageData(void *clientData)
  function ImageElementSize (line 290) | static void ImageElementSize(
  function ImageElementDraw (line 314) | static void ImageElementDraw(
  function Ttk_CreateImageElement (line 364) | static int
  function MODULE_SCOPE (line 470) | MODULE_SCOPE void

FILE: generic/ttk/ttkInit.c
  function Ttk_GetButtonDefaultStateFromObj (line 19) | int Ttk_GetButtonDefaultStateFromObj(
  function Ttk_GetCompoundFromObj (line 39) | int Ttk_GetCompoundFromObj(
  function Ttk_GetOrientFromObj (line 58) | int Ttk_GetOrientFromObj(
  function TtkCheckStateOption (line 91) | void TtkCheckStateOption(WidgetCore *corePtr, Tcl_Obj *objPtr)
  function TtkEnumerateOptions (line 120) | int TtkEnumerateOptions(
  function TtkGetOptionValue (line 145) | int TtkGetOptionValue(
  function RegisterElements (line 184) | static void RegisterElements(Tcl_Interp *interp)
  function RegisterWidgets (line 211) | static void RegisterWidgets(Tcl_Interp *interp)
  function RegisterThemes (line 237) | static void RegisterThemes(Tcl_Interp *interp)
  function MODULE_SCOPE (line 251) | MODULE_SCOPE int

FILE: generic/ttk/ttkLabel.c
  type TextElement (line 21) | typedef struct {
  function TextSetup (line 71) | static int TextSetup(TextElement *text, Tk_Window tkwin)
  function TextReqWidth (line 97) | static int TextReqWidth(TextElement *text)
  function TextCleanup (line 117) | static void TextCleanup(TextElement *text)
  function TextDraw (line 127) | static void TextDraw(TextElement *text, Tk_Window tkwin, Drawable d, Ttk...
  function TextElementSize (line 203) | static void TextElementSize(
  function TextElementDraw (line 225) | static void TextElementDraw(
  function cTextSetup (line 256) | static int cTextSetup(TextElement *text, Tk_Window tkwin)
  function cTextElementSize (line 265) | static void cTextElementSize(
  type ImageElement (line 300) | typedef struct {
  function ImageSetup (line 333) | static int ImageSetup(
  function ImageCleanup (line 354) | static void ImageCleanup(ImageElement *image)
  function StippleOver (line 365) | static void StippleOver(
  function ImageDraw (line 386) | static void ImageDraw(
  function ImageElementSize (line 426) | static void ImageElementSize(
  function ImageElementDraw (line 443) | static void ImageElementDraw(
  type LabelElement (line 498) | typedef struct {
  function LabelSetup (line 564) | static void LabelSetup(
  function LabelCleanup (line 628) | static void LabelCleanup(LabelElement *c)
  function LabelElementSize (line 638) | static void LabelElementSize(
  function DrawCompound (line 688) | static void DrawCompound(
  function LabelElementDraw (line 700) | static void LabelElementDraw(
  function MODULE_SCOPE (line 772) | MODULE_SCOPE void

FILE: generic/ttk/ttkLayout.c
  function Ttk_Box (line 19) | Ttk_Box
  function Ttk_BoxContains (line 27) | int
  function TtkBoxEqual (line 34) | bool
  function Tcl_Obj (line 41) | Tcl_Obj *
  function Ttk_Box (line 66) | static Ttk_Box packTop(Ttk_Box *cavity, int height)
  function Ttk_Box (line 76) | static Ttk_Box packBottom(Ttk_Box *cavity, int height)
  function Ttk_Box (line 85) | static Ttk_Box packLeft(Ttk_Box *cavity, int width)
  function Ttk_Box (line 95) | static Ttk_Box packRight(Ttk_Box *cavity, int width)
  function Ttk_Box (line 115) | Ttk_Box Ttk_PackBox(Ttk_Box *cavity, int width, int height, Ttk_Side side)
  function Ttk_Box (line 130) | Ttk_Box Ttk_PadBox(Ttk_Box b, Ttk_Padding p)
  function Ttk_Box (line 145) | Ttk_Box Ttk_ExpandBox(Ttk_Box b, Ttk_Padding p)
  function Ttk_Box (line 159) | Ttk_Box Ttk_StickBox(Ttk_Box parcel, int width, int height, unsigned sti...
  function Ttk_Sticky (line 218) | static Ttk_Sticky AnchorToSticky(Tk_Anchor anchor)
  function Ttk_Box (line 239) | Ttk_Box Ttk_AnchorBox(Ttk_Box parcel, int width, int height, Tk_Anchor a...
  function Ttk_Box (line 248) | Ttk_Box Ttk_PlaceBox(
  function MODULE_SCOPE (line 260) | MODULE_SCOPE Ttk_Box
  function TTKInitPadding (line 281) | static void TTKInitPadding(int padc, int pixels[4], Ttk_Padding *pad)
  function Ttk_GetPaddingFromObj (line 320) | int Ttk_GetPaddingFromObj(
  function Ttk_GetBorderFromObj (line 363) | int Ttk_GetBorderFromObj(Tcl_Interp *interp, Tcl_Obj *objPtr, Ttk_Paddin...
  function Ttk_Padding (line 400) | Ttk_Padding Ttk_MakePadding(short left, short top, short right, short bo...
  function Ttk_Padding (line 415) | Ttk_Padding Ttk_UniformPadding(short borderWidth)
  function Ttk_Padding (line 426) | Ttk_Padding Ttk_AddPadding(Ttk_Padding p1, Ttk_Padding p2)
  function Ttk_Padding (line 440) | Ttk_Padding Ttk_RelievePadding(Ttk_Padding padding, int relief, int n)
  function Ttk_GetStickyFromObj (line 474) | int Ttk_GetStickyFromObj(
  function Tcl_Obj (line 505) | Tcl_Obj *Ttk_NewStickyObj(Ttk_Sticky sticky)
  type Ttk_LayoutNode (line 523) | typedef struct Ttk_LayoutNode_ Ttk_LayoutNode;
  type Ttk_LayoutNode_ (line 524) | struct Ttk_LayoutNode_
  function Ttk_LayoutNode (line 533) | static Ttk_LayoutNode *Ttk_NewLayoutNode(
  function Ttk_FreeLayoutNode (line 547) | static void Ttk_FreeLayoutNode(Ttk_LayoutNode *node)
  type Ttk_TemplateNode_ (line 561) | struct Ttk_TemplateNode_ {
  function Ttk_TemplateNode (line 567) | static Ttk_TemplateNode *Ttk_NewTemplateNode(const char *name, unsigned ...
  function Ttk_FreeLayoutTemplate (line 576) | void Ttk_FreeLayoutTemplate(Ttk_LayoutTemplate op)
  function Ttk_LayoutNode (line 590) | static Ttk_LayoutNode *
  function Ttk_LayoutTemplate (line 618) | Ttk_LayoutTemplate Ttk_ParseLayoutTemplate(Tcl_Interp *interp, Tcl_Obj *...
  function Ttk_LayoutTemplate (line 739) | Ttk_LayoutTemplate Ttk_BuildLayoutTemplate(Ttk_LayoutSpec spec)
  function Ttk_RegisterLayouts (line 778) | void Ttk_RegisterLayouts(Ttk_Theme theme, Ttk_LayoutSpec spec)
  function Tcl_Obj (line 789) | Tcl_Obj *Ttk_UnparseLayoutTemplate(Ttk_TemplateNode *node)
  type Ttk_Layout_ (line 849) | struct Ttk_Layout_
  function Ttk_Layout (line 858) | static Ttk_Layout TTKNewLayout(
  function Ttk_FreeLayout (line 872) | void Ttk_FreeLayout(Ttk_Layout layout)
  function Ttk_Layout (line 884) | Ttk_Layout Ttk_CreateLayout(
  function Ttk_Layout (line 918) | Ttk_Layout
  function Ttk_RebindSublayout (line 956) | void Ttk_RebindSublayout(Ttk_Layout layout, void *recordPtr)
  function Tcl_Obj (line 965) | Tcl_Obj *Ttk_QueryOption(
  function Ttk_Style (line 976) | Ttk_Style Ttk_LayoutStyle(Ttk_Layout layout)
  function Ttk_NodeSize (line 988) | static void Ttk_NodeSize(
  function Ttk_NodeListSize (line 1009) | static void Ttk_NodeListSize(
  function Ttk_Padding (line 1040) | Ttk_Padding Ttk_LayoutNodeInternalPadding(
  function Ttk_Box (line 1056) | Ttk_Box Ttk_LayoutNodeInternalParcel(Ttk_Layout layout, Ttk_LayoutNode *...
  function Ttk_LayoutSize (line 1065) | void Ttk_LayoutSize(
  function Ttk_LayoutNodeReqSize (line 1071) | void Ttk_LayoutNodeReqSize(	/* @@@ Rename this */
  function Ttk_PlaceNodeList (line 1086) | static void Ttk_PlaceNodeList(
  function Ttk_PlaceLayout (line 1111) | void Ttk_PlaceLayout(Ttk_Layout layout, Ttk_State state, Ttk_Box b)
  function Ttk_DrawNodeList (line 1124) | static void Ttk_DrawNodeList(
  function Ttk_DrawLayout (line 1151) | void Ttk_DrawLayout(Ttk_Layout layout, Ttk_State state, Drawable d)
  function Ttk_Element (line 1164) | static Ttk_Element IdentifyNode(Ttk_Element node, int x, int y)
  function Ttk_Element (line 1182) | Ttk_Element Ttk_IdentifyElement(Ttk_Layout layout, int x, int y)
  function Ttk_Element (line 1204) | static Ttk_Element
  function Ttk_Element (line 1222) | Ttk_Element Ttk_FindElement(Ttk_Layout layout, const char *nodeName)
  function Ttk_Box (line 1232) | Ttk_Box Ttk_ClientRegion(Ttk_Layout layout, const char *elementName)
  function Ttk_Box (line 1254) | Ttk_Box Ttk_ElementParcel(Ttk_Element node)
  function Ttk_PlaceElement (line 1263) | void Ttk_PlaceElement(Ttk_Layout layout, Ttk_Element node, Ttk_Box b)
  function Ttk_PositionSpec (line 1276) | static Ttk_PositionSpec AnchorToPosition(Tk_Anchor anchor)
  function Ttk_AnchorElement (line 1298) | void Ttk_AnchorElement(Ttk_Element node, Tk_Anchor anchor)
  function Ttk_ChangeElementState (line 1306) | void Ttk_ChangeElementState(Ttk_LayoutNode *node,unsigned set,unsigned clr)

FILE: generic/ttk/ttkManager.c
  type Ttk_Content (line 46) | typedef struct
  type TtkManager_ (line 58) | struct TtkManager_
  function ScheduleUpdate (line 80) | static void ScheduleUpdate(Ttk_Manager *mgr, unsigned flags)
  function RecomputeSize (line 93) | static void RecomputeSize(Ttk_Manager *mgr)
  function RecomputeLayout (line 107) | static void RecomputeLayout(Ttk_Manager *mgr)
  function ManagerIdleProc (line 116) | static void ManagerIdleProc(void *clientData)
  function ManagerEventHandler (line 142) | static void ManagerEventHandler(void *clientData, XEvent *eventPtr)
  function ContentLostEventHandler (line 173) | static void ContentLostEventHandler(void *clientData, XEvent *eventPtr)
  function Ttk_Content (line 186) | static Ttk_Content *NewContent(
  function DeleteContent (line 199) | static void DeleteContent(Ttk_Content *content)
  function Ttk_Manager (line 208) | Ttk_Manager *Ttk_CreateManager(
  function Ttk_DeleteManager (line 226) | void Ttk_DeleteManager(Ttk_Manager *mgr)
  function InsertContent (line 250) | static void InsertContent(Ttk_Manager *mgr, Ttk_Content *content, Tcl_Si...
  function RemoveContent (line 279) | static void RemoveContent(Ttk_Manager *mgr, Tcl_Size index)
  function Ttk_GeometryRequestProc (line 313) | void Ttk_GeometryRequestProc(void *clientData, Tk_Window window)
  function Ttk_LostContentProc (line 328) | void Ttk_LostContentProc(void *clientData, Tk_Window window)
  function Ttk_InsertContent (line 344) | void Ttk_InsertContent(
  function Ttk_ForgetContent (line 354) | void Ttk_ForgetContent(Ttk_Manager *mgr, Tcl_Size index)
  function Ttk_PlaceContent (line 368) | void Ttk_PlaceContent(
  function Ttk_UnmapContent (line 382) | void Ttk_UnmapContent(Ttk_Manager *mgr, Tcl_Size index)
  function Ttk_ManagerLayoutChanged (line 396) | void Ttk_ManagerLayoutChanged(Ttk_Manager *mgr)
  function Ttk_ManagerSizeChanged (line 401) | void Ttk_ManagerSizeChanged(Ttk_Manager *mgr)
  function Tcl_Size (line 408) | Tcl_Size Ttk_NumberContent(Ttk_Manager *mgr)
  function Tk_Window (line 416) | Tk_Window Ttk_ContentWindow(Ttk_Manager *mgr, Tcl_Size index)
  function Tcl_Size (line 428) | Tcl_Size Ttk_ContentIndex(Ttk_Manager *mgr, Tk_Window window)
  function Ttk_GetContentIndexFromObj (line 451) | int Ttk_GetContentIndexFromObj(
  function Ttk_ReorderContent (line 501) | void Ttk_ReorderContent(Ttk_Manager *mgr, Tcl_Size fromIndex, Tcl_Size t...
  function Ttk_Maintainable (line 535) | int Ttk_Maintainable(Tcl_Interp *interp, Tk_Window window, Tk_Window con...

FILE: generic/ttk/ttkManager.h
  type Ttk_Manager (line 12) | typedef struct TtkManager_ Ttk_Manager;
  type Ttk_ManagerSpec (line 29) | typedef struct {			/* Manager hooks */

FILE: generic/ttk/ttkNotebook.c
  type TAB_STATE (line 20) | typedef enum {
  type Tab (line 24) | typedef struct
  type NotebookPart (line 88) | typedef struct
  type Notebook (line 104) | typedef struct
  type NotebookStyle (line 128) | typedef struct
  function NotebookStyleOptions (line 138) | static void NotebookStyleOptions(
  function Tab (line 199) | static Tab *CreateTab(Tcl_Interp *interp, Notebook *nb, Tk_Window window)
  function DestroyTab (line 213) | static void DestroyTab(Notebook *nb, Tab *tab)
  function ConfigureTab (line 220) | static int ConfigureTab(
  function Tcl_Size (line 263) | static Tcl_Size IdentifyTab(Notebook *nb, int x, int y)
  function ActivateTab (line 280) | static void ActivateTab(Notebook *nb, Tcl_Size index)
  function Ttk_State (line 295) | static Ttk_State TabState(Notebook *nb, Tcl_Size index)
  function TabrowSize (line 370) | static void TabrowSize(
  function NotebookSize (line 406) | static int NotebookSize(void *clientData, int *widthPtr, int *heightPtr)
  function SqueezeTabs (line 485) | static void SqueezeTabs(
  function PlaceTabs (line 508) | static void PlaceTabs(
  function NotebookPlaceContent (line 541) | static void NotebookPlaceContent(Notebook* nb, Tcl_Size index)
  function NotebookDoLayout (line 559) | static void NotebookDoLayout(void *recordPtr)
  function NotebookPlaceContents (line 619) | static void NotebookPlaceContents(void *recordPtr)
  function SelectTab (line 633) | static void SelectTab(Notebook *nb, Tcl_Size index)
  function Tcl_Size (line 672) | static Tcl_Size NextTab(Notebook *nb, Tcl_Size index)
  function SelectNearestTab (line 707) | static void SelectNearestTab(Notebook *nb)
  function TabRemoved (line 728) | static void TabRemoved(void *managerData, Tcl_Size index)
  function TabRequest (line 746) | static int TabRequest(
  function AddTab (line 758) | static int AddTab(
  function NotebookEventHandler (line 820) | static void NotebookEventHandler(void *clientData, XEvent *eventPtr)
  function FindTabIndex (line 855) | static int FindTabIndex(
  function GetTabIndex (line 901) | static int GetTabIndex(
  function NotebookAddCommand (line 927) | static int NotebookAddCommand(
  function NotebookInsertCommand (line 966) | static int NotebookInsertCommand(
  function NotebookForgetCommand (line 1044) | static int NotebookForgetCommand(
  function NotebookHideCommand (line 1068) | static int NotebookHideCommand(
  function NotebookIdentifyCommand (line 1098) | static int NotebookIdentifyCommand(
  function NotebookIndexCommand (line 1156) | static int NotebookIndexCommand(
  function NotebookSelectCommand (line 1182) | static int NotebookSelectCommand(
  function NotebookTabsCommand (line 1209) | static int NotebookTabsCommand(
  function NotebookTabCommand (line 1234) | static int NotebookTabCommand(
  function NotebookInitialize (line 1301) | static void NotebookInitialize(Tcl_Interp *interp, void *recordPtr)
  function NotebookCleanup (line 1321) | static void NotebookCleanup(void *recordPtr)
  function NotebookConfigure (line 1331) | static int NotebookConfigure(Tcl_Interp *interp, void *clientData, int m...
  function Ttk_Layout (line 1354) | static Ttk_Layout NotebookGetLayout(
  function DisplayTab (line 1382) | static void DisplayTab(Notebook *nb, Tcl_Size index, Drawable d)
  function NotebookDisplay (line 1395) | static void NotebookDisplay(void *clientData, Drawable d)
  function TtkNotebook_Init (line 1453) | void

FILE: generic/ttk/ttkPanedwindow.c
  type PanedPart (line 59) | typedef struct {
  type Paned (line 70) | typedef struct {
  type Pane (line 95) | typedef struct {
  function Pane (line 110) | static Pane *CreatePane(Tcl_Interp *interp, Paned *pw, Tk_Window window)
  function DestroyPane (line 132) | static void DestroyPane(Paned *pw, Pane *pane)
  function ConfigurePane (line 142) | static int ConfigurePane(
  function ShoveUp (line 189) | static int ShoveUp(Paned *pw, int i, int pos)
  function ShoveDown (line 211) | static int ShoveDown(Paned *pw, Tcl_Size i, int pos)
  function PanedSize (line 233) | static int PanedSize(void *recordPtr, int *widthPtr, int *heightPtr)
  function AdjustPanes (line 279) | static void AdjustPanes(Paned *pw)
  function PlaceSashes (line 309) | static void PlaceSashes(Paned *pw, int width, int height)
  function PlacePanes (line 377) | static void PlacePanes(Paned *pw)
  function PanedPlaceContent (line 407) | static void PanedPlaceContent(void *managerData)
  function PaneRemoved (line 414) | static void PaneRemoved(void *managerData, Tcl_Size index)
  function AddPane (line 421) | static int AddPane(
  function PaneRequest (line 456) | static int PaneRequest(void *managerData, Tcl_Size index, int width, int...
  function PanedEventProc (line 493) | static void PanedEventProc(void *clientData, XEvent *eventPtr)
  function PanedInitialize (line 507) | static void PanedInitialize(Tcl_Interp *interp, void *recordPtr)
  function PanedCleanup (line 519) | static void PanedCleanup(void *recordPtr)
  function PanedPostConfigure (line 533) | static int PanedPostConfigure(
  function Ttk_Layout (line 556) | static Ttk_Layout PanedGetLayout(
  function Ttk_Layout (line 596) | static Ttk_Layout SashLayout(Paned *pw, int index)
  function DrawSash (line 613) | static void DrawSash(Paned *pw, int index, Drawable d)
  function PanedDisplay (line 618) | static void PanedDisplay(void *recordPtr, Drawable d)
  function PanedAddCommand (line 635) | static int PanedAddCommand(
  function PanedInsertCommand (line 660) | static int PanedInsertCommand(
  function PanedForgetCommand (line 704) | static int PanedForgetCommand(
  function PanedIdentifyCommand (line 730) | static int PanedIdentifyCommand(
  function PanedPaneCommand (line 783) | static int PanedPaneCommand(
  function PanedPanesCommand (line 822) | static int PanedPanesCommand(
  function PanedSashposCommand (line 849) | static int PanedSashposCommand(
  type SashElement (line 937) | typedef struct {
  function SashElementSize (line 947) | static void SashElementSize(
  type GripElement (line 972) | typedef struct {
  function GripElementSize (line 985) | static void GripElementSize(
  function GripElementDraw (line 1006) | static void GripElementDraw(

FILE: generic/ttk/ttkProgress.c
  type ProgressbarPart (line 23) | typedef struct {
  type Progressbar (line 46) | typedef struct {
  function AnimationEnabled (line 105) | static int AnimationEnabled(Progressbar *pb)
  function AnimateProgressProc (line 121) | static void AnimateProgressProc(void *clientData)
  function CheckAnimation (line 156) | static void CheckAnimation(Progressbar *pb)
  function VariableChanged (line 175) | static void VariableChanged(void *recordPtr, const char *value)
  function ProgressbarInitialize (line 210) | static void ProgressbarInitialize(
  function ProgressbarCleanup (line 220) | static void ProgressbarCleanup(void *recordPtr)
  function ProgressbarConfigure (line 236) | static int ProgressbarConfigure(Tcl_Interp *interp, void *recordPtr, int...
  function ProgressbarPostConfigure (line 263) | static int ProgressbarPostConfigure(
  function ProgressbarSize (line 295) | static int ProgressbarSize(void *recordPtr, int *widthPtr, int *heightPtr)
  function ProgressbarDeterminateLayout (line 322) | static void ProgressbarDeterminateLayout(
  function ProgressbarIndeterminateLayout (line 342) | static void ProgressbarIndeterminateLayout(
  function ProgressbarDoLayout (line 364) | static void ProgressbarDoLayout(void *recordPtr)
  function Ttk_Layout (line 395) | static Ttk_Layout ProgressbarGetLayout(
  function ProgressbarStepCommand (line 427) | static int ProgressbarStepCommand(
  function ProgressbarStartStopCommand (line 483) | static int ProgressbarStartStopCommand(
  function ProgressbarStartCommand (line 503) | static int ProgressbarStartCommand(
  function ProgressbarStopCommand (line 513) | static int ProgressbarStopCommand(
  function TtkProgressbar_Init (line 573) | void

FILE: generic/ttk/ttkScale.c
  type ScalePart (line 23) | typedef struct
  type Scale (line 47) | typedef struct
  function ScaleVariableChanged (line 93) | static void ScaleVariableChanged(void *recordPtr, const char *value)
  function ScaleInitialize (line 113) | static void ScaleInitialize(
  function ScaleCleanup (line 122) | static void ScaleCleanup(void *recordPtr)
  function ScaleConfigure (line 135) | static int ScaleConfigure(Tcl_Interp *interp, void *recordPtr, int mask)
  function ScalePostConfigure (line 166) | static int ScalePostConfigure(
  function Ttk_Layout (line 195) | static Ttk_Layout
  function Ttk_Box (line 207) | static Ttk_Box TroughBox(Scale *scalePtr)
  function Ttk_Box (line 217) | static Ttk_Box TroughRange(Scale *scalePtr)
  function ScaleFraction (line 242) | static double ScaleFraction(Scale *scalePtr, double value)
  function ScaleGetCommand (line 262) | static int
  function ScaleSetCommand (line 290) | static int
  function ScaleCoordsCommand (line 358) | static int
  function ScaleDoLayout (line 385) | static void ScaleDoLayout(void *clientData)
  function ScaleSize (line 420) | static int ScaleSize(void *clientData, int *widthPtr, int *heightPtr)
  function PointToValue (line 440) | static double
  function XPoint (line 478) | static XPoint
  function TtkScale_Init (line 542) | void

FILE: generic/ttk/ttkScroll.c
  type ScrollHandleRec (line 46) | struct ScrollHandleRec
  function ScrollHandle (line 56) | ScrollHandle TtkCreateScrollHandle(WidgetCore *corePtr, Scrollable *scro...
  function UpdateScrollbar (line 74) | static int UpdateScrollbar(Tcl_Interp *interp, ScrollHandle h)
  function UpdateScrollbarBG (line 126) | static void UpdateScrollbarBG(void *clientData)
  function TtkScrolled (line 144) | void TtkScrolled(ScrollHandle h, Tcl_Size first, Tcl_Size last, Tcl_Size...
  function TtkScrollbarUpdateRequired (line 182) | void TtkScrollbarUpdateRequired(ScrollHandle h)
  function TtkUpdateScrollInfo (line 193) | void TtkUpdateScrollInfo(ScrollHandle h)
  function TtkScrollviewCommand (line 208) | int TtkScrollviewCommand(
  function TtkScrollTo (line 253) | void TtkScrollTo(ScrollHandle h, Tcl_Size newFirst, bool updateScrollInfo)
  function TtkFreeScrollHandle (line 277) | void TtkFreeScrollHandle(ScrollHandle h)

FILE: generic/ttk/ttkScrollbar.c
  type ScrollbarPart (line 14) | typedef struct
  type Scrollbar (line 28) | typedef struct
  function ScrollbarInitialize (line 52) | static void
  function Ttk_Layout (line 65) | static Ttk_Layout ScrollbarGetLayout(
  function ScrollbarDoLayout (line 80) | static void ScrollbarDoLayout(void *recordPtr)
  function ScrollbarSetCommand (line 134) | static int
  function ScrollbarGetCommand (line 185) | static int
  function ScrollbarDeltaCommand (line 208) | static int
  function ScrollbarFractionCommand (line 248) | static int
  function TtkScrollbar_Init (line 335) | void

FILE: generic/ttk/ttkSeparator.c
  type SeparatorPart (line 13) | typedef struct
  type Separator (line 19) | typedef struct
  function Ttk_Layout (line 39) | static Ttk_Layout SeparatorGetLayout(
  function TtkSeparator_Init (line 125) | void

FILE: generic/ttk/ttkSquare.c
  type SquarePart (line 24) | typedef struct
  type Square (line 35) | typedef struct
  function SquareDoLayout (line 95) | static void
  type SquareElement (line 171) | typedef struct
  function SquareElementSize (line 202) | static void SquareElementSize(
  function SquareElementDraw (line 223) | static void SquareElementDraw(
  function TtkSquareWidget_Init (line 293) | int

FILE: generic/ttk/ttkState.c
  function StateSpecDupIntRep (line 67) | static void StateSpecDupIntRep(Tcl_Obj *srcPtr, Tcl_Obj *copyPtr)
  function StateSpecSetFromAny (line 73) | static int StateSpecSetFromAny(Tcl_Interp *interp, Tcl_Obj *objPtr)
  function StateSpecUpdateString (line 133) | static void StateSpecUpdateString(Tcl_Obj *objPtr)
  function Tcl_Obj (line 171) | Tcl_Obj *Ttk_NewStateSpecObj(unsigned int onbits, unsigned int offbits)
  function Ttk_GetStateSpecFromObj (line 182) | int Ttk_GetStateSpecFromObj(
  function Tcl_Obj (line 207) | Tcl_Obj *Ttk_StateMapLookup(
  function Ttk_StateMap (line 243) | Ttk_StateMap Ttk_GetStateMapFromObj(
  function Ttk_StateTableLookup (line 279) | int Ttk_StateTableLookup(const Ttk_StateTable *map, Ttk_State state)

FILE: generic/ttk/ttkStubLib.c
  function MODULE_SCOPE (line 32) | MODULE_SCOPE const char *

FILE: generic/ttk/ttkTagSet.c
  type TtkTag (line 14) | struct TtkTag {
  type TtkTagTable (line 20) | struct TtkTagTable {
  function Ttk_Tag (line 32) | static Ttk_Tag NewTag(Ttk_TagTable tagTable, const char *tagName)
  function DeleteTag (line 43) | static void DeleteTag(Ttk_TagTable tagTable, Ttk_Tag tag)
  function Ttk_TagTable (line 54) | Ttk_TagTable Ttk_CreateTagTable(
  function Ttk_DeleteTagTable (line 68) | void Ttk_DeleteTagTable(Ttk_TagTable tagTable)
  function Ttk_DeleteTagFromTable (line 83) | void Ttk_DeleteTagFromTable(Ttk_TagTable tagTable, Ttk_Tag tag)
  function Ttk_Tag (line 94) | Ttk_Tag Ttk_GetTag(Ttk_TagTable tagTable, const char *tagName)
  function Ttk_Tag (line 107) | Ttk_Tag Ttk_GetTagFromObj(Ttk_TagTable tagTable, Tcl_Obj *objPtr)
  function Ttk_TagSet (line 124) | Ttk_TagSet Ttk_GetTagSetFromObj(
  function Tcl_Obj (line 155) | Tcl_Obj *Ttk_NewTagSetObj(Ttk_TagSet tagset)
  function Ttk_FreeTagSet (line 167) | void Ttk_FreeTagSet(Ttk_TagSet tagset)
  function Ttk_TagSetContains (line 175) | bool Ttk_TagSetContains(Ttk_TagSet tagset, Ttk_Tag tag)
  function Ttk_TagSetAdd (line 191) | bool Ttk_TagSetAdd(Ttk_TagSet tagset, Ttk_Tag tag)
  function Ttk_TagSetAddSet (line 208) | void Ttk_TagSetAddSet(Ttk_TagSet tagset, Ttk_TagSet tagsetFrom)
  function Ttk_TagSetRemove (line 236) | bool Ttk_TagSetRemove(Ttk_TagSet tagset, Ttk_Tag tag)
  function Ttk_EnumerateTags (line 255) | int Ttk_EnumerateTags(
  function Ttk_EnumerateTagOptions (line 263) | int Ttk_EnumerateTagOptions(
  function Tcl_Obj (line 272) | Tcl_Obj *Ttk_TagOptionValue(
  function Ttk_ConfigureTag (line 284) | int Ttk_ConfigureTag(
  function Ttk_TagSetDefaults (line 301) | void Ttk_TagSetDefaults(Ttk_TagTable tagTable, Ttk_Style style, void *re...
  function Ttk_TagSetValues (line 314) | void Ttk_TagSetValues(Ttk_TagTable tagTable, Ttk_TagSet tagSet, void *re...
  function Ttk_TagSetApplyStyle (line 333) | void Ttk_TagSetApplyStyle(

FILE: generic/ttk/ttkTheme.c
  type Style (line 28) | typedef struct Ttk_Style_
  function Style (line 38) | static Style *NewStyle(void)
  function FreeStyle (line 52) | static void FreeStyle(Style *stylePtr)
  function Tcl_Obj (line 82) | Tcl_Obj *Ttk_StyleMap(Ttk_Style style, const char *optionName, Ttk_State...
  function Tcl_Obj (line 100) | Tcl_Obj *Ttk_StyleDefault(Ttk_Style style, const char *optionName)
  type Tk_OptionSpec (line 116) | typedef const Tk_OptionSpec **OptionMap;
  type Ttk_ElementClass_ (line 119) | struct Ttk_ElementClass_ {
  function Tk_OptionSpec (line 134) | static const Tk_OptionSpec *TTKGetOptionSpec(
  function OptionMap (line 178) | static OptionMap
  function OptionMap (line 197) | static OptionMap
  function Ttk_ElementClass (line 220) | static Ttk_ElementClass *
  function FreeElementClass (line 262) | static void FreeElementClass(Ttk_ElementClass *elementClass)
  function ThemeEnabled (line 296) | static int ThemeEnabled(
  type Theme (line 304) | typedef struct Ttk_Theme_
  function Theme (line 315) | static Theme *NewTheme(Ttk_ResourceCache cache, Ttk_Theme parent)
  function FreeTheme (line 341) | static void FreeTheme(Theme *themePtr)
  type FactoryRec (line 379) | typedef struct {
  type Cleanup (line 387) | typedef struct CleanupStruct {
  type StylePackageData (line 396) | typedef struct
  function Ttk_StylePkgFree (line 411) | static void Ttk_StylePkgFree(
  function StylePackageData (line 465) | static StylePackageData *GetStylePackageData(Tcl_Interp *interp)
  function Ttk_RegisterCleanup (line 479) | void Ttk_RegisterCleanup(
  function ThemeChangedProc (line 503) | static void ThemeChangedProc(void *clientData)
  function ThemeChanged (line 519) | static void ThemeChanged(StylePackageData *pkgPtr)
  function Ttk_TkDestroyedHandler (line 535) | void Ttk_TkDestroyedHandler(
  function Ttk_Theme (line 558) | Ttk_Theme
  function Ttk_SetThemeEnabledProc (line 593) | void Ttk_SetThemeEnabledProc(
  function Ttk_Theme (line 606) | static Ttk_Theme LookupTheme(
  function Ttk_Theme (line 628) | Ttk_Theme Ttk_GetTheme(Tcl_Interp *interp, const char *themeName)
  function Ttk_Theme (line 635) | Ttk_Theme Ttk_GetCurrentTheme(Tcl_Interp *interp)
  function Ttk_Theme (line 641) | Ttk_Theme Ttk_GetDefaultTheme(Tcl_Interp *interp)
  function Ttk_UseTheme (line 651) | int Ttk_UseTheme(Tcl_Interp *interp, Ttk_Theme  theme)
  function Ttk_ResourceCache (line 676) | Ttk_ResourceCache
  function MODULE_SCOPE (line 687) | MODULE_SCOPE void
  function Ttk_RegisterLayout (line 700) | void Ttk_RegisterLayout(
  function Ttk_Style (line 713) | Ttk_Style Ttk_GetStyle(Ttk_Theme themePtr, const char *styleName)
  function Ttk_LayoutTemplate (line 742) | Ttk_LayoutTemplate
  function Ttk_ElementClass (line 770) | Ttk_ElementClass *Ttk_GetElement(Ttk_Theme themePtr, const char *element...
  function Ttk_RegisterElementFactory (line 819) | int Ttk_RegisterElementFactory(
  function Ttk_CloneElement (line 844) | static int Ttk_CloneElement(
  function Ttk_ElementClass (line 886) | Ttk_ElementClass *Ttk_RegisterElement(
  function Ttk_RegisterElementSpec (line 931) | int Ttk_RegisterElementSpec(Ttk_Theme theme,
  function AllocateResource (line 954) | static int AllocateResource(
  function InitializeElementRecord (line 993) | static
  function Tcl_Obj (line 1047) | Tcl_Obj *Ttk_QueryStyle(
  function Ttk_ElementSize (line 1087) | void
  function Ttk_DrawElement (line 1117) | void
  function MODULE_SCOPE (line 1153) | MODULE_SCOPE int
  function Tcl_Obj (line 1174) | static Tcl_Obj* HashTableToDict(Tcl_HashTable *ht)
  function StyleMapCmd (line 1196) | static int
  function StyleConfigureCmd (line 1265) | static int StyleConfigureCmd(
  function StyleLookupCmd (line 1320) | static int StyleLookupCmd(
  function StyleThemeCurrentCmd (line 1362) | static int StyleThemeCurrentCmd(
  function StyleThemeCreateCmd (line 1398) | static int StyleThemeCreateCmd(
  function StyleThemeNamesCmd (line 1463) | static int StyleThemeNamesCmd(
  function StyleThemeSettingsCmd (line 1479) | static int
  function StyleElementCreateCmd (line 1510) | static int StyleElementCreateCmd(
  function StyleElementNamesCmd (line 1545) | static int StyleElementNamesCmd(
  function StyleElementOptionsCmd (line 1561) | static int StyleElementOptionsCmd(
  function StyleLayoutCmd (line 1599) | static int StyleLayoutCmd(
  function StyleThemeStylesCmd (line 1639) | static int StyleThemeStylesCmd(
  function StyleThemeUseCmd (line 1667) | static int
  function StyleObjCmd (line 1725) | static int
  function MODULE_SCOPE (line 1735) | MODULE_SCOPE int
  function Ttk_StylePkgInit (line 1766) | void Ttk_StylePkgInit(Tcl_Interp *interp)

FILE: generic/ttk/ttkTheme.h
  type Ttk_State (line 44) | typedef unsigned int Ttk_State;
  type Ttk_StateSpec (line 70) | typedef struct
  type Tcl_Obj (line 85) | typedef Tcl_Obj *Ttk_StateMap;
  type Ttk_StateTable (line 90) | typedef struct
  type Ttk_Padding (line 101) | typedef struct
  type Ttk_Box (line 119) | typedef struct	/* Hey, this is an XRectangle! */
  type Ttk_Side (line 132) | typedef enum {
  type Ttk_Sticky (line 136) | typedef unsigned int Ttk_Sticky;
  type Ttk_PositionSpec (line 159) | typedef unsigned int Ttk_PositionSpec;
  type Ttk_Theme_ (line 186) | struct Ttk_Theme_
  type Ttk_ElementClass (line 187) | typedef struct Ttk_ElementClass_ Ttk_ElementClass;
  type Ttk_Layout_ (line 188) | struct Ttk_Layout_
  type Ttk_LayoutNode_ (line 189) | struct Ttk_LayoutNode_
  type Ttk_Style_ (line 190) | struct Ttk_Style_
  type TTKStyleVersion2 (line 203) | enum TTKStyleVersion2 { TK_STYLE_VERSION_2 = 2 }
  type Ttk_ElementOptionSpec (line 210) | typedef struct Ttk_ElementOptionSpec
  type Ttk_ElementSpec (line 220) | typedef struct Ttk_ElementSpec {
  type NullElement (line 237) | typedef struct {
  type TTKLayoutInstruction (line 249) | typedef struct {
  type Ttk_ResourceCache_ (line 319) | struct Ttk_ResourceCache_
  type Ttk_ImageSpec (line 335) | typedef struct TtkImageSpec Ttk_ImageSpec;
  type Ttk_ButtonDefaultState (line 346) | typedef enum			/* -default option values */
  type Ttk_Compound (line 355) | typedef enum			/* -compound option values */
  type Ttk_Orient (line 369) | typedef enum {		/* -orient option values */
  type Ttk_Ensemble (line 378) | typedef struct TtkEnsemble {
  type ArrowDirection (line 400) | typedef enum { ARROW_UP, ARROW_DOWN, ARROW_LEFT, ARROW_RIGHT } ArrowDire...

FILE: generic/ttk/ttkThemeInt.h
  type Ttk_TemplateNode (line 12) | typedef struct Ttk_TemplateNode_ Ttk_TemplateNode, *Ttk_LayoutTemplate;

FILE: generic/ttk/ttkToggleswitch.c
  type TglswitchPart (line 14) | typedef struct
  type Tglswitch (line 31) | typedef struct
  function TglswitchVariableChanged (line 66) | static void TglswitchVariableChanged(void *clientData, const char *value)
  function TglswitchInitialize (line 97) | static void TglswitchInitialize(Tcl_Interp *interp, void *recordPtr)
  function TglswitchCleanup (line 140) | static void TglswitchCleanup(void *recordPtr)
  function TglswitchConfigure (line 154) | static int TglswitchConfigure(Tcl_Interp *interp, void *recordPtr, int m...
  function TglswitchPostConfigure (line 249) | static int TglswitchPostConfigure(
  function Ttk_Layout (line 271) | static Ttk_Layout TglswitchGetLayout(
  function Ttk_Box (line 305) | static Ttk_Box TroughRange(Tglswitch *tglswPtr)
  function ValueToFraction (line 323) | static double ValueToFraction(Tglswitch *tglswPtr, double value)
  function ValueToPoint (line 336) | static int ValueToPoint(Tglswitch *tglswPtr, double value)
  function PointToValue (line 348) | static double PointToValue(Tglswitch *tglswPtr, int x)
  function TglswitchDoLayout (line 369) | static void TglswitchDoLayout(void *clientData)
  function TglswitchGetCommand (line 402) | static int TglswitchGetCommand(
  function TglswitchSetCommand (line 437) | static int TglswitchSetCommand(
  function TglswitchSwitchstateCommand (line 482) | static int TglswitchSwitchstateCommand(
  function TglswitchToggleCommand (line 552) | static int TglswitchToggleCommand(
  function TglswitchXcoordCommand (line 576) | static int TglswitchXcoordCommand(
  function MODULE_SCOPE (line 635) | MODULE_SCOPE void TtkToggleswitch_Init(Tcl_Interp *interp)

FILE: generic/ttk/ttkTrace.c
  type TtkTraceHandle_ (line 14) | struct TtkTraceHandle_
  function Ttk_TraceHandle (line 82) | Ttk_TraceHandle *Ttk_TraceVariable(
  function Ttk_UntraceVariable (line 114) | void Ttk_UntraceVariable(Ttk_TraceHandle *h)
  function Ttk_FireTrace (line 167) | int Ttk_FireTrace(Ttk_TraceHandle *tracePtr)

FILE: generic/ttk/ttkTrack.c
  type ElementStateTracker (line 30) | typedef struct {
  function ActivateElement (line 45) | static void ActivateElement(ElementStateTracker *es, Ttk_Element element)
  function ReleaseElement (line 70) | static void ReleaseElement(ElementStateTracker *es)
  function PressElement (line 92) | static void PressElement(ElementStateTracker *es, Ttk_Element element)
  function ElementStateEventProc (line 120) | static void
  function TtkTrackElementState (line 178) | void TtkTrackElementState(WidgetCore *corePtr)

FILE: generic/ttk/ttkTreeview.c
  type TreeItem (line 40) | typedef struct TreeItemRec TreeItem;
  type TreeItemRec (line 41) | struct TreeItemRec {
  function TreeItem (line 114) | static TreeItem *NewItem(void)
  function FreeItem (line 143) | static void FreeItem(TreeItem *item)
  function FreeItemCB (line 168) | static void FreeItemCB(void *clientData) { FreeItem((TreeItem *)clientDa...
  function DetachItem (line 173) | static void DetachItem(TreeItem *item)
  function InsertItem (line 194) | static void InsertItem(TreeItem *parent, TreeItem *prev, TreeItem *item)
  function TreeItem (line 214) | static TreeItem *NextPreorder(TreeItem *item)
  type DisplayItem (line 232) | typedef struct {
  type TreeColumn (line 288) | typedef struct {
  function InitColumn (line 313) | static void InitColumn(TreeColumn *column)
  function FreeColumn (line 333) | static void FreeColumn(TreeColumn *column)
  function GetEnumSetFromObj (line 402) | static int GetEnumSetFromObj(
  type TreePart (line 439) | typedef struct {
  type Treeview (line 510) | typedef struct {
  function foreachHashEntry (line 574) | static void foreachHashEntry(Tcl_HashTable *ht, HashEntryIterator func)
  function CellSelectionClear (line 584) | static int CellSelectionClear(Treeview *tv)
  function Tcl_Obj (line 602) | static Tcl_Obj *unshareObj(Tcl_Obj *objPtr)
  function DisplayLayout (line 616) | static void DisplayLayout(
  function DisplayLayoutTree (line 627) | static void DisplayLayoutTree(
  function TreeColumn (line 656) | static TreeColumn *GetColumn(
  function TreeColumn (line 692) | static TreeColumn *FindColumn(
  function TreeItem (line 716) | static TreeItem *FindItem(
  function TreeItem (line 738) | static TreeItem **GetItemListFromObj(
  function Tcl_Obj (line 773) | static Tcl_Obj *ItemID(Treeview *tv, TreeItem *item)
  function TreeviewFreeColumns (line 785) | static void TreeviewFreeColumns(Treeview *tv)
  function TreeviewInitColumns (line 804) | static int TreeviewInitColumns(Tcl_Interp *interp, Treeview *tv)
  function TreeviewInitDisplayColumns (line 856) | static int TreeviewInitDisplayColumns(Tcl_Interp *interp, Treeview *tv)
  function TreeWidth (line 904) | static int TreeWidth(Treeview *tv)
  function RecomputeSlack (line 924) | static void RecomputeSlack(Treeview *tv)
  function PickupSlack (line 935) | static int PickupSlack(Treeview *tv, int extra)
  function DepositSlack (line 949) | static void DepositSlack(Treeview *tv, int extra)
  function Stretch (line 958) | static int Stretch(TreeColumn *c, int n)
  function ShoveLeft (line 974) | static int ShoveLeft(Treeview *tv, Tcl_Size i, int n)
  function ShoveRight (line 991) | static int ShoveRight(Treeview *tv, Tcl_Size i, int n)
  function DistributeWidth (line 1010) | static int DistributeWidth(Treeview *tv, int n)
  function ResizeColumns (line 1045) | static void ResizeColumns(Treeview *tv, int newWidth)
  function DragColumn (line 1057) | static void DragColumn(Treeview *tv, Tcl_Size i, int delta)
  type TreeCell (line 1069) | typedef struct {
  function GetCellFromObj (line 1078) | static int GetCellFromObj(
  function TreeCell (line 1134) | static TreeCell *GetCellListFromObj(
  function TreeviewBindEventProc (line 1187) | static void TreeviewBindEventProc(void *clientData, XEvent *event)
  function TreeviewInitialize (line 1261) | static void TreeviewInitialize(Tcl_Interp *interp, void *recordPtr)
  function TreeviewCleanup (line 1339) | static void TreeviewCleanup(void *recordPtr)
  function TreeviewConfigure (line 1374) | static int
  function ConfigureItem (line 1434) | static int ConfigureItem(
  function ConfigureColumn (line 1529) | static int ConfigureColumn(
  function ConfigureHeading (line 1575) | static int ConfigureHeading(
  function UpdatePositionItem (line 1619) | static void UpdatePositionItem(
  function UpdatePositionTree (line 1657) | static void UpdatePositionTree(Treeview *tv)
  function TreeItem (line 1670) | static TreeItem *IdentifyItem(Treeview *tv, int y)
  function Tcl_Size (line 1697) | static Tcl_Size IdentifyDisplayColumn(Treeview *tv, int x, int *x1)
  function ItemDepth (line 1728) | static int ItemDepth(TreeItem *item)
  function DisplayRow (line 1741) | static int DisplayRow(int row, Treeview *tv)
  function IsDetached (line 1758) | static int IsDetached(Treeview* tv, TreeItem* item)
  function IsItemOrAncestorDetached (line 1765) | static int IsItemOrAncestorDetached(Treeview* tv, TreeItem* item)
  function BoundingBox (line 1782) | static int BoundingBox(
  type TreeRegion (line 1849) | typedef enum {
  function TreeRegion (line 1861) | static TreeRegion IdentifyRegion(Treeview *tv, int x, int y)
  function Ttk_Layout (line 1893) | static Ttk_Layout GetSublayout(
  function Ttk_Layout (line 1916) | static Ttk_Layout TreeviewGetLayout(
  function TreeviewDoLayout (line 1992) | static void TreeviewDoLayout(void *clientData)
  function TreeviewSize (line 2028) | static int TreeviewSize(void *clientData, int *widthPtr, int *heightPtr)
  function Ttk_State (line 2050) | static Ttk_State ItemState(Treeview *tv, TreeItem *item)
  function DrawHeadings (line 2072) | static void DrawHeadings(Treeview *tv, Drawable d)
  function DrawSeparators (line 2112) | static void DrawSeparators(Treeview *tv, Drawable d)
  function OverrideStriped (line 2148) | static void OverrideStriped(
  function PrepareItem (line 2161) | static void PrepareItem(
  function PrepareCells (line 2174) | static void PrepareCells(
  function DrawCells (line 2214) | static void DrawCells(
  function DrawItem (line 2310) | static void DrawItem(
  function DrawSubtree (line 2430) | static void DrawSubtree(
  function DrawForest (line 2446) | static void DrawForest(
  function DrawTreeArea (line 2458) | static void DrawTreeArea(Treeview *tv, Drawable d) {
  function TreeviewDisplay (line 2469) | static void TreeviewDisplay(void *clientData, Drawable d)
  function TreeItem (line 2560) | static TreeItem *InsertPosition(TreeItem *parent, int index)
  function TreeItem (line 2583) | static TreeItem *EndPosition(Treeview *tv, TreeItem *parent)
  function AncestryCheck (line 2608) | static int AncestryCheck(
  function TreeItem (line 2630) | static TreeItem *DeleteItems(TreeItem *item, TreeItem *delq)
  function TreeviewChildrenCommand (line 2652) | static int TreeviewChildrenCommand(
  function TreeviewParentCommand (line 2734) | static int TreeviewParentCommand(
  function TreeviewNextCommand (line 2762) | static int TreeviewNextCommand(
  function TreeviewPrevCommand (line 2787) | static int TreeviewPrevCommand(
  function TreeviewIndexCommand (line 2812) | static int TreeviewIndexCommand(
  function TreeviewExistsCommand (line 2840) | static int TreeviewExistsCommand(
  function TreeviewBBoxCommand (line 2859) | static int TreeviewBBoxCommand(
  function TreeviewHorribleIdentify (line 2896) | static int TreeviewHorribleIdentify(
  function TreeviewIdentifyCommand (line 2977) | static int TreeviewIdentifyCommand(
  function TreeviewItemCommand (line 3101) | static int TreeviewItemCommand(
  function TreeviewColumnCommand (line 3129) | static int TreeviewColumnCommand(
  function TreeviewHeadingCommand (line 3157) | static int TreeviewHeadingCommand(
  function TreeviewSetCommand (line 3187) | static int TreeviewSetCommand(
  function TreeviewInsertCommand (line 3283) | static int TreeviewInsertCommand(
  function TreeviewDetachCommand (line 3366) | static int TreeviewDetachCommand(
  function TreeviewDetachedCommand (line 3406) | static int TreeviewDetachedCommand(
  function TreeviewDeleteCommand (line 3451) | static int TreeviewDeleteCommand(
  function TreeviewMoveCommand (line 3522) | static int TreeviewMoveCommand(
  function TreeviewXViewCommand (line 3585) | static int TreeviewXViewCommand(
  function TreeviewYViewCommand (line 3592) | static int TreeviewYViewCommand(
  function TreeviewSeeCommand (line 3602) | static int TreeviewSeeCommand(
  function TreeviewDragCommand (line 3674) | static int TreeviewDragCommand(
  function TreeviewDropCommand (line 3714) | static int TreeviewDropCommand(
  function TreeviewFocusCommand (line 3734) | static int TreeviewFocusCommand(
  function TreeviewSelectionCommand (line 3760) | static int TreeviewSelectionCommand(
  function SelObjChangeElement (line 3851) | static int SelObjChangeElement(
  function CellSelectionRange (line 3884) | static int CellSelectionRange(
  function TreeviewCellSelectionCommand (line 3975) | static int TreeviewCellSelectionCommand(
  function TreeviewTagBindCommand (line 4099) | static int TreeviewTagBindCommand(
  function TreeviewTagConfigureCommand (line 4152) | static int TreeviewTagConfigureCommand(
  function TreeviewTagDeleteCommand (line 4183) | static int TreeviewTagDeleteCommand(
  function TreeviewTagHasCommand (line 4213) | static int TreeviewTagHasCommand(
  function TreeviewCtagHasCommand (line 4249) | static int TreeviewCtagHasCommand(
  function TreeviewTagNamesCommand (line 4311) | static int TreeviewTagNamesCommand(
  function AddTag (line 4326) | static void AddTag(TreeItem *item, Ttk_Tag tag)
  function TreeviewTagAddCommand (line 4335) | static int TreeviewTagAddCommand(
  function AllocCellTagSets (line 4366) | static void AllocCellTagSets(Treeview *tv, TreeItem *item, Tcl_Size colu...
  function TreeviewCtagAddCommand (line 4394) | static int TreeviewCtagAddCommand(
  function RemoveTag (line 4434) | static void RemoveTag(TreeItem *item, Ttk_Tag tag)
  function RemoveTagFromCellsAtItem (line 4445) | static void RemoveTagFromCellsAtItem(TreeItem *item, Ttk_Tag tag)
  function TreeviewTagRemoveCommand (line 4456) | static int TreeviewTagRemoveCommand(
  function TreeviewCtagRemoveCommand (line 4495) | static int TreeviewCtagRemoveCommand(
  function TTK_END_LAYOUT_TABLE (line 4652) | TTK_END_LAYOUT_TABLE
  function TreeitemIndicatorSize (line 4674) | static void TreeitemIndicatorSize(
  function TreeitemIndicatorDraw (line 4694) | static void TreeitemIndicatorDraw(
  type RowElement (line 4756) | typedef struct {
  function RowElementDraw (line 4769) | static void RowElementDraw(
  function MODULE_SCOPE (line 4797) | MODULE_SCOPE void

FILE: generic/ttk/ttkWidget.c
  function UpdateLayout (line 20) | static int UpdateLayout(Tcl_Interp *interp, WidgetCore *corePtr)
  function SizeChanged (line 40) | static void SizeChanged(WidgetCore *corePtr)
  function Drawable (line 56) | static Drawable BeginDrawing(Tk_Window tkwin)
  function EndDrawing (line 65) | static void EndDrawing(Tk_Window tkwin, Drawable d)
  function Drawable (line 83) | static Drawable BeginDrawing(Tk_Window tkwin) { return Tk_WindowId(tkwin...
  function EndDrawing (line 84) | static void EndDrawing(
  function DrawWidget (line 94) | static void DrawWidget(void *recordPtr)
  function TtkRedisplayWidget (line 110) | void TtkRedisplayWidget(WidgetCore *corePtr)
  function WidgetWorldChanged (line 128) | static void WidgetWorldChanged(void *clientData)
  function TtkResizeWidget (line 139) | void TtkResizeWidget(WidgetCore *corePtr)
  function TtkWidgetChangeState (line 151) | void TtkWidgetChangeState(WidgetCore *corePtr,
  function WidgetInstanceObjCmd (line 164) | static int
  function WidgetInstanceObjCmdDeleted (line 200) | static void
  function DestroyWidget (line 213) | static void
  function CoreEventProc (line 266) | static void CoreEventProc(void *clientData, XEvent *eventPtr)
  function TtkWidgetConstructorObjCmd (line 341) | int TtkWidgetConstructorObjCmd(
  function Ttk_Layout (line 456) | Ttk_Layout TtkWidgetGetLayout(
  function Ttk_Layout (line 480) | Ttk_Layout TtkWidgetGetOrientedLayout(
  function TtkNullInitialize (line 524) | void TtkNullInitialize(
  function TtkNullPostConfigure (line 533) | int TtkNullPostConfigure(
  function TtkCoreConfigure (line 545) | int TtkCoreConfigure(Tcl_Interp *interp, void *clientData, int mask)
  function TtkNullCleanup (line 560) | void TtkNullCleanup(
  function TtkWidgetDoLayout (line 569) | void TtkWidgetDoLayout(void *clientData)
  function TtkWidgetDisplay (line 578) | void TtkWidgetDisplay(void *recordPtr, Drawable d)
  function TtkWidgetSize (line 587) | int TtkWidgetSize(void *recordPtr, int *widthPtr, int *heightPtr)
  function TtkWidgetCgetCommand (line 600) | int TtkWidgetCgetCommand(
  function TtkWidgetConfigureCommand (line 621) | int TtkWidgetConfigureCommand(
  function TtkWidgetStateCommand (line 692) | int TtkWidgetStateCommand(
  function TtkWidgetInstateCommand (line 733) | int TtkWidgetInstateCommand(
  function TtkWidgetIdentifyCommand (line 765) | int TtkWidgetIdentifyCommand(
  function TtkWidgetStyleCommand (line 804) | int TtkWidgetStyleCommand(

FILE: generic/ttk/ttkWidget.h
  type WidgetSpec (line 27) | typedef struct WidgetSpec_ WidgetSpec;
  type WidgetCore (line 29) | typedef struct
  type WidgetSpec_ (line 54) | struct WidgetSpec_
  type Ttk_TraceHandle (line 155) | typedef struct TtkTraceHandle_ Ttk_TraceHandle;
  type Scrollable (line 173) | typedef struct {
  type ScrollHandleRec (line 180) | struct ScrollHandleRec
  type TtkTag (line 197) | struct TtkTag
  type TtkTagTable (line 198) | struct TtkTagTable
  type TtkTagSet (line 199) | struct TtkTagSet {	/* TODO: make opaque */

FILE: macosx/tkMacOSXAccessibility.c
  type MacRoleMap (line 62) | struct MacRoleMap {
  type MacRoleMap (line 67) | struct MacRoleMap
  function NSPoint (line 105) | static NSPoint FlipY(NSPoint screenpoint, NSWindow *window)
  function PostAccessibilityAnnouncement (line 135) | void PostAccessibilityAnnouncement(NSString *message)
  function end (line 724) | end
  function InitAccessibilityHashTables (line 745) | static void InitAccessibilityHashTables(void)
  function TkAccessibility_LinkWindowToElement (line 758) | void TkAccessibility_LinkWindowToElement(Tk_Window tkwin, TkAccessibilit...
  function TkAccessibilityElement (line 784) | TkAccessibilityElement *TkAccessibility_GetElementForWindow(Tk_Window tk...
  function Tk_Window (line 798) | Tk_Window TkAccessibility_GetWindowForElement(TkAccessibilityElement *el...
  function TkAccessibility_UnlinkWindowAndElement (line 812) | void TkAccessibility_UnlinkWindowAndElement(Tk_Window tkwin, TkAccessibi...
  function TkAccessibility_CleanupHashTables (line 839) | void TkAccessibility_CleanupHashTables(void)
  function IsVoiceOverRunning (line 881) | int IsVoiceOverRunning(
  function EmitSelectionChanged (line 921) | static int EmitSelectionChanged(
  function TkMacOSXAccessibility_RegisterForCleanup (line 990) | void TkMacOSXAccessibility_RegisterForCleanup(Tk_Window tkwin, void *acc...
  function TkMacOSXAccessibility_DestroyHandler (line 1011) | static void TkMacOSXAccessibility_DestroyHandler(void *clientData, XEven...
  function TkMacOSXAccessibleObjCmd (line 1046) | static int TkMacOSXAccessibleObjCmd(
  function TkMacOSXAccessibility_Init (line 1103) | int TkMacOSXAccessibility_Init(Tcl_Interp * interp)

FILE: macosx/tkMacOSXBitmap.c
  type BuiltInIcon (line 21) | typedef struct {
  type IconBitmap (line 54) | typedef struct {
  type iconBitmapOptions (line 63) | enum iconBitmapOptions {
  function TkpDefineNativeBitmaps (line 87) | void
  function Pixmap (line 127) | static Pixmap
  function Pixmap (line 170) | Pixmap
  function OSTypeFromString (line 199) | static int
  function Pixmap (line 241) | Pixmap
  function TkMacOSXIconBitmapObjCmd (line 342) | int

FILE: macosx/tkMacOSXButton.c
  type DrawParams (line 45) | typedef struct {
  type MacButton (line 56) | typedef struct {
  function TkpButtonSetDefaults (line 122) | void
  function TkButton (line 144) | TkButton *
  function TkpDisplayButton (line 180) | void
  function TkpComputeButtonGeometry (line 271) | void
  function DrawButtonImageAndText (line 449) | static void
  function TkpDestroyButton (line 705) | void
  function TkMacOSXDrawButton (line 733) | static void
  function ButtonBackgroundDrawCB (line 822) | static void
  function ButtonContentDrawCB (line 874) | static void
  function ButtonEventProc (line 915) | static void
  function TkMacOSXComputeButtonParams (line 958) | static void
  function TkMacOSXComputeButtonDrawParams (line 1101) | static int
  function PulseDefaultButtonProc (line 1194) | static void

FILE: macosx/tkMacOSXClipboard.c
  function NSString (line 37) | NSString *s = [[TKNSString alloc]
  function XSetSelectionOwner (line 171) | int
  function TkMacOSXSelDeadWindow (line 207) | void
  function TkSelUpdateClipboard (line 250) | void
  function TkSelEventProc (line 297) | void
  function TkSelPropProc (line 326) | void

FILE: macosx/tkMacOSXColor.c
  function MODULE_SCOPE (line 81) | MODULE_SCOPE
  function MODULE_SCOPE (line 96) | MODULE_SCOPE
  function initColorTable (line 116) | static void initColorTable()
  function TkMacOSXRGBPixel (line 268) | MODULE_SCOPE
  function TkMacOSXClearPixel (line 301) | MODULE_SCOPE
  function SystemColorDatum (line 330) | static SystemColorDatum*
  function GetRGBA (line 369) | static void

FILE: macosx/tkMacOSXColor.h
  type colorType (line 37) | enum colorType {
  type xpixel (line 45) | typedef struct xpixel_t {
  type MacPixel (line 50) | typedef union MacPixel_t {
  type SystemColorDatum (line 60) | typedef struct {

FILE: macosx/tkMacOSXConfig.c
  function Tcl_Obj (line 36) | Tcl_Obj *

FILE: macosx/tkMacOSXCursor.c
  type TkMacOSXCursor (line 35) | typedef struct {
  type CursorName (line 46) | struct CursorName {
  type CursorName (line 56) | struct CursorName
  function FindCursorByName (line 215) | void
  function TkCursor (line 366) | TkCursor *
  function TkCursor (line 421) | TkCursor *
  function TkpFreeCursor (line 453) | void
  function TkMacOSXInstallCursor (line 483) | static void
  function TkpSetCursor (line 533) | void

FILE: macosx/tkMacOSXDebug.c
  function MODULE_SCOPE (line 48) | MODULE_SCOPE void *

FILE: macosx/tkMacOSXDialog.c
  function setAllowedFileTypes (line 30) | static void setAllowedFileTypes(
  type colorOptions (line 128) | enum colorOptions {
  type openOptions (line 137) | enum openOptions {
  type saveOptions (line 147) | enum saveOptions {
  type chooseOptions (line 156) | enum chooseOptions {
  type FilePanelCallbackInfo (line 160) | typedef struct {
  type alertOptions (line 170) | enum alertOptions {
  type AlertCallbackInfo (line 174) | typedef struct {
  type alertTypeOptions (line 183) | enum alertTypeOptions {
  type alertIconOptions (line 190) | enum alertIconOptions {
  function NSURL (line 247) | static NSURL *
  function sender (line 272) | sender didChangeToDirectoryURL:(NSURL *)url {
  function sender (line 277) | sender validateURL:(NSURL *)url error:(NSError **)outError {
  function id (line 382) | id)sender  {
  function 
Copy disabled (too large) Download .json
Condensed preview — 1040 files, each showing path, character count, and a content snippet. Download the .json file for the full structured content (20,629K chars).
[
  {
    "path": ".fossil-settings/binary-glob",
    "chars": 18,
    "preview": "*.bmp\n*.gif\n*.png\n"
  },
  {
    "path": ".fossil-settings/crlf-glob",
    "chars": 31,
    "preview": "win/*.bat\nwin/*.vc\nwin/rc/*.rc\n"
  },
  {
    "path": ".fossil-settings/encoding-glob",
    "chars": 132,
    "preview": "win/buildall.vc.bat\nwin/makefile.vc\nwin/rules-ext.vc\nwin/rules.vc\nwin/targets.vc\nwin/rc/*.bmp\nwin/rc/*.cur\nwin/rc/*.ico\n"
  },
  {
    "path": ".fossil-settings/ignore-glob",
    "chars": 424,
    "preview": "*.a\n*.dll\n*.dylib\n*.dylib.E\n*.exe\n*.exp\n*.la\n*.lib\n*.lo\n*.o\n*.obj\n*.pdb\n*.res\n*.sl\n*.so\n*/Makefile\n*/autom4te.cache\n*/co"
  },
  {
    "path": ".fossil-settings/manifest",
    "chars": 2,
    "preview": "u\n"
  },
  {
    "path": ".gitattributes",
    "chars": 749,
    "preview": "# Set the default behavior, in case people don't have core.autocrlf set.\n* eol=lf\n* text=auto\n\n# Explicitly declare text"
  },
  {
    "path": ".github/ISSUE_TEMPLATE.md",
    "chars": 258,
    "preview": "Important Note\n==========\nPlease do not file issues with Tk on Github. They are unlikely to be noticed in a timely fashi"
  },
  {
    "path": ".github/PULL_REQUEST_TEMPLATE.md",
    "chars": 285,
    "preview": "Important Note\n==========\nPlease do not file pull requests with Tk on Github. They are unlikely to be noticed in a timel"
  },
  {
    "path": ".github/workflows/linux-build.yml",
    "chars": 6025,
    "preview": "name: Linux\non:\n  push:\n    branches:\n    - \"main\"\n    - \"core-9-0-branch\"\n    tags:\n    - \"core-**\"\npermissions:\n  cont"
  },
  {
    "path": ".github/workflows/linux-with-tcl9-build.yml",
    "chars": 5210,
    "preview": "name: Linux (with Tcl 9.0)\non:\n  push:\n    branches:\n    - \"main\"\n    - \"core-9-0-branch\"\n    tags:\n    - \"core-**\"\nperm"
  },
  {
    "path": ".github/workflows/mac-build.yml",
    "chars": 4901,
    "preview": "name: macOS\non:\n  push:\n    branches:\n    - \"main\"\n    - \"core-9-0-branch\"\n    tags:\n    - \"core-**\"\npermissions:\n  cont"
  },
  {
    "path": ".github/workflows/onefiledist.yml",
    "chars": 7540,
    "preview": "name: Build Binaries\non:\n  push:\n    branches:\n    - \"main\"\n    - \"core-9-0-branch\"\n    tags:\n    - \"core-**\"\npermission"
  },
  {
    "path": ".github/workflows/win-build.yml",
    "chars": 5275,
    "preview": "name: Windows\non:\n  push:\n    branches:\n    - \"main\"\n    - \"core-9-0-branch\"\n    tags:\n    - \"core-**\"\npermissions:\n  co"
  },
  {
    "path": ".gitignore",
    "chars": 849,
    "preview": "*.a\n*.bundle\n*.dll\n*.dylib\n*.dylib.E\n*.exe\n*.exp\n*.lib\n*.o\n*.obj\n*.pdb\n*.res\n*.sl\n*.so\n.fslckout\n_FOSSIL_\nMakefile\nTk-In"
  },
  {
    "path": ".project",
    "chars": 198,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<projectDescription>\n\t<name>tk9.1</name>\n\t<comment></comment>\n\t<projects>\n\t</proj"
  },
  {
    "path": ".settings/org.eclipse.core.resources.prefs",
    "chars": 55,
    "preview": "eclipse.preferences.version=1\nencoding/<project>=UTF-8\n"
  },
  {
    "path": ".settings/org.eclipse.core.runtime.prefs",
    "chars": 48,
    "preview": "eclipse.preferences.version=1\nline.separator=\\n\n"
  },
  {
    "path": "README.md",
    "chars": 2811,
    "preview": "# README:  Tk\n\nThis is the **Tk 9.1a2** source distribution.\n\nYou can get any source release of Tk from [our distributio"
  },
  {
    "path": "bitmaps/error.xbm",
    "chars": 407,
    "preview": "#define error_width 17\n#define error_height 17\nstatic unsigned char error_bits[] = {\n   0xf0, 0x0f, 0x00, 0x58, 0x15, 0x"
  },
  {
    "path": "bitmaps/gray12.xbm",
    "chars": 290,
    "preview": "#define gray12_width 16\n#define gray12_height 16\nstatic unsigned char gray12_bits[] = {\n   0x00, 0x00, 0x22, 0x22, 0x00,"
  },
  {
    "path": "bitmaps/gray25.xbm",
    "chars": 290,
    "preview": "#define gray25_width 16\n#define gray25_height 16\nstatic unsigned char gray25_bits[] = {\n   0x88, 0x88, 0x22, 0x22, 0x88,"
  },
  {
    "path": "bitmaps/gray50.xbm",
    "chars": 290,
    "preview": "#define gray50_width 16\n#define gray50_height 16\nstatic unsigned char gray50_bits[] = {\n   0x55, 0x55, 0xaa, 0xaa, 0x55,"
  },
  {
    "path": "bitmaps/gray75.xbm",
    "chars": 290,
    "preview": "#define gray75_width 16\n#define gray75_height 16\nstatic unsigned char gray75_bits[] = {\n   0x77, 0x77, 0xdd, 0xdd, 0x77,"
  },
  {
    "path": "bitmaps/hourglass.xbm",
    "chars": 494,
    "preview": "#define hourglass_width 19\n#define hourglass_height 21\nstatic unsigned char hourglass_bits[] = {\n   0xff, 0xff, 0x07, 0x"
  },
  {
    "path": "bitmaps/info.xbm",
    "chars": 214,
    "preview": "#define info_width 8\n#define info_height 21\nstatic unsigned char info_bits[] = {\n   0x3c, 0x2a, 0x16, 0x2a, 0x14, 0x00, "
  },
  {
    "path": "bitmaps/questhead.xbm",
    "chars": 512,
    "preview": "#define questhead_width 20\n#define questhead_height 22\nstatic unsigned char questhead_bits[] = {\n   0xf8, 0x1f, 0x00, 0x"
  },
  {
    "path": "bitmaps/question.xbm",
    "chars": 602,
    "preview": "#define question_width 17\n#define question_height 27\nstatic unsigned char question_bits[] = {\n   0xf0, 0x0f, 0x00, 0x58,"
  },
  {
    "path": "bitmaps/warning.xbm",
    "chars": 211,
    "preview": "#define warning_width 6\n#define warning_height 19\nstatic unsigned char warning_bits[] = {\n   0x0c, 0x16, 0x2b, 0x15, 0x2"
  },
  {
    "path": "changes.md",
    "chars": 2883,
    "preview": "\nThe source code for Tk is managed by fossil.  Tk developers coordinate all\nchanges to the Tk source code at\n\n> [Tk Sour"
  },
  {
    "path": "doc/3DBorder.3",
    "chars": 15355,
    "preview": "'\\\"\n'\\\" Copyright (c) 1990-1993 The Regents of the University of California.\n'\\\" Copyright (c) 1994-1998 Sun Microsystem"
  },
  {
    "path": "doc/AddOption.3",
    "chars": 2130,
    "preview": "'\\\"\n'\\\" Copyright (c) 1998-2000 Scriptics Corporation.\n'\\\" All rights reserved.\n'\\\"\n.TH Tk_AddOption 3 \"\" Tk \"Tk Library"
  },
  {
    "path": "doc/BindTable.3",
    "chars": 6667,
    "preview": "'\\\"\n'\\\" Copyright (c) 1994 The Regents of the University of California.\n'\\\" Copyright (c) 1994-1996 Sun Microsystems, In"
  },
  {
    "path": "doc/CanvPsY.3",
    "chars": 4822,
    "preview": "'\\\"\n'\\\" Copyright (c) 1994-1996 Sun Microsystems, Inc.\n'\\\"\n'\\\" See the file \"license.terms\" for information on usage and"
  },
  {
    "path": "doc/CanvTkwin.3",
    "chars": 6483,
    "preview": "'\\\"\n'\\\" Copyright (c) 1994-1996 Sun Microsystems, Inc.\n'\\\"\n'\\\" See the file \"license.terms\" for information on usage and"
  },
  {
    "path": "doc/CanvTxtInfo.3",
    "chars": 4597,
    "preview": "'\\\"\n'\\\" Copyright (c) 1994-1996 Sun Microsystems, Inc.\n'\\\"\n'\\\" See the file \"license.terms\" for information on usage and"
  },
  {
    "path": "doc/Clipboard.3",
    "chars": 3038,
    "preview": "'\\\"\n'\\\" Copyright (c) 1994 The Regents of the University of California.\n'\\\" Copyright (c) 1994-1996 Sun Microsystems, In"
  },
  {
    "path": "doc/ClrSelect.3",
    "chars": 1178,
    "preview": "'\\\"\n'\\\" Copyright (c) 1992-1994 The Regents of the University of California.\n'\\\" Copyright (c) 1994-1996 Sun Microsystem"
  },
  {
    "path": "doc/ConfigWidg.3",
    "chars": 28497,
    "preview": "'\\\"\n'\\\" Copyright (c) 1990-1994 The Regents of the University of California.\n'\\\" Copyright (c) 1994-1996 Sun Microsystem"
  },
  {
    "path": "doc/ConfigWind.3",
    "chars": 6176,
    "preview": "'\\\"\n'\\\" Copyright (c) 1990-1993 The Regents of the University of California.\n'\\\" Copyright (c) 1994-1996 Sun Microsystem"
  },
  {
    "path": "doc/CoordToWin.3",
    "chars": 1659,
    "preview": "'\\\"\n'\\\" Copyright (c) 1990-1993 The Regents of the University of California.\n'\\\" Copyright (c) 1994-1996 Sun Microsystem"
  },
  {
    "path": "doc/CrtCmHdlr.3",
    "chars": 2585,
    "preview": "'\\\"\n'\\\" Copyright (c) 2000 Ajuba Solutions.\n'\\\"\n'\\\" See the file \"license.terms\" for information on usage and redistribu"
  },
  {
    "path": "doc/CrtConsoleChan.3",
    "chars": 1506,
    "preview": "'\\\"\n'\\\" Copyright (c) 2007 ActiveState Software Inc.\n'\\\"\n'\\\" See the file \"license.terms\" for information on usage and r"
  },
  {
    "path": "doc/CrtErrHdlr.3",
    "chars": 6236,
    "preview": "'\\\"\n'\\\" Copyright (c) 1990 The Regents of the University of California.\n'\\\" Copyright (c) 1994-1996 Sun Microsystems, In"
  },
  {
    "path": "doc/CrtGenHdlr.3",
    "chars": 3315,
    "preview": "'\\\"\n'\\\" Copyright (c) 1992-1994 The Regents of the University of California.\n'\\\" Copyright (c) 1994-1996 Sun Microsystem"
  },
  {
    "path": "doc/CrtImgType.3",
    "chars": 10041,
    "preview": "'\\\"\n'\\\" Copyright (c) 1994 The Regents of the University of California.\n'\\\" Copyright (c) 1994-1997 Sun Microsystems, In"
  },
  {
    "path": "doc/CrtItemType.3",
    "chars": 27714,
    "preview": "'\\\"\n'\\\" Copyright (c) 1994-1995 Sun Microsystems, Inc.\n'\\\"\n'\\\" See the file \"license.terms\" for information on usage and"
  },
  {
    "path": "doc/CrtPhImgFmt.3",
    "chars": 18776,
    "preview": "'\\\"\n'\\\" Copyright (c) 1994 The Australian National University\n'\\\" Copyright (c) 1994-1997 Sun Microsystems, Inc.\n'\\\"\n'\\\""
  },
  {
    "path": "doc/CrtSelHdlr.3",
    "chars": 5215,
    "preview": "'\\\"\n'\\\" Copyright (c) 1990-1994 The Regents of the University of California.\n'\\\" Copyright (c) 1994-1996 Sun Microsystem"
  },
  {
    "path": "doc/CrtWindow.3",
    "chars": 6514,
    "preview": "'\\\"\n'\\\" Copyright (c) 1990 The Regents of the University of California.\n'\\\" Copyright (c) 1994-1996 Sun Microsystems, In"
  },
  {
    "path": "doc/DeleteImg.3",
    "chars": 845,
    "preview": "'\\\"\n'\\\" Copyright (c) 1995-1996 Sun Microsystems, Inc.\n'\\\"\n'\\\" See the file \"license.terms\" for information on usage and"
  },
  {
    "path": "doc/DrawFocHlt.3",
    "chars": 1099,
    "preview": "'\\\"\n'\\\" Copyright (c) 1995-1996 Sun Microsystems, Inc.\n'\\\"\n'\\\" See the file \"license.terms\" for information on usage and"
  },
  {
    "path": "doc/EventHndlr.3",
    "chars": 3519,
    "preview": "'\\\"\n'\\\" Copyright (c) 1990 The Regents of the University of California.\n'\\\" Copyright (c) 1994-1996 Sun Microsystems, In"
  },
  {
    "path": "doc/FindPhoto.3",
    "chars": 12990,
    "preview": "'\\\"\n'\\\" Copyright (c) 1994 The Australian National University\n'\\\" Copyright (c) 1994-1996 Sun Microsystems, Inc.\n'\\\"\n'\\\""
  },
  {
    "path": "doc/FontId.3",
    "chars": 3478,
    "preview": "'\\\"\n'\\\" Copyright (c) 1996 Sun Microsystems, Inc.\n'\\\"\n'\\\" See the file \"license.terms\" for information on usage and redi"
  },
  {
    "path": "doc/GeomReq.3",
    "chars": 4112,
    "preview": "'\\\"\n'\\\" Copyright (c) 1990-1994 The Regents of the University of California.\n'\\\" Copyright (c) 1994-1996 Sun Microsystem"
  },
  {
    "path": "doc/GetAnchor.3",
    "chars": 3177,
    "preview": "'\\\"\n'\\\" Copyright (c) 1990 The Regents of the University of California.\n'\\\" Copyright (c) 1994-1998 Sun Microsystems, In"
  },
  {
    "path": "doc/GetBitmap.3",
    "chars": 10217,
    "preview": "'\\\"\n'\\\" Copyright (c) 1990 The Regents of the University of California.\n'\\\" Copyright (c) 1994-1998 Sun Microsystems, In"
  },
  {
    "path": "doc/GetCapStyl.3",
    "chars": 2052,
    "preview": "'\\\"\n'\\\" Copyright (c) 1990 The Regents of the University of California.\n'\\\" Copyright (c) 1994-1996 Sun Microsystems, In"
  },
  {
    "path": "doc/GetClrmap.3",
    "chars": 3083,
    "preview": "'\\\"\n'\\\" Copyright (c) 1994 The Regents of the University of California.\n'\\\" Copyright (c) 1994-1996 Sun Microsystems, In"
  },
  {
    "path": "doc/GetColor.3",
    "chars": 7507,
    "preview": "'\\\"\n'\\\" Copyright (c) 1990-1991 The Regents of the University of California.\n'\\\" Copyright (c) 1994-1998 Sun Microsystem"
  },
  {
    "path": "doc/GetCursor.3",
    "chars": 10241,
    "preview": "'\\\"\n'\\\" Copyright (c) 1990 The Regents of the University of California.\n'\\\" Copyright (c) 1994-1998 Sun Microsystems, In"
  },
  {
    "path": "doc/GetDash.3",
    "chars": 2646,
    "preview": "'\\\"\n'\\\" Copyright (c) 1989-1993 The Regents of the University of California.\n'\\\" Copyright (c) 1994-1996 Sun Microsystem"
  },
  {
    "path": "doc/GetFont.3",
    "chars": 4713,
    "preview": "'\\\"\n'\\\" Copyright (c) 1990-1992 The Regents of the University of California.\n'\\\" Copyright (c) 1994-1998 Sun Microsystem"
  },
  {
    "path": "doc/GetGC.3",
    "chars": 2767,
    "preview": "'\\\"\n'\\\" Copyright (c) 1990 The Regents of the University of California.\n'\\\" Copyright (c) 1994-1996 Sun Microsystems, In"
  },
  {
    "path": "doc/GetHINSTANCE.3",
    "chars": 527,
    "preview": "'\\\"\n'\\\" Copyright (c) 1998-2000 Scriptics Corporation.\n'\\\" All rights reserved.\n'\\\"\n.TH Tk_GetHISTANCE 3 \"\" Tk \"Tk Libra"
  },
  {
    "path": "doc/GetHWND.3",
    "chars": 849,
    "preview": "'\\\"\n'\\\" Copyright (c) 1998-2000 Scriptics Corporation.\n'\\\" All rights reserved.\n'\\\"\n.TH HWND 3 8.0 Tk \"Tk Library Proced"
  },
  {
    "path": "doc/GetImage.3",
    "chars": 5048,
    "preview": "'\\\"\n'\\\" Copyright (c) 1994 The Regents of the University of California.\n'\\\" Copyright (c) 1994-1996 Sun Microsystems, In"
  },
  {
    "path": "doc/GetJoinStl.3",
    "chars": 2067,
    "preview": "'\\\"\n'\\\" Copyright (c) 1990 The Regents of the University of California.\n'\\\" Copyright (c) 1994-1996 Sun Microsystems, In"
  },
  {
    "path": "doc/GetJustify.3",
    "chars": 3153,
    "preview": "'\\\"\n'\\\" Copyright (c) 1990-1994 The Regents of the University of California.\n'\\\" Copyright (c) 1994-1998 Sun Microsystem"
  },
  {
    "path": "doc/GetOption.3",
    "chars": 1399,
    "preview": "'\\\"\n'\\\" Copyright (c) 1990 The Regents of the University of California.\n'\\\" Copyright (c) 1994-1996 Sun Microsystems, In"
  },
  {
    "path": "doc/GetPixels.3",
    "chars": 3655,
    "preview": "'\\\"\n'\\\" Copyright (c) 1990 The Regents of the University of California.\n'\\\" Copyright (c) 1994-1998 Sun Microsystems, In"
  },
  {
    "path": "doc/GetPixmap.3",
    "chars": 1674,
    "preview": "'\\\"\n'\\\" Copyright (c) 1990 The Regents of the University of California.\n'\\\" Copyright (c) 1994-1996 Sun Microsystems, In"
  },
  {
    "path": "doc/GetRelief.3",
    "chars": 2921,
    "preview": "'\\\"\n'\\\" Copyright (c) 1990 The Regents of the University of California.\n'\\\" Copyright (c) 1994-1998 Sun Microsystems, In"
  },
  {
    "path": "doc/GetRootCrd.3",
    "chars": 1330,
    "preview": "'\\\"\n'\\\" Copyright (c) 1990 The Regents of the University of California.\n'\\\" Copyright (c) 1994-1996 Sun Microsystems, In"
  },
  {
    "path": "doc/GetScroll.3",
    "chars": 2901,
    "preview": "'\\\"\n'\\\" Copyright (c) 1994 The Regents of the University of California.\n'\\\" Copyright (c) 1994-1996 Sun Microsystems, In"
  },
  {
    "path": "doc/GetSelect.3",
    "chars": 3102,
    "preview": "'\\\"\n'\\\" Copyright (c) 1990-1994 The Regents of the University of California.\n'\\\" Copyright (c) 1994-1996 Sun Microsystem"
  },
  {
    "path": "doc/GetUid.3",
    "chars": 1574,
    "preview": "'\\\"\n'\\\" Copyright (c) 1990 The Regents of the University of California.\n'\\\" Copyright (c) 1994-1996 Sun Microsystems, In"
  },
  {
    "path": "doc/GetVRoot.3",
    "chars": 1777,
    "preview": "'\\\"\n'\\\" Copyright (c) 1990 The Regents of the University of California.\n'\\\" Copyright (c) 1994-1996 Sun Microsystems, In"
  },
  {
    "path": "doc/GetVisual.3",
    "chars": 3558,
    "preview": "'\\\"\n'\\\" Copyright (c) 1994 The Regents of the University of California.\n'\\\" Copyright (c) 1994-1996 Sun Microsystems, In"
  },
  {
    "path": "doc/Grab.3",
    "chars": 2323,
    "preview": "'\\\"\n'\\\" Copyright (c) 1998-2000 Scriptics Corporation.\n'\\\" All rights reserved.\n'\\\"\n.TH Tk_Grab 3 \"\" Tk \"Tk Library Proc"
  },
  {
    "path": "doc/HWNDToWindow.3",
    "chars": 625,
    "preview": "'\\\"\n'\\\" Copyright (c) 1998-2000 Scriptics Corporation.\n'\\\" All rights reserved.\n'\\\"\n.TH Tk_HWNDToWindow 3 \"\" Tk \"Tk Libr"
  },
  {
    "path": "doc/HandleEvent.3",
    "chars": 1667,
    "preview": "'\\\"\n'\\\" Copyright (c) 1990-1992 The Regents of the University of California.\n'\\\" Copyright (c) 1994-1996 Sun Microsystem"
  },
  {
    "path": "doc/IdToWindow.3",
    "chars": 822,
    "preview": "'\\\"\n'\\\" Copyright (c) 1995-1996 Sun Microsystems, Inc.\n'\\\"\n'\\\" See the file \"license.terms\" for information on usage and"
  },
  {
    "path": "doc/ImgChanged.3",
    "chars": 2373,
    "preview": "'\\\"\n'\\\" Copyright (c) 1994 The Regents of the University of California.\n'\\\" Copyright (c) 1994-1996 Sun Microsystems, In"
  },
  {
    "path": "doc/Inactive.3",
    "chars": 1058,
    "preview": "'\\\"\n'\\\" Copyright (c) 1998-2000 Scriptics Corporation.\n'\\\" All rights reserved.\n'\\\"\n.TH Tk_GetUserInactiveTime 3 8.5 Tk "
  },
  {
    "path": "doc/InternAtom.3",
    "chars": 1921,
    "preview": "'\\\"\n'\\\" Copyright (c) 1990 The Regents of the University of California.\n'\\\" Copyright (c) 1994-1996 Sun Microsystems, In"
  },
  {
    "path": "doc/MainLoop.3",
    "chars": 920,
    "preview": "'\\\"\n'\\\" Copyright (c) 1990-1992 The Regents of the University of California.\n'\\\" Copyright (c) 1994-1996 Sun Microsystem"
  },
  {
    "path": "doc/MainWin.3",
    "chars": 2033,
    "preview": "'\\\"\n'\\\" Copyright (c) 1990 The Regents of the University of California.\n'\\\" Copyright (c) 1994-1996 Sun Microsystems, In"
  },
  {
    "path": "doc/MaintGeom.3",
    "chars": 4210,
    "preview": "'\\\"\n'\\\" Copyright (c) 1994 The Regents of the University of California.\n'\\\" Copyright (c) 1994-1996 Sun Microsystems, In"
  },
  {
    "path": "doc/ManageGeom.3",
    "chars": 3486,
    "preview": "'\\\"\n'\\\" Copyright (c) 1990-1994 The Regents of the University of California.\n'\\\" Copyright (c) 1994-1996 Sun Microsystem"
  },
  {
    "path": "doc/MapWindow.3",
    "chars": 1614,
    "preview": "'\\\"\n'\\\" Copyright (c) 1990 The Regents of the University of California.\n'\\\" Copyright (c) 1994-1997 Sun Microsystems, In"
  },
  {
    "path": "doc/MeasureChar.3",
    "chars": 7071,
    "preview": "'\\\"\n'\\\" Copyright (c) 1996 Sun Microsystems, Inc.\n'\\\"\n'\\\" See the file \"license.terms\" for information on usage and redi"
  },
  {
    "path": "doc/MoveToplev.3",
    "chars": 2129,
    "preview": "'\\\"\n'\\\" Copyright (c) 1990-1993 The Regents of the University of California.\n'\\\" Copyright (c) 1994-1996 Sun Microsystem"
  },
  {
    "path": "doc/Name.3",
    "chars": 3177,
    "preview": "'\\\"\n'\\\" Copyright (c) 1990 The Regents of the University of California.\n'\\\" Copyright (c) 1994-1997 Sun Microsystems, In"
  },
  {
    "path": "doc/NameOfImg.3",
    "chars": 805,
    "preview": "'\\\"\n'\\\" Copyright (c) 1995-1996 Sun Microsystems, Inc.\n'\\\"\n'\\\" See the file \"license.terms\" for information on usage and"
  },
  {
    "path": "doc/OwnSelect.3",
    "chars": 1785,
    "preview": "'\\\"\n'\\\" Copyright (c) 1990-1994 The Regents of the University of California.\n'\\\" Copyright (c) 1994-1996 Sun Microsystem"
  },
  {
    "path": "doc/ParseArgv.3",
    "chars": 14549,
    "preview": "'\\\"\n'\\\" Copyright (c) 1990-1992 The Regents of the University of California.\n'\\\" Copyright (c) 1994-1996 Sun Microsystem"
  },
  {
    "path": "doc/QWinEvent.3",
    "chars": 1909,
    "preview": "'\\\"\n'\\\" Copyright (c) 1995-1996 Sun Microsystems, Inc.\n'\\\"\n'\\\" See the file \"license.terms\" for information on usage and"
  },
  {
    "path": "doc/Restack.3",
    "chars": 1572,
    "preview": "'\\\"\n'\\\" Copyright (c) 1990 The Regents of the University of California.\n'\\\" Copyright (c) 1994-1996 Sun Microsystems, In"
  },
  {
    "path": "doc/RestrictEv.3",
    "chars": 3449,
    "preview": "'\\\"\n'\\\" Copyright (c) 1990 The Regents of the University of California.\n'\\\" Copyright (c) 1994-1996 Sun Microsystems, In"
  },
  {
    "path": "doc/SetAppName.3",
    "chars": 2321,
    "preview": "'\\\"\n'\\\" Copyright (c) 1994 The Regents of the University of California.\n'\\\" Copyright (c) 1994-1997 Sun Microsystems, In"
  },
  {
    "path": "doc/SetCaret.3",
    "chars": 992,
    "preview": "'\\\"\n'\\\" Copyright (c) 2002 ActiveState Corporation.\n'\\\"\n'\\\" See the file \"license.terms\" for information on usage and re"
  },
  {
    "path": "doc/SetClass.3",
    "chars": 2001,
    "preview": "'\\\"\n'\\\" Copyright (c) 1990 The Regents of the University of California.\n'\\\" Copyright (c) 1994-1996 Sun Microsystems, In"
  },
  {
    "path": "doc/SetClassProcs.3",
    "chars": 3249,
    "preview": "'\\\"\n'\\\" Copyright (c) 2000 Ajuba Solutions.\n'\\\"\n'\\\" See the file \"license.terms\" for information on usage and redistribu"
  },
  {
    "path": "doc/SetGrid.3",
    "chars": 2323,
    "preview": "'\\\"\n'\\\" Copyright (c) 1990-1994 The Regents of the University of California.\n'\\\" Copyright (c) 1994-1996 Sun Microsystem"
  },
  {
    "path": "doc/SetOptions.3",
    "chars": 35193,
    "preview": "'\\\"\n'\\\" Copyright (c) 1998 Sun Microsystems, Inc.\n'\\\"\n'\\\" See the file \"license.terms\" for information on usage and redi"
  },
  {
    "path": "doc/SetVisual.3",
    "chars": 1776,
    "preview": "'\\\"\n'\\\" Copyright (c) 1992 The Regents of the University of California.\n'\\\" Copyright (c) 1994-1996 Sun Microsystems, In"
  },
  {
    "path": "doc/StrictMotif.3",
    "chars": 1134,
    "preview": "'\\\"\n'\\\" Copyright (c) 1995-1996 Sun Microsystems, Inc.\n'\\\"\n'\\\" See the file \"license.terms\" for information on usage and"
  },
  {
    "path": "doc/TextLayout.3",
    "chars": 14453,
    "preview": "'\\\"\n'\\\" Copyright (c) 1996 Sun Microsystems, Inc.\n'\\\"\n'\\\" See the file \"license.terms\" for information on usage and redi"
  },
  {
    "path": "doc/TkInitStubs.3",
    "chars": 3015,
    "preview": "'\\\"\n'\\\" Copyright (c) 1999 Scriptics Corporation\n'\\\"\n'\\\" See the file \"license.terms\" for information on usage and redis"
  },
  {
    "path": "doc/Tk_Init.3",
    "chars": 2580,
    "preview": "'\\\"\n'\\\" Copyright (c) 1995-1996 Sun Microsystems, Inc.\n'\\\"\n'\\\" See the file \"license.terms\" for information on usage and"
  },
  {
    "path": "doc/Tk_Main.3",
    "chars": 2731,
    "preview": "'\\\"\n'\\\" Copyright (c) 1994 The Regents of the University of California.\n'\\\" Copyright (c) 1994-1996 Sun Microsystems, In"
  },
  {
    "path": "doc/WinUtil.3",
    "chars": 2194,
    "preview": "'\\\"\n'\\\" Copyright (c) 1990-1993 The Regents of the University of California.\n'\\\" Copyright (c) 1994-1996 Sun Microsystem"
  },
  {
    "path": "doc/WindowId.3",
    "chars": 6451,
    "preview": "'\\\"\n'\\\" Copyright (c) 1990-1993 The Regents of the University of California.\n'\\\" Copyright (c) 1994-1997 Sun Microsystem"
  },
  {
    "path": "doc/accessible.n",
    "chars": 6059,
    "preview": ".\\\" Automatically generated by Pandoc 3.6.4\n'\\\"\n'\\\" Copyright (c) 2025 Kevin Walzer\n'\\\"\n'\\\" See the file \"license.terms\""
  },
  {
    "path": "doc/attribtable.n",
    "chars": 4552,
    "preview": ".\\\"\n.\\\" Copyright (c) 2025 Csaba Nemethi\n.\\\"\n.\\\" See the file \"license.terms\" for information on usage and redistributio"
  },
  {
    "path": "doc/bell.n",
    "chars": 1156,
    "preview": "'\\\"\n'\\\" Copyright (c) 1994 The Regents of the University of California.\n'\\\" Copyright (c) 1994-1996 Sun Microsystems, In"
  },
  {
    "path": "doc/bind.n",
    "chars": 33560,
    "preview": "'\\\"\n'\\\" Copyright (c) 1990 The Regents of the University of California.\n'\\\" Copyright (c) 1994-1996 Sun Microsystems, In"
  },
  {
    "path": "doc/bindtags.n",
    "chars": 4008,
    "preview": "'\\\"\n'\\\" Copyright (c) 1990 The Regents of the University of California.\n'\\\" Copyright (c) 1994-1996 Sun Microsystems, In"
  },
  {
    "path": "doc/bitmap.n",
    "chars": 4504,
    "preview": "'\\\"\n'\\\" Copyright (c) 1994 The Regents of the University of California.\n'\\\" Copyright (c) 1994-1996 Sun Microsystems, In"
  },
  {
    "path": "doc/busy.n",
    "chars": 10493,
    "preview": "'\\\"\n'\\\" Copyright (c) 1993-1998 Lucent Technologies, Inc.\n'\\\" Copyright (c) 2008 Jos Decoster\n'\\\"\n'\\\" Permission to use,"
  },
  {
    "path": "doc/button.n",
    "chars": 9075,
    "preview": "'\\\"\n'\\\" Copyright (c) 1990-1994 The Regents of the University of California.\n'\\\" Copyright (c) 1994-1996 Sun Microsystem"
  },
  {
    "path": "doc/canvas.n",
    "chars": 87483,
    "preview": "'\\\"\n'\\\" Copyright (c) 1992-1994 The Regents of the University of California.\n'\\\" Copyright (c) 1994-1996 Sun Microsystem"
  },
  {
    "path": "doc/checkbutton.n",
    "chars": 12899,
    "preview": "'\\\"\n'\\\" Copyright (c) 1990-1994 The Regents of the University of California.\n'\\\" Copyright (c) 1994-1996 Sun Microsystem"
  },
  {
    "path": "doc/chooseColor.n",
    "chars": 1617,
    "preview": "'\\\"\n'\\\" Copyright (c) 1996 Sun Microsystems, Inc.\n'\\\"\n'\\\" See the file \"license.terms\" for information on usage and redi"
  },
  {
    "path": "doc/chooseDirectory.n",
    "chars": 2692,
    "preview": "'\\\"\n'\\\" Copyright (c) 1998-2000 Scriptics Corporation.\n'\\\" All rights reserved.\n'\\\"\n.TH tk_chooseDirectory n 8.3 Tk \"Tk "
  },
  {
    "path": "doc/clipboard.n",
    "chars": 5771,
    "preview": "'\\\"\n'\\\" Copyright (c) 1994 The Regents of the University of California.\n'\\\" Copyright (c) 1994-1996 Sun Microsystems, In"
  },
  {
    "path": "doc/colors.n",
    "chars": 21695,
    "preview": "'\\\"\n'\\\" Copyright (c) 1998-2000 Scriptics Corporation.\n'\\\" Copyright (c) 2003 ActiveState Corporation.\n'\\\" Copyright (c)"
  },
  {
    "path": "doc/console.n",
    "chars": 6310,
    "preview": "'\\\"\n'\\\" Copyright (c) 2001 Donal K. Fellows\n'\\\"\n'\\\" See the file \"license.terms\" for information on usage and redistribu"
  },
  {
    "path": "doc/cursors.n",
    "chars": 2426,
    "preview": "'\\\"\n'\\\" Copyright (c) 1998-2000 Scriptics Corporation.\n'\\\" All rights reserved.\n'\\\"\n'\\\" Copyright (c) 2006-2007 Daniel A"
  },
  {
    "path": "doc/destroy.n",
    "chars": 1281,
    "preview": "'\\\"\n'\\\" Copyright (c) 1990 The Regents of the University of California.\n'\\\" Copyright (c) 1994-1996 Sun Microsystems, In"
  },
  {
    "path": "doc/dialog.n",
    "chars": 2487,
    "preview": "'\\\"\n'\\\" Copyright (c) 1992 The Regents of the University of California.\n'\\\" Copyright (c) 1994-1996 Sun Microsystems, In"
  },
  {
    "path": "doc/entry.n",
    "chars": 24186,
    "preview": "'\\\"\n'\\\" Copyright (c) 1990-1994 The Regents of the University of California.\n'\\\" Copyright (c) 1994-1996 Sun Microsystem"
  },
  {
    "path": "doc/event.n",
    "chars": 23394,
    "preview": "'\\\"\n'\\\" Copyright (c) 1996 Sun Microsystems, Inc.\n'\\\" Copyright (c) 1998-2000 Ajuba Solutions.\n'\\\"\n'\\\" See the file \"lic"
  },
  {
    "path": "doc/fileicon.n",
    "chars": 1178,
    "preview": ".\\\" Text automatically generated by txt2man\n'\\\"\n'\\\" Copyright (c) 2025 Kevin Walzer.\n'\\\"\n'\\\" See the file \"license.terms"
  },
  {
    "path": "doc/focus.n",
    "chars": 5529,
    "preview": "'\\\"\n'\\\" Copyright (c) 1990-1994 The Regents of the University of California.\n'\\\" Copyright (c) 1994-1996 Sun Microsystem"
  },
  {
    "path": "doc/focusNext.n",
    "chars": 2465,
    "preview": "'\\\"\n'\\\" Copyright (c) 1994 The Regents of the University of California.\n'\\\" Copyright (c) 1994-1996 Sun Microsystems, In"
  },
  {
    "path": "doc/font.n",
    "chars": 16432,
    "preview": "'\\\"\n'\\\" Copyright (c) 1996 Sun Microsystems, Inc.\n'\\\" Copyright (c) 2006-2007 Daniel A. Steffen <das@users.sourceforge.n"
  },
  {
    "path": "doc/fontchooser.n",
    "chars": 7990,
    "preview": "'\\\"\n'\\\" Copyright (c) 2008 Daniel A. Steffen <das@users.sourceforge.net>\n'\\\"\n'\\\" See the file \"license.terms\" for inform"
  },
  {
    "path": "doc/frame.n",
    "chars": 7168,
    "preview": "'\\\"\n'\\\" Copyright (c) 1990-1994 The Regents of the University of California.\n'\\\" Copyright (c) 1994-1996 Sun Microsystem"
  },
  {
    "path": "doc/getOpenFile.n",
    "chars": 8793,
    "preview": "'\\\"\n'\\\" Copyright (c) 1996 Sun Microsystems, Inc.\n'\\\"\n'\\\" See the file \"license.terms\" for information on usage and redi"
  },
  {
    "path": "doc/grab.n",
    "chars": 6447,
    "preview": "'\\\"\n'\\\" Copyright (c) 1992 The Regents of the University of California.\n'\\\" Copyright (c) 1994-1996 Sun Microsystems, In"
  },
  {
    "path": "doc/grid.n",
    "chars": 21000,
    "preview": "'\\\"\n'\\\" Copyright (c) 1996 Sun Microsystems, Inc.\n'\\\"\n'\\\" See the file \"license.terms\" for information on usage and redi"
  },
  {
    "path": "doc/image.n",
    "chars": 4750,
    "preview": "'\\\"\n'\\\" Copyright (c) 1994 The Regents of the University of California.\n'\\\" Copyright (c) 1994-1996 Sun Microsystems, In"
  },
  {
    "path": "doc/keysyms.n",
    "chars": 82184,
    "preview": "'\\\"\n'\\\" Copyright (c) 1998-2000 Scriptics Corporation.\n'\\\" All rights reserved.\n'\\\"\n.TH keysyms n 8.3 Tk \"Tk Built-In Co"
  },
  {
    "path": "doc/label.n",
    "chars": 5276,
    "preview": "'\\\"\n'\\\" Copyright (c) 1990-1994 The Regents of the University of California.\n'\\\" Copyright (c) 1994-1996 Sun Microsystem"
  },
  {
    "path": "doc/labelframe.n",
    "chars": 6798,
    "preview": "'\\\"\n'\\\" Copyright (c) 1990-1994 The Regents of the University of California.\n'\\\" Copyright (c) 1994-1996 Sun Microsystem"
  },
  {
    "path": "doc/listbox.n",
    "chars": 25610,
    "preview": "'\\\"\n'\\\" Copyright (c) 1990 The Regents of the University of California.\n'\\\" Copyright (c) 1994-1997 Sun Microsystems, In"
  },
  {
    "path": "doc/loadTk.n",
    "chars": 3123,
    "preview": "'\\\"\n'\\\" Copyright (c) 1995-1996 Sun Microsystems, Inc.\n'\\\"\n'\\\" See the file \"license.terms\" for information on usage and"
  },
  {
    "path": "doc/lower.n",
    "chars": 1473,
    "preview": "'\\\"\n'\\\" Copyright (c) 1990 The Regents of the University of California.\n'\\\" Copyright (c) 1994-1996 Sun Microsystems, In"
  },
  {
    "path": "doc/man.macros",
    "chars": 5810,
    "preview": ".\\\" The -*- nroff -*- definitions below are for supplemental macros used\n.\\\" in Tcl/Tk manual entries.\n.\\\"\n.\\\" .AP type "
  },
  {
    "path": "doc/menu.n",
    "chars": 38109,
    "preview": "'\\\"\n'\\\" Copyright (c) 1990-1994 The Regents of the University of California.\n'\\\" Copyright (c) 1994-1997 Sun Microsystem"
  },
  {
    "path": "doc/menubutton.n",
    "chars": 9214,
    "preview": "'\\\"\n'\\\" Copyright (c) 1990-1994 The Regents of the University of California.\n'\\\" Copyright (c) 1994-1997 Sun Microsystem"
  },
  {
    "path": "doc/message.n",
    "chars": 6462,
    "preview": "'\\\"\n'\\\" Copyright (c) 1990-1994 The Regents of the University of California.\n'\\\" Copyright (c) 1994-1996 Sun Microsystem"
  },
  {
    "path": "doc/messageBox.n",
    "chars": 3737,
    "preview": "'\\\"\n'\\\" Copyright (c) 1996 Sun Microsystems, Inc.\n'\\\"\n'\\\" See the file \"license.terms\" for information on usage and redi"
  },
  {
    "path": "doc/nsimage.n",
    "chars": 4855,
    "preview": "'\\\"\n'\\\" Copyright (c) 2022 Marc Culler\n'\\\"\n'\\\" See the file \"license.terms\" for information on usage and redistribution\n"
  },
  {
    "path": "doc/option.n",
    "chars": 5884,
    "preview": "'\\\"\n'\\\" Copyright (c) 1990 The Regents of the University of California.\n'\\\" Copyright (c) 1994-1996 Sun Microsystems, In"
  },
  {
    "path": "doc/optionMenu.n",
    "chars": 1561,
    "preview": "'\\\"\n'\\\" Copyright (c) 1990-1994 The Regents of the University of California.\n'\\\" Copyright (c) 1994-1996 Sun Microsystem"
  },
  {
    "path": "doc/options.n",
    "chars": 19056,
    "preview": "'\\\"\n'\\\" Copyright (c) 1990-1994 The Regents of the University of California.\n'\\\" Copyright (c) 1994-1996 Sun Microsystem"
  },
  {
    "path": "doc/pack.n",
    "chars": 12370,
    "preview": "'\\\"\n'\\\" Copyright (c) 1990-1994 The Regents of the University of California.\n'\\\" Copyright (c) 1994-1996 Sun Microsystem"
  },
  {
    "path": "doc/palette.n",
    "chars": 3181,
    "preview": "'\\\"\n'\\\" Copyright (c) 1995-1996 Sun Microsystems, Inc.\n'\\\"\n'\\\" See the file \"license.terms\" for information on usage and"
  },
  {
    "path": "doc/panedwindow.n",
    "chars": 14449,
    "preview": "'\\\"\n'\\\" Copyright (c) 1992 The Regents of the University of California.\n'\\\" Copyright (c) 1994-1996 Sun Microsystems, In"
  },
  {
    "path": "doc/photo.n",
    "chars": 35310,
    "preview": "'\\\"\n'\\\" Copyright (c) 1994 The Australian National University\n'\\\" Copyright (c) 1994-1997 Sun Microsystems, Inc.\n'\\\"\n'\\\""
  },
  {
    "path": "doc/place.n",
    "chars": 11585,
    "preview": "'\\\"\n'\\\" Copyright (c) 1992 The Regents of the University of California.\n'\\\" Copyright (c) 1994-1996 Sun Microsystems, In"
  },
  {
    "path": "doc/popup.n",
    "chars": 1502,
    "preview": "'\\\"\n'\\\" Copyright (c) 1994-1996 Sun Microsystems, Inc.\n'\\\"\n'\\\" See the file \"license.terms\" for information on usage and"
  },
  {
    "path": "doc/print.n",
    "chars": 2319,
    "preview": ".\\\" Text automatically generated by txt2man\n'\\\"\n'\\\" Copyright (c) 2021 Kevin Walzer\n'\\\"\n'\\\" See the file \"license.terms\""
  },
  {
    "path": "doc/radiobutton.n",
    "chars": 12176,
    "preview": "'\\\"\n'\\\" Copyright (c) 1990-1994 The Regents of the University of California.\n'\\\" Copyright (c) 1994-1996 Sun Microsystem"
  },
  {
    "path": "doc/raise.n",
    "chars": 1974,
    "preview": "'\\\"\n'\\\" Copyright (c) 1990 The Regents of the University of California.\n'\\\" Copyright (c) 1994-1996 Sun Microsystems, In"
  },
  {
    "path": "doc/scale.n",
    "chars": 10980,
    "preview": "'\\\"\n'\\\" Copyright (c) 1990-1994 The Regents of the University of California.\n'\\\" Copyright (c) 1994-1996 Sun Microsystem"
  },
  {
    "path": "doc/scrollbar.n",
    "chars": 13832,
    "preview": "'\\\"\n'\\\" Copyright (c) 1990-1994 The Regents of the University of California.\n'\\\" Copyright (c) 1994-1996 Sun Microsystem"
  },
  {
    "path": "doc/selection.n",
    "chars": 10095,
    "preview": "'\\\"\n'\\\" Copyright (c) 1990-1994 The Regents of the University of California.\n'\\\" Copyright (c) 1994-1996 Sun Microsystem"
  },
  {
    "path": "doc/send.n",
    "chars": 4621,
    "preview": "'\\\"\n'\\\" Copyright (c) 1990-1994 The Regents of the University of California.\n'\\\" Copyright (c) 1994-1996 Sun Microsystem"
  },
  {
    "path": "doc/spinbox.n",
    "chars": 27787,
    "preview": "'\\\"\n'\\\" Copyright (c) 2000 Jeffrey Hobbs.\n'\\\" Copyright (c) 2000 Ajuba Solutions.\n'\\\"\n'\\\" See the file \"license.terms\" f"
  },
  {
    "path": "doc/sysnotify.n",
    "chars": 2013,
    "preview": ".\\\" Text automatically generated by txt2man\n'\\\"\n'\\\" Copyright (c) 2020 Kevin Walzer\n'\\\"\n'\\\" See the file \"license.terms\""
  },
  {
    "path": "doc/systray.n",
    "chars": 3302,
    "preview": ".\\\" Text automatically generated by txt2man\n'\\\"\n'\\\" Copyright (c) 2020 Kevin Walzer\n'\\\"\n'\\\" See the file \"license.terms\""
  },
  {
    "path": "doc/text.n",
    "chars": 114126,
    "preview": "'\\\"\n'\\\" Copyright (c) 1992 The Regents of the University of California.\n'\\\" Copyright (c) 1994-1996 Sun Microsystems, In"
  },
  {
    "path": "doc/tk.n",
    "chars": 7521,
    "preview": "'\\\"\n'\\\" Copyright (c) 1992 The Regents of the University of California.\n'\\\" Copyright (c) 1994-1996 Sun Microsystems, In"
  },
  {
    "path": "doc/tk_mac.n",
    "chars": 10640,
    "preview": "'\\\"\n'\\\" Copyright (c) 2011 Kevin Walzer\n'\\\" Copyright (c) 2011 Donal K. Fellows\n'\\\"\n'\\\" See the file \"license.terms\" for"
  },
  {
    "path": "doc/tkerror.n",
    "chars": 1488,
    "preview": "'\\\"\n'\\\" Copyright (c) 1990-1994 The Regents of the University of California.\n'\\\" Copyright (c) 1994-1996 Sun Microsystem"
  },
  {
    "path": "doc/tkvars.n",
    "chars": 7071,
    "preview": "'\\\"\n'\\\" Copyright (c) 1990-1994 The Regents of the University of California.\n'\\\" Copyright (c) 1994-1996 Sun Microsystem"
  },
  {
    "path": "doc/tkwait.n",
    "chars": 2096,
    "preview": "'\\\"\n'\\\" Copyright (c) 1992 The Regents of the University of California.\n'\\\" Copyright (c) 1994-1996 Sun Microsystems, In"
  },
  {
    "path": "doc/toplevel.n",
    "chars": 8114,
    "preview": "'\\\"\n'\\\" Copyright (c) 1990-1994 The Regents of the University of California.\n'\\\" Copyright (c) 1994-1996 Sun Microsystem"
  },
  {
    "path": "doc/ttk_Geometry.3",
    "chars": 8048,
    "preview": "'\\\"\n'\\\" Copyright (c) 2004 Joe English\n'\\\"\n.TH Geometry 3 8.5 Tk \"Tk Themed Widget\"\n.so man.macros\n.BS\n.SH NAME\nTtk_Make"
  },
  {
    "path": "doc/ttk_Theme.3",
    "chars": 998,
    "preview": "'\\\"\n'\\\" Copyright (c) 2003 Joe English\n'\\\"\n'\\\" See the file \"license.terms\" for information on usage and redistribution\n"
  },
  {
    "path": "doc/ttk_button.n",
    "chars": 3592,
    "preview": "'\\\"\n'\\\" Copyright (c) 2004 Joe English\n'\\\"\n'\\\" See the file \"license.terms\" for information on usage and redistribution\n"
  },
  {
    "path": "doc/ttk_checkbutton.n",
    "chars": 3476,
    "preview": "'\\\"\n'\\\" Copyright (c) 2004 Joe English\n'\\\"\n'\\\" See the file \"license.terms\" for information on usage and redistribution\n"
  },
  {
    "path": "doc/ttk_combobox.n",
    "chars": 5764,
    "preview": "'\\\"\n'\\\" Copyright (c) 2004 Joe English\n'\\\"\n'\\\" See the file \"license.terms\" for information on usage and redistribution\n"
  },
  {
    "path": "doc/ttk_entry.n",
    "chars": 17894,
    "preview": "'\\\"\n'\\\" Copyright (c) 1994-1996 Sun Microsystems, Inc.\n'\\\" Copyright (c) 1998-2000 Scriptics Corporation.\n'\\\" Copyright "
  },
  {
    "path": "doc/ttk_frame.n",
    "chars": 2210,
    "preview": "'\\\"\n'\\\" Copyright (c) 2005 Joe English\n'\\\"\n'\\\" See the file \"license.terms\" for information on usage and redistribution\n"
  },
  {
    "path": "doc/ttk_image.n",
    "chars": 3783,
    "preview": "'\\\"\n'\\\" Copyright (c) 2004 Joe English\n'\\\"\n'\\\" See the file \"license.terms\" for information on usage and redistribution\n"
  },
  {
    "path": "doc/ttk_intro.n",
    "chars": 6486,
    "preview": "'\\\"\n'\\\" Copyright (c) 2004 Joe English\n'\\\"\n'\\\" See the file \"license.terms\" for information on usage and redistribution\n"
  },
  {
    "path": "doc/ttk_label.n",
    "chars": 2086,
    "preview": "'\\\"\n'\\\" Copyright (c) 2004 Joe English\n'\\\"\n'\\\" See the file \"license.terms\" for information on usage and redistribution\n"
  },
  {
    "path": "doc/ttk_labelframe.n",
    "chars": 3810,
    "preview": "'\\\"\n'\\\" Copyright (c) 2005 Joe English\n'\\\"\n'\\\" See the file \"license.terms\" for information on usage and redistribution\n"
  },
  {
    "path": "doc/ttk_menubutton.n",
    "chars": 2342,
    "preview": "'\\\"\n'\\\" Copyright (c) 2004 Joe English\n'\\\"\n'\\\" See the file \"license.terms\" for information on usage and redistribution\n"
  },
  {
    "path": "doc/ttk_notebook.n",
    "chars": 11736,
    "preview": "'\\\"\n'\\\" Copyright (c) 2004 Joe English\n'\\\"\n'\\\" See the file \"license.terms\" for information on usage and redistribution\n"
  },
  {
    "path": "doc/ttk_panedwindow.n",
    "chars": 5428,
    "preview": "'\\\"\n'\\\" Copyright (c) 2005 Joe English\n'\\\"\n'\\\" See the file \"license.terms\" for information on usage and redistribution\n"
  },
  {
    "path": "doc/ttk_progressbar.n",
    "chars": 4139,
    "preview": "'\\\"\n'\\\" Copyright (c) 2005 Joe English\n'\\\"\n'\\\" See the file \"license.terms\" for information on usage and redistribution\n"
  },
  {
    "path": "doc/ttk_radiobutton.n",
    "chars": 3234,
    "preview": "'\\\"\n'\\\" Copyright (c) 2004 Joe English\n'\\\"\n'\\\" See the file \"license.terms\" for information on usage and redistribution\n"
  },
  {
    "path": "doc/ttk_scale.n",
    "chars": 4129,
    "preview": ".\\\"\n.\\\" Copyright (c) 2008 Donal Fellows\n.\\\"\n.\\\" See the file \"license.terms\" for information on usage and redistributio"
  },
  {
    "path": "doc/ttk_scrollbar.n",
    "chars": 7094,
    "preview": "'\\\"\n'\\\" Copyright (c) 1994-1996 Sun Microsystems, Inc.\n'\\\" Copyright (c) 2004 Joe English\n'\\\"\n'\\\" See the file \"license."
  }
]

// ... and 840 more files (download for full content)

About this extraction

This page contains the full source code of the tcltk/tk GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 1040 files (18.3 MB), approximately 4.8M tokens, and a symbol index with 5770 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!