Ejemplo n.º 1
0
 internal void DeleteMap(Map map, bool sendChangedEvent = true)
 {
     if (maps.Remove(map) && sendChangedEvent)
     {
         StrutureTreeChanged?.Invoke(this, null);
     }
 }
Ejemplo n.º 2
0
        /* private void RemoveUselessCharset()
         * {
         *
         *   List<CharacterSet> usedCharSets = new List<CharacterSet>();
         *   bool uselessCharset = false;
         *   for (int i = 0; i < CharSets.Count; i++)
         *   {
         *       bool used = false;
         *       for (int j = 0; j < Maps.Count && !used; j++)
         *       {
         *           used = Maps[j].FontID == CharSets[i].UID;
         *       }
         *
         *       if (!used && !CharSets[i].KeepEvenUseless)
         *       {
         *           uselessCharset = true;
         *       } else
         *       {
         *           usedCharSets.Add(CharSets[i]);
         *
         *       }
         *   }
         *
         *   if (uselessCharset)
         *   {
         *       IsDirty = true;
         *       this.charSets = usedCharSets;
         *   }
         * }*/

        public void AddMap(Map newMap, bool sendChangedEvent = true)
        {
            maps.Add(newMap);
            // newMap.OnDLISChanged += (s, e) => { OnDLISChanged?.Invoke(s, e); };
            if (sendChangedEvent)
            {
                StrutureTreeChanged?.Invoke(this, null);
            }
        }
Ejemplo n.º 3
0
 public void AddInclude(String include, bool sendChangedEvent = true)
 {
     if (!includes.Contains(include))
     {
         includes.Add(include);
         IsDirty = true;
         if (sendChangedEvent)
         {
             StrutureTreeChanged?.Invoke(this, null);
         }
     }
 }
Ejemplo n.º 4
0
        public void AddCharSet(CharacterSet newCharSet, bool sendChangedEvent = true)
        {
            if (!charSets.Contains(newCharSet))
            {
                charSets.Add(newCharSet);

                IsDirty = true;

                if (sendChangedEvent)
                {
                    StrutureTreeChanged?.Invoke(this, null);
                }
            }
        }
Ejemplo n.º 5
0
        private void Clear(bool sendChangedEvent = true)
        {
            IsDirty = false;
            IsNew   = true;

            charSets.Clear();
            includes.Clear();
            maps.Clear();

            Path = null;

            if (sendChangedEvent)
            {
                StrutureTreeChanged?.Invoke(this, null);
            }
        }
Ejemplo n.º 6
0
        public void Load(String fileName)
        {
            Clear(false);

            Path = fileName;

            XElement xml = XElement.Load(fileName);

            foreach (XElement node in xml.Elements("font"))
            {
                AddCharSet(CharacterSet.Load(this, node), false);
            }

            foreach (XElement node in xml.Elements("include"))
            {
                AddInclude(node.Value, false);
            }

            foreach (XElement node in xml.Elements("map"))
            {
                Map loadedMap = MapDeserializer.Load(this, node);

                AddMap(loadedMap, false);

                CharacterSet characterSet = CharSets.FirstOrDefault(set => set.UID == loadedMap.FontID);
                if (characterSet == null)
                {
                    MessageBox.Show("Unknown font: " + loadedMap.FontID);
                }
            }

            IsNew   = false;
            IsDirty = false;

            StrutureTreeChanged?.Invoke(this, null);
        }