Re: [gtk-list] Pb with CLIST and Pixmaps ...
- From: "José Miguel R. Barrientos" <jmiguel ceselsa es>
- To: gtk-list redhat com
- Subject: Re: [gtk-list] Pb with CLIST and Pixmaps ...
- Date: Thu, 20 May 1999 17:13:53 +0000
Quentin Delamarre wrote:
>
> Hi,
>
> I would like to create a CLIST with 2 columns: one for some
> text, and one for pixmaps.
>
> The problem I have is that the pixmaps are not visible !
>
> The pixmap file is OK because I used it for an other GTK program
> that works fine and that doesn't use CLIST. I'm using
> GTK 1.2.2.
>
> I couldn't find any clue in the tutorial, in the reference guide
> or in the gtk-list archive, so please HELP !!!
>
> This is the program:
> The first function open the pixmap file and return the pixmap
> widget. And the second one creates a window with a clist in it.
>
> When I run it, the window opens, the clist is shown with the
> titles and the text, but no pixmap ! I get no error and no
> warning.
>
> ==================================
> [#include .... ]
>
> GtkWidget*
> create_pixmap (GtkWidget *widget,
> gchar *filename)
> {
> GdkColormap *colormap;
> GdkPixmap *gdkpixmap;
> GdkBitmap *mask;
> GtkWidget *pixmap;
> struct stat s;
> gint status;
>
> // check if the file exists
> status = stat (filename, &s);
> if (status == 0 && S_ISREG (s.st_mode))
> {
> colormap = gtk_widget_get_colormap (widget);
> gdkpixmap = gdk_pixmap_colormap_create_from_xpm (NULL,
> colormap, &mask,NULL, filename);
>
> if (gdkpixmap == NULL)
> return NULL;
>
> pixmap = gtk_pixmap_new (gdkpixmap, mask);
>
> gdk_pixmap_unref (gdkpixmap);
> gdk_bitmap_unref (mask);
> return pixmap;
> }
> else
> {
> g_print ("Couldn't find pixmap file: %s", filename);
> return NULL;
> }
> }
>
> int
> main (int argc, char *argv[])
> {
> GtkWidget *window1;
> GtkWidget *clist;
> GtkWidget *pixmap;
> gchar *clist_title[3]={"Frame Number","Images",NULL};
> gchar *buf[1][2]={{"Frame number 1 :","no image ..."}};
> gint row;
>
> gtk_set_locale ();
> gtk_init (&argc, &argv);
>
> // create main window
> window1 = gtk_window_new (GTK_WINDOW_TOPLEVEL);
> gtk_widget_set_usize (window1, 500, 300);
> gtk_window_set_policy (GTK_WINDOW (window1), TRUE, TRUE, FALSE);
>
> // create the clist with 2 columns and titles
> clist = gtk_clist_new_with_titles (2, (gchar**) clist_title);
> gtk_clist_set_row_height(GTK_CLIST (clist),100);
>
> // add the text in the next raw
> row=gtk_clist_append(GTK_CLIST(clist),buf[0]);
>
> // create the pixmap for the second column
> pixmap = create_pixmap (window1, "pixmap.xpm");
> if (pixmap == NULL)
> g_error ("Couldn't create pixmap");
> gtk_widget_show (pixmap);
>
> // put the pixmap into the second column of the first raw
> gtk_clist_set_pixmap (GTK_CLIST(clist), row, 1, (GdkPixmap *)
> pixmap, NULL);
>
>
> // put the clist into the main window and show it
> gtk_container_add (GTK_CONTAINER (window1), clist);
> gtk_widget_show (clist);
> gtk_widget_show (window1);
>
> gtk_main ();
> return 0;
> }
> ===========================================
>
> Thanks a lot,
>
> Quentin Delamarre.
>
> --
> ==================================================================
> Quentin Delamarre -- projet RobotVis -- INRIA Sophia-Antipolis
> email: mailto:Quentin.Delamarre@sophia.inria.fr (France)
> URL: http://www.inria.fr/robotvis/personnel/qdelam/qdelam-eng.html
> ==================================================================
>
> --
> To unsubscribe: mail -s unsubscribe gtk-list-request@redhat.com < /dev/null
Don't create a GtkPixmap. Create (and insert into the list) a GdkPixmap.
or use
void gtk_pixmap_get (GtkPixmap *pixmap,
GdkPixmap **val,
GdkBitmap **mask);
and then insert the GdkPixmap.
Regards,
- José Miguel
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]