You can create an R externalptr object, see google and Rinternals.h, i.e., R_MakeExternalPtr. Once you get one of those, it's just a matter of getting the class attribute set correctly and everything should work.
On Mon, Sep 23, 2013 at 4:23 PM, Thomas Glogowski <thomas.glogow...@rub.de>wrote: > Michael Lawrence <lawrence.michael <at> gene.com> writes: > > > > > The objects in RGtk2 (and cairoDevice) are externalptr objects in R. One > > approach would be to create an externalptr in C, and then call some R > code > > that sets the class attribute accordingly, i.e., to the result of > > gTypeGetAncestors("GtkDrawingArea"), and then calls asCairoDevice() on > that > > object. > > > > Michael > > > > Thank's Michael but I don't understand how to do what you've explained. How > can I change an external pointer (created in C) to be an > GtkDrawingArea using R? > > What I've tried so far is: > > -1-store the existing GtkDrawingArea* from my app in a DLL callable > variable > -2-set up a DrawingArea in R with: DA <- gtkDrawingArea > -3-call the DLL-function with .Call ("R_Interface_get_da", DA ) > -4-the DLL-function R_Interface_get_da takes DA as an SEXP and lets it > point > to the variable created in step 1 (i.e. my apps DrawingArea). > > Doing it that way I thought DA would be an object of the correct class > allready, because I only let it point to some other DrawingArea. But that > doesn't work in conjunction with asCairoDevice. > > > > Thomas > > _______________________________________________ > R-SIG-GUI mailing list > R-SIG-GUI@r-project.org > https://stat.ethz.ch/mailman/listinfo/r-sig-gui > [[alternative HTML version deleted]] _______________________________________________ R-SIG-GUI mailing list R-SIG-GUI@r-project.org https://stat.ethz.ch/mailman/listinfo/r-sig-gui