sorry if my question is stupid but, why does libsigc++ not work for me?

Here is the files I use:
The Header:
...
#include <sigc++/sigc++.h>

namespace dtk
{

typedef enum {
        DTK_WDG_HIDED = 0,
        DTK_WDG_SHOWN = 1
}wdg_state;

class widget : protected eventReceiver
{
        
        public:
                widget();
                virtual ~widget();
                virtual void draw();
                virtual void redraw(int width=0, int height=0);
                virtual void show();
                virtual void hide();
                virtual void dock(IDirectFBSurface& dfb_surface);
                virtual IDirectFBSurface* undock();
                
                //Slots
                sigc::signal<bool, dtk::widget, void*> onCreate;
                sigc::signal<bool, dtk::widget, void*> onDestroy;
                sigc::signal<bool, dtk::widget, void*> onDraw;
                sigc::signal<bool, dtk::widget, void*> onShow;
                sigc::signal<bool, dtk::widget, void*> onHide;
                sigc::signal<bool, dtk::widget, void*> onDock;
                sigc::signal<bool, dtk::widget, void*> onUndock;
                //Actions
                //None for the moment
....

The Implementation:

#include "widget.h"

namespace dtk
{

widget::widget()
{
        onCreate();
}


widget::~widget()
{
        onDestroy();
}

...

And when I try to compile my file, here is the result:
if g++ -DPACKAGE_NAME=\"\" -DPACKAGE_TARNAME=\"\" -DPACKAGE_VERSION=\"\" 
-DPACKAGE_STRING=\"\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE=\"DTK\" 
-DVERSION=\"0.0.1\"  -I. -I. -D_REENTRANT -I/usr/include/++dfb 
-I/usr/include/directfb   -I/usr/include/sigc++-2.0 
-I/usr/lib/sigc++-2.0/include   -DDATADIR=\"/usr/share\" -DPACKAGE=\"DTK\"   
-Wall -O2 -pipe  -MT widget.o -MD -MP -MF ".deps/widget.Tpo" -c -o widget.o 
widget.cpp; \
then mv -f ".deps/widget.Tpo" ".deps/widget.Po"; else rm -f ".deps/widget.Tpo"; 
exit 1; fi
event.h:31: warning: 'class dtk::eventReceiver' has virtual functions but 
non-virtual destructor
widget.cpp: In constructor 'dtk::widget::widget()':
widget.cpp:29: error: no matching function for call to 'sigc::signal<bool, 
dtk::widget, void*, sigc::nil, sigc::nil, sigc::nil, sigc::nil, 
sigc::nil>::emit()'
/usr/include/sigc++-2.0/sigc++/signal.h:1923: note: candidates are: typename 
sigc::internal::signal_emit2<T_return, T_arg1, T_arg2, 
T_accumulator>::result_type sigc::signal2<T_return, T_arg1, T_arg2, 
T_accumulator>::emit(typename sigc::type_trait<T_derived>::take, typename 
sigc::type_trait<T_arg3>::take) const [with T_return = bool, T_arg1 = 
dtk::widget, T_arg2 = void*, T_accumulator = sigc::nil]
widget.cpp: In destructor 'virtual dtk::widget::~widget()':
widget.cpp:35: error: no match for call to '(sigc::signal<bool, dtk::widget, 
void*, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil>) 
()'/usr/include/sigc++-2.0/sigc++/signal.h:1927: note: candidates are: typename 
sigc::internal::signal_emit2<T_return, T_arg1, T_arg2, 
T_accumulator>::result_type sigc::signal2<T_return, T_arg1, T_arg2, 
T_accumulator>::operator()(typename sigc::type_trait<T_derived>::take, typename 
sigc::type_trait<T_arg3>::take) const [with T_return = bool, T_arg1 = 
dtk::widget, T_arg2 = void*, T_accumulator = sigc::nil]
widget.cpp: In member function 'virtual void dtk::widget::draw()':
widget.cpp:42: error: no match for call to '(sigc::signal<bool, dtk::widget, 
void*, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil>) 
()'/usr/include/sigc++-2.0/sigc++/signal.h:1927: note: candidates are: typename 
sigc::internal::signal_emit2<T_return, T_arg1, T_arg2, 
T_accumulator>::result_type sigc::signal2<T_return, T_arg1, T_arg2, 
T_accumulator>::operator()(typename sigc::type_trait<T_derived>::take, typename 
sigc::type_trait<T_arg3>::take) const [with T_return = bool, T_arg1 = 
dtk::widget, T_arg2 = void*, T_accumulator = sigc::nil]
widget.cpp: In member function 'virtual void dtk::widget::redraw(int, int)':
widget.cpp:49: error: no match for call to '(sigc::signal<bool, dtk::widget, 
void*, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil>) 
()'/usr/include/sigc++-2.0/sigc++/signal.h:1927: note: candidates are: typename 
sigc::internal::signal_emit2<T_return, T_arg1, T_arg2, 
T_accumulator>::result_type sigc::signal2<T_return, T_arg1, T_arg2, 
T_accumulator>::operator()(typename sigc::type_trait<T_derived>::take, typename 
sigc::type_trait<T_arg3>::take) const [with T_return = bool, T_arg1 = 
dtk::widget, T_arg2 = void*, T_accumulator = sigc::nil]
widget.cpp: In member function 'virtual void dtk::widget::show()':
widget.cpp:56: error: no match for call to '(sigc::signal<bool, dtk::widget, 
void*, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil>) 
()'/usr/include/sigc++-2.0/sigc++/signal.h:1927: note: candidates are: typename 
sigc::internal::signal_emit2<T_return, T_arg1, T_arg2, 
T_accumulator>::result_type sigc::signal2<T_return, T_arg1, T_arg2, 
T_accumulator>::operator()(typename sigc::type_trait<T_derived>::take, typename 
sigc::type_trait<T_arg3>::take) const [with T_return = bool, T_arg1 = 
dtk::widget, T_arg2 = void*, T_accumulator = sigc::nil]
widget.cpp: In member function 'virtual void dtk::widget::hide()':
widget.cpp:63: error: no match for call to '(sigc::signal<bool, dtk::widget, 
void*, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil>) 
()'/usr/include/sigc++-2.0/sigc++/signal.h:1927: note: candidates are: typename 
sigc::internal::signal_emit2<T_return, T_arg1, T_arg2, 
T_accumulator>::result_type sigc::signal2<T_return, T_arg1, T_arg2, 
T_accumulator>::operator()(typename sigc::type_trait<T_derived>::take, typename 
sigc::type_trait<T_arg3>::take) const [with T_return = bool, T_arg1 = 
dtk::widget, T_arg2 = void*, T_accumulator = sigc::nil]
widget.cpp: In member function 'virtual void 
dtk::widget::dock(IDirectFBSurface&)':
widget.cpp:70: error: cannot convert 'IDirectFBSurface**' to 
'IDirectFBSurface*' in assignment
widget.cpp:71: error: no match for call to '(sigc::signal<bool, dtk::widget, 
void*, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil>) 
()'/usr/include/sigc++-2.0/sigc++/signal.h:1927: note: candidates are: typename 
sigc::internal::signal_emit2<T_return, T_arg1, T_arg2, 
T_accumulator>::result_type sigc::signal2<T_return, T_arg1, T_arg2, 
T_accumulator>::operator()(typename sigc::type_trait<T_derived>::take, typename 
sigc::type_trait<T_arg3>::take) const [with T_return = bool, T_arg1 = 
dtk::widget, T_arg2 = void*, T_accumulator = sigc::nil]
widget.cpp: In member function 'virtual IDirectFBSurface* 
dtk::widget::undock()':
widget.cpp:80: error: no match for call to '(sigc::signal<bool, dtk::widget, 
void*, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil>) 
()'/usr/include/sigc++-2.0/sigc++/signal.h:1927: note: candidates are: typename 
sigc::internal::signal_emit2<T_return, T_arg1, T_arg2, 
T_accumulator>::result_type sigc::signal2<T_return, T_arg1, T_arg2, 
T_accumulator>::operator()(typename sigc::type_trait<T_derived>::take, typename 
sigc::type_trait<T_arg3>::take) const [with T_return = bool, T_arg1 = 
dtk::widget, T_arg2 = void*, T_accumulator = sigc::nil]
make[1]: *** [widget.o] Error 1


Can someone help me? 
Many thanks.

Ps: I'm using gcc-4.0.2 on a gentoo box, don't know if it change something
_______________________________________________
libsigc-list mailing list
libsigc-list@gnome.org
http://mail.gnome.org/mailman/listinfo/libsigc-list

Reply via email to