Re: Casting GtkWidgets
- From: Jeroen Benckhuijsen <jfbenck home nl>
- To: Willem Robert van Hage <wrvh xs4all nl>
- Cc: Naheed Vora <nv linuxstart com>, gtk-app-devel-list gnome org
- Subject: Re: Casting GtkWidgets
- Date: Thu, 5 Oct 2000 01:41:30 +0200
On Thu, 05 Oct 2000 01:05:17 Willem Robert van Hage wrote:
Naheed Vora wrote:
void
on_combo_entry1_activate (GtkEditable *editable,
gpointer user_data)
{
GtkWidget *text_entry = user_data;
char *string = gtk_entry_get_text(GTK_ENTRY (text_entry));
g_print(string);
}
this should be:
void on_combo_entry1_activate(GtkEditable *editable,gpointer user_data)
{
gchar *string = gtk_entry_get_text(GTK_ENTRY(user_data));
g_print(string);
}
or:
void on_combo_entry1_activate(GtkEditable *editable,gpointer user_data)
{
GtkWidget *entry = GTK_WIDGET(user_data);
gchar *string = gtk_entry_get_text(GTK_ENTRY(entry));
g_print(string);
}
or:
void on_combo_entry1_activate(GtkEditable *editable,gpointer user_data)
{
GtkWidget *entry = (GtkWidget*)user_data;
gchar *string = gtk_entry_get_text(GTK_ENTRY(entry));
g_print(string);
}
that all does the same...
Gtk-WARNING **: invalid cast from (NULL) pointer to `GtkEntry'
that's true, because a gpointer is really a void*, and you can't
reference a pointer to something of type void.
Ahum, this is not true, it says there's an invalid cast, not a reference,
He just saying something like:
entry = (GtkWidget*)user_data, where user_data == NULL. The GTK_WIDGET
macro checks this , and displays the error message shown
You're right you can't refenence are void*, however this is not being done
here. (The * is within the (), so it's just a cast from void* (the
gpointer) to GtkWidget*, just another pointer.
Also in the Gtk Api reference one can read that gtk_entry_get_text is
deprecated. gtk_editable_get_chars schould be used instead.
Jeroen
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]