<br><font size=2 face="sans-serif">Hi Vamshi,</font>
<br>
<br><font size=2 face="sans-serif">I am glad to hear that you are enjoying
playing with GME and I wish you all the best for the project. As for using
the models directly I would recommend using a high-level interface such
as BON2, UDM. These are high-level stl based C++ API's to access, modify
and create models. If you like Java you might want to consider JBON.</font>
<br>
<br><font size=2 face="sans-serif">Thanks,</font>
<br><font size=2 face="sans-serif">Adi<br>
</font>
<br><font size=2 face="sans-serif">-----------------------------------<br>
Aditya Agrawal<br>
Researcher<br>
IBM T. J. Watson<br>
mailto:aagrawa@us.ibm.com<br>
+1 (914) 784-6068 (TL 863)<br>
</font>
<br>
<br><font size=2><tt>gme-users-bounces@list.isis.vanderbilt.edu wrote on
04/22/2005 02:15:22 PM:<br>
<br>
> Thanks a lot for such a responsive and useful list! I must say I'm
<br>
> enjoying tinkering with GME the past few months.<br>
> I'm considering using it to build a prototype <br>
> music-authoring/content-management tool, which supports arbitrarily
<br>
> complex end-user programming/configuration at different abstraction
<br>
> levels (composition level, sensor level, signal level) via <br>
> metaprogramming ... im interested in using Windows.Forms as I would
like <br>
> the GUI to be web based (to facilitate community driven activities
like <br>
> sharing, referencing, composition and specialization of music building
<br>
> blocks a.k.a "licks"). GME and VSTS Team System (esp features
like the <br>
> DSL environment supposedly in the 2005 Beta 2) seemed like good starting
<br>
> points. I haven't had the chance to try VSTS yet, and there is interest
<br>
> in GME here at McGill (I was referred to it by Hans Vangheluwe).<br>
> Would having a web based interface require me to relinquish using
the <br>
> GME GUI altogether and operate at the MGA library level? Or is there
a <br>
> way out?<br>
> Anyway, it's been GReAT so far (sure u'r used to that now :D), thanks
<br>
> for the help and any pointers would be greatly appreciated.<br>
> Thanks!<br>
> -Vamshi<br>
> <br>
> Peter Volgyesi wrote:<br>
> <br>
> >Hi,<br>
> ><br>
> >Although you can implement custom decorators as managed components,
you<br>
> >will encounter several minor problems. Our idl files (type
libraries) are<br>
> >not tested rigorously with managed code. You can overcome many
of the<br>
> >problems by disassembling the generated (tlbimp) wrappers, slighlty
modify<br>
> >them and reassemble again.<br>
> >I've attached the most basic custom decorator I could come up
with. Even for<br>
> >this one, I had to modify the MgaDecorator and Mga wrappers and
change<br>
> > - the MgaFCOs class to have a public (not assembly) constructor<br>
> > - the IMgaDecorator:Draw method to pass the hDC parameter as
an int32 value<br>
> ><br>
> >--<br>
> >Peter Volgyesi<br>
> >ISIS, Vanderbilt University<br>
> ><br>
> > <br>
> ><br>
> >>-----Original Message-----<br>
> >>From: gme-users-bounces@list.isis.vanderbilt.edu <br>
> >>[mailto:gme-users-bounces@list.isis.vanderbilt.edu] On Behalf
<br>
> >>Of Vamshi Raghu<br>
> >>Sent: Thursday, April 21, 2005 4:54 PM<br>
> >>To: gme-users@list.isis.vanderbilt.edu<br>
> >>Subject: [gme-users] Decorators in Windows.Forms.<br>
> >><br>
> >>Hi!<br>
> >>Can a decorator be written using "managed" components?
If so, <br>
> >>any pointers to information on where to find out how to <br>
> >>expose the .NET equivalent of a custom control as a COM <br>
> >>component implementing IMgaDecorator? Is there a <br>
> >>gme-developers list or equivalent?<br>
> >>Thanks in advance!<br>
> >>-Vamshi<br>
> >><br>
> >>_______________________________________________<br>
> >>gme-users mailing list<br>
> >>gme-users@list.isis.vanderbilt.edu<br>
> >>http://list.isis.vanderbilt.edu/mailman/listinfo/gme-users<br>
> >> <br>
> >><br>
> >>------------------------------------------------------------------------<br>
> >><br>
> >>using System;<br>
> >>using MGADECORATORLib;<br>
> >>using MGALib;<br>
> >>using System.Windows.Forms;<br>
> >>using System.Drawing;<br>
> >>using System.Drawing.Drawing2D;<br>
> >>using System.Drawing.Imaging;<br>
> >>using System.Drawing.Text;<br>
> >><br>
> >><br>
> >>namespace Decorators<br>
> >>{<br>
> >> /// <summary><br>
> >> /// Summary description for NETDecorator.<br>
> >> /// </summary><br>
> >> public class NETDecorator : IMgaDecorator<br>
> >> {<br>
> >> public NETDecorator()<br>
> >> {<br>
> >> //<br>
> >> // TODO: Add constructor logic
here<br>
> >> //<br>
> >> }<br>
> >> <br>
> >> #region IMgaDecorator Members<br>
> >><br>
> >> public void GetLabelLocation(out int
sx, out int sy, out int<br>
> ex, out int ey)<br>
> >> {<br>
> >> // TODO: Add NETDecorator.GetLabelLocation
implementation<br>
> >> sx = 0;<br>
> >> sy = 0;<br>
> >> ex = 0;<br>
> >> ey = 0;<br>
> >> }<br>
> >><br>
> >> public void GetFeatures(out uint features)<br>
> >> {<br>
> >> // TODO: Add NETDecorator.GetFeatures
implementation<br>
> >> features = 0;<br>
> >> }<br>
> >><br>
> >> public void SetLocation(int sx, int sy,
int ex, int ey)<br>
> >> {<br>
> >> m_sx = sx;<br>
> >> m_sy = sy;<br>
> >> m_ex = ex;<br>
> >> m_ey = ey;<br>
> >> }<br>
> >><br>
> >> public void SetActive(bool isActive)<br>
> >> {<br>
> >> // TODO: Add NETDecorator.SetActive
implementation<br>
> >> }<br>
> >><br>
> >> public void SetParam(string Name, object
Value)<br>
> >> {<br>
> >> // TODO: Add NETDecorator.SetParam
implementation<br>
> >> }<br>
> >><br>
> >> public void Destroy()<br>
> >> {<br>
> >> // TODO: Add NETDecorator.Destroy
implementation<br>
> >> }<br>
> >><br>
> >> public void GetLocation(out int sx, out
int sy, out int ex, <br>
> out int ey)<br>
> >> {<br>
> >> // TODO: Add NETDecorator.GetLocation
implementation<br>
> >> sx = m_sx;<br>
> >> sy = m_sy;<br>
> >> ex = m_ex;<br>
> >> ey = m_ey;<br>
> >> }<br>
> >><br>
> >> public void GetPortLocation(MGADECORATORLib.IMgaFCO
FCO, out<br>
> int sx, out int sy, out int ex, out int ey)<br>
> >> {<br>
> >> // TODO: Add NETDecorator.GetPortLocation
implementation<br>
> >> sx = 0;<br>
> >> sy = 0;<br>
> >> ex = 0;<br>
> >> ey = 0;<br>
> >> }<br>
> >><br>
> >> public void Initialize(MGADECORATORLib.IMgaProject
Project, <br>
> IMgaMetaPart Meta, MGADECORATORLib.IMgaFCO obj)<br>
> >> {<br>
> >> // TODO: Add NETDecorator.Initialize
implementation<br>
> >> }<br>
> >><br>
> >> public void GetMnemonic(out string mnemonic)<br>
> >> {<br>
> >> // TODO: Add NETDecorator.GetMnemonic
implementation<br>
> >> mnemonic = "NETDecorator";<br>
> >> }<br>
> >><br>
> >> public void GetParam(string Name, out
object Value)<br>
> >> {<br>
> >> // TODO: Add NETDecorator.GetParam
implementation<br>
> >> Value = null;<br>
> >> }<br>
> >><br>
> >> public MGADECORATORLib.IMgaFCOs GetPorts()<br>
> >> {<br>
> >> // TODO: Add NETDecorator.GetPorts
implementation<br>
> >> MGADECORATORLib.IMgaFCOs ports
= (MGADECORATORLib.<br>
> IMgaFCOs)new MGALib.MgaFCOsClass();<br>
> >> return ports;<br>
> >> }<br>
> >><br>
> >> public void SaveState()<br>
> >> {<br>
> >> // TODO: Add NETDecorator.SaveState
implementation<br>
> >> }<br>
> >><br>
> >> public void Draw(System.Int32 hdc)<br>
> >> {<br>
> >> Graphics g = Graphics.FromHdc((System.IntPtr)hdc);<br>
> >> Pen blackPen = new Pen(Color.Black,
3);<br>
> >> g.DrawRectangle(blackPen, m_sx,
m_sy, m_ex-m_sx, m_ey-m_sy);<br>
> >> g.Dispose();<br>
> >> }<br>
> >><br>
> >> public void GetPreferredSize(out int
sizex, out int sizey)<br>
> >> {<br>
> >> // TODO: Add NETDecorator.GetPreferredSize
implementation<br>
> >> sizex = 100;<br>
> >> sizey = 100;<br>
> >> }<br>
> >><br>
> >> #endregion<br>
> >><br>
> >> private int m_sx;<br>
> >> private int m_sy;<br>
> >> private int m_ex;<br>
> >> private int m_ey;<br>
> >> }<br>
> >>}<br>
> >> <br>
> >><br>
> >>------------------------------------------------------------------------<br>
> >><br>
> >>_______________________________________________<br>
> >>gme-users mailing list<br>
> >>gme-users@list.isis.vanderbilt.edu<br>
> >>http://list.isis.vanderbilt.edu/mailman/listinfo/gme-users<br>
> >> <br>
> >><br>
> <br>
> <br>
> _______________________________________________<br>
> gme-users mailing list<br>
> gme-users@list.isis.vanderbilt.edu<br>
> http://list.isis.vanderbilt.edu/mailman/listinfo/gme-users<br>
</tt></font>