fixes to font inheritance
This commit is contained in:
parent
640d2f7313
commit
07fd6f3a4e
@ -311,11 +311,17 @@ public class VE_Font
|
||||
}
|
||||
public VE_Font(XmlNode fxml)
|
||||
{
|
||||
XmlNode tmp = fxml.SelectSingleNode("Family");
|
||||
// The "Family", "Size", and "Style" are attributes to the "Font" node
|
||||
// We were trying to get this information by fxml.SelectSingleNode("Family")
|
||||
// but this would always return a NULL because this items are Attributes not Nodes.
|
||||
// thus the FontFamily, FontSize, and FontStyle was never set
|
||||
|
||||
XmlAttributeCollection ac = fxml.Attributes; // get the attributes from the passed in Font node
|
||||
XmlNode tmp = ac.GetNamedItem("Family"); // get the Family attribute from the Font node
|
||||
if (tmp!=null)FontFamily = tmp.InnerText;
|
||||
tmp = fxml.SelectSingleNode("Size");
|
||||
tmp = ac.GetNamedItem("Size"); // get the Size attribute from the Font node
|
||||
if (tmp != null) FontSize = tmp.InnerText;
|
||||
tmp = fxml.SelectSingleNode("Style");
|
||||
tmp = ac.GetNamedItem("Style"); // get the Style attribute from the Font node
|
||||
if (tmp != null) FontStyle = tmp.InnerText;
|
||||
}
|
||||
private string _FontFamily = null;
|
||||
@ -1346,25 +1352,49 @@ namespace fmtxml
|
||||
private bool GetPlantBaseDefaultFonts()
|
||||
{
|
||||
// read the xml files for the base & plant to get the default fonts and
|
||||
// make a VE_font for each.
|
||||
// make a VE_font for each. If we are processing a sub-format (A.K.A. User Format),
|
||||
// then the "base" format is the parent plant format (ex. the "base" format for
|
||||
// NSP_00ALL.xml is NSP_ALL.xml)
|
||||
try
|
||||
{
|
||||
bool getFontFromBase = true;
|
||||
XmlDocument xdoc = new XmlDocument();
|
||||
xdoc.Load("fmt_xml\\basef.xml");
|
||||
XmlNode xfont = xdoc.SelectSingleNode("FormatData/Font");
|
||||
DefBaseFont = new VE_Font(xfont);
|
||||
|
||||
XmlNode xfont;
|
||||
string lfmtName = fmtName;
|
||||
// for subformats, make the name FMT_00 where FMT is format name & 00 is number
|
||||
string parentOfSub = "";
|
||||
// For sub-formats, make the name FMT_00 where FMT is format name & 00 is number
|
||||
// from original name. This will allow the data load to know it's a sub.
|
||||
int indx = fmtName.IndexOf('.');
|
||||
if (indx > 0)
|
||||
if (indx > 0) // we are working with a sub-format
|
||||
{
|
||||
parentOfSub = fmtName.Substring(0, fmtName.Length - 4); // name of sub format's parent
|
||||
lfmtName = fmtName.Substring(0, fmtName.Length - 4) + "_" + fmtName.Substring(fmtName.Length - 2, 2);
|
||||
getFontFromBase = false; // get the font from sub-format parent format
|
||||
}
|
||||
|
||||
string parentName = "fmt_xml\\" + parentOfSub + "f.xml";
|
||||
// if we have a valid parent format then use it to find the default font
|
||||
if (!getFontFromBase && File.Exists(parentName))
|
||||
{
|
||||
xdoc.Load(parentName);
|
||||
xfont = xdoc.SelectSingleNode("FormatData/Font");
|
||||
if (xfont != null)
|
||||
DefBaseFont = new VE_Font(xfont);
|
||||
else
|
||||
getFontFromBase = true; // font not found, use the font from base.xml
|
||||
}
|
||||
if (getFontFromBase)
|
||||
{
|
||||
xdoc.Load("fmt_xml\\basef.xml");
|
||||
xfont = xdoc.SelectSingleNode("FormatData/Font");
|
||||
DefBaseFont = new VE_Font(xfont);
|
||||
}
|
||||
// Get the font from the current plant format (or sub-format)
|
||||
string fName = "fmt_xml\\" + lfmtName + "f.xml";
|
||||
if (!File.Exists(fName)) return false;
|
||||
xdoc.Load(fName);
|
||||
xfont = xdoc.SelectSingleNode("FormatData/Font");
|
||||
if (xfont!=null)DefPlantFont = new VE_Font(xfont);
|
||||
if (xfont != null) DefPlantFont = new VE_Font(xfont);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
|
Loading…
x
Reference in New Issue
Block a user