aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/Scripting/Tango.Scripting.Editors/Rendering/VisualLineElementTextRunProperties.cs
diff options
context:
space:
mode:
authorVictoria Plitt <Victoria.Plitt@twine-s.com>2019-04-08 13:49:55 +0300
committerVictoria Plitt <Victoria.Plitt@twine-s.com>2019-04-08 13:49:55 +0300
commitfc8a05358a92cc3c77c5f1e30d536807ef0614fd (patch)
treec65f696ebd60f3790145721307c255e5a339923f /Software/Visual_Studio/Scripting/Tango.Scripting.Editors/Rendering/VisualLineElementTextRunProperties.cs
parentb4a71931ea52636c6b36376aa9d71697ccf73524 (diff)
downloadTango-fc8a05358a92cc3c77c5f1e30d536807ef0614fd.tar.gz
Tango-fc8a05358a92cc3c77c5f1e30d536807ef0614fd.zip
were added scripting projects
Diffstat (limited to 'Software/Visual_Studio/Scripting/Tango.Scripting.Editors/Rendering/VisualLineElementTextRunProperties.cs')
-rw-r--r--Software/Visual_Studio/Scripting/Tango.Scripting.Editors/Rendering/VisualLineElementTextRunProperties.cs241
1 files changed, 241 insertions, 0 deletions
diff --git a/Software/Visual_Studio/Scripting/Tango.Scripting.Editors/Rendering/VisualLineElementTextRunProperties.cs b/Software/Visual_Studio/Scripting/Tango.Scripting.Editors/Rendering/VisualLineElementTextRunProperties.cs
new file mode 100644
index 000000000..a39276c5b
--- /dev/null
+++ b/Software/Visual_Studio/Scripting/Tango.Scripting.Editors/Rendering/VisualLineElementTextRunProperties.cs
@@ -0,0 +1,241 @@
+// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
+// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
+
+using System;
+using System.Globalization;
+using System.Windows;
+using System.Windows.Media;
+using System.Windows.Media.TextFormatting;
+using Tango.Scripting.Editors.Utils;
+
+namespace Tango.Scripting.Editors.Rendering
+{
+ /// <summary>
+ /// <see cref="TextRunProperties"/> implementation that allows changing the properties.
+ /// A <see cref="VisualLineElementTextRunProperties"/> instance usually is assigned to a single
+ /// <see cref="VisualLineElement"/>.
+ /// </summary>
+ public class VisualLineElementTextRunProperties : TextRunProperties, ICloneable
+ {
+ Brush backgroundBrush;
+ BaselineAlignment baselineAlignment;
+ CultureInfo cultureInfo;
+ double fontHintingEmSize;
+ double fontRenderingEmSize;
+ Brush foregroundBrush;
+ Typeface typeface;
+ TextDecorationCollection textDecorations;
+ TextEffectCollection textEffects;
+ TextRunTypographyProperties typographyProperties;
+ NumberSubstitution numberSubstitution;
+
+ /// <summary>
+ /// Creates a new VisualLineElementTextRunProperties instance that copies its values
+ /// from the specified <paramref name="textRunProperties"/>.
+ /// For the <see cref="TextDecorations"/> and <see cref="TextEffects"/> collections, deep copies
+ /// are created if those collections are not frozen.
+ /// </summary>
+ public VisualLineElementTextRunProperties(TextRunProperties textRunProperties)
+ {
+ if (textRunProperties == null)
+ throw new ArgumentNullException("textRunProperties");
+ backgroundBrush = textRunProperties.BackgroundBrush;
+ baselineAlignment = textRunProperties.BaselineAlignment;
+ cultureInfo = textRunProperties.CultureInfo;
+ fontHintingEmSize = textRunProperties.FontHintingEmSize;
+ fontRenderingEmSize = textRunProperties.FontRenderingEmSize;
+ foregroundBrush = textRunProperties.ForegroundBrush;
+ typeface = textRunProperties.Typeface;
+ textDecorations = textRunProperties.TextDecorations;
+ if (textDecorations != null && !textDecorations.IsFrozen) {
+ textDecorations = textDecorations.Clone();
+ }
+ textEffects = textRunProperties.TextEffects;
+ if (textEffects != null && !textEffects.IsFrozen) {
+ textEffects = textEffects.Clone();
+ }
+ typographyProperties = textRunProperties.TypographyProperties;
+ numberSubstitution = textRunProperties.NumberSubstitution;
+ }
+
+ /// <summary>
+ /// Creates a copy of this instance.
+ /// </summary>
+ public virtual VisualLineElementTextRunProperties Clone()
+ {
+ return new VisualLineElementTextRunProperties(this);
+ }
+
+ object ICloneable.Clone()
+ {
+ return Clone();
+ }
+
+ /// <inheritdoc/>
+ public override Brush BackgroundBrush {
+ get { return backgroundBrush; }
+ }
+
+ /// <summary>
+ /// Sets the <see cref="BackgroundBrush"/>.
+ /// </summary>
+ public void SetBackgroundBrush(Brush value)
+ {
+ ExtensionMethods.CheckIsFrozen(value);
+ backgroundBrush = value;
+ }
+
+ /// <inheritdoc/>
+ public override BaselineAlignment BaselineAlignment {
+ get { return baselineAlignment; }
+ }
+
+ /// <summary>
+ /// Sets the <see cref="BaselineAlignment"/>.
+ /// </summary>
+ public void SetBaselineAlignment(BaselineAlignment value)
+ {
+ baselineAlignment = value;
+ }
+
+ /// <inheritdoc/>
+ public override CultureInfo CultureInfo {
+ get { return cultureInfo; }
+ }
+
+ /// <summary>
+ /// Sets the <see cref="CultureInfo"/>.
+ /// </summary>
+ public void SetCultureInfo(CultureInfo value)
+ {
+ if (value == null)
+ throw new ArgumentNullException("value");
+ cultureInfo = value;
+ }
+
+ /// <inheritdoc/>
+ public override double FontHintingEmSize {
+ get { return fontHintingEmSize; }
+ }
+
+ /// <summary>
+ /// Sets the <see cref="FontHintingEmSize"/>.
+ /// </summary>
+ public void SetFontHintingEmSize(double value)
+ {
+ fontHintingEmSize = value;
+ }
+
+ /// <inheritdoc/>
+ public override double FontRenderingEmSize {
+ get { return fontRenderingEmSize; }
+ }
+
+ /// <summary>
+ /// Sets the <see cref="FontRenderingEmSize"/>.
+ /// </summary>
+ public void SetFontRenderingEmSize(double value)
+ {
+ fontRenderingEmSize = value;
+ }
+
+ /// <inheritdoc/>
+ public override Brush ForegroundBrush {
+ get { return foregroundBrush; }
+ }
+
+ /// <summary>
+ /// Sets the <see cref="ForegroundBrush"/>.
+ /// </summary>
+ public void SetForegroundBrush(Brush value)
+ {
+ ExtensionMethods.CheckIsFrozen(value);
+ foregroundBrush = value;
+ }
+
+ /// <inheritdoc/>
+ public override Typeface Typeface {
+ get { return typeface; }
+ }
+
+ /// <summary>
+ /// Sets the <see cref="Typeface"/>.
+ /// </summary>
+ public void SetTypeface(Typeface value)
+ {
+ if (value == null)
+ throw new ArgumentNullException("value");
+ typeface = value;
+ }
+
+ /// <summary>
+ /// Gets the text decorations. The value may be null, a frozen <see cref="TextDecorationCollection"/>
+ /// or an unfrozen <see cref="TextDecorationCollection"/>.
+ /// If the value is an unfrozen <see cref="TextDecorationCollection"/>, you may assume that the
+ /// collection instance is only used for this <see cref="TextRunProperties"/> instance and it is safe
+ /// to add <see cref="TextDecoration"/>s.
+ /// </summary>
+ public override TextDecorationCollection TextDecorations {
+ get { return textDecorations; }
+ }
+
+ /// <summary>
+ /// Sets the <see cref="TextDecorations"/>.
+ /// </summary>
+ public void SetTextDecorations(TextDecorationCollection value)
+ {
+ ExtensionMethods.CheckIsFrozen(value);
+ textDecorations = value;
+ }
+
+ /// <summary>
+ /// Gets the text effects. The value may be null, a frozen <see cref="TextEffectCollection"/>
+ /// or an unfrozen <see cref="TextEffectCollection"/>.
+ /// If the value is an unfrozen <see cref="TextEffectCollection"/>, you may assume that the
+ /// collection instance is only used for this <see cref="TextRunProperties"/> instance and it is safe
+ /// to add <see cref="TextEffect"/>s.
+ /// </summary>
+ public override TextEffectCollection TextEffects {
+ get { return textEffects; }
+ }
+
+ /// <summary>
+ /// Sets the <see cref="TextEffects"/>.
+ /// </summary>
+ public void SetTextEffects(TextEffectCollection value)
+ {
+ ExtensionMethods.CheckIsFrozen(value);
+ textEffects = value;
+ }
+
+ /// <summary>
+ /// Gets the typography properties for the text run.
+ /// </summary>
+ public override TextRunTypographyProperties TypographyProperties {
+ get { return typographyProperties; }
+ }
+
+ /// <summary>
+ /// Sets the <see cref="TypographyProperties"/>.
+ /// </summary>
+ public void SetTypographyProperties(TextRunTypographyProperties value)
+ {
+ typographyProperties = value;
+ }
+
+ /// <summary>
+ /// Gets the number substitution settings for the text run.
+ /// </summary>
+ public override NumberSubstitution NumberSubstitution {
+ get { return numberSubstitution; }
+ }
+
+ /// <summary>
+ /// Sets the <see cref="NumberSubstitution"/>.
+ /// </summary>
+ public void SetNumberSubstitution(NumberSubstitution value)
+ {
+ numberSubstitution = value;
+ }
+ }
+}