TestTruncate(data, ShipNameWidth.ShipList);\r
}\r
\r
- private static readonly Font LatinFont = new Font("Tahoma", 8f);\r
-\r
private static void TestTruncate(TestData data, ShipNameWidth width)\r
{\r
foreach (var zoom in data.Keys)\r
{\r
SetScaleFactor(zoom);\r
- var label = CreateLabel(zoom, width);\r
+ var label = new ShipLabel.Name(Point.Empty, width);\r
+ label.Font = ShipLabel.Name.BaseFont;\r
for (var i = 0; i < data[zoom].Length; i++)\r
{\r
var entry = data[zoom][i];\r
}\r
}\r
\r
- private static ShipLabel.Name CreateLabel(int zoom, ShipNameWidth width)\r
- {\r
- var label = new ShipLabel.Name(Point.Empty, width) {Parent = new Panel()};\r
- label.Parent.Font = ZoomFont(label.Parent.Font, zoom);\r
- ShipLabel.Name.LatinFont = ZoomFont(LatinFont, zoom);\r
- return label;\r
- }\r
-\r
private static void SetScaleFactor(int zoom)\r
{\r
+ var form = new Form {AutoScaleMode = AutoScaleMode.Font};\r
if (zoom == 100)\r
{\r
Scaler.Factor = new SizeF(1, 1);\r
+ ShipLabel.Name.BaseFont = form.Font;\r
+ ShipLabel.Name.LatinFont = LatinFont(100);\r
return;\r
}\r
- var form = new Form {AutoScaleMode = AutoScaleMode.Font};\r
var prev = form.CurrentAutoScaleDimensions;\r
- form.Font = ZoomFont(form.Font, zoom);\r
+ form.Font = new Font(form.Font.FontFamily, form.Font.Size * zoom / 100);\r
+ ShipLabel.Name.BaseFont = form.Font;\r
+ ShipLabel.Name.LatinFont = LatinFont(zoom);\r
var cur = form.CurrentAutoScaleDimensions;\r
Scaler.Factor = new SizeF(cur.Width / prev.Width, cur.Height / prev.Height);\r
}\r
\r
- private static Font ZoomFont(Font font, int zoom)\r
+ private static Font LatinFont(int zoom)\r
{\r
- return zoom == 100 ? font : new Font(font.FontFamily, font.Size * zoom / 100);\r
+ return new Font("Tahoma", 8f * zoom / 100);\r
}\r
}\r
\r
private void PerformZoom()\r
{\r
if (Config.Zoom == 100)\r
+ {\r
+ ShipLabel.Name.BaseFont = Font;\r
+ ShipLabel.Name.LatinFont = LatinFont();\r
return;\r
+ }\r
var prev = CurrentAutoScaleDimensions;\r
foreach (var control in new Control[]\r
{\r
contextMenuStripMain, _errorDialog\r
})\r
{\r
- control.Font = new Font(control.Font.FontFamily, control.Font.Size * Config.Zoom / 100);\r
+ control.Font = ZoomFont(control.Font);\r
}\r
foreach (var toolTip in new[] {_toolTip, _tooltipCopy})\r
{\r
- toolTip.Font = new Font(toolTip.Font.FontFamily, toolTip.Font.Size * Config.Zoom / 100);\r
+ toolTip.Font = ZoomFont(toolTip.Font);\r
}\r
- ShipLabel.Name.LatinFont = new Font("Tahoma", 8f * Config.Zoom / 100);\r
+ ShipLabel.Name.BaseFont = Font;\r
+ ShipLabel.Name.LatinFont = LatinFont();\r
var cur = CurrentAutoScaleDimensions;\r
Scaler.Factor = Scaler.Scale(cur.Width / prev.Width, cur.Height / prev.Height);\r
}\r
\r
+ private Font ZoomFont(Font font)\r
+ {\r
+ return new Font(font.FontFamily, font.Size * Config.Zoom / 100);\r
+ }\r
+\r
+ private Font LatinFont()\r
+ {\r
+ return new Font("Tahoma", 8f * Config.Zoom / 100);\r
+ }\r
+\r
private void RestoreLocation()\r
{\r
if (Config.Location.X == int.MinValue)\r
{\r
protected Color InitialBackColor;\r
\r
- protected Font BaseFont => Parent.Font;\r
-\r
public override Color BackColor\r
{\r
get => base.BackColor;\r
private SlotStatus _slotStatus;\r
private readonly ShipNameWidth _defaultWidth;\r
\r
- public static Font LatinFont { get; set; } = new Font("Tahoma", 8f);\r
+ public static Font LatinFont { get; set; }\r
+ public static Font BaseFont { get; set; }\r
\r
public Name(Point location, ShipNameWidth defaultWidth)\r
{\r
{\r
var lu = new Regex(@"^\p{Lu}").IsMatch(name);\r
var shift = Scaler.ScaleHeight(1);\r
- if (lu && Font.Equals(BaseFont))\r
+ if (lu && !Font.Equals(LatinFont))\r
{\r
Location += new Size(0, -shift);\r
Font = LatinFont;\r
}\r
- else if (!lu && !Font.Equals(BaseFont))\r
+ else if (!lu && Font.Equals(LatinFont))\r
{\r
Location += new Size(0, shift);\r
Font = BaseFont;\r
public override void Set(ShipStatus status)\r
{\r
_status = status;\r
- Font = BaseFont;\r
Text = _hpPercent\r
? $"{(int)Floor(status.NowHp * 100.0 / status.MaxHp):D}%"\r
: $"{status.NowHp:D}/{status.MaxHp:D}";\r