Re: Signals & Callbacks - Help!! Part 2
- From: jalkadir gosonic ca
- To: gtk-list gnome org
- Subject: Re: Signals & Callbacks - Help!! Part 2
- Date: Thu, 7 Jul 2005 02:33:47 -0000 (UTC)
I did as you suggested and this is the result of the modifications:
----snip-----
gboolean MessageInfo(GtkButton* btn, char* msg){...}
g_signal_connect(GTK_OBJECT(btnCreateAccount),"clicked", /*This line
causes the error*/
GTK_SIGNAL_FUNC(MessageInfo(btnCreateAccount,
strMsg.c_str()) ), NULL);
----eos----
But for some reason I get an error message that reads:
50: error: cannot convert `GtkWidget*' to `GtkButton*' for argument `1' to
`gboolean
=======
I am really lost here, can anybody give me a hand on this?
TIA
> On Wed, Jul 06, 2005 at 10:58:59PM +0200, Jean Bréfort wrote:
>> That is, the first parameter of your callback is the button which was
>> clicked, unless you use g_signal_connect_swapped.
>> SQo you have two solutions, either, you change the signayure of
>> MessageInfo:
>> gboolean MessageInfo(GtkButoon* btn, std::string& msg){...}
>> or you use g_signal_connect_swapped:
>> g_signal_connect_swapped(GTK_OBJECT(btnCreateAccount), "clicked",
>> GTK_SIGNAL_FUNC(MessageInfo), NULL);
>
> Note however, GObject callbacks don't mix very logically
> with C++ pass-by-reference argument style.
>
> You can't pass a std::string variable as the last argument of
> g_signal_connect() as you would in direct function call, you
> have to pass a pointer, and once you do that, it doesn't
> make sense to declare
>
> MessageInfo(std::string &msg)
>
> instead of
>
> MessageInfo(std::string *msg)
>
> Yeti
>
>
> --
> A: Because it messes up the order in which people normally read text.
> Q: Why is top-posting such a bad thing?
> A: Top-posting.
> Q: What is the most annoying thing on usenet and in e-mail?
>
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]