public override void ReadXml(System.Xml.XmlReader reader) { base.ReadXml(reader); GridColor = XmlReadWrite.readColor(reader); GridThickness = reader.ReadElementContentAsFloat(); SubGridColor = XmlReadWrite.readColor(reader); SubGridThickness = reader.ReadElementContentAsFloat(); mGridSizeInStud = reader.ReadElementContentAsInt(); mSubDivisionNumber = Math.Max(reader.ReadElementContentAsInt(), 2); if (reader.Name.Equals("DisplayGrid")) { mDisplayGrid = reader.ReadElementContentAsBoolean(); } mDisplaySubGrid = reader.ReadElementContentAsBoolean(); mDisplayCellIndex = reader.ReadElementContentAsBoolean(); mCellIndexFont = XmlReadWrite.readFont(reader); CellIndexColor = XmlReadWrite.readColor(reader); mCellIndexColumnType = (CellIndexType)reader.ReadElementContentAsInt(); mCellIndexRowType = (CellIndexType)reader.ReadElementContentAsInt(); mCellIndexCorner = XmlReadWrite.readPoint(reader); // step the progress bar for the grid MainForm.Instance.stepProgressBar(); }
/// <summary> /// copy only the option parameters from the specified layer /// </summary> /// <param name="layerToCopy">the model to copy from</param> public override void CopyOptionsFrom(Layer layerToCopy) { // and try to cast in grid layer LayerGrid gridLayer = layerToCopy as LayerGrid; if (gridLayer != null) { mGridLinePen = gridLayer.mGridLinePen.Clone() as Pen; mSubGridLinePen = gridLayer.mSubGridLinePen.Clone() as Pen; mCellIndexFont = gridLayer.mCellIndexFont.Clone() as Font; mCellIndexBrush = gridLayer.mCellIndexBrush; mGridSizeInStud = gridLayer.mGridSizeInStud; mSubDivisionNumber = gridLayer.mSubDivisionNumber; mDisplayGrid = gridLayer.mDisplayGrid; mDisplaySubGrid = gridLayer.mDisplaySubGrid; mDisplayCellIndex = gridLayer.mDisplayCellIndex; mCellIndexColumnType = gridLayer.mCellIndexColumnType; mCellIndexRowType = gridLayer.mCellIndexRowType; mCellIndexCorner = gridLayer.mCellIndexCorner; } // call the base method after such as the pen and brush transparency can be correctly set base.CopyOptionsFrom(layerToCopy); }
public override void ReadXml(System.Xml.XmlReader reader) { base.ReadXml(reader); GridColor = XmlReadWrite.readColor(reader); GridThickness = reader.ReadElementContentAsFloat(); SubGridColor = XmlReadWrite.readColor(reader); SubGridThickness = reader.ReadElementContentAsFloat(); mGridSizeInStud = reader.ReadElementContentAsInt(); mSubDivisionNumber = Math.Max(reader.ReadElementContentAsInt(), 2); if (reader.Name.Equals("DisplayGrid")) mDisplayGrid = reader.ReadElementContentAsBoolean(); mDisplaySubGrid = reader.ReadElementContentAsBoolean(); mDisplayCellIndex = reader.ReadElementContentAsBoolean(); mCellIndexFont = XmlReadWrite.readFont(reader); CellIndexColor = XmlReadWrite.readColor(reader); mCellIndexColumnType = (CellIndexType)reader.ReadElementContentAsInt(); mCellIndexRowType = (CellIndexType)reader.ReadElementContentAsInt(); mCellIndexCorner = XmlReadWrite.readPoint(reader); // step the progress bar for the grid MainForm.Instance.stepProgressBar(); }
private string getIndexInString(int index, CellIndexType indexType) { // skip the index 0 if (index == 0) return ""; // return incremented letters or numbers if (indexType == CellIndexType.LETTERS) { string result = ""; // just compute a number in base 26 (26 letters in the alphabet) const string numbase = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; int rest = index; int modulo; do { modulo = (rest - 1) % 26; result = numbase[modulo] + result; if ((rest % 26) == 0) { rest /= 26; rest--; } else { rest /= 26; } } while (rest > 0); return result; } else { return index.ToString(); } }