void Picture::Paint(Draw& w) { Size sz = GetSize(); w.DrawRect(0, 0, sz.cx, sz.cy, background); if(!picture) return; int dx = 0; int dy = 0; Size rz = sz; if(ratio) { Size sr = picture.GetSize(); if(sr.cy * sz.cx < sz.cy * sr.cx) { if(sr.cx) { rz.cy = sr.cy * sz.cx / sr.cx; dy = (sz.cy - rz.cy) / 2; } } else { if(sr.cy) { rz.cx = sr.cx * sz.cy / sr.cy; dx = (sz.cx - rz.cx) / 2; } } } w.Clipoff(dx, dy, rz.cx, rz.cy); w.DrawDrawing(0, 0, rz.cx, rz.cy, picture); w.End(); }
void DrawingDisplayCls::Paint(Draw& w, const Rect& r, const Value& q, Color, Color, dword) const { w.DrawDrawing(r, q); }