Hi Stefan, On Mon, Aug 30, 2010 at 8:23 PM, Stefan Rödiger <stefan_roedi...@gmx.de> wrote: > Hi Prasenjit, > > I simply love the stuff you do. Never thought of it, now I won't miss it. It > is so convenient, smart and useful.
Thanks ;) I wish it was implemented in a better by R. Consider this example (nothing to do with rkward: # print device list and the currently active device: f <- function () {print (dev.list ()); print (dev.cur ())} x11 () f () plot (0,0) png (file = "tmpplot_dev3.png", width = 400) f () plot (rnorm (100), rnorm (100)) pdf (file = "tmpplot_dev4.pdf", width = 4) f () dev.off () # closed pdf, x11 is now active !! f () dev.off () # closes x11!! png is now active f () dev.off () # closes png, FINALLY! The problem, is that dev.prev () and dev.next () are implemented in a cyclical numeric order. In this sense, dev.off (which = dev.prev ()) might make more sense, than, the currently implemented: dev.off (which = dev.next ()) yet, the main problem would persist. But in implementing a "linked list" of active devices would pose some logical problems (what happens if you close the previously active device as opposed to closing the current device?), and hence, I think, the simplistic dev.prev and dev.next exists. In that sense, my "fix" is buggy. Hmm... > Thomas asked for feedback some weeks ago which I will try to address later. See if you can use the latest svn code. > One stupid question. Right now it is possible to copy the preview plot to the > output. I wonder if it is possible to embed the corresponding code too (since > the user might be used to that in RKWard behaviour in RKWard)? Nice idea. I am guessing it should be easy to do, without the syntax highlighting. Looking at plugin/rkstandardcomponentgui.cpp, just sending "code_property->Preprocess () + code_property->calculate () + code_property->printout ()" to .rk.cat.output () would do it. Of course, a button on the GUI somewhere. The button action will be more appropriate on the plugin dialog box rather than on the screen device window. (All though, I have arguments in favor of device window as well.) I'll refrain from tinkering with that part of the code! Let Thomas come back. > Regards > Stefan > > Am Samstag 28 August 2010, 03:22:44 schrieb Prasenjit Kapat: >> Hi, >> >> I've modified the rk.graph.on () and rk.graph.off () functions >> slightly in trunk. Since many might be using these functions (as it is >> used in a lot of plugins), here is a little explanation: >> >> As you may know, in R, after dev.off () closes the current device, >> dev.next () is set as active. This applies to RKWard as well. But, >> when >> >> rk.graph.on (); ....; rk.graph.off (); # dev.off () is called inside >> rk.graph.off () >> >> is executed (in some form or the other), dev.next () is not >> necessarily the device that was active before rk.graph.on () was >> called. This creates a little confusion (at least to me, see [1] >> below) especially when copying a device to output via "Device > Copy >> device to output." Hence the fix. >> >> For those following the trunk, let me know if you see any regressions >> or non-intuitive behavior. Of course, this only affects rk.graph.on >> and rk.graph.off and DOES NOT alter the usual (R's) behavior of >> dev.off (). >> >> Regards, >> -- >> Prasenjit >> >> [1] >> x11 () >> plot (0,0) >> x11 () >> plot (1:10,1:10) >> dev.copy (device = rk.graph.on); rk.graph.off () >> dev.off (); # closes the wrong device, w/o the fix. -- Prasenjit ------------------------------------------------------------------------------ This SF.net Dev2Dev email is sponsored by: Show off your parallel programming skills. Enter the Intel(R) Threading Challenge 2010. http://p.sf.net/sfu/intel-thread-sfd _______________________________________________ RKWard-devel mailing list RKWard-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/rkward-devel