Hi Elizabeth,
  I am trying to work through the way that createMenuItem works.

1) First, what does it mean for a menu item to be "activated"? Do you mean 
 selected? 

2) Now, if I am following, the parameter "action" can be the name of a function
 (passed as a string). This function will be invoked when the menu item
 is selected and if there are any additional parameters needed, they
 can be specified in the ... argument to addSubMenuItem.

  The named function is invoked using do.call.

 < please tell me if any of this is incorrect>


3)  I can not follow what the purpose of modType and accelFlag is.
  <can you explain a bit?>


4)  Gtk should have a capital G, silly, but it keeps some of us from 
  getting confused. 
   <correct if that is now what you are referring to>

5)  The parameters ag and accelGroup have the same description, shouldn't they 
  have the same name?
   <also, explain this in reference to 3), please>


Next, I am trying to understand how the gAddViewMessage paradigm works.

 Would this be what I would like to have happen as the action? So if 
 I write a function that generates a gAddViewMessage of the correct type, then
 that is how a new view is created?

 I also wonder if we should not think about a way to specify the name of
 function through the message. Right now, you are suggesting that I 
 add a new line in createPlotView like:
    if(plotType == "heatmap") 
        {newList <- createHeatmap(win, dataname, drArea...) ...}

  it would be better if the name of that function was passed in, a a 
  do.call was invoked (or even the function could be passed in), 
  that way the user can extend the system without having to edit any code.

  Now what I need to know/understand is the set of parameters that that 
 function would get called with. And to know what the return type needs 
 to be. You say it should be a list with a GtkWindow and a new View object -
  so I wonder if that should be a class - just so we can be sure we have
 what we want coming back.

 Your item number 4, seems to be concerned with a message that needs to be
 generated in response to a mouse event? You talk about a gUpdateDataMessage,
 but I am not just sure when that would get called.

 If we think of my heatmap view, it needs to know how to send messages in 
 response to different Gtk events (such as a mouse click or a key-press) 
 and it needs to respond to events that have been generated by other views,
 sent to the message center and pushed back out to the views.

 I think that the updateView part (your number 5) deals with the last of 
 those.

 I think that updatePlots should just send messages to all the active devices. 
 The author of the heatmap function should make sure his view can deal with 
 the update messages that it gets.



  Thanks
   Robert

