+ /* For different cases:
+ 1) no image -> no image
+ 2) image -> no image
+ 3) no image -> image
+ 4) image -> image */
+
+ if (image == -1 && nb_page->m_image == -1)
+ return true; /* Case 1): Nothing to do. */
+
+ GtkWidget *pixmapwid = NULL;
+
+ if (nb_page->m_image != -1)
+ {
+ /* Case 2) or 4). There is already an image in the gtkhbox. Let's find it */
+
+ GList *child = gtk_container_children(GTK_CONTAINER(nb_page->m_box));
+ while (child)
+ {
+ if (GTK_IS_PIXMAP(child->data))
+ {
+ pixmapwid = GTK_WIDGET(child->data);
+ break;
+ }
+ child = child->next;
+ }
+
+ /* We should have the pixmap widget now */
+ wxASSERT(pixmapwid != NULL);
+
+ if (image == -1)
+ {
+ /* If there's no new widget, just remove the old from the box */
+ gtk_container_remove(GTK_CONTAINER(nb_page->m_box), pixmapwid);
+ nb_page->m_image = -1;
+
+ return true; /* Case 2) */
+ }
+ }
+
+ /* Only cases 3) and 4) left */
+ wxASSERT( m_imageList != NULL ); /* Just in case */
+
+ /* Construct the new pixmap */
+ const wxBitmap *bmp = m_imageList->GetBitmapPtr(image);
+ GdkPixmap *pixmap = bmp->GetPixmap();
+ GdkBitmap *mask = NULL;
+ if ( bmp->GetMask() )
+ {
+ mask = bmp->GetMask()->GetBitmap();
+ }