Ejemplo n.º 1
0
void mimeview_clear(MimeView *mimeview)
{
	mimeview->has_attach_file = FALSE;

	gtk_tree_store_clear(mimeview->store);
	textview_clear(mimeview->textview);
	imageview_clear(mimeview->imageview);

	gtk_tree_path_free(mimeview->opened);
	mimeview->opened = NULL;

	g_free(mimeview->drag_file);
	mimeview->drag_file = NULL;
}
Ejemplo n.º 2
0
void imageview_show_image(ImageView *imageview, MimeInfo *mimeinfo,
			  const gchar *file, gboolean resize)
{
	GdkPixbuf *pixbuf;
	GError *error = NULL;

	g_return_if_fail(imageview != NULL);
	g_return_if_fail(imageview->scrolledwin != NULL);
	g_return_if_fail(imageview->scrolledwin->parent != NULL);

	if (file) {
		imageview_clear(imageview);
		pixbuf = gdk_pixbuf_new_from_file(file, &error);
		imageview->image_data = pixbuf;
	} else {
		pixbuf = (GdkPixbuf *)imageview->image_data;
	}

	if (error != NULL) {
		g_warning("%s\n", error->message);
		g_error_free(error);
	}

	if (!pixbuf) {
		g_warning(_("Can't load the image."));	
		return;
	}

	imageview->resize = resize;

	if (resize) {
		pixbuf = imageview_get_resized_pixbuf
			(pixbuf, imageview->scrolledwin->parent, 8);
	} else
		g_object_ref(pixbuf);

	if (!imageview->image) {
		imageview->image = gtk_image_new_from_pixbuf(pixbuf);

		gtk_scrolled_window_add_with_viewport
			(GTK_SCROLLED_WINDOW(imageview->scrolledwin),
			 imageview->image);
	} else
		gtk_image_set_from_pixbuf(GTK_IMAGE(imageview->image), pixbuf);

	g_object_unref(pixbuf);

	gtk_widget_show(imageview->image);
}
Ejemplo n.º 3
0
static void mimeview_change_view_type(MimeView *mimeview, MimeViewType type)
{
	TextView  *textview  = mimeview->textview;
	ImageView *imageview = mimeview->imageview;
	GList *children;

	if (mimeview->type == type) return;

	children = gtk_container_get_children
		(GTK_CONTAINER(mimeview->mime_vbox));
	if (children) {
		gtkut_container_remove(GTK_CONTAINER(mimeview->mime_vbox),
				       GTK_WIDGET(children->data));
		g_list_free(children);
	}

	switch (mimeview->type) {
	case MIMEVIEW_IMAGE:
		imageview_clear(mimeview->imageview);
		break;
	case MIMEVIEW_TEXT:
		textview_clear(mimeview->textview);
		break;
	default:
		break;
	}

	switch (type) {
	case MIMEVIEW_IMAGE:
		gtk_container_add(GTK_CONTAINER(mimeview->mime_vbox),
				  GTK_WIDGET_PTR(imageview));
		break;
	case MIMEVIEW_TEXT:
		gtk_container_add(GTK_CONTAINER(mimeview->mime_vbox),
				  GTK_WIDGET_PTR(textview));
		break;
	default:
		return;
	}

	mimeview->type = type;
}
Ejemplo n.º 4
0
void imageview_destroy(ImageView *imageview)
{
	imageview_clear(imageview);
	g_free(imageview);
}