[Geany] Plugin Events Patch

blackdog blackdog at xxxxx
Wed Aug 1 19:13:53 UTC 2007


Hi Enrico

I found this tutorial for defining signals, so I think i'll give it  a
shot


http://gnomejournal.org/article/36/writing-a-widget-using-cairo-and-gtk28-part-2

bd


On Wed, 1 Aug 2007 19:17:37 +0200
Enrico Tröger <enrico.troeger at uvena.de> wrote:

> On Wed, 01 Aug 2007 16:28:39 +0100, Nick Treleaven
> <nick.treleaven at btinternet.com> wrote:
> 
> Hi,
> 
> > Then something like:
> > 
> > // callback func called by all editors when a signal arises
> > void on_editor_notification(GtkWidget *editor, gint scn, gpointer
> > lscn, gpointer user_data)
> > {
> > 	SCNotification *nt;
> > 	ScintillaObject *sci;
> > 	gint idx;
> > 
> > 	idx = GPOINTER_TO_INT(user_data);
> > 	sci = doc_list[idx].sci;
> > 
> > 	nt = lscn;
> > 	
> > 	plugins_sci_notify(editor, scn, nt, idx);
> > 
> > Where plugins_sci_notify() calls any plugin that has an
> > on_sci_notify symbol.
> Why don't we just use the signal framework from Glib/GTK?
> My suggestion:
> Let's define a bunch of available signals like
> "plugin::sci-notify"
> "plugin::build-complete"
> "plugin::show-auto-complete-list"
> ...
> Then every plugin can connect to these signals using the
> g_signal_connect() family.
> Within the core of Geany, we emit the signal at the appropriate place
> (e.g. in the signal handler of sci-notify we emit plugin::sci-notify)
> and so the signal handler within the plugin is called. The only
> difficult thing probably will be to define the signals.
> 
> I came across this way of signal usage while writing a panel plugin
> for the Xfce panel. There are (at least) these signals for the plugins
> available:
> "configure-plugin"
> "free-data"
> "save"
> 
> configure-plugin is used to tell the plugin it should show its
> configuration dialog, save is when the plugin settings should be saved
> and free-data is fired when the panel is about to remove the plugin.
> 
> Another possibility could be to let the plugins set function pointers
> for several pre-defined actions to functions within the plugin. But
> this would be nothing else than a more simple way of defining signals
> and connecting handlers to them. So, I suggest we use the existing and
> working signals framework from GLib/GTK.
> 
> What do you think?
> 
> Regards,
> Enrico
> 


-- 
http://www.blackdog-haxe.com/

"It is no measure of health to be well adjusted to a profoundly sick
society." --Jiddu Krishnamurti


-- 
http://www.blackdog-haxe.com/

"It is no measure of health to be well adjusted to a profoundly sick
society." --Jiddu Krishnamurti



More information about the Users mailing list