Ripristinare l'area di Undo..
Lo slot DO_RESTORE_AREA della SPECTRAL_IMAGE richiama la funzione, statica al modulo, PUT_AREA, che è incaricata di ripristinare l’area.
Per farlo individua nel parametro ricevuto _A(0) l’azione richiesta; quindi manda al framework la richiesta di ritracciamento di tutte le finestre del documento (potrebbero esserci più viste del documento..)
[sourcecode language=”cpp”]
static bool PUT_AREA(CLASS_STR,ACTIONS::AREA_RESTORE *ars)
{
IRECT rect;
float angle=0;
CHANDLER *buf= (CHANDLER *)ars->GetArea(&rect,&angle);
if (!angle) {
int k=0;
for (int yw=rect.y;ywGetIndexLine(yw);
if (line)
memcpy(&line[rect.x],buf+rect.dx*k,sizeof(CHANDLER)*rect.dx);
}
}
return true;
}
[/sourcecode]
Nella funzione PUT_AREA, estratte le dimensioni e posizione dell’area salvata, viene effettuata l’operazione di ripristino dei pixel.