On Thu, Apr 22, 2010 at 7:21 PM, dfg dfg <abx...@msn.com> wrote:
>
> Hi everyone,
>
> Currently, I have built my main application using glade. This file is then 
> loaded by a C application.
>
> I then created another interface using Glade. When my main application loads, 
> it loads a .so library which contains code for this subsection (kind of like 
> a plugin).
>
> The .so file loads in the second glade file and attaches it into the 
> interface of the main application. This all works problem.
>
> The problem I am facing now is that gtk_builder_connect_signals (builder, 
> NULL); does not work.
>
> For my .so file, i have 3 files:
>
>   -libmyplugin.c
>   -libmyplugincallbacks.h
>   -libmyplugincallbacks.c
>
>
> My code for the libmyplugin.c file looks like this:
>
>   #include <stdlib.h>
>   #include <gtk/gtk.h>
>   #include "libmyplugincallbacks.h"
>
>   #define GUI "libmyplugingui.ui"
>   int startplugin(){
>      extern *mainBuilder;
>      GtkBuilder *subbuilder;
>
>      //Do things like attach the glade file into the main glade file.
>      gtk_builder_connect_signals (builder, NULL);
>
>   }
>
>
>
> My libmyplugincallbacks.h
>
>   #include <gtk/gtk.h>
>
>   void myfunc (GtkCellRenderer *cell, GtkCellEditable *editable, const gchar 
> *path, gpointer data);
>
>
>
> My libplugincallbacks.c
>
>   #ifdef HAVE_CONFIG_H
>   #  include <config.h>
>   #endif
>
>   #include "libmyplugincallbacks.h"
>   #include <string.h>
>
>   void myfunc(GtkCellRenderer *cell, GtkCellEditable *editable, const gchar 
> *path, gpointer data){
>     if (GTK_IS_ENTRY (editable))
>       {
>       //Do stuff
>       }
>   }
>
>
>
> When I compile my program, the .so file compiles properly. However, when ever 
> I run the program, it loads the .so file. Once GTK builder gets to the stage 
> where it connects the signals, it will complain that "myfunc" cannot be 
> found. I have double checked the name of the function in my glade file and it 
> is spelt and entered correctly.

You generally need to export your symbols by linking the app with
--export-dynamic flag:

pkg-config --libs gmodule-2.0

Should do the right thing to make your symbols visible.

Cheers,
           -Tristan
_______________________________________________
gtk-app-devel-list mailing list
gtk-app-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list

Reply via email to