// Miguel de Icaza (miguel@ximian.com)
// Jordi Mas i Hernandez (jordi@ximian.com)
//
-// (C) 2002 Ximian, Inc
-// (C) 2003 Novell, Inc.
-//
-
+// Copyright (C) 2002 Ximian, Inc (http://www.ximian.com)
//
// Copyright (C) 2004 Novell, Inc (http://www.novell.com)
//
private static StringFormat genericDefault;
private IntPtr nativeStrFmt = IntPtr.Zero;
private int language = GDIPlus.LANG_NEUTRAL;
- internal CharacterRange [] CharRanges;
-
+
public StringFormat() : this (0, GDIPlus.LANG_NEUTRAL)
{
public StringFormat(StringFormatFlags options, int lang)
{
- lock (this)
- {
- Status status = GDIPlus.GdipCreateStringFormat (options, lang, out nativeStrFmt);
- GDIPlus.CheckStatus (status);
+ Status status = GDIPlus.GdipCreateStringFormat (options, lang, out nativeStrFmt);
+ GDIPlus.CheckStatus (status);
- LineAlignment = StringAlignment.Near;
- Alignment = StringAlignment.Near;
- language = lang;
- }
+ LineAlignment = StringAlignment.Near;
+ Alignment = StringAlignment.Near;
+ language = lang;
}
internal StringFormat(IntPtr native)
nativeStrFmt = native;
}
- ~StringFormat()
+ ~StringFormat ()
{
- Dispose ();
+ Dispose (false);
}
- public void Dispose()
+ public void Dispose ()
{
Dispose (true);
System.GC.SuppressFinalize (this);
void Dispose (bool disposing)
{
- if (disposing) {
- lock (this)
- {
- Status status = GDIPlus.GdipDeleteStringFormat (nativeStrFmt);
- GDIPlus.CheckStatus (status);
- }
+ if (nativeStrFmt != IntPtr.Zero) {
+ Status status = GDIPlus.GdipDeleteStringFormat (nativeStrFmt);
+ GDIPlus.CheckStatus (status);
+
+ nativeStrFmt = IntPtr.Zero;
}
}
public StringFormat (StringFormat source)
{
- lock (this)
- {
- Status status = GDIPlus.GdipCloneStringFormat (source.NativeObject, out nativeStrFmt);
- GDIPlus.CheckStatus (status);
- }
+ Status status = GDIPlus.GdipCloneStringFormat (source.NativeObject, out nativeStrFmt);
+ GDIPlus.CheckStatus (status);
}
public StringFormat (StringFormatFlags flags)
{
- lock (this)
- {
- Status status = GDIPlus.GdipCreateStringFormat (flags, GDIPlus.LANG_NEUTRAL, out nativeStrFmt);
- GDIPlus.CheckStatus (status);
- }
+ Status status = GDIPlus.GdipCreateStringFormat (flags, GDIPlus.LANG_NEUTRAL, out nativeStrFmt);
+ GDIPlus.CheckStatus (status);
}
public StringAlignment Alignment {
public static StringFormat GenericDefault {
get {
- lock (typeof (StringFormat))
- {
- IntPtr ptr;
+ IntPtr ptr;
- Status status = GDIPlus.GdipStringFormatGetGenericDefault (out ptr);
- GDIPlus.CheckStatus (status);
+ Status status = GDIPlus.GdipStringFormatGetGenericDefault (out ptr);
+ GDIPlus.CheckStatus (status);
- return new StringFormat (ptr);
- }
+ return new StringFormat (ptr);
+
}
}
public static StringFormat GenericTypographic {
get {
- lock (typeof (StringFormat))
- {
- IntPtr ptr;
+ IntPtr ptr;
- Status status = GDIPlus.GdipStringFormatGetGenericTypographic (out ptr);
- GDIPlus.CheckStatus (status);
+ Status status = GDIPlus.GdipStringFormatGetGenericTypographic (out ptr);
+ GDIPlus.CheckStatus (status);
- return new StringFormat (ptr);
- }
+ return new StringFormat (ptr);
}
}
public void SetMeasurableCharacterRanges (CharacterRange [] range)
- {
- CharRanges=(CharacterRange [])range.Clone();
+ {
+ Status status = GDIPlus.GdipSetStringFormatMeasurableCharacterRanges (nativeStrFmt,
+ range.Length, range);
+
+ GDIPlus.CheckStatus (status);
}
-
- internal CharacterRange [] GetCharRanges
+
+ internal int GetMeasurableCharacterRangeCount ()
{
- get {
- return(CharRanges);
- }
- }
-
+ int cnt;
+ Status status = GDIPlus.GdipGetStringFormatMeasurableCharacterRangeCount (nativeStrFmt, out cnt);
+
+ GDIPlus.CheckStatus (status);
+ return cnt;
+ }
+
public object Clone()
{
- lock (this)
- {
- IntPtr native;
+ IntPtr native;
- Status status = GDIPlus.GdipCloneStringFormat (nativeStrFmt, out native);
- GDIPlus.CheckStatus (status);
+ Status status = GDIPlus.GdipCloneStringFormat (nativeStrFmt, out native);
+ GDIPlus.CheckStatus (status);
- return new StringFormat (native);
- }
+ return new StringFormat (native);
}
public override string ToString()