public nCharacter testCharacter() { nCharacter nchar = new nCharacter(); nchar._Image = @"C:\Users\Min0\Desktop\testFont\0x0040.png"; nchar._Name = "0x0040"; nchar.guessValues(true, true, true, true); return nchar; }
/* * Original constructor took two variables as a parameters to initialize * font and character objects; * For testing purposes and to prevent keep opening FontTool.Window constructor * was changed and now its uses dummy objects; */ public Editor(nFont font, nCharacter ch) { //} //public Editor() //{ InitializeComponent(); //_Font = testFont(); //_Char = testCharacter(); _Font = font; _Char = ch; propertyGrid1.SelectedObject = _Font; gfx = this.pictureBox1.CreateGraphics(); timer1.Enabled = true; timer1.Interval = 100; img = Image.FromFile(_Char._Image); initDefaultLines(); updatePreview(); imgRect = new RectangleF(imageLocation.X, imageLocation.Y, img.Width, img.Height); this.MouseWheel +=new MouseEventHandler(Editor_MouseWheel); }
public void replaceCharacter(string hex, nCharacter newChar) { try { _Characters[_Characters.IndexOf(getCharacter(hex))] = newChar; } catch (Exception ex) { MessageBox.Show("_Font.replaceCharacter() \n" + ex.Message); } }
/* * Methods name are self-explanationary and so there is no need * to write more details about it. * What worth mentioning that methods are using each other. * I.E. to updateCharacter we first will use getCharacter; * Every method is droped in between try\catch statement; * Catch statement returns MessageBox with text stating Class.Method.ErrorMessage; */ public nCharacter createCharacter(string image) { try { nCharacter c = new nCharacter(); c._Image = image; c.guessValues(true, true, true, true); return c; } catch (Exception ex) { MessageBox.Show("_Font.createCharacter() \n" + ex.Message); } return null; }
public void replaceCharacter(int index, nCharacter newChar) { try { _Characters[index] = newChar; } catch (Exception ex) { MessageBox.Show("_Font.replaceCharacter() \n" + ex.Message); } }
public void addCharacter(string image) { try { if (getCharacter(Path.GetFileNameWithoutExtension(image)) == null) { nCharacter c = new nCharacter(); c._Image = image; c.guessValues(true, true, true, true); _Characters.Add(c); Helper.sortCharacterList(_Characters); } else MessageBox.Show("_Font.addCharacter() \n" + "Character with this 'HEX' value already exist"); } catch (Exception ex) { MessageBox.Show("_Font.addCharacter() \n"+ex.Message); } }
/* * Almost identical method to the top one. * The only difference is that this one makes it easier for testing since it takes string and * loads it right away instead of waiting for me to openFileDialog; */ private nFont loadFontXML(string uri) { nFont font = new nFont(); XDocument xdoc = XDocument.Load(uri); string path = uri; oldDoc = xdoc; oldDocPath = path; font._Name = xdoc.Element("Font").Attribute("Name").Value; font._Space = float.Parse(xdoc.Element("Font").Attribute("Space").Value); font._Kerning = float.Parse(xdoc.Element("Font").Attribute("Kerning").Value); font._Leading = float.Parse(xdoc.Element("Font").Attribute("Leading").Value); font._xHeight = float.Parse(xdoc.Element("Font").Attribute("xHeight").Value); font._capHeight = float.Parse(xdoc.Element("Font").Attribute("capHeight").Value); font._ascenderHeight = float.Parse(xdoc.Element("Font").Attribute("ascenderHeight").Value); font._descenderHeight = float.Parse(xdoc.Element("Font").Attribute("descenderHeight").Value); foreach (XElement child in xdoc.Element("Font").Elements()) { nCharacter c = new nCharacter(child.Attribute("unicode").Value, float.Parse(child.Attribute("anchorPointX").Value), float.Parse(child.Attribute("anchorPointY").Value), float.Parse(child.Attribute("width").Value)); c._Image = Path.GetDirectoryName(path) + @"\" + c._Name + ".Png"; //taking xml file directory and adding to it file names; c.guessValues(false, true, true, false); //c.guessValues(true,true,true,true); font._Characters.Add(c); } newFont = font; refreshList(); newFont.guessFontValues(); return font; }
/* * Similar to saveXML method; * Using also Linq;? * Returns created Font object and also initializes it as the newFont * which is used as the source of info for all the windows; */ private nFont loadFontXML() { nFont font = new nFont(); using (OpenFileDialog ofd = new OpenFileDialog()) { ofd.Title = "Open XML file"; ofd.Filter = "Xml Files (.xml)|*.xml|All Files (*.*)|*.*"; ofd.FilterIndex = 0; if (ofd.ShowDialog() == System.Windows.Forms.DialogResult.OK) { XDocument xdoc = XDocument.Load(ofd.FileName); oldDoc = xdoc; //for saving later purposes oldDocPath = ofd.FileName; //for saving later purposes font._Name = xdoc.Element("Font").Attribute("Name").Value; font._Space = float.Parse(xdoc.Element("Font").Attribute("Space").Value); font._Kerning = float.Parse(xdoc.Element("Font").Attribute("Kerning").Value); font._Leading = float.Parse(xdoc.Element("Font").Attribute("Leading").Value); font._xHeight = float.Parse(xdoc.Element("Font").Attribute("xHeight").Value); font._capHeight = float.Parse(xdoc.Element("Font").Attribute("capHeight").Value); font._ascenderHeight = float.Parse(xdoc.Element("Font").Attribute("ascenderHeight").Value); font._descenderHeight = float.Parse(xdoc.Element("Font").Attribute("descenderHeight").Value); foreach (XElement child in xdoc.Element("Font").Elements()) { nCharacter c = new nCharacter(child.Attribute("unicode").Value, float.Parse(child.Attribute("anchorPointX").Value), float.Parse(child.Attribute("anchorPointY").Value), float.Parse(child.Attribute("width").Value)); c._Image = Path.GetDirectoryName(ofd.FileName) + @"\" + c._Name + ".Png"; //taking xml file directory and adding to it file names; c.guessValues(false, true, true, false); //c.guessValues(true,true,true,true); font._Characters.Add(c); } newFont = font; refreshList(); newFont.guessFontValues(); } } return font; }
private void editCharacter(nFont font, nCharacter character) { using (Editor gc = new Editor(font, character)) { DialogResult result = gc.ShowDialog(); if (result == DialogResult.Cancel) this.InitViews(); } }
/* * Opens fileDialog for selecting images; * creates new empty Font; * Fills font with selected images */ private void createFontFromImg() { using (OpenFileDialog OFD = new OpenFileDialog()) { OFD.Multiselect = true; OFD.Filter = "JPEG .jpeg|*.jpeg;*.jpg|PNG .png|*.png|All files (*.*)|*.*"; OFD.FilterIndex = 2; OFD.Title = "Select image files"; if (OFD.ShowDialog() != System.Windows.Forms.DialogResult.OK) { return; } newFont = new nFont(); foreach (string link in OFD.FileNames) { nCharacter _char = new nCharacter(); _char._Image = link; _char._Name = Path.GetFileNameWithoutExtension(link); _char.guessValues(true, true, true, true); newFont._Characters.Add(_char); } refreshList(); newFont.guessFontValues(); createFontXML(); } }