Ticket UUID: | 454303 | |||
Title: | -justify option in listboxes | |||
Type: | RFE | Version: | None | |
Submitter: | nobody | Created on: | 2001-08-22 18:32:42 | |
Subsystem: | 09. [listbox] | Assigned To: | fvogel | |
Priority: | 6 | Severity: | Minor | |
Status: | Closed | Last Modified: | 2016-01-25 20:17:22 | |
Resolution: | Fixed | Closed By: | fvogel | |
Closed on: | 2016-01-25 20:17:22 | |||
Description: |
I was looking for a justify option in the TK8.3/8.4 listbox command and I found this old patch by Robin Becker. This allows tk8.0 to show a "-justify" options to align the listbox content to left/center/right. Unfortunately I haven't the necessary knowledge neither to judge if it is still a good patch for the new tcl releases, nor to put my hands on the TclTk source code. This is the patch as I found it on http://www.jessikat.demon.co.uk/tkLB8.patch Stefano Federici [email protected] =================LISTBOX PATCH==================== *** tkListbox.c.orgSat Jan 18 23:54:36 1997 --- tkListbox.cSun Jan 19 00:04:46 1997 *************** *** 167,172 **** --- 167,173 ---- char *xScrollCmd;/* Command prefix for communicating with * horizontal scrollbar. NULL means no command * to issue. Malloc'ed. */ + int justify;/* justification option */ int flags;/* Various flag bits: see below for * definitions. */ } Listbox; *************** *** 259,264 **** --- 260,267 ---- {TK_CONFIG_STRING, "- yscrollcommand", "yScrollCommand", "ScrollCommand", DEF_LISTBOX_SCROLL_COMMAND, Tk_Offset(Listbox, yScrollCmd), TK_CONFIG_NULL_OK}, + {TK_CONFIG_JUSTIFY, "- justify", "justify", "Justify", + "left", Tk_Offset(Listbox, justify), TK_CONFIG_NULL_OK}, {TK_CONFIG_END, (char *) NULL, (char *) NULL, (char *) NULL, (char *) NULL, 0, 0} }; *************** *** 415,420 **** --- 418,424 ---- listPtr->takeFocus = NULL; listPtr->xScrollCmd = NULL; listPtr->yScrollCmd = NULL; + listPtr->justify = TK_JUSTIFY_LEFT; listPtr->flags = 0; Tk_SetClass(listPtr->tkwin, "Listbox"); *************** *** 1188,1195 **** } Tk_GetFontMetrics(listPtr->tkfont, &fm); y += fm.ascent + listPtr->selBorderWidth; ! x = listPtr->inset + listPtr->selBorderWidth - elPtr->lBearing ! - listPtr->xOffset; Tk_DrawChars(listPtr->display, pixmap, gc, listPtr->tkfont, elPtr->text, elPtr->textLength, x, y); --- 1192,1206 ---- } Tk_GetFontMetrics(listPtr->tkfont, &fm); y += fm.ascent + listPtr->selBorderWidth; ! if (listPtr->justify == TK_JUSTIFY_LEFT) { ! x = listPtr->inset + listPtr- >selBorderWidth - elPtr->lBearing ! - listPtr->xOffset; ! } else if (listPtr->justify == TK_JUSTIFY_CENTER) { ! x = listPtr->selBorderWidth - elPtr- >lBearing ! - listPtr->xOffset + (Tk_Width (tkwin) - elPtr->pixelWidth) / 2; ! } else { ! x = Tk_Width(tkwin) - 2*listPtr- >inset - elPtr->pixelWidth; ! } Tk_DrawChars(listPtr->display, pixmap, gc, listPtr->tkfont, elPtr->text, elPtr->textLength, x, y); | |||
User Comments: |
fvogel added on 2016-01-25 20:17:22:
TIP #441 was accepted by TCT vote, and the corresponding implementation was merged to trunk. Closing now. fvogel added on 2016-01-19 07:13:18: TIP #441 was published (thanks to the editor). The feature branch hosting the implementation of it got renamed from rfe-3f456a5bb9 to tip-441. fvogel added on 2016-01-18 21:06:15: See also [3f456a5bb9]. I have written a TIP, I'm now waiting for it to be published. dkf added on 2001-08-23 16:48:46: File Added - 9884: listboxJustify.patch Logged In: YES user_id=79902 And now a version of the patch that is updated to work with Tk 8.4 dkf added on 2001-08-23 16:25:58: File Added - 9883: tkLB8.patch Logged In: YES user_id=79902 Attaching the patch... |
