protected virtual void DrawText(string value, ImageRenderer render) { if (GaugeSettings.ShowText) { value = GaugeSettings.RoundValue(value); if (GaugeSettings.BarOrientation == (int)GaugeOrientation.LEFT && !GaugeSettings.DrawArc) { render.Rotate(180, new PointF(0, 0)); } GaugeSettings.GetFontParameters(TitleParameters, value, out Font drawFont, out Color drawColor); string text = ModelDisplay.FormatValue(value, GaugeSettings.Format); text = GaugeSettings.GetValueMapped(text); render.DrawText(text, drawFont, drawColor, ModelDisplayText.GetRectangleF(GaugeSettings.RectCoord)); } }
protected override void DrawText(string value, ImageRenderer render) { base.DrawText(value, render); if (!GaugeSettings.DrawArc) { value = ValueManager[ID.Second]; if (GaugeSettings.DecodeBCD) { value = ModelDisplay.ConvertFromBCD(value); } value = GaugeSettings.ScaleValue(value); if (GaugeSettings.ShowText) { value = GaugeSettings.RoundValue(value); GaugeSettings.GetFontParameters(TitleParameters, value, out Font drawFont, out Color drawColor); render.DrawText(ModelDisplay.FormatValue(value, GaugeSettings.Format), drawFont, drawColor, ModelDisplayText.GetRectangleF(Settings.RectCoord2)); } } }
protected override void Redraw(ImageManager imgManager) { if (!ValueManager.IsChanged(ID.Active) && !ValueManager.IsChanged(ID.Standby) && !ForceUpdate && !wasPushed) { return; } string valueAct = ValueManager[ID.Active]; if (Settings.DecodeBCD) { valueAct = ModelDisplay.ConvertFromBCD(valueAct); } valueAct = Settings.ScaleValue(valueAct); valueAct = Settings.RoundValue(valueAct); valueAct = Settings.FormatValue(valueAct); string valueStb = ValueManager[ID.Standby]; if (Settings.DecodeBCD && !Settings.StbyHasDiffFormat || Settings.StbyHasDiffFormat && Settings.DecodeBCDStby) { valueStb = ModelDisplay.ConvertFromBCD(valueStb); } valueStb = ModelDisplay.ScaleValue(valueStb, Settings.StbyHasDiffFormat ? Settings.ScalarStby : Settings.Scalar); valueStb = ModelDisplay.RoundValue(valueStb, Settings.StbyHasDiffFormat ? Settings.FormatStby : Settings.Format); valueStb = ModelDisplay.FormatValue(valueStb, Settings.StbyHasDiffFormat ? Settings.FormatStby : Settings.Format); string background = Settings.DefaultImage; if (wasPushed) { ticksIndication++; if (ticksIndication < ticksActive) { background = Settings.IndicationImage; } else { wasPushed = false; ticksIndication = 0; } } if (lastText != valueAct + valueStb || ForceUpdate || wasPushed && ticksIndication < ticksActive) { Font fontAct = GetFont(FontStyle.Bold); Font fontStb = GetFont(FontStyle.Regular); Color colorAct; if (Settings.FontInherit && TitleParameters != null) { colorAct = ColorTranslator.FromHtml(TitleParameters.FontColor); } else { colorAct = ColorTranslator.FromHtml(Settings.FontColor); } Color colorStb; if (Settings.FontInherit && TitleParameters != null) { colorStb = GetDarkenedColor(TitleParameters.FontColor); } else { colorStb = ColorTranslator.FromHtml(Settings.FontColorStby); } ImageRenderer render = new ImageRenderer(imgManager.GetImageObject(background, DeckType)); render.DrawText(valueAct, fontAct, colorAct, Settings.GetRectangleText()); render.DrawText(valueStb, fontStb, colorStb, ModelDisplayText.GetRectangleF(Settings.RectCoordStby)); DrawImage = render.RenderImage64(); IsRawImage = true; NeedRedraw = true; if (!wasPushed) { lastText = valueAct + valueStb; } else { lastText = ""; } render.Dispose(); } }