Deleting a GnomeCanvasItem
- From: Roland Roberts <roland astrofoto org>
- To: gnome-devel-list gnome org
- Subject: Deleting a GnomeCanvasItem
- Date: 15 Mar 2001 23:40:31 -0500
I can't seem to find any references in the online documetation on how
to do this. I am loading a GdkPixbuf into a canvas as shown in the
callback below. This gets invoked just after a file selection widget
is closed and the new file is added to an internal list of files. I
create a new GdkPixbuf and then add a new item. The canvas will only
ever have one item; how do I find the old one and delete it? I'm a
little fuzzy on what gnome_canvas_item_new is doing; am I naming the
item "pixbuf" and if so, does creating a new item with the same name
implicitly destroy the old one?
void
show_image (gint index)
{
GdkPixbuf *pixbuf;
if (index >= files.max_files)
{
/* Complain and return. */
g_message ("show_image(%d) out of range (max_files=%d)\n",
index, files.max_files);
return;
}
pixbuf = gdk_pixbuf_new_from_file (files.file[index].name);
if (!pixbuf) {
g_message ("Could not load the image (%s)!", files.file[index].name);
} else {
GnomeCanvasItem *item;
GtkWidget *canvas;
/* Find the canvas so we can add an item to it. */
canvas = lookup_widget (GTK_WIDGET (aip_window), "canvas");
/* Add the pixbuf to the scrolled window. */
item = gnome_canvas_item_new (gnome_canvas_root (GNOME_CANVAS(canvas)),
gnome_canvas_pixbuf_get_type(),
"pixbuf", pixbuf,
NULL);
/* Make the scroll region only as big as the image itself. */
gnome_canvas_set_scroll_region(GNOME_CANVAS(canvas), 0, 0,
gdk_pixbuf_get_width(pixbuf),
gdk_pixbuf_get_height(pixbuf));
/* Free the GdkPixbuf. */
gdk_pixbuf_unref (pixbuf);
}
return;
}
roland
--
PGP Key ID: 66 BC 3B CD
Roland B. Roberts, PhD RL Enterprises
roland rlenter com 76-15 113th Street, Apt 3B
rbroberts acm org Forest Hills, NY 11375
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]