public override void Update(IGUIContext ctx) { // this sets RowManager.FirstParagraphOnScreen // to a common value for the following OnPaintBackground and OnPaint // so that all paintings are guaranteed synchronized and thus flicker-free // An important point about such implementations: // * The "manager" calculates everything in it's own absolute (0/0) metrics. // * The "presenter" (this class) finally adds all kinds of "Offsets" (Paddings, Scrolling, ..) // otherwise you'd have to deal with strange feedback effects // which can make life very very hard. RowManager.OnLayout(-ScrollOffsetY); base.Update(ctx); }