using System; using System.Xml; using System.IO; using System.Xml.XPath; using System.Xml.Schema; using System.Collections.Generic; //using System; namespace AmicEditor { public class Pictogram { /* * Representa un Pictograma, amb la informació sobre fons, tipus de lletra i llista d'imatges * * */ public string pictname {get;set;} public string lang {get;set;} public Gdk.Color background {get;set;} public List images{get;set;} public string caption{get;set;} public string fontface{get;set;} public string fontsize{get;set;} public string typeface{get;set;} public Gdk.Color fontcolor {get;set;} public string align {get;set;} // top or bottom public string actionSpeech {get;set;} public string actionSound {get;set;} public string actionParent {get;set;} // O tipus grid public string actionChild {get;set;} // O tipus grid public Pictogram () { /* * Crea un nou pictograma buit * */ pictname=""; lang="es_ES"; background=new Gdk.Color(255,255,255); caption=""; fontface="Sans"; fontsize="10"; typeface="Regular"; fontcolor =new Gdk.Color(0,0,0); actionSpeech =""; actionSound =""; actionParent =""; actionChild =""; align="bottom"; this.images=new List(); } public bool ExistsImage(PictImage _img){ /* * Indica si es conté una imatge a la llista * */ foreach(PictImage img in images) //if (img.theme==_img.theme) return true; if (img.theme==_img.theme&&img.source==_img.source) return true; return false; } public void Add(PictImage _imatge){ /* * Afig una imatge al pictograma (tema-imatge) * * */ PictImage imatge=new PictImage(); imatge.image=_imatge.image; imatge.source=_imatge.source; imatge.theme=_imatge.theme; //Console.WriteLine(">>>>>> "+imatge.source); //Console.WriteLine(">>>>>> "+imatge.theme); //if(ExistsImage(imatge)){ // Console.WriteLine("JA EXISTEIX!!!"); //}else { // Si no existia, l'afegim. this.images.Add(imatge); Console.WriteLine("Afisc "+imatge.source+" al tema "+imatge.theme ); //} Console.WriteLine("Hi ha: "+this.images.Count+" pictogrames!"); } public string getImageFromTheme(string _theme){ /* * Retorna el source de la imatge del pictograma que es correspon al tema indicat * */ foreach(PictImage pic in images){ if(pic.theme==_theme) return pic.source; } return null; // No troba informació per al tema } public string setImageTheme(string _file, string _theme){ /* * Estableix la imatge corresponent a un tema concret * * */ foreach(PictImage pic in images){ if(pic.theme==_theme) { pic.source=_file; return pic.source; } } // Si arriba aci, no ha trobat el tema en les imatges, // Caldrà crear-lo de nou PictImage nou=new PictImage(); nou.image=null; // De moment açò no s'usa... if (_file!="") // Si no hi ha tema triat, però si arxiu, estem creant un nou pictograma! nou.source=_file; else nou.source="notfound.png"; nou.theme=_theme; this.images.Add(nou); return nou.source; } public Pictogram Copy(){ /* * Retorna un pictograma que és una còpia de l'objecte actual * */ Pictogram nou=new Pictogram(); nou.pictname=this.pictname; nou.lang=this.lang; nou.background=this.background; nou.images=new List(); foreach(PictImage pic in this.images){ nou.Add(pic); } nou.caption=this.caption; nou.fontface=this.fontface; nou.fontsize=this.fontsize; nou.typeface=this.typeface; nou.fontcolor=this.fontcolor; nou.actionSpeech=this.actionSpeech; nou.actionSound=this.actionSound; nou.actionParent=this.actionParent; nou.actionChild=this.actionChild; nou.align=this.align; return nou; } } }