Hi again,
mr. stupid was playing in my head again.
>> #include "image.xpm"
>> void create_pixmap(GtkWidget *w) {
>> GdkPixmap *pixmap;
>> GdkBitmap *mask;
>> pixmap = gdk_pixmap_colormap_create_from_xpm_d (NULL,
>> gtk_widget_get_default_colormap(),
>> &mask, NULL, (gchar **)image_xpm);
>> w = gtk_pixmap_new (pixmap, mask);
>> }
>> void test() {
>> GtkWidget *w = NULL;
>> create_pixmap(w);
>> if (w == NULL) g_print("I am stupid\n");
>> else g_print("I am not that stupid\n");
>> }
>> ---
>>
>> Should return "I am not that stupid", right? (I don't have a xwindows
>> computer on my hands here so I can't test it - grom).
>
>unless create_pixmap(w) is C++ with an referens argument this program
>*will* output "I am stupid\n". In C, ther is *no* way the
>create_pixmap
>funktion can change its argument. It can change the memory the pointer
>points to (but then it have to be pointing to valid memory, not NULL),
>but it can *not* change the pointer itself. So, i C, w is garanteed
>to still point to NULL! You actuly have to send a pointer to a pointer
>for the funktion to be able to change the pointer.
Double oops. I forgot that. Let's try this one then:
#include "image.xpm"
void create_pixmap(GtkWidget **w) {
GdkPixmap *pixmap;
GdkBitmap *mask;
pixmap = gdk_pixmap_colormap_create_from_xpm_d (NULL,
gtk_widget_get_default_colormap(),
&mask, NULL, (gchar **)image_xpm);
*w = gtk_pixmap_new (pixmap, mask);
}
void test() {
GtkWidget *w = NULL;
create_pixmap(&w);
if (w == NULL) g_print("I am stupid\n");
else g_print("I am not that stupid\n");
}
This better? :-)
Stupid me...
Regards,
Ronald
_______________________________________________
gtk-list mailing list
[EMAIL PROTECTED]
http://mail.gnome.org/mailman/listinfo/gtk-list