Dear Peter,
As you can see from the expression, I didn't use integer division, nor did I
round() or floor(). Here's my original example, using a monospaced font:
library(tcltk)
top <- tktoplevel()
textWindow <- tktext(top, bg="white", height=20, width=80, wrap="none",
+ font=tkfont.create(family="courier", size=10))
tkgrid(textWindow, sticky="news")
tkgrid.rowconfigure(top, 0, weight=1)
tkgrid.columnconfigure(top, 0, weight=1)
tkcget(textWindow, width=NULL)
tkwinfo("width", textWindow$ID)
(as.numeric(tkwinfo("width", textWindow$ID))
+ - 2*as.numeric(tkcget(textWindow, borderwidth=NULL)) - 4) /
+ as.numeric(tkfont.measure(tkcget(textWindow, font=NULL), "0"))
[1] 79.75
(as.numeric(tkwinfo("width", textWindow$ID))
+ - 2*as.numeric(tkcget(textWindow, borderwidth=NULL)) - 2) /
+ as.numeric(tkfont.measure(tkcget(textWindow, font=NULL), "0"))
[1] 80
I believe that the right answer is 80, and this appears correct visually,
confirmed by typing in the window.