mirror of
https://git.FreeBSD.org/ports.git
synced 2025-01-23 09:10:43 +00:00
- Dropping tcl8.0 support
- This has no effect on japanese/tcl80 and japanese/tk80 2009-03-22 x11-toolkits/tk80: tcl8.0 support dropped
This commit is contained in:
parent
76a2bce6be
commit
1ec39f7239
Notes:
svn2git
2021-03-31 03:12:20 +00:00
svn path=/head/; revision=237312
1
MOVED
1
MOVED
@ -4102,3 +4102,4 @@ misc/koffice-i18n-uz|editors/koffice-i18n-uz|2009-06-29|moved to editors categor
|
||||
misc/koffice-i18n-ven|editors/koffice-i18n-ven|2009-06-29|moved to editors category
|
||||
misc/koffice-i18n-xh|editors/koffice-i18n-xh|2009-06-29|moved to editors category
|
||||
misc/koffice-i18n-zu|editors/koffice-i18n-zu|2009-06-29|moved to editors category
|
||||
x11-toolkits/tk80||2009-07-07|Has expired: tcl8.0 support dropped
|
||||
|
@ -265,7 +265,6 @@
|
||||
SUBDIR += tile
|
||||
SUBDIR += tix
|
||||
SUBDIR += tk-wrapper
|
||||
SUBDIR += tk80
|
||||
SUBDIR += tk82
|
||||
SUBDIR += tk83
|
||||
SUBDIR += tk84
|
||||
|
@ -1,307 +0,0 @@
|
||||
# New ports collection makefile for: tk8.0
|
||||
# Date created: 19 August 1997
|
||||
# Whom: jkh
|
||||
#
|
||||
# $FreeBSD$
|
||||
#
|
||||
|
||||
PORTNAME= tk
|
||||
PORTVERSION= 8.0.5
|
||||
PORTREVISION= 6
|
||||
CATEGORIES= x11-toolkits tk
|
||||
MASTER_SITES= ${MASTER_SITE_TCLTK}
|
||||
MASTER_SITE_SUBDIR= tcl8_0
|
||||
DISTNAME= ${PORTNAME}${PORTVERSION}
|
||||
|
||||
MAINTAINER= mm@FreeBSD.org
|
||||
COMMENT= Graphical toolkit for TCL
|
||||
|
||||
USE_TCL= 80
|
||||
USE_TCL_BUILD= 80
|
||||
|
||||
NO_LATEST_LINK= yes
|
||||
USE_XORG= x11
|
||||
USE_LDCONFIG= yes
|
||||
WRKSRC= ${WRKDIR}/${PORTNAME}${PORTVERSION}/unix
|
||||
GNU_CONFIGURE= yes
|
||||
CONFIGURE_ARGS= --enable-shared
|
||||
CONFIGURE_ENV= PORTSDIR=${PORTSDIR} TK_LIB_FILE=${TK_LIB_FILE}
|
||||
TK_LIB_FILE= ${TK_LIB}.${SHLIB_MAJOR}
|
||||
|
||||
SHLIB_MAJOR= 1
|
||||
SHLIB_MINOR= 4
|
||||
MAKEFILE= makefile
|
||||
TK_LIB= libtk80.so
|
||||
|
||||
OPTIONS= TK80_MAN "Install tk 8.0 manpages" off
|
||||
|
||||
DEPRECATED= tcl8.0 support is going to be dropped
|
||||
EXPIRATION_DATE= 2009-03-22
|
||||
|
||||
.include <bsd.port.pre.mk>
|
||||
|
||||
.if !defined(NO_INSTALL_MANPAGES) && defined(WITH_TK80_MAN)
|
||||
|
||||
MAN1= wish.1
|
||||
MAN3= 3DBorder.3 BindTable.3 CanvPsY.3 CanvTkwin.3 CanvTxtInfo.3 \
|
||||
Clipboard.3 ClrSelect.3 ConfigWidg.3 ConfigWind.3 CoordToWin.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 FreeXId.3 GeomReq.3 GetAnchor.3 GetBitmap.3 \
|
||||
GetCapStyl.3 GetClrmap.3 GetColor.3 GetCursor.3 GetFont.3 GetGC.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 HandleEvent.3 IdToWindow.3 \
|
||||
ImgChanged.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 SetClass.3 SetGrid.3 SetVisual.3 \
|
||||
StrictMotif.3 TextLayout.3 Tk_Init.3 Tk_Main.3 WindowId.3
|
||||
MANN= bell.n bind.n bindtags.n bitmap.n button.n canvas.n checkbutton.n \
|
||||
chooseColor.n clipboard.n destroy.n dialog.n entry.n event.n \
|
||||
focus.n focusNext.n font.n frame.n getOpenFile.n grab.n \
|
||||
grid.n image.n label.n listbox.n loadTk.n lower.n menu.n menubar.n \
|
||||
menubutton.n message.n messageBox.n option.n optionMenu.n options.n \
|
||||
pack-old.n palette.n photo.n place.n popup.n radiobutton.n \
|
||||
raise.n scale.n scrollbar.n selection.n send.n text.n tk.n \
|
||||
tkerror.n tkvars.n tkwait.n toplevel.n winfo.n wm.n
|
||||
|
||||
# MLINKS generated via awk '/ln/ {print "\t" $2,$3,"\\"}' unix/mkLinks
|
||||
MLINKS= 3DBorder.3 Tk_Get3DBorder.3 \
|
||||
3DBorder.3 Tk_Draw3DRectangle.3 \
|
||||
3DBorder.3 Tk_Fill3DRectangle.3 \
|
||||
3DBorder.3 Tk_Draw3DPolygon.3 \
|
||||
3DBorder.3 Tk_Fill3DPolygon.3 \
|
||||
3DBorder.3 Tk_3DVerticalBevel.3 \
|
||||
3DBorder.3 Tk_3DHorizontalBevel.3 \
|
||||
3DBorder.3 Tk_SetBackgroundFromBorder.3 \
|
||||
3DBorder.3 Tk_NameOf3DBorder.3 \
|
||||
3DBorder.3 Tk_3DBorderColor.3 \
|
||||
3DBorder.3 Tk_3DBorderGC.3 \
|
||||
3DBorder.3 Tk_Free3DBorder.3 \
|
||||
BindTable.3 Tk_CreateBindingTable.3 \
|
||||
BindTable.3 Tk_DeleteBindingTable.3 \
|
||||
BindTable.3 Tk_CreateBinding.3 \
|
||||
BindTable.3 Tk_DeleteBinding.3 \
|
||||
BindTable.3 Tk_GetBinding.3 \
|
||||
BindTable.3 Tk_GetAllBindings.3 \
|
||||
BindTable.3 Tk_DeleteAllBindings.3 \
|
||||
BindTable.3 Tk_BindEvent.3 \
|
||||
CanvPsY.3 Tk_CanvasPsY.3 \
|
||||
CanvPsY.3 Tk_CanvasPsBitmap.3 \
|
||||
CanvPsY.3 Tk_CanvasPsColor.3 \
|
||||
CanvPsY.3 Tk_CanvasPsFont.3 \
|
||||
CanvPsY.3 Tk_CanvasPsPath.3 \
|
||||
CanvPsY.3 Tk_CanvasPsStipple.3 \
|
||||
CanvTkwin.3 Tk_CanvasTkwin.3 \
|
||||
CanvTkwin.3 Tk_CanvasGetCoord.3 \
|
||||
CanvTkwin.3 Tk_CanvasDrawableCoords.3 \
|
||||
CanvTkwin.3 Tk_CanvasSetStippleOrigin.3 \
|
||||
CanvTkwin.3 Tk_CanvasWindowCoords.3 \
|
||||
CanvTkwin.3 Tk_CanvasEventuallyRedraw.3 \
|
||||
CanvTkwin.3 Tk_CanvasTagsOption.3 \
|
||||
CanvTxtInfo.3 Tk_CanvasTextInfo.3 \
|
||||
Clipboard.3 Tk_ClipboardClear.3 \
|
||||
Clipboard.3 Tk_ClipboardAppend.3 \
|
||||
ClrSelect.3 Tk_ClearSelection.3 \
|
||||
ConfigWidg.3 Tk_ConfigureWidget.3 \
|
||||
ConfigWidg.3 Tk_Offset.3 \
|
||||
ConfigWidg.3 Tk_ConfigureInfo.3 \
|
||||
ConfigWidg.3 Tk_ConfigureValue.3 \
|
||||
ConfigWidg.3 Tk_FreeOptions.3 \
|
||||
ConfigWind.3 Tk_ConfigureWindow.3 \
|
||||
ConfigWind.3 Tk_MoveWindow.3 \
|
||||
ConfigWind.3 Tk_ResizeWindow.3 \
|
||||
ConfigWind.3 Tk_MoveResizeWindow.3 \
|
||||
ConfigWind.3 Tk_SetWindowBorderWidth.3 \
|
||||
ConfigWind.3 Tk_ChangeWindowAttributes.3 \
|
||||
ConfigWind.3 Tk_SetWindowBackground.3 \
|
||||
ConfigWind.3 Tk_SetWindowBackgroundPixmap.3 \
|
||||
ConfigWind.3 Tk_SetWindowBorder.3 \
|
||||
ConfigWind.3 Tk_SetWindowBorderPixmap.3 \
|
||||
ConfigWind.3 Tk_SetWindowColormap.3 \
|
||||
ConfigWind.3 Tk_DefineCursor.3 \
|
||||
ConfigWind.3 Tk_UndefineCursor.3 \
|
||||
CoordToWin.3 Tk_CoordsToWindow.3 \
|
||||
CrtErrHdlr.3 Tk_CreateErrorHandler.3 \
|
||||
CrtErrHdlr.3 Tk_DeleteErrorHandler.3 \
|
||||
CrtGenHdlr.3 Tk_CreateGenericHandler.3 \
|
||||
CrtGenHdlr.3 Tk_DeleteGenericHandler.3 \
|
||||
CrtImgType.3 Tk_CreateImageType.3 \
|
||||
CrtImgType.3 Tk_GetImageMasterData.3 \
|
||||
CrtItemType.3 Tk_CreateItemType.3 \
|
||||
CrtItemType.3 Tk_GetItemTypes.3 \
|
||||
CrtPhImgFmt.3 Tk_CreatePhotoImageFormat.3 \
|
||||
CrtSelHdlr.3 Tk_CreateSelHandler.3 \
|
||||
CrtSelHdlr.3 Tk_DeleteSelHandler.3 \
|
||||
CrtWindow.3 Tk_CreateWindow.3 \
|
||||
CrtWindow.3 Tk_CreateWindowFromPath.3 \
|
||||
CrtWindow.3 Tk_DestroyWindow.3 \
|
||||
CrtWindow.3 Tk_MakeWindowExist.3 \
|
||||
DeleteImg.3 Tk_DeleteImage.3 \
|
||||
DrawFocHlt.3 Tk_DrawFocusHighlight.3 \
|
||||
EventHndlr.3 Tk_CreateEventHandler.3 \
|
||||
EventHndlr.3 Tk_DeleteEventHandler.3 \
|
||||
FindPhoto.3 Tk_FindPhoto.3 \
|
||||
FindPhoto.3 Tk_PhotoPutBlock.3 \
|
||||
FindPhoto.3 Tk_PhotoPutZoomedBlock.3 \
|
||||
FindPhoto.3 Tk_PhotoGetImage.3 \
|
||||
FindPhoto.3 Tk_PhotoBlank.3 \
|
||||
FindPhoto.3 Tk_PhotoExpand.3 \
|
||||
FindPhoto.3 Tk_PhotoGetSize.3 \
|
||||
FindPhoto.3 Tk_PhotoSetSize.3 \
|
||||
FontId.3 Tk_FontId.3 \
|
||||
FontId.3 Tk_FontMetrics.3 \
|
||||
FontId.3 Tk_PostscriptFontName.3 \
|
||||
FreeXId.3 Tk_FreeXId.3 \
|
||||
GeomReq.3 Tk_GeometryRequest.3 \
|
||||
GeomReq.3 Tk_SetInternalBorder.3 \
|
||||
GetAnchor.3 Tk_GetAnchor.3 \
|
||||
GetAnchor.3 Tk_NameOfAnchor.3 \
|
||||
GetBitmap.3 Tk_GetBitmap.3 \
|
||||
GetBitmap.3 Tk_DefineBitmap.3 \
|
||||
GetBitmap.3 Tk_NameOfBitmap.3 \
|
||||
GetBitmap.3 Tk_SizeOfBitmap.3 \
|
||||
GetBitmap.3 Tk_FreeBitmap.3 \
|
||||
GetBitmap.3 Tk_GetBitmapFromData.3 \
|
||||
GetCapStyl.3 Tk_GetCapStyle.3 \
|
||||
GetCapStyl.3 Tk_NameOfCapStyle.3 \
|
||||
GetClrmap.3 Tk_GetColormap.3 \
|
||||
GetClrmap.3 Tk_FreeColormap.3 \
|
||||
GetColor.3 Tk_GetColor.3 \
|
||||
GetColor.3 Tk_GetColorByValue.3 \
|
||||
GetColor.3 Tk_NameOfColor.3 \
|
||||
GetColor.3 Tk_FreeColor.3 \
|
||||
GetCursor.3 Tk_GetCursor.3 \
|
||||
GetCursor.3 Tk_GetCursorFromData.3 \
|
||||
GetCursor.3 Tk_NameOfCursor.3 \
|
||||
GetCursor.3 Tk_FreeCursor.3 \
|
||||
GetFont.3 Tk_GetFont.3 \
|
||||
GetFont.3 Tk_NameOfFont.3 \
|
||||
GetFont.3 Tk_FreeFont.3 \
|
||||
GetGC.3 Tk_GetGC.3 \
|
||||
GetGC.3 Tk_FreeGC.3 \
|
||||
GetImage.3 Tk_GetImage.3 \
|
||||
GetImage.3 Tk_RedrawImage.3 \
|
||||
GetImage.3 Tk_SizeOfImage.3 \
|
||||
GetImage.3 Tk_FreeImage.3 \
|
||||
GetJoinStl.3 Tk_GetJoinStyle.3 \
|
||||
GetJoinStl.3 Tk_NameOfJoinStyle.3 \
|
||||
GetJustify.3 Tk_GetJustify.3 \
|
||||
GetJustify.3 Tk_NameOfJustify.3 \
|
||||
GetOption.3 Tk_GetOption.3 \
|
||||
GetPixels.3 Tk_GetPixels.3 \
|
||||
GetPixels.3 Tk_GetScreenMM.3 \
|
||||
GetPixmap.3 Tk_GetPixmap.3 \
|
||||
GetPixmap.3 Tk_FreePixmap.3 \
|
||||
GetRelief.3 Tk_GetRelief.3 \
|
||||
GetRelief.3 Tk_NameOfRelief.3 \
|
||||
GetRootCrd.3 Tk_GetRootCoords.3 \
|
||||
GetScroll.3 Tk_GetScrollInfo.3 \
|
||||
GetSelect.3 Tk_GetSelection.3 \
|
||||
GetUid.3 Tk_GetUid.3 \
|
||||
GetUid.3 Tk_Uid.3 \
|
||||
GetVRoot.3 Tk_GetVRootGeometry.3 \
|
||||
GetVisual.3 Tk_GetVisual.3 \
|
||||
HandleEvent.3 Tk_HandleEvent.3 \
|
||||
IdToWindow.3 Tk_IdToWindow.3 \
|
||||
ImgChanged.3 Tk_ImageChanged.3 \
|
||||
InternAtom.3 Tk_InternAtom.3 \
|
||||
InternAtom.3 Tk_GetAtomName.3 \
|
||||
MainLoop.3 Tk_MainLoop.3 \
|
||||
MainWin.3 Tk_MainWindow.3 \
|
||||
MaintGeom.3 Tk_MaintainGeometry.3 \
|
||||
MaintGeom.3 Tk_UnmaintainGeometry.3 \
|
||||
ManageGeom.3 Tk_ManageGeometry.3 \
|
||||
MapWindow.3 Tk_MapWindow.3 \
|
||||
MapWindow.3 Tk_UnmapWindow.3 \
|
||||
MeasureChar.3 Tk_MeasureChars.3 \
|
||||
MeasureChar.3 Tk_TextWidth.3 \
|
||||
MeasureChar.3 Tk_DrawChars.3 \
|
||||
MeasureChar.3 Tk_UnderlineChars.3 \
|
||||
MoveToplev.3 Tk_MoveToplevelWindow.3 \
|
||||
Name.3 Tk_Name.3 \
|
||||
Name.3 Tk_PathName.3 \
|
||||
Name.3 Tk_NameToWindow.3 \
|
||||
NameOfImg.3 Tk_NameOfImage.3 \
|
||||
OwnSelect.3 Tk_OwnSelection.3 \
|
||||
ParseArgv.3 Tk_ParseArgv.3 \
|
||||
QWinEvent.3 Tk_QueueWindowEvent.3 \
|
||||
Restack.3 Tk_RestackWindow.3 \
|
||||
RestrictEv.3 Tk_RestrictEvents.3 \
|
||||
SetAppName.3 Tk_SetAppName.3 \
|
||||
SetClass.3 Tk_SetClass.3 \
|
||||
SetClass.3 Tk_Class.3 \
|
||||
SetGrid.3 Tk_SetGrid.3 \
|
||||
SetGrid.3 Tk_UnsetGrid.3 \
|
||||
SetVisual.3 Tk_SetWindowVisual.3 \
|
||||
StrictMotif.3 Tk_StrictMotif.3 \
|
||||
TextLayout.3 Tk_ComputeTextLayout.3 \
|
||||
TextLayout.3 Tk_FreeTextLayout.3 \
|
||||
TextLayout.3 Tk_DrawTextLayout.3 \
|
||||
TextLayout.3 Tk_UnderlineTextLayout.3 \
|
||||
TextLayout.3 Tk_PointToChar.3 \
|
||||
TextLayout.3 Tk_CharBbox.3 \
|
||||
TextLayout.3 Tk_DistanceToTextLayout.3 \
|
||||
TextLayout.3 Tk_IntersectTextLayout.3 \
|
||||
TextLayout.3 Tk_TextLayoutToPostscript.3 \
|
||||
WindowId.3 Tk_WindowId.3 \
|
||||
WindowId.3 Tk_Parent.3 \
|
||||
WindowId.3 Tk_Display.3 \
|
||||
WindowId.3 Tk_DisplayName.3 \
|
||||
WindowId.3 Tk_ScreenNumber.3 \
|
||||
WindowId.3 Tk_Screen.3 \
|
||||
WindowId.3 Tk_X.3 \
|
||||
WindowId.3 Tk_Y.3 \
|
||||
WindowId.3 Tk_Width.3 \
|
||||
WindowId.3 Tk_Height.3 \
|
||||
WindowId.3 Tk_Changes.3 \
|
||||
WindowId.3 Tk_Attributes.3 \
|
||||
WindowId.3 Tk_IsMapped.3 \
|
||||
WindowId.3 Tk_IsTopLevel.3 \
|
||||
WindowId.3 Tk_ReqWidth.3 \
|
||||
WindowId.3 Tk_ReqHeight.3 \
|
||||
WindowId.3 Tk_InternalBorderWidth.3 \
|
||||
WindowId.3 Tk_Visual.3 \
|
||||
WindowId.3 Tk_Depth.3 \
|
||||
WindowId.3 Tk_Colormap.3 \
|
||||
chooseColor.n tk_chooseColor.n \
|
||||
dialog.n tk_dialog.n \
|
||||
focusNext.n tk_focusNext.n \
|
||||
focusNext.n tk_focusPrev.n \
|
||||
focusNext.n tk_focusFollowsMouse.n \
|
||||
getOpenFile.n tk_getOpenFile.n \
|
||||
getOpenFile.n tk_getSaveFile.n \
|
||||
menubar.n tk_menuBar.n \
|
||||
menubar.n tk_bindForTraversal.n \
|
||||
messageBox.n tk_messageBox.n \
|
||||
optionMenu.n tk_optionMenu.n \
|
||||
pack-old.n pack.n \
|
||||
palette.n tk_setPalette.n \
|
||||
palette.n tk_bisque.n \
|
||||
popup.n tk_popup.n
|
||||
|
||||
.endif
|
||||
|
||||
post-patch:
|
||||
@${REINPLACE_CMD} -e 's|X11/Intrinsic.h|X11/Xlib.h|g' ${WRKSRC}/configure
|
||||
@${REINPLACE_CMD} -e 's/\.[3n]/&.gz/g' ${WRKSRC}/mkLinks
|
||||
|
||||
post-configure:
|
||||
@${CP} ${FILESDIR}/Makefile.lib ${WRKSRC}
|
||||
@${CP} ${FILESDIR}/makefile ${WRKSRC}
|
||||
|
||||
pre-build:
|
||||
@cd ${WRKSRC} && ${MAKE} -f Makefile.lib PREFIX=${PREFIX} \
|
||||
SHLIB_MAJOR=${SHLIB_MAJOR} SHLIB_MINOR=${SHLIB_MINOR}
|
||||
|
||||
post-install:
|
||||
${LN} -sf ${TK_LIB_FILE} ${PREFIX}/lib/${TK_LIB}
|
||||
.if !defined(NO_INSTALL_MANPAGES) && defined(WITH_TK80_MAN)
|
||||
@cd ${WRKSRC} && ${MAKE} -f Makefile install-man
|
||||
.endif
|
||||
|
||||
test:
|
||||
cd ${WRKSRC}; make test
|
||||
|
||||
.include <bsd.port.post.mk>
|
@ -1,3 +0,0 @@
|
||||
MD5 (tk8.0.5.tar.gz) = 3ae92b86c01ec99a1872697294839e64
|
||||
SHA256 (tk8.0.5.tar.gz) = 58fac16495c213331998feac44e2f5a21911e6b6f4b00d6fb4bdac0084809d8c
|
||||
SIZE (tk8.0.5.tar.gz) = 2033223
|
@ -1,58 +0,0 @@
|
||||
NOPROFILE= yes
|
||||
LIB= tk80
|
||||
TK_LIBRARY= ${PREFIX}/lib/tk80
|
||||
CFLAGS+= -I. -I./../generic -I../bitmaps -I$(LOCALBASE)/include \
|
||||
-I${PREFIX}/include/tcl8.0/generic \
|
||||
-DHAVE_UNISTD_H=1 -DHAVE_LIMITS_H=1 -DSTDC_HEADERS=1 \
|
||||
-DHAVE_SYS_TIME_H=1 -DTIME_WITH_SYS_TIME=1 \
|
||||
-DTK_LIBRARY=\"${TK_LIBRARY}\"
|
||||
|
||||
SRCS= \
|
||||
tk3d.c tkArgv.c \
|
||||
tkAtom.c tkBind.c \
|
||||
tkBitmap.c tkClipboard.c \
|
||||
tkCmds.c tkColor.c \
|
||||
tkConfig.c tkCursor.c \
|
||||
tkError.c tkEvent.c \
|
||||
tkFocus.c tkFont.c \
|
||||
tkGet.c tkGC.c \
|
||||
tkGeometry.c tkGrab.c \
|
||||
tkGrid.c \
|
||||
tkMain.c tkOption.c \
|
||||
tkPack.c tkPlace.c \
|
||||
tkSelect.c \
|
||||
tkUtil.c \
|
||||
tkVisual.c tkWindow.c \
|
||||
tkButton.c \
|
||||
tkEntry.c tkFrame.c \
|
||||
tkListbox.c tkMenu.c \
|
||||
tkMenubutton.c tkMessage.c \
|
||||
tkScale.c tkScrollbar.c \
|
||||
tkCanvas.c tkCanvArc.c \
|
||||
tkCanvBmap.c tkCanvImg.c \
|
||||
tkCanvLine.c tkCanvPoly.c \
|
||||
tkCanvPs.c tkCanvText.c \
|
||||
tkCanvUtil.c \
|
||||
tkCanvWind.c tkRectOval.c \
|
||||
tkTrig.c tkImage.c \
|
||||
tkImgBmap.c tkImgGIF.c \
|
||||
tkImgPPM.c \
|
||||
tkImgPhoto.c tkText.c \
|
||||
tkTextBTree.c tkTextDisp.c \
|
||||
tkTextIndex.c tkTextMark.c \
|
||||
tkTextTag.c tkTextWind.c \
|
||||
tkMenuDraw.c tkTextImage.c \
|
||||
tkUnix.c tkUnixCursor.c tkUnixDraw.c \
|
||||
tkUnixEvent.c tkUnixInit.c \
|
||||
tkUnixSelect.c tkUnixWm.c \
|
||||
tkUnixXId.c tkUnix3d.c\
|
||||
tkUnixButton.c tkUnixColor.c \
|
||||
tkUnixEmbed.c \
|
||||
tkUnixFocus.c tkUnixFont.c\
|
||||
tkUnixMenu.c tkUnixDialog.c\
|
||||
tkUnixMenubu.c tkUnixScale.c\
|
||||
tkUnixScrlbr.c tkUnixSend.c
|
||||
|
||||
.PATH: ../generic
|
||||
|
||||
.include <bsd.lib.mk>
|
@ -1,7 +0,0 @@
|
||||
all:
|
||||
make -f Makefile wish
|
||||
test:
|
||||
make -f Makefile test
|
||||
install:
|
||||
make -f Makefile install
|
||||
|
@ -1,37 +0,0 @@
|
||||
--- configure.orig Mon Mar 8 22:53:50 1999
|
||||
+++ configure Thu Apr 29 11:23:44 1999
|
||||
@@ -874,14 +874,14 @@
|
||||
withval="$with_tcl"
|
||||
TCL_BIN_DIR=$withval
|
||||
else
|
||||
- TCL_BIN_DIR=`cd ../../tcl8.0$TK_PATCH_LEVEL/unix; pwd`
|
||||
+ TCL_BIN_DIR=${prefix}/lib/tcl8.0
|
||||
fi
|
||||
|
||||
if test ! -d $TCL_BIN_DIR; then
|
||||
{ echo "configure: error: Tcl directory $TCL_BIN_DIR doesn't exist" 1>&2; exit 1; }
|
||||
fi
|
||||
-if test ! -f $TCL_BIN_DIR/Makefile; then
|
||||
- { echo "configure: error: There's no Makefile in $TCL_BIN_DIR; perhaps you didn't specify the Tcl *build* directory (not the toplevel Tcl directory) or you forgot to configure Tcl?" 1>&2; exit 1; }
|
||||
+if test ! -f $TCL_BIN_DIR/tclConfig.sh; then
|
||||
+ { echo "configure: error: There's no tclConfig.sh in $TCL_BIN_DIR; perhaps your Tcl installation has been corrupted. Verify the installation of Tcl8.0 and try again." 1>&2; exit 1; }
|
||||
fi
|
||||
|
||||
#--------------------------------------------------------------------
|
||||
@@ -921,6 +921,7 @@
|
||||
CFLAGS_DEBUG=$TCL_CFLAGS_DEBUG
|
||||
CFLAGS_OPTIMIZE=$TCL_CFLAGS_OPTIMIZE
|
||||
EXTRA_CFLAGS=$TCL_EXTRA_CFLAGS
|
||||
+TCL_SRC_DIR=${prefix}/include/tcl${TCL_VERSION}
|
||||
|
||||
LIB_RUNTIME_DIR='${LIB_RUNTIME_DIR}'
|
||||
|
||||
@@ -2387,7 +2388,7 @@
|
||||
if test "$ok" = "yes" -a "${SHLIB_SUFFIX}" != ""; then
|
||||
TK_SHARED_BUILD=1
|
||||
TK_SHLIB_CFLAGS="${SHLIB_CFLAGS}"
|
||||
- TK_LIB_FILE=libtk${TCL_SHARED_LIB_SUFFIX}
|
||||
+ TK_LIB_FILE=${TK_LIB_FILE}
|
||||
MAKE_LIB="\${SHLIB_LD} -o \${TK_LIB_FILE} \${OBJS} \$(TK_LD_SEARCH_FLAGS) ${SHLIB_LD_LIBS}"
|
||||
RANLIB=":"
|
||||
else
|
@ -1,101 +0,0 @@
|
||||
--- Makefile.in.orig Tue Mar 9 07:53:50 1999
|
||||
+++ Makefile.in Mon Mar 12 16:55:45 2007
|
||||
@@ -56,7 +56,9 @@
|
||||
BIN_DIR = $(exec_prefix)/bin
|
||||
|
||||
# Directory in which to install the include file tk.h:
|
||||
-INCLUDE_INSTALL_DIR = $(INSTALL_ROOT)$(prefix)/include
|
||||
+INCLUDE_INSTALL_DIR = $(INSTALL_ROOT)$(prefix)/include/tk$(VERSION)
|
||||
+GENERIC_INCLUDE_INSTALL_DIR = $(INCLUDE_INSTALL_DIR)/generic
|
||||
+UNIX_INCLUDE_INSTALL_DIR = $(INCLUDE_INSTALL_DIR)/unix
|
||||
|
||||
# Top-level directory for manual entries:
|
||||
MAN_INSTALL_DIR = $(INSTALL_ROOT)$(prefix)/man
|
||||
@@ -112,7 +114,7 @@
|
||||
|
||||
# Libraries to use when linking. This definition is determined by the
|
||||
# configure script.
|
||||
-LIBS = @TCL_BUILD_LIB_SPEC@ @LIBS@ $(X11_LIB_SWITCHES) @DL_LIBS@ @MATH_LIBS@ -lc
|
||||
+LIBS = -L${PREFIX}/lib -ltcl80 @LIBS@ $(X11_LIB_SWITCHES) @DL_LIBS@ @MATH_LIBS@ -lc
|
||||
|
||||
# To turn off the security checks that disallow incoming sends when
|
||||
# the X server appears to be insecure, reverse the comments on the
|
||||
@@ -148,7 +150,7 @@
|
||||
# "install" around; better to use the install-sh script that comes
|
||||
# with the distribution, which is slower but guaranteed to work.
|
||||
|
||||
-INSTALL = @srcdir@/install-sh -c
|
||||
+INSTALL = install -c
|
||||
INSTALL_PROGRAM = ${INSTALL}
|
||||
INSTALL_DATA = ${INSTALL} -m 644
|
||||
|
||||
@@ -311,6 +313,11 @@
|
||||
@MAKE_LIB@
|
||||
$(RANLIB) ${TK_LIB_FILE}
|
||||
|
||||
+libtk80.a: ${OBJS}
|
||||
+ rm -f libtk80.a
|
||||
+ ar cr libtk80.a ${OBJS}
|
||||
+ ranlib libtk80.a
|
||||
+
|
||||
# Make target which outputs the list of the .o contained in the Tk lib
|
||||
# usefull to build a single big shared library containing Tcl/Tk and other
|
||||
# extensions. used for the Tcl Plugin. -- dl
|
||||
@@ -359,13 +366,13 @@
|
||||
TK_LIBRARY=$(TOP_DIR)/library; export TK_LIBRARY; \
|
||||
./tktest
|
||||
|
||||
-install: install-binaries install-libraries install-demos install-man
|
||||
+install: install-binaries install-libraries install-demos
|
||||
|
||||
# Note: before running ranlib below, must cd to target directory because
|
||||
# some ranlibs write to current directory, and this might not always be
|
||||
# possible (e.g. if installing as root).
|
||||
|
||||
-install-binaries: $(TK_LIB_FILE) wish
|
||||
+install-binaries: $(TK_LIB_FILE) libtk80.a wish
|
||||
@for i in $(LIB_INSTALL_DIR) $(BIN_INSTALL_DIR) ; \
|
||||
do \
|
||||
if [ ! -d $$i ] ; then \
|
||||
@@ -379,13 +386,19 @@
|
||||
@$(INSTALL_DATA) $(TK_LIB_FILE) $(LIB_INSTALL_DIR)/$(TK_LIB_FILE)
|
||||
@(cd $(LIB_INSTALL_DIR); $(RANLIB) $(TK_LIB_FILE))
|
||||
@chmod 555 $(LIB_INSTALL_DIR)/$(TK_LIB_FILE)
|
||||
+ @echo "Installing libtk80.a"
|
||||
+ @$(INSTALL_DATA) libtk80.a $(LIB_INSTALL_DIR)/libtk80.a
|
||||
+ @(cd $(LIB_INSTALL_DIR); $(RANLIB) libtk80.a)
|
||||
+ @chmod 555 $(LIB_INSTALL_DIR)/libtk80.a
|
||||
@echo "Installing wish"
|
||||
@$(INSTALL_PROGRAM) wish $(BIN_INSTALL_DIR)/wish$(VERSION)
|
||||
@echo "Installing tkConfig.sh"
|
||||
- @$(INSTALL_DATA) tkConfig.sh $(LIB_INSTALL_DIR)/tkConfig.sh
|
||||
+ @mkdir -p $(LIB_INSTALL_DIR)/tk$(VERSION)
|
||||
+ @$(INSTALL_DATA) tkConfig.sh $(LIB_INSTALL_DIR)/tk$(VERSION)/tkConfig.sh
|
||||
|
||||
install-libraries:
|
||||
@for i in $(INSTALL_ROOT)$(prefix)/lib $(INCLUDE_INSTALL_DIR) \
|
||||
+ $(GENERIC_INCLUDE_INSTALL_DIR) $(UNIX_INCLUDE_INSTALL_DIR) \
|
||||
$(SCRIPT_INSTALL_DIR) $(SCRIPT_INSTALL_DIR)/images; \
|
||||
do \
|
||||
if [ ! -d $$i ] ; then \
|
||||
@@ -395,8 +408,18 @@
|
||||
else true; \
|
||||
fi; \
|
||||
done;
|
||||
- @echo "Installing tk.h"
|
||||
- @$(INSTALL_DATA) $(GENERIC_DIR)/tk.h $(INCLUDE_INSTALL_DIR)/tk.h
|
||||
+ @echo "Installing headers"
|
||||
+ @for i in $(GENERIC_DIR)/*.h ; \
|
||||
+ do \
|
||||
+ echo "Installing $$i"; \
|
||||
+ $(INSTALL_DATA) $$i $(GENERIC_INCLUDE_INSTALL_DIR); \
|
||||
+ done;
|
||||
+ @for i in $(UNIX_DIR)/*.h ; \
|
||||
+ do \
|
||||
+ echo "Installing $$i"; \
|
||||
+ $(INSTALL_DATA) $$i $(UNIX_INCLUDE_INSTALL_DIR); \
|
||||
+ done;
|
||||
+ @ln -sf $(GENERIC_INCLUDE_INSTALL_DIR)/tk.h $(INCLUDE_INSTALL_DIR)/tk.h
|
||||
for i in $(SRC_DIR)/library/*.tcl $(SRC_DIR)/library/tclIndex $(SRC_DIR)/library/prolog.ps $(UNIX_DIR)/tkAppInit.c; \
|
||||
do \
|
||||
echo "Installing $$i"; \
|
@ -1,918 +0,0 @@
|
||||
*** tkText.c 1997/07/04 22:39:41 2.0
|
||||
--- ../generic/tkText.c 1997/08/15 22:25:21
|
||||
***************
|
||||
*** 866,871 ****
|
||||
--- 866,872 ----
|
||||
|| (textPtr->selTagPtr->spacing2String != NULL)
|
||||
|| (textPtr->selTagPtr->spacing3String != NULL)
|
||||
|| (textPtr->selTagPtr->tabString != NULL)
|
||||
+ || (textPtr->selTagPtr->elideString != NULL)
|
||||
|| (textPtr->selTagPtr->underlineString != NULL)
|
||||
|| (textPtr->selTagPtr->wrapMode != NULL)) {
|
||||
textPtr->selTagPtr->affectsDisplay = 1;
|
||||
***************
|
||||
*** 1414,1420 ****
|
||||
}
|
||||
}
|
||||
}
|
||||
! if (segPtr->typePtr == &tkTextCharType) {
|
||||
memcpy((VOID *) buffer, (VOID *) (segPtr->body.chars
|
||||
+ offsetInSeg), (size_t) chunkSize);
|
||||
buffer += chunkSize;
|
||||
--- 1415,1421 ----
|
||||
}
|
||||
}
|
||||
}
|
||||
! if (segPtr->typePtr == &tkTextCharType && !TkTextIsElided(textPtr, &textPtr->selIndex)) {
|
||||
memcpy((VOID *) buffer, (VOID *) (segPtr->body.chars
|
||||
+ offsetInSeg), (size_t) chunkSize);
|
||||
buffer += chunkSize;
|
||||
***************
|
||||
*** 1555,1561 ****
|
||||
int argc; /* Number of arguments. */
|
||||
char **argv; /* Argument strings. */
|
||||
{
|
||||
! int backwards, exact, c, i, argsLeft, noCase, leftToScan;
|
||||
size_t length;
|
||||
int numLines, startingLine, startingChar, lineNum, firstChar, lastChar;
|
||||
int code, matchLength, matchChar, passes, stopLine, searchWholeText;
|
||||
--- 1556,1562 ----
|
||||
int argc; /* Number of arguments. */
|
||||
char **argv; /* Argument strings. */
|
||||
{
|
||||
! int backwards, exact, searchElide, c, i, argsLeft, noCase, leftToScan;
|
||||
size_t length;
|
||||
int numLines, startingLine, startingChar, lineNum, firstChar, lastChar;
|
||||
int code, matchLength, matchChar, passes, stopLine, searchWholeText;
|
||||
***************
|
||||
*** 1566,1571 ****
|
||||
--- 1567,1573 ----
|
||||
Tcl_DString line, patDString;
|
||||
TkTextSegment *segPtr;
|
||||
TkTextLine *linePtr;
|
||||
+ TkTextIndex curIndex;
|
||||
Tcl_RegExp regexp = NULL; /* Initialization needed only to
|
||||
* prevent compiler warning. */
|
||||
|
||||
***************
|
||||
*** 1574,1579 ****
|
||||
--- 1576,1583 ----
|
||||
*/
|
||||
|
||||
exact = 1;
|
||||
+ searchElide = 0;
|
||||
+ curIndex.tree = textPtr->tree;
|
||||
backwards = 0;
|
||||
noCase = 0;
|
||||
varName = NULL;
|
||||
***************
|
||||
*** 1587,1593 ****
|
||||
badSwitch:
|
||||
Tcl_AppendResult(interp, "bad switch \"", arg,
|
||||
"\": must be -forward, -backward, -exact, -regexp, ",
|
||||
! "-nocase, -count, or --", (char *) NULL);
|
||||
return TCL_ERROR;
|
||||
}
|
||||
c = arg[1];
|
||||
--- 1591,1597 ----
|
||||
badSwitch:
|
||||
Tcl_AppendResult(interp, "bad switch \"", arg,
|
||||
"\": must be -forward, -backward, -exact, -regexp, ",
|
||||
! "-nocase, -count, -elide, or --", (char *) NULL);
|
||||
return TCL_ERROR;
|
||||
}
|
||||
c = arg[1];
|
||||
***************
|
||||
*** 1608,1613 ****
|
||||
--- 1612,1619 ----
|
||||
noCase = 1;
|
||||
} else if ((c == 'r') && (strncmp(argv[i], "-regexp", length) == 0)) {
|
||||
exact = 0;
|
||||
+ } else if ((c == 'e') && (strncmp(argv[i], "-elide", length) == 0)) {
|
||||
+ searchElide = 1;
|
||||
} else if ((c == '-') && (strncmp(argv[i], "--", length) == 0)) {
|
||||
i++;
|
||||
break;
|
||||
***************
|
||||
*** 1703,1711 ****
|
||||
*/
|
||||
|
||||
linePtr = TkBTreeFindLine(textPtr->tree, lineNum);
|
||||
for (segPtr = linePtr->segPtr; segPtr != NULL;
|
||||
! segPtr = segPtr->nextPtr) {
|
||||
! if (segPtr->typePtr != &tkTextCharType) {
|
||||
continue;
|
||||
}
|
||||
Tcl_DStringAppend(&line, segPtr->body.chars, segPtr->size);
|
||||
--- 1709,1718 ----
|
||||
*/
|
||||
|
||||
linePtr = TkBTreeFindLine(textPtr->tree, lineNum);
|
||||
+ curIndex.linePtr = linePtr; curIndex.charIndex = 0;
|
||||
for (segPtr = linePtr->segPtr; segPtr != NULL;
|
||||
! curIndex.charIndex += segPtr->size, segPtr = segPtr->nextPtr) {
|
||||
! if (segPtr->typePtr != &tkTextCharType || (!searchElide && TkTextIsElided(textPtr, &curIndex))) {
|
||||
continue;
|
||||
}
|
||||
Tcl_DStringAppend(&line, segPtr->body.chars, segPtr->size);
|
||||
*** tkText.h 1997/07/04 22:39:41 2.0
|
||||
--- ../generic/tkText.h 1997/08/15 22:18:56
|
||||
***************
|
||||
*** 370,375 ****
|
||||
--- 370,379 ----
|
||||
* Must be tkTextCharUid, tkTextNoneUid,
|
||||
* tkTextWordUid, or NULL to use wrapMode
|
||||
* for whole widget. */
|
||||
+ char *elideString; /* -elide option string (malloc-ed).
|
||||
+ * NULL means option not specified. */
|
||||
+ int elide; /* Non-zero means text is elided.
|
||||
+ * Only valid if elideString is non-NULL. */
|
||||
int affectsDisplay; /* Non-zero means that this tag affects the
|
||||
* way information is displayed on the screen
|
||||
* (so need to redisplay if tag changes). */
|
||||
***************
|
||||
*** 800,805 ****
|
||||
--- 804,811 ----
|
||||
ClientData clientData));
|
||||
extern TkTextIndex * TkTextMakeIndex _ANSI_ARGS_((TkTextBTree tree,
|
||||
int lineIndex, int charIndex,
|
||||
+ TkTextIndex *indexPtr));
|
||||
+ extern int TkTextIsElided _ANSI_ARGS_((TkText *textPtr,
|
||||
TkTextIndex *indexPtr));
|
||||
extern int TkTextMarkCmd _ANSI_ARGS_((TkText *textPtr,
|
||||
Tcl_Interp *interp, int argc, char **argv));
|
||||
*** tkTextBTree.c 1997/07/04 22:39:41 2.0
|
||||
--- ../generic/tkTextBTree.c 1997/08/15 22:20:16
|
||||
***************
|
||||
*** 2427,2432 ****
|
||||
--- 2427,2558 ----
|
||||
}
|
||||
return tagInfo.tagPtrs;
|
||||
}
|
||||
+
|
||||
+
|
||||
+ /*
|
||||
+ special case to just return information about elided attribute
|
||||
+ specialized from TkBTreeGetTags(indexPtr, numTagsPtr) and GetStyle(textPtr, indexPtr)
|
||||
+ just need to keep track of invisibility settings for each priority, pick highest one active at end
|
||||
+ */
|
||||
+ int
|
||||
+ TkTextIsElided(textPtr, indexPtr)
|
||||
+ TkText *textPtr; /* Overall information about text widget. */
|
||||
+ TkTextIndex *indexPtr; /* The character in the text for which
|
||||
+ * display information is wanted. */
|
||||
+ {
|
||||
+ #define LOTSA_TAGS 1000
|
||||
+ int elide = 0; /* if nobody says otherwise, it's visible */
|
||||
+
|
||||
+ int deftagCnts[LOTSA_TAGS];
|
||||
+ int *tagCnts = deftagCnts;
|
||||
+ TkTextTag *deftagPtrs[LOTSA_TAGS];
|
||||
+ TkTextTag **tagPtrs = deftagPtrs;
|
||||
+ int numTags = textPtr->numTags;
|
||||
+ register Node *nodePtr;
|
||||
+ register TkTextLine *siblingLinePtr;
|
||||
+ register TkTextSegment *segPtr;
|
||||
+ register TkTextTag *tagPtr;
|
||||
+ register int i, index;
|
||||
+
|
||||
+ /* almost always avoid malloc, so stay out of system calls */
|
||||
+ if (LOTSA_TAGS < numTags) {
|
||||
+ tagCnts = (int *)ckalloc((unsigned)sizeof(int) * numTags);
|
||||
+ tagPtrs = (TkTextTag **)ckalloc((unsigned)sizeof(TkTextTag *) * numTags);
|
||||
+ }
|
||||
+
|
||||
+ for (i=0; i<numTags; i++) tagCnts[i]=0;
|
||||
+
|
||||
+
|
||||
+ /*
|
||||
+ * Record tag toggles within the line of indexPtr but preceding
|
||||
+ * indexPtr.
|
||||
+ */
|
||||
+
|
||||
+ for (index = 0, segPtr = indexPtr->linePtr->segPtr;
|
||||
+ (index + segPtr->size) <= indexPtr->charIndex;
|
||||
+ index += segPtr->size, segPtr = segPtr->nextPtr) {
|
||||
+ if ((segPtr->typePtr == &tkTextToggleOnType)
|
||||
+ || (segPtr->typePtr == &tkTextToggleOffType)) {
|
||||
+ tagPtr = segPtr->body.toggle.tagPtr;
|
||||
+ if (tagPtr->elideString != NULL) {
|
||||
+ tagPtrs[tagPtr->priority] = tagPtr;
|
||||
+ tagCnts[tagPtr->priority]++;
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ /*
|
||||
+ * Record toggles for tags in lines that are predecessors of
|
||||
+ * indexPtr->linePtr but under the same level-0 node.
|
||||
+ */
|
||||
+
|
||||
+ for (siblingLinePtr = indexPtr->linePtr->parentPtr->children.linePtr;
|
||||
+ siblingLinePtr != indexPtr->linePtr;
|
||||
+ siblingLinePtr = siblingLinePtr->nextPtr) {
|
||||
+ for (segPtr = siblingLinePtr->segPtr; segPtr != NULL;
|
||||
+ segPtr = segPtr->nextPtr) {
|
||||
+ if ((segPtr->typePtr == &tkTextToggleOnType)
|
||||
+ || (segPtr->typePtr == &tkTextToggleOffType)) {
|
||||
+ tagPtr = segPtr->body.toggle.tagPtr;
|
||||
+ if (tagPtr->elideString != NULL) {
|
||||
+ tagPtrs[tagPtr->priority] = tagPtr;
|
||||
+ tagCnts[tagPtr->priority]++;
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ /*
|
||||
+ * For each node in the ancestry of this line, record tag toggles
|
||||
+ * for all siblings that precede that node.
|
||||
+ */
|
||||
+
|
||||
+ for (nodePtr = indexPtr->linePtr->parentPtr; nodePtr->parentPtr != NULL;
|
||||
+ nodePtr = nodePtr->parentPtr) {
|
||||
+ register Node *siblingPtr;
|
||||
+ register Summary *summaryPtr;
|
||||
+
|
||||
+ for (siblingPtr = nodePtr->parentPtr->children.nodePtr;
|
||||
+ siblingPtr != nodePtr; siblingPtr = siblingPtr->nextPtr) {
|
||||
+ for (summaryPtr = siblingPtr->summaryPtr; summaryPtr != NULL;
|
||||
+ summaryPtr = summaryPtr->nextPtr) {
|
||||
+ if (summaryPtr->toggleCount & 1) {
|
||||
+ tagPtr = summaryPtr->tagPtr;
|
||||
+ if (tagPtr->elideString != NULL) {
|
||||
+ tagPtrs[tagPtr->priority] = tagPtr;
|
||||
+ tagCnts[tagPtr->priority] += summaryPtr->toggleCount;
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+
|
||||
+ /*
|
||||
+ * Now traverse from highest priority to lowest,
|
||||
+ * take elided value from first odd count (= on)
|
||||
+ */
|
||||
+
|
||||
+ for (i = numTags-1; i >=0; i--) {
|
||||
+ if (tagCnts[i] & 1) {
|
||||
+ #ifndef ALWAYS_SHOW_SELECTION
|
||||
+ /* who would make the selection elided? */
|
||||
+ if ((tagPtr == textPtr->selTagPtr) && !(textPtr->flags & GOT_FOCUS)) {
|
||||
+ continue;
|
||||
+ }
|
||||
+ #endif
|
||||
+ elide = tagPtrs[i]->elide;
|
||||
+ break;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ if (LOTSA_TAGS < numTags) {
|
||||
+ ckfree((char *) tagCnts);
|
||||
+ ckfree((char *) tagPtrs);
|
||||
+ }
|
||||
+
|
||||
+ return elide;
|
||||
+ }
|
||||
|
||||
/*
|
||||
*----------------------------------------------------------------------
|
||||
*** tkTextDisp.c 1997/07/04 22:39:41 2.0
|
||||
--- ../generic/tkTextDisp.c 1997/08/16 01:20:18
|
||||
***************
|
||||
*** 55,60 ****
|
||||
--- 55,61 ----
|
||||
* be NULL). */
|
||||
int underline; /* Non-zero means draw underline underneath
|
||||
* text. */
|
||||
+ int elide; /* Non-zero means draw text */
|
||||
Tk_Uid wrapMode; /* How to handle wrap-around for this tag.
|
||||
* One of tkTextCharUid, tkTextNoneUid,
|
||||
* or tkTextWordUid. */
|
||||
***************
|
||||
*** 311,316 ****
|
||||
--- 312,332 ----
|
||||
int x));
|
||||
static void CharUndisplayProc _ANSI_ARGS_((TkText *textPtr,
|
||||
TkTextDispChunk *chunkPtr));
|
||||
+
|
||||
+ /*
|
||||
+ Definitions of elided procs.
|
||||
+ Compiler can't inline these since we use pointers to these functions.
|
||||
+ ElideDisplayProc, ElideUndisplayProc special-cased for speed,
|
||||
+ as potentially many elided DLine chunks if large, tag toggle-filled
|
||||
+ elided region.
|
||||
+ */
|
||||
+ static void ElideBboxProc _ANSI_ARGS_((TkTextDispChunk *chunkPtr,
|
||||
+ int index, int y, int lineHeight, int baseline,
|
||||
+ int *xPtr, int *yPtr, int *widthPtr,
|
||||
+ int *heightPtr));
|
||||
+ static int ElideMeasureProc _ANSI_ARGS_((TkTextDispChunk *chunkPtr,
|
||||
+ int x));
|
||||
+
|
||||
static void DisplayDLine _ANSI_ARGS_((TkText *textPtr,
|
||||
DLine *dlPtr, DLine *prevPtr, Pixmap pixmap));
|
||||
static void DisplayLineBackground _ANSI_ARGS_((TkText *textPtr,
|
||||
***************
|
||||
*** 479,485 ****
|
||||
|
||||
int borderPrio, borderWidthPrio, reliefPrio, bgStipplePrio;
|
||||
int fgPrio, fontPrio, fgStipplePrio;
|
||||
! int underlinePrio, justifyPrio, offsetPrio;
|
||||
int lMargin1Prio, lMargin2Prio, rMarginPrio;
|
||||
int spacing1Prio, spacing2Prio, spacing3Prio;
|
||||
int overstrikePrio, tabPrio, wrapPrio;
|
||||
--- 495,501 ----
|
||||
|
||||
int borderPrio, borderWidthPrio, reliefPrio, bgStipplePrio;
|
||||
int fgPrio, fontPrio, fgStipplePrio;
|
||||
! int underlinePrio, elidePrio, justifyPrio, offsetPrio;
|
||||
int lMargin1Prio, lMargin2Prio, rMarginPrio;
|
||||
int spacing1Prio, spacing2Prio, spacing3Prio;
|
||||
int overstrikePrio, tabPrio, wrapPrio;
|
||||
***************
|
||||
*** 494,500 ****
|
||||
tagPtrs = TkBTreeGetTags(indexPtr, &numTags);
|
||||
borderPrio = borderWidthPrio = reliefPrio = bgStipplePrio = -1;
|
||||
fgPrio = fontPrio = fgStipplePrio = -1;
|
||||
! underlinePrio = justifyPrio = offsetPrio = -1;
|
||||
lMargin1Prio = lMargin2Prio = rMarginPrio = -1;
|
||||
spacing1Prio = spacing2Prio = spacing3Prio = -1;
|
||||
overstrikePrio = tabPrio = wrapPrio = -1;
|
||||
--- 510,516 ----
|
||||
tagPtrs = TkBTreeGetTags(indexPtr, &numTags);
|
||||
borderPrio = borderWidthPrio = reliefPrio = bgStipplePrio = -1;
|
||||
fgPrio = fontPrio = fgStipplePrio = -1;
|
||||
! underlinePrio = elidePrio = justifyPrio = offsetPrio = -1;
|
||||
lMargin1Prio = lMargin2Prio = rMarginPrio = -1;
|
||||
spacing1Prio = spacing2Prio = spacing3Prio = -1;
|
||||
overstrikePrio = tabPrio = wrapPrio = -1;
|
||||
***************
|
||||
*** 612,617 ****
|
||||
--- 628,638 ----
|
||||
styleValues.underline = tagPtr->underline;
|
||||
underlinePrio = tagPtr->priority;
|
||||
}
|
||||
+ if ((tagPtr->elideString != NULL)
|
||||
+ && (tagPtr->priority > elidePrio)) {
|
||||
+ styleValues.elide = tagPtr->elide;
|
||||
+ elidePrio = tagPtr->priority;
|
||||
+ }
|
||||
if ((tagPtr->wrapMode != NULL)
|
||||
&& (tagPtr->priority > wrapPrio)) {
|
||||
styleValues.wrapMode = tagPtr->wrapMode;
|
||||
***************
|
||||
*** 768,774 ****
|
||||
* lines with numChars > 0. Used to
|
||||
* drop 0-sized chunks from the end
|
||||
* of the line. */
|
||||
! int offset, ascent, descent, code;
|
||||
StyleValues *sValuePtr;
|
||||
|
||||
/*
|
||||
--- 789,795 ----
|
||||
* lines with numChars > 0. Used to
|
||||
* drop 0-sized chunks from the end
|
||||
* of the line. */
|
||||
! int offset, ascent, descent, code, elide, elidesize;
|
||||
StyleValues *sValuePtr;
|
||||
|
||||
/*
|
||||
***************
|
||||
*** 786,791 ****
|
||||
--- 807,840 ----
|
||||
dlPtr->nextPtr = NULL;
|
||||
dlPtr->flags = NEW_LAYOUT;
|
||||
|
||||
+
|
||||
+ /*
|
||||
+ * special case entirely elide line as there may be 1000s or more
|
||||
+ */
|
||||
+ elide = TkTextIsElided(textPtr, indexPtr); /* save a malloc */
|
||||
+ if (elide && indexPtr->charIndex==0) {
|
||||
+ maxChars = 0;
|
||||
+ for (segPtr = indexPtr->linePtr->segPtr; elide && segPtr!=NULL; segPtr = segPtr->nextPtr) {
|
||||
+ if ((elidesize = segPtr->size) > 0) {
|
||||
+ maxChars += elidesize;
|
||||
+
|
||||
+ /* if have tag toggle, chance that invisibility state changed, so bail out */
|
||||
+ } else if (segPtr->typePtr == &tkTextToggleOffType || segPtr->typePtr == &tkTextToggleOnType) {
|
||||
+ if (segPtr->body.toggle.tagPtr->elideString!=NULL) {
|
||||
+ elide = (segPtr->typePtr == &tkTextToggleOffType) ^ (segPtr->body.toggle.tagPtr->elide==1);
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ if (elide) {
|
||||
+ dlPtr->count = maxChars;
|
||||
+ dlPtr->spaceAbove = dlPtr->spaceBelow = dlPtr->length = 0;
|
||||
+ return dlPtr;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+
|
||||
+
|
||||
/*
|
||||
* Each iteration of the loop below creates one TkTextDispChunk for
|
||||
* the new display line. The line will always have at least one
|
||||
***************
|
||||
*** 797,802 ****
|
||||
--- 846,852 ----
|
||||
lastChunkPtr = NULL;
|
||||
chunkPtr = NULL;
|
||||
noCharsYet = 1;
|
||||
+ elide = 0;
|
||||
breakChunkPtr = NULL;
|
||||
breakCharOffset = 0;
|
||||
justify = TK_JUSTIFY_LEFT;
|
||||
***************
|
||||
*** 821,826 ****
|
||||
--- 871,901 ----
|
||||
}
|
||||
|
||||
while (segPtr != NULL) {
|
||||
+
|
||||
+ /* every line still gets at least one chunk due to expectations in rest of code,
|
||||
+ but able to skip elided portions of line quickly */
|
||||
+ /* if current chunk elided and last chunk was too, coalese */
|
||||
+ if (elide && lastChunkPtr!=NULL && lastChunkPtr->displayProc == NULL/*ElideDisplayProc*/) {
|
||||
+ if ((elidesize = segPtr->size - offset) > 0) {
|
||||
+ curIndex.charIndex += elidesize;
|
||||
+ lastChunkPtr->numChars += elidesize;
|
||||
+ breakCharOffset = lastChunkPtr->breakIndex = lastChunkPtr->numChars;
|
||||
+
|
||||
+ /* if have tag toggle, chance that invisibility state changed */
|
||||
+ } else if (segPtr->typePtr == &tkTextToggleOffType || segPtr->typePtr == &tkTextToggleOnType) {
|
||||
+ if (segPtr->body.toggle.tagPtr->elideString!=NULL) {
|
||||
+ elide = (segPtr->typePtr == &tkTextToggleOffType) ^ (segPtr->body.toggle.tagPtr->elide==1);
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ offset = 0;
|
||||
+ segPtr = segPtr->nextPtr;
|
||||
+ if (segPtr == NULL && chunkPtr != NULL) ckfree((char *) chunkPtr);
|
||||
+
|
||||
+ continue;
|
||||
+ }
|
||||
+
|
||||
+
|
||||
if (segPtr->typePtr->layoutProc == NULL) {
|
||||
segPtr = segPtr->nextPtr;
|
||||
offset = 0;
|
||||
***************
|
||||
*** 831,836 ****
|
||||
--- 906,912 ----
|
||||
chunkPtr->nextPtr = NULL;
|
||||
}
|
||||
chunkPtr->stylePtr = GetStyle(textPtr, &curIndex);
|
||||
+ elide = chunkPtr->stylePtr->sValuePtr->elide;
|
||||
|
||||
/*
|
||||
* Save style information such as justification and indentation,
|
||||
***************
|
||||
*** 864,870 ****
|
||||
|
||||
gotTab = 0;
|
||||
maxChars = segPtr->size - offset;
|
||||
! if (justify == TK_JUSTIFY_LEFT) {
|
||||
if (segPtr->typePtr == &tkTextCharType) {
|
||||
char *p;
|
||||
|
||||
--- 940,946 ----
|
||||
|
||||
gotTab = 0;
|
||||
maxChars = segPtr->size - offset;
|
||||
! if (!elide && justify == TK_JUSTIFY_LEFT) {
|
||||
if (segPtr->typePtr == &tkTextCharType) {
|
||||
char *p;
|
||||
|
||||
***************
|
||||
*** 877,884 ****
|
||||
}
|
||||
}
|
||||
}
|
||||
-
|
||||
chunkPtr->x = x;
|
||||
code = (*segPtr->typePtr->layoutProc)(textPtr, &curIndex, segPtr,
|
||||
offset, maxX-tabSize, maxChars, noCharsYet, wrapMode,
|
||||
chunkPtr);
|
||||
--- 953,973 ----
|
||||
}
|
||||
}
|
||||
}
|
||||
chunkPtr->x = x;
|
||||
+ if (elide && maxChars) {
|
||||
+ /* don't free style here, as other code expects to be able to do that */
|
||||
+ /*breakCharOffset =*/ chunkPtr->breakIndex = chunkPtr->numChars = maxChars;
|
||||
+ chunkPtr->width = 0;
|
||||
+ chunkPtr->minAscent = chunkPtr->minDescent = chunkPtr->minHeight = 0;
|
||||
+
|
||||
+ /* would just like to point to canonical empty chunk */
|
||||
+ chunkPtr->displayProc = (Tk_ChunkDisplayProc *) NULL;
|
||||
+ chunkPtr->undisplayProc = (Tk_ChunkUndisplayProc *) NULL;
|
||||
+ chunkPtr->measureProc = ElideMeasureProc;
|
||||
+ chunkPtr->bboxProc = ElideBboxProc;
|
||||
+
|
||||
+ code = 1;
|
||||
+ } else
|
||||
code = (*segPtr->typePtr->layoutProc)(textPtr, &curIndex, segPtr,
|
||||
offset, maxX-tabSize, maxChars, noCharsYet, wrapMode,
|
||||
chunkPtr);
|
||||
***************
|
||||
*** 950,955 ****
|
||||
--- 1039,1045 ----
|
||||
offset = 0;
|
||||
segPtr = segPtr->nextPtr;
|
||||
}
|
||||
+
|
||||
chunkPtr = NULL;
|
||||
}
|
||||
if (noCharsYet) {
|
||||
***************
|
||||
*** 998,1003 ****
|
||||
--- 1088,1094 ----
|
||||
wholeLine = 0;
|
||||
}
|
||||
|
||||
+
|
||||
/*
|
||||
* Make tab adjustments for the last tab stop, if there is one.
|
||||
*/
|
||||
***************
|
||||
*** 1321,1326 ****
|
||||
--- 1412,1418 ----
|
||||
index.linePtr = TkBTreeFindLine(textPtr->tree, lineNum);
|
||||
index.charIndex = 0;
|
||||
lowestPtr = NULL;
|
||||
+
|
||||
do {
|
||||
dlPtr = LayoutDLine(textPtr, &index);
|
||||
dlPtr->nextPtr = lowestPtr;
|
||||
***************
|
||||
*** 1554,1559 ****
|
||||
--- 1646,1653 ----
|
||||
Display *display;
|
||||
int height, x;
|
||||
|
||||
+ if (dlPtr->chunkPtr == NULL) return;
|
||||
+
|
||||
/*
|
||||
* First, clear the area of the line to the background color for the
|
||||
* text widget.
|
||||
***************
|
||||
*** 1620,1631 ****
|
||||
--- 1714,1729 ----
|
||||
* something is off to the right).
|
||||
*/
|
||||
|
||||
+ if (chunkPtr->displayProc != NULL)
|
||||
(*chunkPtr->displayProc)(chunkPtr, -chunkPtr->width,
|
||||
dlPtr->spaceAbove,
|
||||
dlPtr->height - dlPtr->spaceAbove - dlPtr->spaceBelow,
|
||||
dlPtr->baseline - dlPtr->spaceAbove, display, pixmap,
|
||||
dlPtr->y + dlPtr->spaceAbove);
|
||||
} else {
|
||||
+ /* don't call if elide. This tax ok since not very many visible DLine's in
|
||||
+ an area, but potentially many elide ones */
|
||||
+ if (chunkPtr->displayProc != NULL)
|
||||
(*chunkPtr->displayProc)(chunkPtr, x, dlPtr->spaceAbove,
|
||||
dlPtr->height - dlPtr->spaceAbove - dlPtr->spaceBelow,
|
||||
dlPtr->baseline - dlPtr->spaceAbove, display, pixmap,
|
||||
***************
|
||||
*** 1714,1719 ****
|
||||
--- 1812,1818 ----
|
||||
StyleValues *sValuePtr;
|
||||
Display *display;
|
||||
|
||||
+
|
||||
/*
|
||||
* Pass 1: scan through dlPtr from left to right. For each range of
|
||||
* chunks with the same style, draw the main background for the style
|
||||
***************
|
||||
*** 1787,1793 ****
|
||||
rightX = maxX;
|
||||
}
|
||||
chunkPtr2 = NULL;
|
||||
! if (prevPtr != NULL) {
|
||||
/*
|
||||
* Find the chunk in the previous line that covers leftX.
|
||||
*/
|
||||
--- 1886,1892 ----
|
||||
rightX = maxX;
|
||||
}
|
||||
chunkPtr2 = NULL;
|
||||
! if (prevPtr != NULL && prevPtr->chunkPtr != NULL) {
|
||||
/*
|
||||
* Find the chunk in the previous line that covers leftX.
|
||||
*/
|
||||
***************
|
||||
*** 1908,1914 ****
|
||||
rightX = maxX;
|
||||
}
|
||||
chunkPtr2 = NULL;
|
||||
! if (dlPtr->nextPtr != NULL) {
|
||||
/*
|
||||
* Find the chunk in the previous line that covers leftX.
|
||||
*/
|
||||
--- 2007,2014 ----
|
||||
rightX = maxX;
|
||||
}
|
||||
chunkPtr2 = NULL;
|
||||
! /* for (dlPtr2 = dlPtr; dlPtr2->nextPtr != NULL && dlPtr2->nextPtr->chunkPtr == NULL; dlPtr2 = dlPtr2->nextPtr) {}*/
|
||||
! if (dlPtr->nextPtr != NULL && dlPtr->nextPtr->chunkPtr != NULL) {
|
||||
/*
|
||||
* Find the chunk in the previous line that covers leftX.
|
||||
*/
|
||||
***************
|
||||
*** 2299,2304 ****
|
||||
--- 2399,2405 ----
|
||||
for (prevPtr = NULL, dlPtr = textPtr->dInfoPtr->dLinePtr;
|
||||
(dlPtr != NULL) && (dlPtr->y < dInfoPtr->maxY);
|
||||
prevPtr = dlPtr, dlPtr = dlPtr->nextPtr) {
|
||||
+ if (dlPtr->chunkPtr == NULL) continue;
|
||||
if (dlPtr->oldY != dlPtr->y) {
|
||||
if (tkTextDebug) {
|
||||
char string[TK_POS_CHARS];
|
||||
***************
|
||||
*** 2315,2320 ****
|
||||
--- 2416,2422 ----
|
||||
dlPtr->oldY = dlPtr->y;
|
||||
dlPtr->flags &= ~NEW_LAYOUT;
|
||||
}
|
||||
+ /*prevPtr = dlPtr;*/
|
||||
}
|
||||
Tk_FreePixmap(Tk_Display(textPtr->tkwin), pixmap);
|
||||
}
|
||||
***************
|
||||
*** 3369,3374 ****
|
||||
--- 3471,3477 ----
|
||||
dlPtr = LayoutDLine(textPtr, &index);
|
||||
dlPtr->nextPtr = lowestPtr;
|
||||
lowestPtr = dlPtr;
|
||||
+ if (dlPtr->length == 0 && dlPtr->height == 0) { offset--; break; } /* elide */
|
||||
TkTextIndexForwChars(&index, dlPtr->count, &index);
|
||||
charsToCount -= dlPtr->count;
|
||||
} while ((charsToCount > 0)
|
||||
***************
|
||||
*** 3381,3387 ****
|
||||
break;
|
||||
}
|
||||
}
|
||||
!
|
||||
/*
|
||||
* Discard the display lines, then either return or prepare
|
||||
* for the next display line to lay out.
|
||||
--- 3484,3490 ----
|
||||
break;
|
||||
}
|
||||
}
|
||||
!
|
||||
/*
|
||||
* Discard the display lines, then either return or prepare
|
||||
* for the next display line to lay out.
|
||||
***************
|
||||
*** 3410,3421 ****
|
||||
--- 3513,3526 ----
|
||||
TkBTreeNumLines(textPtr->tree));
|
||||
for (i = 0; i < offset; i++) {
|
||||
dlPtr = LayoutDLine(textPtr, &textPtr->topIndex);
|
||||
+ if (dlPtr->length == 0 && dlPtr->height == 0) offset++;
|
||||
dlPtr->nextPtr = NULL;
|
||||
TkTextIndexForwChars(&textPtr->topIndex, dlPtr->count, &new);
|
||||
FreeDLines(textPtr, dlPtr, (DLine *) NULL, 0);
|
||||
if (new.linePtr == lastLinePtr) {
|
||||
break;
|
||||
}
|
||||
+
|
||||
textPtr->topIndex = new;
|
||||
}
|
||||
}
|
||||
***************
|
||||
*** 3949,3955 ****
|
||||
* index of the character nearest to (x,y). */
|
||||
{
|
||||
TextDInfo *dInfoPtr = textPtr->dInfoPtr;
|
||||
! register DLine *dlPtr;
|
||||
register TkTextDispChunk *chunkPtr;
|
||||
|
||||
/*
|
||||
--- 4054,4060 ----
|
||||
* index of the character nearest to (x,y). */
|
||||
{
|
||||
TextDInfo *dInfoPtr = textPtr->dInfoPtr;
|
||||
! register DLine *dlPtr, *validdlPtr;
|
||||
register TkTextDispChunk *chunkPtr;
|
||||
|
||||
/*
|
||||
***************
|
||||
*** 3982,3989 ****
|
||||
* Find the display line containing the desired y-coordinate.
|
||||
*/
|
||||
|
||||
! for (dlPtr = dInfoPtr->dLinePtr; y >= (dlPtr->y + dlPtr->height);
|
||||
dlPtr = dlPtr->nextPtr) {
|
||||
if (dlPtr->nextPtr == NULL) {
|
||||
/*
|
||||
* Y-coordinate is off the bottom of the displayed text.
|
||||
--- 4087,4095 ----
|
||||
* Find the display line containing the desired y-coordinate.
|
||||
*/
|
||||
|
||||
! for (dlPtr = validdlPtr = dInfoPtr->dLinePtr; y >= (dlPtr->y + dlPtr->height);
|
||||
dlPtr = dlPtr->nextPtr) {
|
||||
+ if (dlPtr->chunkPtr !=NULL) validdlPtr = dlPtr;
|
||||
if (dlPtr->nextPtr == NULL) {
|
||||
/*
|
||||
* Y-coordinate is off the bottom of the displayed text.
|
||||
***************
|
||||
*** 3994,3999 ****
|
||||
--- 4100,4107 ----
|
||||
break;
|
||||
}
|
||||
}
|
||||
+ if (dlPtr->chunkPtr == NULL) dlPtr = validdlPtr;
|
||||
+
|
||||
|
||||
/*
|
||||
* Scan through the line's chunks to find the one that contains
|
||||
***************
|
||||
*** 4005,4016 ****
|
||||
*indexPtr = dlPtr->index;
|
||||
x = x - dInfoPtr->x + dInfoPtr->curPixelOffset;
|
||||
for (chunkPtr = dlPtr->chunkPtr; x >= (chunkPtr->x + chunkPtr->width);
|
||||
! indexPtr->charIndex += chunkPtr->numChars,
|
||||
! chunkPtr = chunkPtr->nextPtr) {
|
||||
if (chunkPtr->nextPtr == NULL) {
|
||||
indexPtr->charIndex += chunkPtr->numChars - 1;
|
||||
return;
|
||||
! }
|
||||
}
|
||||
|
||||
/*
|
||||
--- 4113,4124 ----
|
||||
*indexPtr = dlPtr->index;
|
||||
x = x - dInfoPtr->x + dInfoPtr->curPixelOffset;
|
||||
for (chunkPtr = dlPtr->chunkPtr; x >= (chunkPtr->x + chunkPtr->width);
|
||||
! indexPtr->charIndex += chunkPtr->numChars,
|
||||
! chunkPtr = chunkPtr->nextPtr) {
|
||||
if (chunkPtr->nextPtr == NULL) {
|
||||
indexPtr->charIndex += chunkPtr->numChars - 1;
|
||||
return;
|
||||
! }
|
||||
}
|
||||
|
||||
/*
|
||||
***************
|
||||
*** 4166,4171 ****
|
||||
--- 4274,4280 ----
|
||||
{
|
||||
TextDInfo *dInfoPtr = textPtr->dInfoPtr;
|
||||
DLine *dlPtr;
|
||||
+ int dlx;
|
||||
|
||||
/*
|
||||
* Make sure that all of the screen layout information is up to date.
|
||||
***************
|
||||
*** 4184,4191 ****
|
||||
return -1;
|
||||
}
|
||||
|
||||
! *xPtr = dInfoPtr->x - dInfoPtr->curPixelOffset + dlPtr->chunkPtr->x;
|
||||
! *widthPtr = dlPtr->length - dlPtr->chunkPtr->x;
|
||||
*yPtr = dlPtr->y;
|
||||
if ((dlPtr->y + dlPtr->height) > dInfoPtr->maxY) {
|
||||
*heightPtr = dInfoPtr->maxY - dlPtr->y;
|
||||
--- 4293,4301 ----
|
||||
return -1;
|
||||
}
|
||||
|
||||
! dlx = (dlPtr->chunkPtr != NULL? dlPtr->chunkPtr->x: 0);
|
||||
! *xPtr = dInfoPtr->x - dInfoPtr->curPixelOffset + dlx;
|
||||
! *widthPtr = dlPtr->length - dlx;
|
||||
*yPtr = dlPtr->y;
|
||||
if ((dlPtr->y + dlPtr->height) > dInfoPtr->maxY) {
|
||||
*heightPtr = dInfoPtr->maxY - dlPtr->y;
|
||||
***************
|
||||
*** 4196,4201 ****
|
||||
--- 4306,4346 ----
|
||||
return 0;
|
||||
}
|
||||
|
||||
+ static void
|
||||
+ ElideBboxProc(chunkPtr, index, y, lineHeight, baseline, xPtr, yPtr,
|
||||
+ widthPtr, heightPtr)
|
||||
+ TkTextDispChunk *chunkPtr; /* Chunk containing desired char. */
|
||||
+ int index; /* Index of desired character within
|
||||
+ * the chunk. */
|
||||
+ int y; /* Topmost pixel in area allocated
|
||||
+ * for this line. */
|
||||
+ int lineHeight; /* Height of line, in pixels. */
|
||||
+ int baseline; /* Location of line's baseline, in
|
||||
+ * pixels measured down from y. */
|
||||
+ int *xPtr, *yPtr; /* Gets filled in with coords of
|
||||
+ * character's upper-left pixel.
|
||||
+ * X-coord is in same coordinate
|
||||
+ * system as chunkPtr->x. */
|
||||
+ int *widthPtr; /* Gets filled in with width of
|
||||
+ * character, in pixels. */
|
||||
+ int *heightPtr; /* Gets filled in with height of
|
||||
+ * character, in pixels. */
|
||||
+ {
|
||||
+ *xPtr = chunkPtr->x;
|
||||
+ *yPtr = y;
|
||||
+ *widthPtr = *heightPtr = 0;
|
||||
+ }
|
||||
+
|
||||
+
|
||||
+ static int
|
||||
+ ElideMeasureProc(chunkPtr, x)
|
||||
+ TkTextDispChunk *chunkPtr; /* Chunk containing desired coord. */
|
||||
+ int x; /* X-coordinate, in same coordinate
|
||||
+ * system as chunkPtr->x. */
|
||||
+ {
|
||||
+ return 0 /*chunkPtr->numChars - 1*/;
|
||||
+ }
|
||||
+
|
||||
/*
|
||||
*--------------------------------------------------------------
|
||||
*
|
||||
***************
|
||||
*** 4421,4427 ****
|
||||
* Draw the text, underline, and overstrike for this chunk.
|
||||
*/
|
||||
|
||||
! if (ciPtr->numChars > offsetChars) {
|
||||
int numChars = ciPtr->numChars - offsetChars;
|
||||
char *string = ciPtr->chars + offsetChars;
|
||||
|
||||
--- 4566,4572 ----
|
||||
* Draw the text, underline, and overstrike for this chunk.
|
||||
*/
|
||||
|
||||
! if (!sValuePtr->elide && ciPtr->numChars > offsetChars) {
|
||||
int numChars = ciPtr->numChars - offsetChars;
|
||||
char *string = ciPtr->chars + offsetChars;
|
||||
|
||||
*** tkTextTag.c 1997/07/04 22:39:41 2.0
|
||||
--- ../generic/tkTextTag.c 1997/08/15 22:20:32
|
||||
***************
|
||||
*** 63,68 ****
|
||||
--- 63,71 ----
|
||||
{TK_CONFIG_STRING, "-underline", (char *) NULL, (char *) NULL,
|
||||
(char *) NULL, Tk_Offset(TkTextTag, underlineString),
|
||||
TK_CONFIG_NULL_OK},
|
||||
+ {TK_CONFIG_STRING, "-elide", (char *) NULL, (char *) NULL,
|
||||
+ (char *) NULL, Tk_Offset(TkTextTag, elideString),
|
||||
+ TK_CONFIG_NULL_OK},
|
||||
{TK_CONFIG_UID, "-wrap", (char *) NULL, (char *) NULL,
|
||||
(char *) NULL, Tk_Offset(TkTextTag, wrapMode),
|
||||
TK_CONFIG_NULL_OK},
|
||||
***************
|
||||
*** 378,383 ****
|
||||
--- 381,392 ----
|
||||
return TCL_ERROR;
|
||||
}
|
||||
}
|
||||
+ if (tagPtr->elideString != NULL) {
|
||||
+ if (Tcl_GetBoolean(interp, tagPtr->elideString,
|
||||
+ &tagPtr->elide) != TCL_OK) {
|
||||
+ return TCL_ERROR;
|
||||
+ }
|
||||
+ }
|
||||
if ((tagPtr->wrapMode != NULL)
|
||||
&& (tagPtr->wrapMode != tkTextCharUid)
|
||||
&& (tagPtr->wrapMode != tkTextNoneUid)
|
||||
***************
|
||||
*** 419,424 ****
|
||||
--- 428,434 ----
|
||||
|| (tagPtr->spacing3String != NULL)
|
||||
|| (tagPtr->tabString != NULL)
|
||||
|| (tagPtr->underlineString != NULL)
|
||||
+ || (tagPtr->elideString != NULL)
|
||||
|| (tagPtr->wrapMode != NULL)) {
|
||||
tagPtr->affectsDisplay = 1;
|
||||
}
|
||||
***************
|
||||
*** 811,816 ****
|
||||
--- 821,828 ----
|
||||
tagPtr->tabArrayPtr = NULL;
|
||||
tagPtr->underlineString = NULL;
|
||||
tagPtr->underline = 0;
|
||||
+ tagPtr->elideString = NULL;
|
||||
+ tagPtr->elide = 0;
|
||||
tagPtr->wrapMode = NULL;
|
||||
tagPtr->affectsDisplay = 0;
|
||||
textPtr->numTags++;
|
||||
***************
|
||||
*** 934,939 ****
|
||||
--- 946,954 ----
|
||||
}
|
||||
if (tagPtr->underlineString != NULL) {
|
||||
ckfree(tagPtr->underlineString);
|
||||
+ }
|
||||
+ if (tagPtr->elideString != NULL) {
|
||||
+ ckfree(tagPtr->elideString);
|
||||
}
|
||||
ckfree((char *) tagPtr);
|
||||
}
|
@ -1,11 +0,0 @@
|
||||
This package contains the binary release of Tk version 8.0, a GUI
|
||||
toolkit for Tcl.
|
||||
|
||||
The best way to get started with Tcl is to read ``Tcl and the Tk
|
||||
Toolkit'' by John K. Ousterhout, Addison-Wesley, ISBN 0-201-63337-X.
|
||||
|
||||
A full set of manual pages is also provided with this package.
|
||||
|
||||
NOTE: This kit requires a Tcl8.0 binary kit.
|
||||
|
||||
WWW: http://www.tcl.tk/
|
@ -1,128 +0,0 @@
|
||||
bin/wish8.0
|
||||
include/tk8.0/tk.h
|
||||
include/tk8.0/generic/default.h
|
||||
include/tk8.0/generic/ks_names.h
|
||||
include/tk8.0/generic/tk.h
|
||||
include/tk8.0/generic/tk3d.h
|
||||
include/tk8.0/generic/tkButton.h
|
||||
include/tk8.0/generic/tkCanvas.h
|
||||
include/tk8.0/generic/tkColor.h
|
||||
include/tk8.0/generic/tkFileFilter.h
|
||||
include/tk8.0/generic/tkFont.h
|
||||
include/tk8.0/generic/tkInitScript.h
|
||||
include/tk8.0/generic/tkInt.h
|
||||
include/tk8.0/generic/tkMenu.h
|
||||
include/tk8.0/generic/tkMenubutton.h
|
||||
include/tk8.0/generic/tkPort.h
|
||||
include/tk8.0/generic/tkScale.h
|
||||
include/tk8.0/generic/tkScrollbar.h
|
||||
include/tk8.0/generic/tkSelect.h
|
||||
include/tk8.0/generic/tkText.h
|
||||
include/tk8.0/unix/tkUnixDefault.h
|
||||
include/tk8.0/unix/tkUnixInt.h
|
||||
include/tk8.0/unix/tkUnixPort.h
|
||||
lib/libtk80.a
|
||||
lib/libtk80.so
|
||||
lib/libtk80.so.1
|
||||
lib/tk8.0/bgerror.tcl
|
||||
lib/tk8.0/button.tcl
|
||||
lib/tk8.0/clrpick.tcl
|
||||
lib/tk8.0/comdlg.tcl
|
||||
lib/tk8.0/console.tcl
|
||||
lib/tk8.0/dialog.tcl
|
||||
lib/tk8.0/entry.tcl
|
||||
lib/tk8.0/focus.tcl
|
||||
lib/tk8.0/listbox.tcl
|
||||
lib/tk8.0/menu.tcl
|
||||
lib/tk8.0/msgbox.tcl
|
||||
lib/tk8.0/obsolete.tcl
|
||||
lib/tk8.0/optMenu.tcl
|
||||
lib/tk8.0/palette.tcl
|
||||
lib/tk8.0/prolog.ps
|
||||
lib/tk8.0/safetk.tcl
|
||||
lib/tk8.0/scale.tcl
|
||||
lib/tk8.0/scrlbar.tcl
|
||||
lib/tk8.0/tclIndex
|
||||
lib/tk8.0/tearoff.tcl
|
||||
lib/tk8.0/text.tcl
|
||||
lib/tk8.0/tk.tcl
|
||||
lib/tk8.0/tkAppInit.c
|
||||
lib/tk8.0/tkConfig.sh
|
||||
lib/tk8.0/tkfbox.tcl
|
||||
lib/tk8.0/xmfbox.tcl
|
||||
lib/tk8.0/demos/README
|
||||
lib/tk8.0/demos/arrow.tcl
|
||||
lib/tk8.0/demos/bind.tcl
|
||||
lib/tk8.0/demos/bitmap.tcl
|
||||
lib/tk8.0/demos/browse
|
||||
lib/tk8.0/demos/button.tcl
|
||||
lib/tk8.0/demos/check.tcl
|
||||
lib/tk8.0/demos/clrpick.tcl
|
||||
lib/tk8.0/demos/colors.tcl
|
||||
lib/tk8.0/demos/cscroll.tcl
|
||||
lib/tk8.0/demos/ctext.tcl
|
||||
lib/tk8.0/demos/dialog1.tcl
|
||||
lib/tk8.0/demos/dialog2.tcl
|
||||
lib/tk8.0/demos/entry1.tcl
|
||||
lib/tk8.0/demos/entry2.tcl
|
||||
lib/tk8.0/demos/filebox.tcl
|
||||
lib/tk8.0/demos/floor.tcl
|
||||
lib/tk8.0/demos/form.tcl
|
||||
lib/tk8.0/demos/hello
|
||||
lib/tk8.0/demos/hscale.tcl
|
||||
lib/tk8.0/demos/icon.tcl
|
||||
lib/tk8.0/demos/image1.tcl
|
||||
lib/tk8.0/demos/image2.tcl
|
||||
lib/tk8.0/demos/images/earth.gif
|
||||
lib/tk8.0/demos/images/earthris.gif
|
||||
lib/tk8.0/demos/images/face.bmp
|
||||
lib/tk8.0/demos/images/flagdown.bmp
|
||||
lib/tk8.0/demos/images/flagup.bmp
|
||||
lib/tk8.0/demos/images/gray25.bmp
|
||||
lib/tk8.0/demos/images/letters.bmp
|
||||
lib/tk8.0/demos/images/noletter.bmp
|
||||
lib/tk8.0/demos/images/pattern.bmp
|
||||
lib/tk8.0/demos/images/tcllogo.gif
|
||||
lib/tk8.0/demos/images/teapot.ppm
|
||||
lib/tk8.0/demos/items.tcl
|
||||
lib/tk8.0/demos/ixset
|
||||
lib/tk8.0/demos/label.tcl
|
||||
lib/tk8.0/demos/license.terms
|
||||
lib/tk8.0/demos/menu.tcl
|
||||
lib/tk8.0/demos/menubu.tcl
|
||||
lib/tk8.0/demos/msgbox.tcl
|
||||
lib/tk8.0/demos/plot.tcl
|
||||
lib/tk8.0/demos/puzzle.tcl
|
||||
lib/tk8.0/demos/radio.tcl
|
||||
lib/tk8.0/demos/rmt
|
||||
lib/tk8.0/demos/rolodex
|
||||
lib/tk8.0/demos/ruler.tcl
|
||||
lib/tk8.0/demos/sayings.tcl
|
||||
lib/tk8.0/demos/search.tcl
|
||||
lib/tk8.0/demos/square
|
||||
lib/tk8.0/demos/states.tcl
|
||||
lib/tk8.0/demos/style.tcl
|
||||
lib/tk8.0/demos/tclIndex
|
||||
lib/tk8.0/demos/tcolor
|
||||
lib/tk8.0/demos/text.tcl
|
||||
lib/tk8.0/demos/timer
|
||||
lib/tk8.0/demos/twind.tcl
|
||||
lib/tk8.0/demos/vscale.tcl
|
||||
lib/tk8.0/demos/widget
|
||||
lib/tk8.0/images/README
|
||||
lib/tk8.0/images/logo100.gif
|
||||
lib/tk8.0/images/logo64.gif
|
||||
lib/tk8.0/images/logoLarge.gif
|
||||
lib/tk8.0/images/logoMed.gif
|
||||
lib/tk8.0/images/pwrdLogo100.gif
|
||||
lib/tk8.0/images/pwrdLogo150.gif
|
||||
lib/tk8.0/images/pwrdLogo175.gif
|
||||
lib/tk8.0/images/pwrdLogo200.gif
|
||||
lib/tk8.0/images/pwrdLogo75.gif
|
||||
@dirrm lib/tk8.0/demos/images
|
||||
@dirrm lib/tk8.0/demos
|
||||
@dirrm lib/tk8.0/images
|
||||
@dirrm lib/tk8.0
|
||||
@dirrm include/tk8.0/unix
|
||||
@dirrm include/tk8.0/generic
|
||||
@dirrm include/tk8.0
|
Loading…
Reference in New Issue
Block a user