QPixmap ImageWidget::windowPixmap(ApplicationWindow *mw, const QString& name, const QSize& size)
{
	if (!mw || name.isEmpty())
		return QPixmap();

	MdiSubWindow *w = mw->window(name);
	MultiLayer *ml = qobject_cast<MultiLayer *> (w);
	if (ml)
		return ml->canvasPixmap(size);

	Graph3D *g = qobject_cast<Graph3D *> (w);
	if (g)
		return g->surface()->renderPixmap(size.width(), size.height());

	Table *t = qobject_cast<Table *> (w);
	if (t)
		return QPixmap::grabWidget(t->table());

	return QPixmap();
}