[R-gui] Another R-GUI

Philippe Grosjean phgrosjean@sciviews.org
Mon, 25 Nov 2002 17:38:45 +0100


OK, now I see why we are not in phase: you speak about a dialog box
definition file used by the compiler. At this point it is very easy to add
other "widgets". It is exactly the same for Visual Basic. On the other hand,
I talk about a dialog box specification file that can be used to create a
dialog box *at run time*, that is by a compiled program (being written in
Delphi, Visual Basic, Java, C, or whatever,...). This is definitively a
different matter! Especially if we should be able to implement that dialog
box with various languages and different graphical toolkits on all platforms
supported by R,... a more difficult but not completelly inaccessible goal.

Philippe

-----Message d'origine-----
De : Duncan Murdoch [mailto:murdoch@stats.uwo.ca]
Envoye : lundi 25 novembre 2002 17:25
A : phgrosjean@sciviews.org
Cc : r-sig-gui@stat.math.ethz.ch
Objet : Re: [R-gui] Another R-GUI


On Mon, 25 Nov 2002 16:31:51 +0100, you wrote in message
<MABBLJDICACNFOLGIHJOEEEADBAA.phgrosjean@sciviews.org>:
> There will certainly be some cases where the
>programmer would like to use specific widgets, or exotic features. For
>instance, I have some ideas on how to implement dynamically a dialog box
>composed of standard widgets in Visual Basic, but it is not obvious to me
>how I could dynamically add some exotic OCXes at run time!

I think the way Delphi handles this is good.  It doesn't use XML, it
uses its own language, but I think there's a 1-1 map to XML.  A
typical form definition file might look like this:

>object Form3: TForm3

Delphi calls windows "forms".  This is a dialog box declared to be of
type "TForm3", which I just created.  The compiler would see the
declaration and would know what TForm3 means.

>  Left = 247
>  Top = 122
>  Width = 870
>  Height = 640
>  Caption = 'Form3'
>  Color = clBtnFace
>  Font.Charset = DEFAULT_CHARSET
>  Font.Color = clWindowText
>  Font.Height = -13
>  Font.Name = 'MS Sans Serif'
>  Font.Style = []
>  OldCreateOrder = False
>  PixelsPerInch = 120
>  TextHeight = 16

These are a number of properties of the form that have been set to
non-default values.

>  object Button1: TButton
>    Left = 168
>    Top = 32
>    Width = 75
>    Height = 25
>    Caption = 'Button1'
>    TabOrder = 0
>  end


This is a button that has been added to the form, with some
non-default properties.  Delphi knows that TButton is a button,
because it has been registered with the system.  If I wanted an OCX,
I'd register TMyOCX with the system, and it would be allowed here too.

>end

If other components had been added to the form, their descriptions
would follow the button definition.  Some components can have other
components nested within them.

>P.S.: Duncan, I recently showed your RGL (R interface to OpenGL) at a
>R/PASTECS formation,... and I got a lot of Aahh! and Oohhh! By the way, in
>the choosen example, some particular features in the data set where only
>revealed by playing with the 3D graph in RGL, but not, for instance in a
>contour plot [image() followed by contour()].

Sounds great!  By the way, there's some progress on getting it past
being just a "prototype".  I'm hoping to get some help translating to
C++ early next year, at which point I can clean up some ugliness in
the original version, make it available on more platforms, and start
adding requested features to it.

Duncan Murdoch