From 7f5a6775887d8db670588c21c52899a680750eb8 Mon Sep 17 00:00:00 2001 From: dgis Date: Thu, 18 Feb 2016 23:00:59 +0100 Subject: [PATCH] - Improve the documentation location on the diagram. - Fix bug when zooming the fonts. --- ReadMe.txt | 1 + XSDDiagram.exe | Bin 670720 -> 671744 bytes XSDDiagramConsole.exe | Bin 5120 -> 5120 bytes XSDDiagrams/Rendering/Diagram.cs | 43 ++++++++++++++------ XSDDiagrams/Rendering/DiagramGdiRenderer.cs | 7 ++-- XSDDiagrams/Rendering/DiagramItem.cs | 32 ++++++++++++++- 6 files changed, 67 insertions(+), 16 deletions(-) diff --git a/ReadMe.txt b/ReadMe.txt index d261eae..3a85379 100644 --- a/ReadMe.txt +++ b/ReadMe.txt @@ -131,6 +131,7 @@ version 0.18 (Not released yet) - Fix a bug when printing with margin! - On Linux with Mono, the horizontal and vertical scrollbars should now appear. - Fix an UTF8 bug when downloading from a URL. +- Fix bug when zooming the fonts. version 0.17 (2015-09-02) - Add CSV and TXT output rendering following the Christian's idea. diff --git a/XSDDiagram.exe b/XSDDiagram.exe index e65f06cde98a2a2d248c89ede9466cef4233b224..e31d6927ed192a3a561d0c337583b8366c1be60e 100644 GIT binary patch delta 46995 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 z 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 VMV1SA$`D5ViL&4QVaS&u{{w+-hm`;T diff --git a/XSDDiagramConsole.exe b/XSDDiagramConsole.exe index 8369e7f3c952867bb9b8551d7d5b7a879bf919ab..ab007c321e695a3f8d3c9556db6387843678409d 100644 GIT binary patch delta 187 zcmZqBXwaC@!EA4LY+|=8qu#`o;f%K@GcwjQnoMp4lKh()nclMqhXJol|SF5$BzW X1}vNTxPGxS8JKSt6nf7%(SRKQgcdfI delta 187 zcmZqBXwaC@!Mtegk%`^1j7AezhBMxq%*a^JXfe4FND6IcWO~mc@POBB{e;--KC1*S zoNjsBwr&%90HY63PZ$FbFadEH5ND_XF$V)fP_RqzjFp!smDs)YU+AVidrD@wCL>VZ z*(xTqIJKxaCON-2FEh0$#w9(); + _scale = 1.0f; + _lastScale = 1.0f; + _size = new Size(100, 100); + _padding = new Size(10, 10); + _boundingBox = Rectangle.Empty; + _alignement = DiagramAlignement.Center; + _rootElements = new List(); _elementsByName = new Dictionary(StringComparer.OrdinalIgnoreCase); } @@ -66,8 +71,11 @@ namespace XSDDiagram.Rendering public bool ShowDocumentation { get { return _showDocumentation; } set { _showDocumentation = value; } } public Font Font { get { return _font; } set { _font = value; } } + public Font FontScaled { get { return _fontScaled; } set { _fontScaled = value; } } public Font SmallFont { get { return _smallFont; } set { _smallFont = value; } } + public Font SmallFontScaled { get { return _smallFontScaled; } set { _smallFontScaled = value; } } public Font DocumentationFont { get { return _documentationFont; } set { _documentationFont = value; } } + public Font DocumentationFontScaled { get { return _documentationFontScaled; } set { _documentationFontScaled = value; } } public IDictionary ElementsByName { get { return _elementsByName; } set { _elementsByName = value; } } public List RootElements { get { return _rootElements; } } @@ -444,13 +452,24 @@ namespace XSDDiagram.Rendering //_font = new Font(fontName, 10.0f * (float)Math.Pow(_scale, 2.0), FontStyle.Bold, GraphicsUnit.Pixel); //_smallFont = new Font(fontName, 9.0f * (float)Math.Pow(_scale, 2.0), GraphicsUnit.Pixel); //_documentationFont = new Font(fontName, 10.0f * (float)Math.Pow(_scale, 2.0), GraphicsUnit.Pixel); - float fontScale = (float)Math.Pow(_scale, 2.0); if (_font == null) - _font = new Font(fontName, 10.0f * fontScale, FontStyle.Bold, GraphicsUnit.Pixel); - if (_smallFont == null) - _smallFont = new Font(fontName, 9.0f * fontScale, GraphicsUnit.Pixel); - if (_documentationFont == null) - _documentationFont = new Font(fontName, 10.0f * fontScale, GraphicsUnit.Pixel); + { + _font = new Font(fontName, 10.0f, FontStyle.Bold, GraphicsUnit.Pixel); + _smallFont = new Font(fontName, 9.0f, GraphicsUnit.Pixel); + _documentationFont = new Font(fontName, 10.0f, GraphicsUnit.Pixel); + } + if (_fontScaled == null || _lastScale != _scale) + { + //float fontScale = (float)Math.Pow(_scale, 2.0); + float fontScale = _scale; + if (_fontScaled != null) _fontScaled.Dispose(); + _fontScaled = new Font(fontName, 10.0f * fontScale, FontStyle.Bold, GraphicsUnit.Pixel); + if (_smallFontScaled != null) _smallFontScaled.Dispose(); + _smallFontScaled = new Font(fontName, 9.0f * fontScale, GraphicsUnit.Pixel); + if (_documentationFontScaled != null) _documentationFontScaled.Dispose(); + _documentationFontScaled = new Font(fontName, 10.0f * fontScale, GraphicsUnit.Pixel); + _lastScale = _scale; + } foreach (DiagramItem element in _rootElements) element.GenerateMeasure(g); diff --git a/XSDDiagrams/Rendering/DiagramGdiRenderer.cs b/XSDDiagrams/Rendering/DiagramGdiRenderer.cs index 275231b..31a2688 100644 --- a/XSDDiagrams/Rendering/DiagramGdiRenderer.cs +++ b/XSDDiagrams/Rendering/DiagramGdiRenderer.cs @@ -482,7 +482,7 @@ namespace XSDDiagram.Rendering stringFormatText.Alignment = StringAlignment.Center; stringFormatText.LineAlignment = StringAlignment.Center; stringFormatText.FormatFlags |= StringFormatFlags.NoClip; //MONOFIX - _graphics.DrawString(drawingItem.Name, drawingItem.Font, foreground, new RectangleF(scaledElementBox.X, scaledElementBox.Y, scaledElementBox.Width, scaledElementBox.Height), stringFormatText); + _graphics.DrawString(drawingItem.Name, drawingItem.FontScaled, foreground, new RectangleF(scaledElementBox.X, scaledElementBox.Y, scaledElementBox.Width, scaledElementBox.Height), stringFormatText); } // Draw Documentation @@ -494,6 +494,7 @@ namespace XSDDiagram.Rendering StringFormat stringFormatText = new StringFormat(); stringFormatText.Alignment = StringAlignment.Near; stringFormatText.LineAlignment = StringAlignment.Near; + stringFormatText.Trimming = StringTrimming.EllipsisCharacter; stringFormatText.FormatFlags |= StringFormatFlags.NoClip; //MONOFIX //_graphics.DrawString(text, drawingItem.Font, foreground @@ -507,7 +508,7 @@ namespace XSDDiagram.Rendering _graphics.FillRectangle(new SolidBrush(Color.FromArgb(color, 255 - color, color)), scaledDocumentationBox); _graphics.DrawRectangle(foregroundPen, scaledDocumentationBox); } - _graphics.DrawString(text, drawingItem.DocumentationFont, foreground + _graphics.DrawString(text, drawingItem.DocumentationFontScaled, foreground , new RectangleF(scaledDocumentationBox.X, scaledDocumentationBox.Y, scaledDocumentationBox.Width, scaledDocumentationBox.Height) , stringFormatText); } @@ -525,7 +526,7 @@ namespace XSDDiagram.Rendering PointF pointOccurences = new PointF(); pointOccurences.X = drawingItem.Diagram.Scale * (drawingItem.Location.X + drawingItem.Size.Width - 10); pointOccurences.Y = drawingItem.Diagram.Scale * (drawingItem.Location.Y + drawingItem.Size.Height + 10); - _graphics.DrawString(occurences, drawingItem.SmallFont, foreground, pointOccurences, stringFormatOccurences); + _graphics.DrawString(occurences, drawingItem.SmallFontScaled, foreground, pointOccurences, stringFormatOccurences); } // Draw type diff --git a/XSDDiagrams/Rendering/DiagramItem.cs b/XSDDiagrams/Rendering/DiagramItem.cs index fa22b9d..28f1953 100644 --- a/XSDDiagrams/Rendering/DiagramItem.cs +++ b/XSDDiagrams/Rendering/DiagramItem.cs @@ -266,6 +266,13 @@ namespace XSDDiagram.Rendering return _diagram.Font; } } + public Font FontScaled + { + get + { + return _diagram.FontScaled; + } + } public Font SmallFont { @@ -274,6 +281,14 @@ namespace XSDDiagram.Rendering return _diagram.SmallFont; } } + public Font SmallFontScaled + { + get + { + return _diagram.SmallFontScaled; + } + } + public Font DocumentationFont { get @@ -281,6 +296,13 @@ namespace XSDDiagram.Rendering return _diagram.DocumentationFont; } } + public Font DocumentationFontScaled + { + get + { + return _diagram.DocumentationFontScaled; + } + } public Point Location { @@ -523,7 +545,15 @@ namespace XSDDiagram.Rendering double documentationWidth = Math.Max(1.0, _size.Width + _padding.Width * 2.0); double documentationHeight = (Math.Ceiling(sizeF.Width / documentationWidth) + 1) * sizeF.Height; _documentationBox = new Rectangle(new Point(0, 0), new Size((int)documentationWidth, (int)documentationHeight)); - _boundingBox.Height += (_diagram.Alignement == DiagramAlignement.Center ? 2 : 1) *_documentationBox.Height + 2 * _padding.Height; + //_boundingBox.Height += (_diagram.Alignement == DiagramAlignement.Center ? 2 : 1) * _documentationBox.Height + 2 * _padding.Height; + //if(_diagram.Alignement == DiagramAlignement.Center) + //{ + // _boundingBox.Height = Math.Max(_size.Height + 2 * _padding.Height + 2 * _documentationBox.Height + 2 * _padding.Height, childBoundingBoxHeight); + //} + //else + { + _boundingBox.Height = Math.Max(_size.Height + 2 * _padding.Height + _documentationBox.Height + 2 * _padding.Height, childBoundingBoxHeight); + } } }