Skip to content

bitmap images in tcltk

6 messages · Roger Bivand, John Fox, Dirk Eddelbuettel

#
Dear R-help list members,

I'm writing a package using tcltk. Thanks to Peter Dalgaard's excellent 
work on the tcltk package, almost everything has gone very smoothly. I'm 
stymied, however, by the following problem:

I want to incorporate a bitmap image, stored as an xbm file, in a widget. 
To take a simple example,

     top <- tktoplevel()
     tkgrid(tklabel(top, bitmap="@file.xbm", fg="red"))

will work as long as file.xbm is in the current directory; alternatively, I 
could specify the path to this file. The problem is that I can't figure out 
a reliable way of predicting (or discovering) where the bitmap file will 
reside when my package is installed.

Any suggestions would be appreciated.

Thanks,
  John
-----------------------------------------------------
John Fox
Department of Sociology
McMaster University
Hamilton, Ontario, Canada L8S 4M4
email: jfox at mcmaster.ca
phone: 905-525-9140x23604
web: www.socsci.mcmaster.ca/jfox
#
On Tue, 6 May 2003, John Fox wrote:

            
system.file(<file path relative to package root>, package="package")[1]

should do it.

  
    
#
On Tue, May 06, 2003 at 02:24:10PM -0400, John Fox wrote:
Seconded. It is truly excellent, and cross-platform without any heachaches.
There is a much easier solution thanks to Luke's tkrplot which is available
for win32 and unix on CRAN.  A simple example is
It can do fancier stuff too by using a 'replot' feature. The example from
the help page varies a simple function by tieing a callback command and
variable from a scale to a function around tkreplot():

     tt <- tktoplevel()
     bb<-1
     img <-tkrplot(tt, function() plot(1:20,(1:20)^bb))
     f<-function(...) {
         b <- as.numeric(tclvalue("bb"))
         if (b != bb) {
             bb <<- b
             tkrreplot(img)
         }
     }
     s <- tkscale(tt, command=f, from=0.05, to=2.00, variable="bb",
                  showvalue=FALSE, resolution=0.05, orient="horiz")
     tkpack(img,s)
			   
Dirk
#
Dear Roger,

Thanks -- that's exactly what I needed. I can just stick the files in a 
bitmaps subdirectory.

  John
At 08:44 PM 5/6/2003 +0200, you wrote:
-----------------------------------------------------
John Fox
Department of Sociology
McMaster University
Hamilton, Ontario, Canada L8S 4M4
email: jfox at mcmaster.ca
phone: 905-525-9140x23604
web: www.socsci.mcmaster.ca/jfox
#
Dear Dirk,

The tkrplot package is indeed interesting, but my understanding is that 
it's for putting R graphics in a widget. My bitmaps are for things like 
button-tops. Perhaps I'm missing something.

Regards,
  John
At 01:53 PM 5/6/2003 -0500, Dirk Eddelbuettel wrote:
-----------------------------------------------------
John Fox
Department of Sociology
McMaster University
Hamilton, Ontario, Canada L8S 4M4
email: jfox at mcmaster.ca
phone: 905-525-9140x23604
web: www.socsci.mcmaster.ca/jfox
#
On Tue, May 06, 2003 at 04:54:10PM -0400, John Fox wrote:
No, I had misread the question. 

Sorry,  Dirk