Esempio n. 1
0
        /// <summary>
        /// génération des commandes pour le navigateur
        /// </summary>
        /// <param name="pvs"></param>
        /// <param name="html"></param>
        /// <returns></returns>
        public string GenererHtml(ListeParametresEnvoyes pvs,HtmlGlobal html,int codePage,bool ignorerCorrectifCausePadding)
        {
            string ret = "";
            string classes = "";
            int offsetX=0, offsetY=0;

            // version ou on crée une commande par propriété
            ///*
            UnParametreEnvoye pv;
            XHtmlBorder wbordure= null;
            XHtmlPadding wpadding = null;

            if (this.idBordure.HasValue)
                wbordure = html.App.BorduresCss.FirstOrDefault(e => e.Id == this.idBordure);

            if (this.idPadding.HasValue)
                wpadding = html.App.PaddingCss.FirstOrDefault(e => e.Id == this.idPadding);

            pv = new UnParametreEnvoye();
            pv.commande = "css-position";
            pv.valeur = "absolute";
            pvs.commandes.Add(pv);

            // avant tout les positionnements
            if (this.AttachementBas || this.AttachementDroite || this.LargeurVariable || this.HauteurVariable)
            {
                pv = new UnParametreEnvoye();
                pv.commande = "attachements";
                pv.valeur = (AttachementBas ? "1" : "0") + "," +
                                (AttachementDroite ? "1" : "0") + "," +
                                (HauteurVariable ? "1" : "0") + "," +
                                (LargeurVariable ? "1" : "0");

                pvs.commandes.Add(pv);
            }

            // A FINALISER !!!!!!!!!!!!!!!!
            //
            // En HTML les bordures et paddings sont à l'extérieur de la boite xwin
            // en wpf c'est l'inverse, la boite de xwin contient tout

            // HAUTEUR
            //------------------------------------
            if (this.OriginalHeight.HasValue)
            {
                double? val = this.OriginalHeight;
                pv = new UnParametreEnvoye();
                pv.commande = "css-hauteur";
                //pv.valeur = this.OriginalHeight.ToString();
                pvs.commandes.Add(pv);

                //----------------------------------------------------------------
                // - traitement padding et border
                if (wbordure != null && wbordure.Vide == false && wbordure.Epaisseur != 0)
                {
                    val -= (wbordure.Epaisseur * 2);
                    offsetX += (int)wbordure.Epaisseur;
                    offsetY += (int)wbordure.Epaisseur;
                }

                if (ignorerCorrectifCausePadding == false)
                {
                    if (wpadding != null && wpadding.Vide == false && wpadding.Vertical != 0)
                    {
                        val -= (wpadding.Vertical * 2);
                        offsetY += (int)wpadding.Vertical;
                    }
                }
                //----------------------------------------------------------------

                pv.valeur = val.ToString();
                // modifie également line-heigth coté navigazteur
            }

            // LARGEUR
            //------------------------------------
            if (this.OriginalWidth.HasValue)
            {
                double? val = this.OriginalWidth;

                pv = new UnParametreEnvoye();
                pv.commande = "css-largeur";
                pv.valeur = this.OriginalWidth.ToString();
                pvs.commandes.Add(pv);
                //--------------------------------------------------------------------------------
                if (wbordure != null && wbordure.Vide == false && wbordure.Epaisseur != 0)
                    val -= (wbordure.Epaisseur * 2);

                if (ignorerCorrectifCausePadding == false)
                {
                    if (wpadding != null && wpadding.Vide == false && wpadding.Horizontal != 0)
                        val -= (wpadding.Horizontal * 2);
                }
                //--------------------------------------------------------------------------------
                pv.valeur = val.ToString();

            }

            // POSITION XY
            //------------------------------------
            if (this.Top.HasValue || this.Left.HasValue)
            {
                UnParametreEnvoyeAvecCompl pvc = new UnParametreEnvoyeAvecCompl();
                pvc.commande = "css-xy";
                offsetX = 0;
                offsetY = 0;

                pvc.valeur = (this.Left + offsetX)  .ToString();
                pvc.compl  = (this.Top  + offsetY)  .ToString();
                pvs.commandes.Add(pvc);
            }

            // ANGLE
            //--------------------------------------
            if (this.angle.HasValue)
            {
                UnParametreEnvoye pvc = new UnParametreEnvoye();
                pvc.commande = "css-angle";

                if (angle == 0)
                    pvc.valeur = this.angle.ToString() + "deg";
                else
                {
                    pvc.valeur = (this.angle * -1).ToString() + "deg";
                }
                pvs.commandes.Add(pvc);
            }

            // POLICE
            //--------------------------------------
            if (idPolice.HasValue)
            {
                XHtmlFont  i;
                i = html.App.PolicesCss.Find(e => e.Id == idPolice);
                if (i != null)
                {
                    // classes += XHtmlFont.PrefixeCss + idPolice.ToString() + " ";
                    UnParametreEnvoye pvc = new UnParametreEnvoye();
                    pvc.commande = "css-police";
                    if (i.Vide)
                        pvc.valeur = "xxxx";
                    else
                        pvc.valeur = XHtmlFont.PrefixeCss + idPolice.ToString();
                    pvs.commandes.Add(pvc);
                }
            }

            // FOND
            //------------------------------------------
            if (idFond.HasValue)
            {
                UnParametreEnvoye pvc = new UnParametreEnvoye();
                pvc.valeur = html.App.GenererUneValeurDeCouleur(idFond);
                if (pvc.valeur != null)
                {
                    pvc.commande = "css-fond";
                    pvs.commandes.Add(pvc);
                }

                //if (i != null && i.Vide == false && i.Transparente == false)
                //{
                //   classes += XHtmlColor.PrefixeCssFond + idFond.ToString() + " ";
                //}
            }

            // BORDURE
            //--------------------------------------------
            if (idBordure.HasValue)
            {
                XHtmlBorder i;
                i = html.App.BorduresCss.Find(e => e.Id == idBordure);
                if (i != null)
                {
                    UnParametreEnvoye pvc = new UnParametreEnvoye();
                    pvc.commande = "css-bordure";
                    if (i.Vide)
                        pvc.valeur = "xxxx";
                    else
                        pvc.valeur = XHtmlBorder.PrefixeCss + idBordure.ToString();
                    pvs.commandes.Add(pvc);

                }
            //				if (i != null && i.Vide == false)
            //					classes += XHtmlBorder.PrefixeCss + idBordure.ToString() + " ";
            }

            // PADDING
            //----------------------------------------------
            if (idPadding.HasValue)
            {
                XHtmlPadding i;
                i = html.App.PaddingCss.Find(e => e.Id == idPadding);
                if (i != null)
                {
                    UnParametreEnvoye pvc = new UnParametreEnvoye();
                    pvc.commande = "css-padding";
                    if (i.Vide)
                        pvc.valeur = "xxxx";
                    else
                        pvc.valeur = XHtmlPadding.PrefixeCss + idPadding.ToString() + " ";
                    pvs.commandes.Add(pvc);
                    //	classes += XHtmlPadding.PrefixeCss + idPadding.ToString() + " ";
                }
            }

            if (codePage != 0)
            {
                pv = new UnParametreEnvoye();
                pv.commande = "code-page";
                pv.valeur = codePage.ToString();
                pvs.commandes.Add(pv);
            }

            // INFO BULLE
            //--------------------------------------------------
            if (this.frameworkElement.ToolTip != null)
            {
                pv = new UnParametreEnvoye();
                pv.commande = "info-bulle";
                pv.valeur = this.frameworkElement.ToolTip;
                pvs.commandes.Add(pv);
            }

            // Visibilite
            //---------------------------------------------------
            if (Visibilite.HasValue)
            {
                pv = new UnParametreEnvoye();
                pv.commande = "visibilite";
                pv.valeur = Visibilite.ToString();
                pvs.commandes.Add(pv);
            }

            //*/

            ///////////////////////////////////////////////////////
            //////////////////////////////////////// MORCEAU qui génére tout le code HTML : beaucoup plus rapide a l'exec
            /*
                    ret = "style='";
                    // ret += "font-size:50pt;";

                    ret += "position:absolute;";
                    ret += "top:" + this.Top.ToString() + "px;";
                    ret += "left:" + this.Left.ToString() + "px;";
                    ret += "width:" + this.OriginalWidth.ToString() + "px;";
                    ret += "height:" + this.OriginalHeight.ToString() + "px;";

                    if (this.angle.HasValue)
                    {
                        ret += "transform:rotate(" + angle.ToString() + "deg)";
                    }

                    ret += "'";
                    */

            if (classes.Length > 0)
            {
                UnParametreEnvoye pvc = new UnParametreEnvoye();
                pvc.commande = "css-police-fond-padding";
                pvc.valeur = classes;
                pvs.commandes.Add(pvc);
            }
            return ret;
            //////////////////////////////////////////////
            //			return ret;
        }
 public void Ajouter(string commande, string valeur, string compl)
 {
     UnParametreEnvoyeAvecCompl p = new UnParametreEnvoyeAvecCompl();
     p.valeur = valeur;
     p.commande = commande;
     p.compl = compl;
     this.commandes.Add(p);
 }