[chronojump] Encoder plot bars title autoadjust font size to fit
- From: Xavier de Blas <xaviblas src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [chronojump] Encoder plot bars title autoadjust font size to fit
- Date: Fri, 5 Jun 2020 09:41:42 +0000 (UTC)
commit eff2adc513b78a14304bfd06dcf4ed34607702d5
Author: Xavier de Blas <xaviblas gmail com>
Date: Fri Jun 5 11:36:37 2020 +0200
Encoder plot bars title autoadjust font size to fit
src/gui/encoderGraphObjects.cs | 35 ++++++++++++++++++++++++++++++++---
1 file changed, 32 insertions(+), 3 deletions(-)
---
diff --git a/src/gui/encoderGraphObjects.cs b/src/gui/encoderGraphObjects.cs
index 4af12ee6..8c6dd6c1 100644
--- a/src/gui/encoderGraphObjects.cs
+++ b/src/gui/encoderGraphObjects.cs
@@ -906,31 +906,60 @@ public class EncoderGraphDoPlot
int titleFullWidth = 1;
int titleWidth = 1;
int lossStringWidth = 1;
+
layout_encoder_capture_curves_bars_text.SetMarkup(titleFull);
layout_encoder_capture_curves_bars_text.GetPixelSize(out titleFullWidth, out textHeight);
+
+ // 2) reduce font size title is longer than graphWidth
+ //LogB.Information("font size: " +
layout_encoder_capture_curves_bars_text.FontDescription.Size.ToString());
+ int savedFontSize =
Convert.ToInt32(layout_encoder_capture_curves_bars_text.FontDescription.Size / Pango.Scale.PangoScale);
+ if (titleFullWidth > graphWidth)
+ {
+ int i = 1;
+ do {
+ layout_encoder_capture_curves_bars_text.FontDescription.Size -=
Convert.ToInt32(Pango.Scale.PangoScale);
+
+ if(layout_encoder_capture_curves_bars_text.FontDescription.Size /
Pango.Scale.PangoScale < 1)
+ break;
+
+ layout_encoder_capture_curves_bars_text.SetMarkup(titleFull);
+ layout_encoder_capture_curves_bars_text.GetPixelSize(out titleFullWidth, out
textHeight);
+
+ //LogB.Information(string.Format("titleFullWidth: {0}, graphWidth: {1}, i:
{2}, savedFontSize: {3}, fontSize: {4}",
+ // titleFullWidth, graphWidth, i, savedFontSize,
+ //
layout_encoder_capture_curves_bars_text.FontDescription.Size/Pango.Scale.PangoScale));
+
+ i ++;
+ } while (titleFullWidth > graphWidth);
+ }
+
layout_encoder_capture_curves_bars_text.SetMarkup(title);
layout_encoder_capture_curves_bars_text.GetPixelSize(out titleWidth, out textHeight);
layout_encoder_capture_curves_bars_text.SetMarkup(lossString);
layout_encoder_capture_curves_bars_text.GetPixelSize(out lossStringWidth, out textHeight);
- // 2) paint only title text (with black pen)
+ // 3) paint only title text (with black pen)
layout_encoder_capture_curves_bars_text.SetMarkup(title);
pixmap.DrawLayout (pen_black_encoder_capture,
Convert.ToInt32( (graphWidth/2) - titleFullWidth/2), 0, //x, y
layout_encoder_capture_curves_bars_text);
- // 3) paint loss string
+ // 4) paint loss string
layout_encoder_capture_curves_bars_text.SetMarkup(lossString);
pixmap.DrawLayout (pen_gray, //darker than pen_gray_loss
Convert.ToInt32( (graphWidth/2) - titleFullWidth/2 + titleWidth), 0, //x, y
layout_encoder_capture_curves_bars_text);
- // 3) paint the "]";
+ // 5) paint the "]";
layout_encoder_capture_curves_bars_text.SetMarkup("]");
pixmap.DrawLayout (pen_black_encoder_capture,
Convert.ToInt32( (graphWidth/2) - titleFullWidth/2 + titleWidth +
lossStringWidth), 0, //x, y
layout_encoder_capture_curves_bars_text);
+ // 6) return layout font size to its original value
+ layout_encoder_capture_curves_bars_text.FontDescription.Size = savedFontSize;
+
+
// <------ end plot title
// paint loss arrow
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]