X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=mcs%2Fclass%2FSystem.Drawing%2FSystem.Drawing%2FStringFormat.jvm.cs;h=3d9ec7944ff6acc5f58f42ac59303b42cc0a84e0;hb=fe8bdbcef723fc8c92afcc822aa4c12e34c21c0b;hp=10b08625cf315a19547c7d9015e6b899a99b244b;hpb=21d1fdc48703514b1164ea2a76fc3bbf3d40871f;p=mono.git diff --git a/mcs/class/System.Drawing/System.Drawing/StringFormat.jvm.cs b/mcs/class/System.Drawing/System.Drawing/StringFormat.jvm.cs index 10b08625cf3..3d9ec7944ff 100644 --- a/mcs/class/System.Drawing/System.Drawing/StringFormat.jvm.cs +++ b/mcs/class/System.Drawing/System.Drawing/StringFormat.jvm.cs @@ -32,203 +32,249 @@ using System; using System.Drawing.Text; -namespace System.Drawing -{ +namespace System.Drawing { /// /// Summary description for StringFormat. /// - public sealed class StringFormat : IDisposable, ICloneable - { - private static StringFormat genericDefault; - private int language = 0; - internal CharacterRange [] CharRanges; - - //local storage - internal StringAlignment alignment; - internal StringAlignment linealignment; - internal HotkeyPrefix prefix; - internal StringFormatFlags flags; - internal StringDigitSubstitute subst; - internal StringTrimming trimming; - internal float firstTabOffset; - internal float [] tabStops; + public sealed class StringFormat : MarshalByRefObject, IDisposable, ICloneable { - public StringFormat() - { - - } - public StringFormat(StringFormatFlags options, int lang) - { - flags = options; - LineAlignment = StringAlignment.Near; - Alignment = StringAlignment.Near; - language = lang; + private CharacterRange [] _charRanges; + private StringAlignment _alignment; + private StringAlignment _lineAlignment; + private HotkeyPrefix _hotkeyPrefix; + private StringFormatFlags _flags; + private StringDigitSubstitute _digitSubstituteMethod; + private int _digitSubstituteLanguage; + private StringTrimming _trimming; + + private float _firstTabOffset; + private float [] _tabStops; + + private bool _genericTypeographic = false; + + #region Constructors + + public StringFormat() : this(0, 0) { } - public StringFormat(StringFormatFlags options):this(options,0) - { + public StringFormat(StringFormatFlags options) : this(options,0) { } -// ~StringFormat() -// { -// Dispose (); -// } + public StringFormat(StringFormatFlags options, int lang) { + _alignment = StringAlignment.Near; + _digitSubstituteLanguage = lang; + _digitSubstituteMethod = StringDigitSubstitute.User; + _flags = options; + _hotkeyPrefix = HotkeyPrefix.None; + _lineAlignment = StringAlignment.Near; + _trimming = StringTrimming.Character; + } - public void Dispose() - { + public StringFormat (StringFormat source) { + if (source == null) + throw new ArgumentNullException("format"); + + _alignment = source.LineAlignment; + _digitSubstituteLanguage = source.DigitSubstitutionLanguage; + _digitSubstituteMethod = source.DigitSubstitutionMethod; + _flags = source.FormatFlags; + _hotkeyPrefix = source.HotkeyPrefix; + _lineAlignment = source.LineAlignment; + _trimming = source.Trimming; } - public StringFormat (StringFormat source) - { - Alignment = source.Alignment; - LineAlignment = source.LineAlignment; - HotkeyPrefix = source.HotkeyPrefix; - subst = source.subst; - flags = source.flags; + #endregion + + #region IDisposable + + public void Dispose() { } - - public StringAlignment Alignment - { - get - { - return alignment; + #endregion + + #region Public properties + + public StringAlignment Alignment { + get { + return _alignment; } - set - { - alignment = value; + set { + _alignment = value; } } - public StringAlignment LineAlignment - { - get - { - return linealignment; + public StringAlignment LineAlignment { + get { + return _lineAlignment; } - set - { - linealignment = value; + set { + _lineAlignment = value; } } - public StringFormatFlags FormatFlags - { - get - { - return flags; + [MonoTODO] + public StringFormatFlags FormatFlags { + get { + return _flags; } - set - { - flags = value; + set { + _flags = value; } } - public HotkeyPrefix HotkeyPrefix - { - get - { - return prefix; + [MonoTODO] + public HotkeyPrefix HotkeyPrefix { + get { + return _hotkeyPrefix; } - set - { - prefix = value; + set { + _hotkeyPrefix = value; } } + [MonoTODO] + public StringTrimming Trimming { + get { + return _trimming; + } - public StringTrimming Trimming - { - get - { - return trimming; + set { + _trimming = value; } + } - set - { - trimming = value; + public int DigitSubstitutionLanguage { + get { + return _digitSubstituteLanguage; } } - public static StringFormat GenericDefault - { - get - { + public StringDigitSubstitute DigitSubstitutionMethod { + get { + return _digitSubstituteMethod; + } + } + + + #endregion + + #region static properties + + public static StringFormat GenericDefault { + get { + StringFormat genericDefault = new StringFormat(); return genericDefault; } } - - public int DigitSubstitutionLanguage - { - get - { - return language; + public static StringFormat GenericTypographic { + get { + StringFormat genericTypographic = new StringFormat( + StringFormatFlags.FitBlackBox | + StringFormatFlags.LineLimit | + StringFormatFlags.NoClip, + 0 ); + genericTypographic.Trimming = StringTrimming.None; + genericTypographic._genericTypeographic = true; + return genericTypographic; } } - - public static StringFormat GenericTypographic - { - get - { - throw new NotImplementedException(); + #endregion + + #region internal accessors + internal bool NoWrap { + get { + return (FormatFlags & StringFormatFlags.NoWrap) != 0; } } - public StringDigitSubstitute DigitSubstitutionMethod - { - get - { - return subst; + internal bool IsVertical { + get { + return (FormatFlags & StringFormatFlags.DirectionVertical) != 0; } } + internal bool MeasureTrailingSpaces { + get { + return (FormatFlags & StringFormatFlags.MeasureTrailingSpaces) != 0; + } + } - public void SetMeasurableCharacterRanges (CharacterRange [] range) - { - CharRanges=(CharacterRange [])range.Clone(); + internal bool LineLimit { + get { + return (FormatFlags & StringFormatFlags.LineLimit) != 0; + } + } + + internal bool NoClip { + get { + return (FormatFlags & StringFormatFlags.NoClip) != 0; + } } - internal CharacterRange [] GetCharRanges + internal bool IsRightToLeft { + get { + return (FormatFlags & StringFormatFlags.DirectionRightToLeft) != 0; + } + } + + internal CharacterRange [] CharRanges { + get { + return _charRanges; + } + } + + internal bool IsGenericTypographic { - get - { - return(CharRanges); + get { + return _genericTypeographic; } } + #endregion + + #region public methods + + public void SetMeasurableCharacterRanges (CharacterRange [] range) { + _charRanges = range != null ? (CharacterRange [])range.Clone() : null; + } - public object Clone() - { - throw new NotImplementedException(); + public object Clone() { + StringFormat copy = (StringFormat)MemberwiseClone(); + if (_charRanges != null) + copy._charRanges = (CharacterRange [])_charRanges.Clone(); + if (_tabStops != null) + copy._tabStops = (float[])_tabStops.Clone(); + return copy; } - public override string ToString() - { + public override string ToString() { return "[StringFormat, FormatFlags=" + this.FormatFlags.ToString() + "]"; } - public void SetTabStops(float firstTabOffset, float[] tabStops) - { - this.firstTabOffset = firstTabOffset; - this.tabStops = tabStops; + public void SetTabStops(float firstTabOffset, float[] tabStops) { +// _firstTabOffset = firstTabOffset; +// _tabStops = tabStops != null ? (float[])tabStops.Clone() : null; + throw new NotImplementedException(); } - public void SetDigitSubstitution(int language, StringDigitSubstitute substitute) - { - subst = substitute; + public void SetDigitSubstitution(int language, StringDigitSubstitute substitute) { +// _digitSubstituteMethod = substitute; +// _digitSubstituteLanguage = language; + throw new NotImplementedException(); } - public float[] GetTabStops(out float firstTabOffset) - { - firstTabOffset = this.firstTabOffset; - return this.tabStops; + [MonoTODO] + public float[] GetTabStops(out float firstTabOffset) { + firstTabOffset = _firstTabOffset; + return _tabStops != null ? (float[])_tabStops.Clone() : null; } + #endregion } }