Re: Gtk::Image and mouse click



I change function on_image2_button_press to the return value bool
and allways I return true now,
but the result is:

In header:
       virtual bool on_image2_button_press(GdkEvent * event);

In CPP code:
bool MainWindow::on_image2_button_press(GdkEvent * event)
{
        Log("Procedure for button press");
        int x=0;
        int y=0;
        image2.get_pointer(x,y);
        sprintf(message,"X coor: %d, Y coor: %d",x,y);
        Log(message);
        imageOperation->getObject(x,y);

        Log("End procedure for button press");
        return true;
}

and result is:
/usr/include/sigc++-2.0/sigc++/adaptors/adaptor_trait.h: In member function ‘typename sigc::adaptor_functor<T_functor>::deduce_result_type<T_arg1, void, void, void, void, void, void>::type sigc::adaptor_functor<T_functor>::operator()(T_arg1) const [with T_arg1 = GdkEventButton* const&, T_functor = sigc::bound_mem_functor1<bool, MainWindow, GdkEvent*>]’:
/usr/include/sigc++-2.0/sigc++/functors/slot.h:137:   instantiated from ‘static T_return sigc::internal::slot_call1<T_functor, T_return, T_arg1>::call_it(sigc::internal::slot_rep*, typename sigc::type_trait<T_arg3>::take) [with T_functor = sigc::bound_mem_functor1<bool, MainWindow, GdkEvent*>, T_return = bool, T_arg1 = GdkEventButton*]’
/usr/include/sigc++-2.0/sigc++/functors/slot.h:144:   instantiated from ‘static void* (* sigc::internal::slot_call1<T_functor, T_return, T_arg1>::address())(void*) [with T_functor = sigc::bound_mem_functor1<bool, MainWindow, GdkEvent*>, T_return = bool, T_arg1 = GdkEventButton*]’
/usr/include/sigc++-2.0/sigc++/functors/slot.h:529:   instantiated from ‘sigc::slot1<T_return, T_arg1>::slot1(const T_functor&) [with T_functor = sigc::bound_mem_functor1<bool, MainWindow, GdkEvent*>, T_return = bool, T_arg1 = GdkEventButton*]’
/usr/include/sigc++-2.0/sigc++/functors/slot.h:1157:   instantiated from ‘sigc::slot<T_return, T_arg1, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil>::slot(const T_functor&) [with T_functor = sigc::bound_mem_functor1<bool, MainWindow, GdkEvent*>, T_return = bool, T_arg1 = GdkEventButton*]’
MainWindow.cpp:201:   instantiated from here
/usr/include/sigc++-2.0/sigc++/adaptors/adaptor_trait.h:84: error: no match for call to ‘(sigc::bound_mem_functor1<bool, MainWindow, GdkEvent*>) (GdkEventButton* const&)’
/usr/include/sigc++-2.0/sigc++/functors/mem_fun.h:1850: note: candidates are: T_return sigc::bound_mem_functor1<T_return, T_obj, T_arg1>::operator()(typename sigc::type_trait<T_arg3>::take) const [with T_return = bool, T_obj = MainWindow, T_arg1 = GdkEvent*]
make: *** [MainWindow.o] Error 1

regards
Petr

Murray Cumming wrote:
On Fri, 2006-12-01 at 14:53 +0100, Petr Hracek wrote:
  
Hi all,

I know that I wrote following problem before a 2 months but
unfortunatelly
I've upgraded my PC from FC5 to FC6 and now it does not work again.
    
[snip]

I don't believe this code compiled on FC5 either.

  
and function look like this:
void MainWindow::on_image2_button_press(GdkEvent * event)
{ 
    
[snip]

That signal handler should return a bool. Template errors are indeed
often difficult to understand.

  


-- 
Petr Hráček, PSE ECT PSS27
ANFDATA spol. s r.o.
a SIEMENS Company
MediaHall, Bidlaky 20, 639 00 Brno, Czech Republic
Tel. +420 533 337 267
Fax. +420 533 337 252
mailto: petr hracek siemens com


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