discuss-gnustep
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: MulleEOInterface


From: Marcus Müller
Subject: Re: MulleEOInterface
Date: Fri, 23 May 2003 21:56:15 +0200

Hi Dirk,

On Friday, May 23, 2003, at 17:51 Europe/Berlin, Dirk Lattermann wrote:

Hello,

I succeeded in compiling MulleEOInterface with GNUstep and
GDL2. I fixed several bugs (I think) and got a few things to work,
but didn't try the much.

There are some doubtful things I have done:

- I replaced
objc_msgSend(bla, selector, argument) with
[bla performSelector: selector withObject: argument]
but this occurs in code that I didn't use in tests.

this stuff was probably there to speed things up (Nat! is a well-respected speed optimization fanatic).

You can use the following on Apple/GNUstep:

#ifndef GNU_RUNTIME /* NeXT RUNTIME */

#define EDObjcMsgSend(obj, sel) objc_msgSend((obj), (sel))

#define EDObjcMsgSend1(obj, sel, obj1) objc_msgSend((obj), (sel), (obj1))
#define EDObjcMsgSend2(obj, sel, obj1, obj2) objc_msgSend((obj), (sel), (obj1), (obj2))
#define EDObjcMsgSend3(obj, sel, obj1, obj2, obj3) objc_msgSend((obj), (sel), (obj1), (obj2), (obj3))

#else /* GNU_RUNTIME */


#define EDObjcMsgSend(obj, sel) objc_msg_lookup((obj), (sel))((obj), (sel))

#define EDObjcMsgSend1(obj, sel, obj1) objc_msg_lookup((obj), (sel))((obj), (sel), (obj1))
#define EDObjcMsgSend2(obj, sel, obj1, obj2) objc_msg_lookup((obj), (sel))((obj), (sel), (obj1), (obj2))
#define EDObjcMsgSend3(obj, sel, obj1, obj2, obj3) objc_msg_lookup((obj), (sel))((obj), (sel), (obj1), (obj2), (obj3))

#endif


These are all taken from EDCommon/EDObjcRuntime.h, also available from Mulle kybernetiK (http://www.mulle-kybernetik.com/software/EDFrameworks/).


All works only by creating and connecting the classes programmatically,
I've never used Gorm, but I presume getting this to work with Gorm
(creating palettes?) is much work.

We've provided a demonstration on FOSDEM 2003 how that could be done in Gorm. The MulleConnectInspector (http://www.mulle-kybernetik.com/software/MCI/) provides the whole infrastructure for associations and a palette (for OS X only). In its current incarnation, the MulleEOInterface isn't running on top of MCI, but could be ported easily to do so.

I had to modify the queueing mechanisms of EODelayedObserverQueue
because it was broken. Will post a bug report.

That sounds strange, because it definitely works on OS X. MulleEOInterface is used in a commercial application for several years now. It's most probably a GNUstep related issue I think.


As I don't have access to a Cocoa system, I don't know if it still
compiles there. Can I simply replace #import by #include with
#ifndef-protection there as well?

Yes, sure. The only exception are system framework headers (Foundation, AppKit) as Apple doesn't provide 'safeguarding' for these.


If someone is interested, I will put the code somewhere (and tell the
location :-) ). Need to clean it up a bit before, though.

I find this very exciting, so I thought I should write about it
right now!

Thanks, Nat (or whomever at Mulle Kybernetik I have to thank)!!

Nat! is the one. For MCI contact Erik Dörnenburg <erik AT mulle-kybernetik.com>.


Cheers,

Marcus

--
Marcus Mueller . . . crack-admin/coder ;-)
Mulle kybernetiK . http://www.mulle-kybernetik.com
Current projects: finger znek@mulle-kybernetik.com


reply via email to

[Prev in Thread] Current Thread [Next in Thread]