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