Shoutbox

Building a GUI? - Printable Version

-Shoutbox (https://shoutbox.menthix.net)
+-- Forum: MsgHelp Archive (/forumdisplay.php?fid=58)
+--- Forum: Messenger Plus! for Live Messenger (/forumdisplay.php?fid=4)
+---- Forum: Scripting (/forumdisplay.php?fid=39)
+----- Thread: Building a GUI? (/showthread.php?tid=87575)

Building a GUI? by Zero on 12-03-2008 at 05:46 PM

Basically I want to try exactly what the subject suggests - create  a standard         graphical user     interface with buttons, editboxes, context menu's, etc. for my JScript/MPL app.

Currently, my understanding is that there are two ways of doing this:

   1. Create an ActiveX Control in your compiler that you then declare & create an instance of in your JScript. Presumably you'd compile a DLL?
   2. Use JScript .NET and create a Windows Form (somehow).

I'm also aware of a tool specifically for MPL that allows you to specify a GUI in XML. I tried it out, it sucked quite badly (but was pre-beta I believe), and so haven't revisited it since.

Does anyone know if there are any other options?

  -Zero


RE: Building a GUI? by Chris4 on 12-03-2008 at 06:18 PM

I think this is what you're looking for.


RE: Building a GUI? by Matti on 12-03-2008 at 06:42 PM

Interfaces in Messenger Plus! Live can be defined in XML files by using the Plus! Interfaces XML scheme, as documented in the Plus! Live Scripting Documentation. You can then create such a window with MsgPlus.CreateWnd and use the returned PlusWnd object to do all sorts of stuff and respond to window events.

This infrastructure was made so Plus! scripts could share a similar window design, so it's highly recommended to create your windows this way rather than creating it through lots of Win32 API code or ActiveX objects. ;)

If you're unsure how to make such windows, have a look at some scripts made by other developers and see how it's done. :)


RE: Building a GUI? by Zero on 12-03-2008 at 07:51 PM

I was aware of that documentation already but was interested in something (an app or a scripting interface) that would either 1) generate the XML for me or 2) create an ActiveX control or Windows Form.

I would prefer to not rely on 3rd party tools like MPL's XML infrastructure or an external app that does the job. Ideally, it'd be great to be able to stick with WSH wherever possible, although I realize that in this case it may not be possible.

Any other tips?


RE: Building a GUI? by NanaFreak on 12-03-2008 at 11:18 PM

MP!L's interface is really good. use it.

it will be much easier than using all the activex and that... because plus has built in functions to interact with the interface...


RE: Building a GUI? by Matti on 12-04-2008 at 12:48 PM

quote:
Originally posted by Zero
I would prefer to not rely on 3rd party tools like MPL's XML infrastructure or an external app that does the job.
Messenger Plus! Live's XML interfaces infrastructure is not a third party tool when you are programming a Messenger Plus! Live script!

That's like saying: "I'm building a website but I don't want to do my design in HTML." The scripts you make are already using the infrastructure delivered by Messenger Plus! Live, so why would you refrain from using other parts of that same infrastructure? Also, if I follow your thinking process: why would you use any of the provided infrastructure at all? Why wouldn't you simply write the hooking procedure in C++ yourself to interact with Messenger? Would that make your result better?

Sure, it'd be a lot more interesting if we could have a designer tool for this, but is that a reason not to use XML? Do you have any idea what a huge task it is to define your own window classes, create your own windows, manually add every control to it and control the whole thing all by yourself?

Seriously, there's nothing wrong with using Plus! Live's interfaces XML when making a Plus! Live script. It was made to make things lots easier for script developers, which is why we have much more developers making magnificent scripts compared to the days where this was done through a Plus! plug-in DLL where you still had to do almost everything yourself regarding interfaces.