diff --git a/ChangeLog b/ChangeLog index 5ff1b47..0e81982 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,24 @@ +2010-06-14 john verzani + + * R/gtable.R (.computeWidths): removed autoscroll call - caused + issues with initial drawing of screen. Also in gtext. + +2010-05-28 john verzani + + * R/gdroplist.R: svalue(obj, index=TRUE) <- -1 should work now (no + value set) + +2010-05-27 john verzani + + * R/gedit.R: added visible<- method + +2010-05-22 john verzani + + * R/gdialogs.R: fix to dialogs when message includes detail + (message has length 2 or more). + + * R/gfile.R: bug fix with hidden argument multiple + 2010-05-20 john verzani * R/gradio.R: try to fix issue that handler called before variable diff --git a/DESCRIPTION b/DESCRIPTION index 644b0d9..bb52703 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,5 +1,5 @@ Package: gWidgetstcltk -Version: 0.0-35 +Version: 0.0-36 Title: Toolkit implementation of gWidgets for tcltk package Author: John Verzani Maintainer: John Verzani @@ -14,6 +14,6 @@ Description: Port of gWidgets API to the tcltk package. Requires TK 8.5 License: GPL (>= 2) URL: http://www.math.csi.cuny.edu/pmg LazyLoad: yes -Packaged: 2010-05-21 12:54:19 UTC; verzani +Packaged: 2010-06-25 16:10:02 UTC; verzani Repository: CRAN -Date/Publication: 2010-05-22 06:41:15 +Date/Publication: 2010-06-25 17:50:40 diff --git a/NEWS b/NEWS index 821a4e5..48e2620 100644 --- a/NEWS +++ b/NEWS @@ -2,6 +2,10 @@ Dear Emacs, please make this -*-Text-*- mode! NEWS for gWidgetstcltk +Changes for 0.0-36 +------------------- + * added visible<- method for gedit. If FALSE will mask characters + Changes for 0.0-35 ------------------- * fix to gradio's addHandlerChanged and svalue methods. diff --git a/R/gdialogs.R b/R/gdialogs.R index 62e4892..09fbf37 100644 --- a/R/gdialogs.R +++ b/R/gdialogs.R @@ -72,7 +72,7 @@ tcltkDialog = function( ## set up label if(missing(message) || is.null(message)) message <- "" - l <- ttklabel(dlgframe, text = as.character(message)) + l <- ttklabel(dlgframe, text = paste(as.character(message), sep="\n")) tkgrid(l, row=0, column = 1, stick ="nw", padx=25, pady=5) @@ -152,24 +152,28 @@ setMethod(".gmessage", icon = match.arg(icon) l <- list(icon=icon, - message=gettext(message), + message=gettext(message[1]), title = title, type="ok") + if(length(message) > 1) + l$detail=gettext(message[2]) + if(!is.null(parent)) l$parent <- getWidget(parent) + out <- do.call("tkmessageBox",l) return(out) - ## old - return(tcltkDialog( - message, - title=title, - icon=icon, - type="message", - parent = parent, - handler=handler, - action=action, - ...)) + ## ## old + ## return(tcltkDialog( + ## message, + ## title=title, + ## icon=icon, + ## type="message", + ## parent = parent, + ## handler=handler, + ## action=action, + ## ...)) ## icon = match.arg(icon) @@ -196,10 +200,15 @@ setMethod(".gconfirm", ... ) { icon = match.arg(icon) + l <- list(icon=icon, - message=gettext(message), + message=gettext(message[1]), title = title, type="yesno") + + if(length(message) > 1) + l$detail=gettext(message[2]) + if(!is.null(parent)) l$parent <- getWidget(parent) out <- do.call("tkmessageBox",l) @@ -209,15 +218,15 @@ setMethod(".gconfirm", FALSE) return(val) - return(tcltkDialog( - message, - title=title, - icon=icon, - type="confirm", - parent = parent, - handler=handler, - action=action, - ...)) + ## return(tcltkDialog( + ## message, + ## title=title, + ## icon=icon, + ## type="confirm", + ## parent = parent, + ## handler=handler, + ## action=action, + ## ...)) ## icon = match.arg(icon) diff --git a/R/gdroplist.R b/R/gdroplist.R index a2c751c..c8bff9f 100644 --- a/R/gdroplist.R +++ b/R/gdroplist.R @@ -150,6 +150,7 @@ setMethod(".svalue", }) ## set the displayed value to value +## if index=TRUE and value=0, seet to no state setReplaceMethod(".svalue", signature(toolkit="guiWidgetsToolkittcltk",obj="gDroplisttcltk"), function(obj, toolkit, index=NULL, ..., value) { @@ -161,12 +162,12 @@ setReplaceMethod(".svalue", widget <- getWidget(obj) - n = length(obj) + n <- length(obj) if(n <= 1) return(obj) if(is.null(index)) index <- FALSE - index = as.logical(index) + index <- as.logical(index) ## if editable do differently ## editable not implented @@ -175,7 +176,9 @@ setReplaceMethod(".svalue", ## if index, set if(index) { if(value > 0 && value <= n) - tclvalue(tcl(widget,"current", as.numeric(value) - 1)) + tcl(widget,"current", as.numeric(value) - 1) + else # set to no state + tcl(widget,"set", "") # aka -1 for get } else { if(!is.null(editable) && editable) { ## editable diff --git a/R/gedit.R b/R/gedit.R index 83d52b0..15b79b0 100644 --- a/R/gedit.R +++ b/R/gedit.R @@ -162,6 +162,17 @@ setReplaceMethod(".size", }) +##' visible<- if FALSE, for password usage +setReplaceMethod("visible",signature(obj="gEdittcltk"), + function(obj, ..., value) { + widget <- getWidget(obj) + if(as.logical(value)) + tkconfigure(widget, show="") + else + tkconfigure(widget, show="*") + return(obj) + }) + ################################################## ## handlers diff --git a/R/gfile.R b/R/gfile.R index 0ec89e7..0a95207 100644 --- a/R/gfile.R +++ b/R/gfile.R @@ -26,7 +26,7 @@ setMethod(".gfile", args = list(...) ## this will be in the API, for now we pass in through ... - multiple <- getWithDefault(multiple, FALSE) + multiple <- getWithDefault(args$multiple, FALSE) type = match.arg(type) @@ -54,12 +54,11 @@ setMethod(".gfile", theFilter = "{{All files} *}" } + l <- list(title=text, filetypes=theFilter, multiple=multiple) if(!is.null(initialfilename)) - val = tkgetOpenFile(initialfile=initialfilename, title=text, - filetypes=theFilter, multiple=multiple) - else - val <- tkgetOpenFile(title=text, filetypes=theFilter) + l$initialfile=initialfilename + val <- do.call("tkgetOpenFile", l) } else if(type == "save") { val = tkgetSaveFile(initialfile=initialfilename, title=text) diff --git a/R/ggroup.R b/R/ggroup.R index 0a70b4d..f50990c 100644 --- a/R/ggroup.R +++ b/R/ggroup.R @@ -78,6 +78,7 @@ setMethod(".ggroup", }) } else { gp <- ttkframe(tt) + tkconfigure(gp, borderwidth=10) # XXX block <- gp widget <- NULL # for later } diff --git a/R/gtable.R b/R/gtable.R index df6e577..ece0595 100644 --- a/R/gtable.R +++ b/R/gtable.R @@ -197,12 +197,11 @@ setMethod(".gtable", ## selectmode selectmode = if(multiple) "extended" else "browse" + ########## ## setup widget - tt = getWidget(container) - gp = ttkframe(tt) + tt <- getWidget(container) + gp <- ttkframe(tt) - - ## set up widget, tr, with scrollbars xscr <- ttkscrollbar(gp, orient="horizontal", command=function(...)tkxview(tr,...)) yscr <- ttkscrollbar(gp, orient="vertical", @@ -216,12 +215,25 @@ setMethod(".gtable", xscrollcommand=function(...)tkset(xscr,...), yscrollcommand=function(...)tkset(yscr,...)) - + + ## pack into grid + ## see tkFAQ 10.1 -- makes for automatic resizing + tkgrid(tr,row=0,column=0, sticky="news") + tkgrid(yscr,row=0,column=1, sticky="ns") + tkgrid(xscr, row=1, column=0, sticky="ew") + tkgrid.columnconfigure(gp, 0, weight=1) + tkgrid.rowconfigure(gp, 0, weight=1) + + ## call in autoscroll +## tcl("autoscroll", xscr) +## tcl("autoscroll", yscr) - + ## + ###################### + obj = new("gTabletcltk",block=gp,widget=tr, toolkit=toolkit,ID=getNewID(), e = new.env()) - + tag(obj,"icon.FUN") <- icon.FUN tag(obj,"chosencol") <- chosencol tag(obj,"color") = if(!is.null(theArgs$color)) @@ -235,18 +247,7 @@ setMethod(".gtable", tag(obj,"visible") <- NULL - ## pack into grid - ## see tkFAQ 10.1 -- makes for automatic resizing - tkgrid(tr,row=0,column=0, sticky="news") - tkgrid(yscr,row=0,column=1, sticky="ns") - tkgrid(xscr, row=1, column=0, sticky="ew") - tkgrid.columnconfigure(gp, 0, weight=1) - tkgrid.rowconfigure(gp, 0, weight=1) - - ## call in autoscroll - tcl("autoscroll", xscr) - tcl("autoscroll", yscr) - + ## font -- fixed unless overridden # tkconfigure(tr, font="courier") # fixed @@ -270,8 +271,7 @@ setMethod(".gtable", .populateTable(tr, .toCharacter(items), TRUE, icons,names(items), getSizeFrom=gp) - - + size(obj) <- size(obj) + c(0, 20) return(obj) }) diff --git a/R/gtext.R b/R/gtext.R index 8f40ad2..f4fd386 100644 --- a/R/gtext.R +++ b/R/gtext.R @@ -63,8 +63,8 @@ setMethod(".gtext", tkgrid.rowconfigure(gp, 0, weight=1) ## call in autoscroll - tcl("autoscroll", xscr) - tcl("autoscroll", yscr) +# tcl("autoscroll", xscr) +# tcl("autoscroll", yscr) ## set point tkmark.set(txt,"insert","0.0") diff --git a/TODO.txt b/TODO.txt index 80a1861..8c533aa 100644 --- a/TODO.txt +++ b/TODO.txt @@ -2,7 +2,7 @@ TODO: --------- ** Bug with gfile being opened from a button -- button stays depressed after gfile is closed -* the addSpring method!!! +DONE * the addSpring method. (Requires group to be expanded!) * move gcalendar into gWidgets as an ANY object? * addHandlerColumnClicked use tcl(obj,"heading", colno, command=function(...) {}) * anchor or expand=TRUE fails with add. -- This needs work! diff --git a/man/gWidgetstcltk-undocumented.Rd b/man/gWidgetstcltk-undocumented.Rd index 8a5c552..d6081e6 100644 --- a/man/gWidgetstcltk-undocumented.Rd +++ b/man/gWidgetstcltk-undocumented.Rd @@ -539,6 +539,7 @@ \alias{visible<--methods} \alias{visible<-,guiWidget-method} \alias{visible<-,gWidgettcltk-method} +\alias{visible<-,gEdittcltk-method} %% %% -- .visible<- -- %%