using System;
using System.Diagnostics;
using System.Drawing;
using System.Runtime.Serialization;
using System.Xml.Schema;
using System.Xml.Serialization;
using ToolBox.Formatting;
namespace Netron.Diagramming.Core {
[Serializable]
public partial class TextStyle :
ISerializable,
IXmlSerializable,
IDeserializationCallback {
#region Deserialization constructor
// ------------------------------------------------------------------
///
/// Deserialization constructor
///
/// The info.
/// The context.
// ------------------------------------------------------------------
protected TextStyle(
SerializationInfo info,
StreamingContext context) {
if (Tracing.BinaryDeserializationSwitch.Enabled) {
Trace.WriteLine("Deserializing the fields of 'TextStyle'.");
}
double version = info.GetDouble("TextStyleVersion");
mDecimalPlaces = info.GetInt32("DecimalPlaces");
mTextFormat = (TextFormat)info.GetValue(
"TextFormat",
typeof(TextFormat));
mFont = (Font)info.GetValue(
"Font",
typeof(Font));
mFontColor = (Color)info.GetValue(
"FontColor",
typeof(Color));
mHorizontalAlignment = (StringAlignment)info.GetValue(
"HorizontalAlignment",
typeof(StringAlignment));
mVerticalAlignment = (StringAlignment)info.GetValue(
"VerticalAlignment",
typeof(StringAlignment));
}
#endregion
#region Serialization events
/*
[OnSerializing]
void OnSerializing(StreamingContext context)
{
Trace.WriteLine("Starting to serializing the 'PenStyle' class...");
}
[OnSerialized]
void OnSerialized(StreamingContext context)
{
Trace.WriteLine("...serialization of 'PenStyle' finished");
}
*/
#endregion
#region Deserialization events
/*
[OnDeserializing]
void OnDeserializing(StreamingContext context)
{
Trace.Indent();
Trace.WriteLine("Starting deserializing the 'PenStyle' class...");
}
[OnDeserialized]
void OnDeserialized(StreamingContext context)
{
Trace.WriteLine("...deserialization of 'PenStyle' finished");
Trace.Unindent();
}
*/
#endregion
#region Serialization
///
/// Populates a with the data needed to serialize the target object.
///
/// The to populate with data.
/// The destination (see ) for this serialization.
/// The caller does not have the required permission.
public virtual void GetObjectData(SerializationInfo info, StreamingContext context) {
if (Tracing.BinarySerializationSwitch.Enabled)
Trace.WriteLine("Serializing the fields of 'PenStyle'.");
info.AddValue("TextStyleVersion", textStyleVersion);
info.AddValue("DecimalPlaces", this.mDecimalPlaces, typeof(int));
info.AddValue("TextFormat", this.mTextFormat, typeof(TextFormat));
// Note: we do not have to serialize the font style (i.e. IsBold,
// IsUnderline, etc.) because that's included in the font.
info.AddValue("Font", this.mFont, typeof(Font));
info.AddValue("FontColor", this.mFontColor, typeof(Color));
info.AddValue(
"HorizontalAlignment",
this.mHorizontalAlignment,
typeof(StringAlignment));
info.AddValue(
"VerticalAlignment",
this.mVerticalAlignment,
typeof(StringAlignment));
}
#endregion
#region Xml serialization
// ------------------------------------------------------------------
///
/// This property is reserved, apply the
///
/// to the class instead.
///
///
/// An that describes
/// the XML representation of the object that is produced by the
/// method and consumed by the
/// method.
///
// ------------------------------------------------------------------
public virtual XmlSchema GetSchema() {
throw new NotImplementedException(
"The method or operation is not implemented.");
}
// ------------------------------------------------------------------
///
/// Generates an object from its XML representation.
///
/// The
/// stream from which the object is deserialized.
// ------------------------------------------------------------------
public virtual void ReadXml(System.Xml.XmlReader reader) {
throw new NotImplementedException(
"The method or operation is not implemented.");
}
// ------------------------------------------------------------------
///
/// Converts an object into its XML representation.
///
/// The
/// stream to which the object is serialized.
// ------------------------------------------------------------------
public virtual void WriteXml(System.Xml.XmlWriter writer) {
throw new NotImplementedException(
"The method or operation is not implemented.");
}
#endregion
// ------------------------------------------------------------------
///
/// Runs when the entire object graph has been deserialized.
///
/// The object that initiated the callback. The
/// functionality for this parameter is not currently implemented.
///
// ------------------------------------------------------------------
public virtual void OnDeserialization(object sender) {
if (Tracing.BinaryDeserializationSwitch.Enabled) {
Trace.WriteLine(
"IDeserializationCallback of 'PenStyle' called.");
}
}
}
}