Re: [Evolution-hackers] evolution plugins/extensions



On Tue, 2004-01-20 at 19:27 -0500, Miguel de Icaza wrote:
> Hello,
> 
> > > Sent this yesterday but it never seemed to send...
> > > 
> > > I was wondering if it was possible to write "plugins/extensions" for 
> > > evolution ( either the 1.4.x series or 1.5.x ).
> > > 
> > > At work we currently have a product that plugs into Microsoft outlook, 
> > > adding an item on the toolbar for sending SMS messages, showing an 
> > > addressbook that contains a filtered list of contacts that have mobile 
> > > phones listed.
> > > 
> > > Also, if such extensions can be written, do they have to be written in C ? 
> > > Or could one write an extension in C#/Mono or language-of-choice ( I'm 
> > > assuming anything that could create a Bonobo component? )
> > 
> > I know miguel has been experimenting with stuff like this.  Chris also
> > did some work embedding a component in evo.  Not sure how advanced this
> > is yet.
> 
> I found a nice way of doing this without having to touch Evolution, you
> have to use the --load-modules option, the following illustrates this:
> 
> Compile like this:
> 
> 	gcc -shared -fPIC module.c `pkg-config --libs --cflags mono` -o libdemo.so
> 	mcs demo.cs
> 	cp demo.exe /tmp
> 
> 	cp libdemo.so /usr/lib
> 	/sbin/ldconfig
> 
> Then pick a Gnome app, any, say gnome-stones:
> 
> 	GTK_MODULES=module gnome-stones
> 
> That will give you a greeting from C# code.
> 
> That shows the basics, the problem is that we need to transfer control
> back to C, so you will want to install your hooks there to be called back.
> 
> One hack I have used is to use g_signal_add_emission_hook for
> interesting Gtk+ signals, one that will be triggered by the time you
> are ready.  For example I have used "add" on Container to catch and
> monitor all adds and when I find a menu, I can hook it up ;-)

You can call any C functions from c# this way right?  Does it need some
linking stage, or is that automagic?

How about doing a camel provider, it has a c entry point, which just
hooks into the system using add methods.  That should be pretty easy to
hook in right?  The only problem with camel is it using its own object
system, i guess.






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