Re: How to use a signal
- From: José Alburquerque <jaalburquerque cox net>
- To: Jamiil Abduqadir <jalqadir gmail com>
- Cc: Gtkmm Mailing List <gtkmm-list gnome org>
- Subject: Re: How to use a signal
- Date: Fri, 02 May 2008 18:36:13 -0400
Jamiil Abduqadir wrote:
Thanks Jose for your prompt response!
I have two questions regarding this issue,
One: what does HTH mean and
HTH = Hope This/That Helps
Second:
After doing the modifications your suggested, as shown below, I now
get this 3 errors, please at the end of this message.
Please note, that this is the first time I am developing a GUI
interface, I have chosen Gtkmm because it is C++, portable and fast,
nevertheless, I might make stupid mistakes just because of my poor
understanding of the GUI library, not because my lack of understanding
of the OOP paradigm. As it is the case now, I am sure that I am not
passing the right parameters expected by Gtkmm. However, according to
c:\doc\gtkmm-2.4/docs/tutorial/html/apb.html#id2567896
these, and as far as I understand, are the two parameters that I have
to pass.
What am I doing wrong?
Thanks in advance.
================ code snip ========
namespace jve{
class Entry: virtual public Gtk::VBox {
.......
Gtk::Entry* text_box;
public:
MyClass();
.........
void onBlanck();
};
}
jve::Entry::Entry(){
....
text_box = Gtk::manage(new Gtk::Entry());
*text_box->signal_focus_out_event().connect(sigc::mem_fun(*this,
&Entry::onBlank)); /<== here is the problem/*
....
}
void jve::Entry::onBlank(){ // this->getText() returns a Gtk::ustring
object
if(this->getText(().empy()){
// Display a Dialogbox explaining the problem
text_box->grab_focus();
}
}
It looks like your onBlank() method should be of type "bool" and not
"void". In other words, it should return a bool value. See:
http://www.gtkmm.org/docs/gtkmm-2.4/docs/reference/html/classGtk_1_1Widget.html#928afef862c529586ce0d461598623f1
=========== errors ===========
||=== Console application, default ===|
D:\XWin\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_functor0<void, jme::Entry>, T_return = bool, T_arg1 =
GdkEventFocus*]'|
D:\XWin\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_functor0<void, jme::Entry>, T_return =
bool, T_arg1 = GdkEventFocus*]'|
D:\XWin\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_functor0<void, jme::Entry>, T_return =
bool, T_arg1 = GdkEventFocus*]'|
D:\c++\Samiira\entry.cpp|12|instantiated from here|
D:\XWin\include\sigc++-2.0\sigc++\functors\slot.h|136|error: void
value not ignored as it ought to be|
D:\XWin\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 = GdkEventFocus* const&, T_functor =
sigc::bound_mem_functor0<void, jme::Entry>]':|
D:\XWin\include\sigc++-2.0\sigc++\functors\slot.h|136|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_functor0<void, jme::Entry>, T_return = bool, T_arg1 =
GdkEventFocus*]'|
D:\XWin\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_functor0<void, jme::Entry>, T_return = bool, T_arg1 =
GdkEventFocus*]'|
D:\XWin\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_functor0<void, jme::Entry>, T_return =
bool, T_arg1 = GdkEventFocus*]'|
D:\XWin\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_functor0<void, jme::Entry>, T_return =
bool, T_arg1 = GdkEventFocus*]'|
D:\c++\Samiira\entry.cpp|12|instantiated from here|
D:\XWin\include\sigc++-2.0\sigc++\adaptors\adaptor_trait.h|84|error:
no match for call to `(sigc::bound_mem_functor0<void, jme::Entry>)
(GdkEventFocus* const&)'|
D:\XWin\include\sigc++-2.0\sigc++\functors\mem_fun.h|1787|note:
candidates are: T_return sigc::bound_mem_functor0<T_return,
T_obj>::operator()() const [with T_return = void, T_obj = jme::Entry]|
D:\XWin\include\sigc++-2.0\sigc++\adaptors\adaptor_trait.h|84|error:
return-statement with a value, in function returning 'void'|
||=== Build finished: 3 errors, 0 warnings ===|
--
Happiness has many doors, and when one of them closes another opens,
yet we spent so much time looking at the one that is shut that we
don't see the one that just opened.
------------------------------------------------------------------------
_______________________________________________
gtkmm-list mailing list
gtkmm-list gnome org
http://mail.gnome.org/mailman/listinfo/gtkmm-list
--
José Alburquerque
jaalburquerque cox net
The path to real wisdom begins with a deep loving respect for the ever living God (Prov. 1:7)
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]