ViewDraw::ViewDraw(Ctrl *ctrl) { if(Ctrl::invalid.GetCount()) Ctrl::DoPaint(); Ctrl::invalid.Clear(); Ctrl::RemoveCursor(); Ctrl::RemoveCaret(); Rect r = ctrl->GetScreenView(); Ctrl::invalid.Add(r); Ctrl::AddUpdate(r); for(int i = max(ctrl->GetTopCtrl()->FindTopCtrl() + 1, 0); i < Ctrl::topctrl.GetCount(); i++) { Rect rr = Ctrl::topctrl[i]->GetScreenRect(); ExcludeClip(rr); Subtract(Ctrl::invalid, rr); } Offset(r.TopLeft()); }
bool Draw::ExcludeClip(int x, int y, int cx, int cy) { return ExcludeClip(RectC(x, y, cx, cy)); }