protected override void DrawWidget(IBatchedDrawingService drawingService) { if (blinkAnimation.CurrentValue > 0) { drawingService.FillRect(LayoutRect, Color); } }
public void Draw(IBatchedDrawingService drawingService, IDocumentView <TDocument> view) { if (Offset == null || EndOffset == null) { return; } Rectangle start; view.ModelToView(Offset.Offset, out start); if (Offset.Bias == Bias.Backward) { start.Width = 0; } Rectangle end; view.ModelToView(EndOffset.Offset, out end); if (EndOffset.Bias == Bias.Backward) { end.Width = 0; } var bounds = view.LayoutRect; if (start.Y == end.Y) { // same line. Can take shortcut .. drawingService.FillRect(start.Union(end), Color); } else { // draw first line drawingService.FillRect(new Rectangle(start.X, start.Y, bounds.Right - start.X, start.Height), Color); // draw inbetween lines using the full view-width as bounds drawingService.FillRect(new Rectangle(bounds.X, start.Bottom, bounds.Width, end.Y - start.Bottom), Color); // draw last line drawingService.FillRect(new Rectangle(bounds.X, end.Y, end.Right - bounds.X, end.Height), Color); } }
protected override void DrawWidget(IBatchedDrawingService drawingService) { drawingService.FillRect(LayoutRect, Color); }