protected override void DrawWidgetStateOverlay(IBatchedDrawingService drawingService) { var borderRect = BorderRect; var reservedSize = FrameTexture?.CornerArea.Horizontal ?? 0; var usableWidth = Math.Max(0, borderRect.Width - reservedSize); var range = Math.Max(Max, Min) - Math.Min(Max, Min); var effectiveValue = MathHelper.Clamp(lerpValue.CurrentValue, Min, Max) - Min; var width = usableWidth * effectiveValue / range; if (width > 0) { Rectangle progressRect; if (Direction == ProgressBarDirection.LeftToRight) { progressRect = new Rectangle(borderRect.X, borderRect.Y, (int)(width + reservedSize), borderRect.Height); } else { progressRect = new Rectangle((int)(borderRect.X + (usableWidth - width)), borderRect.Y, (int)(width + reservedSize), borderRect.Height); } drawingService.DrawBox(WidgetStateOverlayTexture, progressRect, WidgetStateOverlayColor); } }
protected override void DrawMouseState(IBatchedDrawingService drawingService) { if (!IsPressed) { base.DrawMouseState(drawingService); } else { drawingService.DrawBox(DownOverlayTexture, BorderRect, DownOverlayColor * PressedAnimationValue); } }