public PlaybackProgressBar(IGraphicsDisplay graphicsDisplay, PlaybackProgressBarDefinition playbackProgressBarDefinition)
{
this.graphicsDisplay = graphicsDisplay;
this.playbackProgressBarDefinition = playbackProgressBarDefinition;
this.Bounds = this.playbackProgressBarDefinition.Bounds;
var graphicsRectangleProgressBarLeft = this.graphicsDisplay.SourceRectangleFromImageType(ImageType.ProgressBarLeft);
var graphicsRectangleProgressBarRight = this.graphicsDisplay.SourceRectangleFromImageType(ImageType.ProgressBarRight);
var yDiff = this.playbackProgressBarDefinition.Bounds.Height - graphicsRectangleProgressBarLeft.Height;
this.boundsLeftImage = new Rectangle(
this.playbackProgressBarDefinition.Bounds.X,
this.playbackProgressBarDefinition.Bounds.Y + yDiff / 2,
graphicsRectangleProgressBarLeft.Width,
this.playbackProgressBarDefinition.Bounds.Height - yDiff);
this.boundsRightImage = new Rectangle(
this.playbackProgressBarDefinition.Bounds.X + (this.playbackProgressBarDefinition.Bounds.Width - graphicsRectangleProgressBarRight.Width),
this.playbackProgressBarDefinition.Bounds.Y + yDiff / 2,
graphicsRectangleProgressBarRight.Width,
this.playbackProgressBarDefinition.Bounds.Height - yDiff);
this.boundsMiddleImage = new Rectangle(
this.playbackProgressBarDefinition.Bounds.X + this.boundsLeftImage.Width,
this.playbackProgressBarDefinition.Bounds.Y + yDiff / 2,
this.playbackProgressBarDefinition.Bounds.Width - (graphicsRectangleProgressBarRight.Width + graphicsRectangleProgressBarLeft.Width),
this.playbackProgressBarDefinition.Bounds.Height - yDiff);
var indicatorXOffset = (this.playbackProgressBarDefinition.Bounds.Width - this.playbackProgressBarDefinition.ProgresIndicatorWidth) / 2;
var indicatorYOffset = (this.playbackProgressBarDefinition.Bounds.Height - this.playbackProgressBarDefinition.ProgressIndicatorHeight) / 2;
this.boundsProgressIndicator = new Rectangle(
this.playbackProgressBarDefinition.Bounds.X + indicatorXOffset,
this.playbackProgressBarDefinition.Bounds.Y + indicatorYOffset,
this.playbackProgressBarDefinition.ProgresIndicatorWidth,
this.playbackProgressBarDefinition.ProgressIndicatorHeight);
}