示例#1
0
        //---------------------------------------------------------------------
        public C2iExpression GetFormuleCouleur(int r, int g, int b)
        {
            C2iExpressionColor co = new C2iExpressionColor();

            co.Parametres.Add(new C2iExpressionConstante(r));
            co.Parametres.Add(new C2iExpressionConstante(g));
            co.Parametres.Add(new C2iExpressionConstante(b));
            return(co);
        }
示例#2
0
 private void UpdateColorFromFormule()
 {
     if (FormuleCouleur != null)
     {
         C2iExpressionColor col = FormuleCouleur as C2iExpressionColor;
         if (col != null)
         {
             List <int> valeurs = new List <int>();
             bool       bAllInt = true;
             foreach (C2iExpression param in col.Parametres2i)
             {
                 C2iExpressionConstante cst = param as C2iExpressionConstante;
                 if (cst == null)
                 {
                     bAllInt = false;
                     break;
                 }
                 try
                 {
                     valeurs.Add(Convert.ToInt32(cst.Valeur));
                 }
                 catch
                 {
                     bAllInt = false;
                     break;
                 }
             }
             if (bAllInt)
             {
                 try
                 {
                     if (valeurs.Count == 3)
                     {
                         m_colorSelect.SelectedColor = Color.FromArgb(valeurs[0], valeurs[1], valeurs[2]);
                     }
                     else
                     {
                         m_colorSelect.SelectedColor = Color.FromArgb(valeurs[0], valeurs[1], valeurs[2], valeurs[3]);
                     }
                 }
                 catch
                 {
                     m_colorSelect.SelectedColor = Color.White;
                 }
             }
         }
         else
         {
             m_colorSelect.SelectedColor = Color.White;
         }
     }
     else
     {
         m_colorSelect.SelectedColor = Color.White;
     }
 }
示例#3
0
        private void m_colorSelect_OnChangeSelectedColor(object sender, EventArgs e)
        {
            m_bCouleurEnSelection = true;
            Color couleur          = m_colorSelect.SelectedColor;
            C2iExpressionColor col = FormuleCouleur as C2iExpressionColor;

            if (FormuleCouleur != null && FormuleCouleur.GetString() != string.Empty && col == null)
            {
                // Ce n'est pas une formule simple de type Color(xxx; yyy; zzz)
                if (CFormAlerte.Afficher(I.T("Replace current Color Formula ?|10001"), EFormAlerteBoutons.OuiNon, EFormAlerteType.Question) == DialogResult.No)
                {
                    UpdateColorFromFormule();
                    return;
                }
            }

            m_txtFormuleCouleur.Formule = GetFormuleCouleur(couleur);
            m_bCouleurEnSelection       = false;
        }
            public override CResultAErreur Serialize(C2iSerializer serializer)
            {
                int            nVersion = GetNumVersion();
                CResultAErreur result   = serializer.TraiteVersion(ref nVersion);

                if (result)
                {
                    result = base.Serialize(serializer);
                }
                if (!result)
                {
                    return(result);
                }
                result = serializer.TraiteObject <C2iExpression>(ref m_couleurFond1);
                if (result)
                {
                    result = serializer.TraiteObject <C2iExpression>(ref m_couleurFond2);
                }
                if (result)
                {
                    result = serializer.TraiteObject <C2iExpression>(ref m_couleurProgress);
                }
                if (result)
                {
                    if (nVersion >= 1)
                    {
                        result = serializer.TraiteObject <C2iExpression>(ref m_couleurTerminee);
                    }
                    else
                    {
                        if (serializer.Mode == ModeSerialisation.Lecture)
                        {
                            C2iExpressionColor c = new C2iExpressionColor();
                            c.Parametres.Add(new C2iExpressionConstante(0));
                            c.Parametres.Add(new C2iExpressionConstante(255));
                            c.Parametres.Add(new C2iExpressionConstante(0));
                            m_couleurTerminee = c;
                        }
                    }
                }

                return(result);
            }
            //------------------------------------------------------------------------------
            protected Color?GetCouleur(IElementDeGantt elt, C2iExpression formule, ref bool bIsConstante)
            {
                bIsConstante = false;
                if (formule == null)
                {
                    return(null);
                }
                C2iExpressionColor col = formule as C2iExpressionColor;

                if (col != null)
                {
                    List <int> valeurs = new List <int>();
                    bool       bAllInt = true;
                    foreach (C2iExpression param in col.Parametres2i)
                    {
                        C2iExpressionConstante cst = param as C2iExpressionConstante;
                        if (cst == null)
                        {
                            bAllInt = false;
                            break;
                        }
                        try{
                            valeurs.Add(Convert.ToInt32(cst.Valeur));
                        }
                        catch {
                            bAllInt = false;
                            break;
                        }
                    }
                    if (bAllInt)
                    {
                        try
                        {
                            bIsConstante = true;
                            if (valeurs.Count == 3)
                            {
                                return(Color.FromArgb(valeurs[0], valeurs[1], valeurs[2]));
                            }
                            else
                            {
                                return(Color.FromArgb(valeurs[0], valeurs[1], valeurs[2], valeurs[3]));
                            }
                        }
                        catch
                        {
                            return(null);
                        }
                    }
                }
                else
                {
                    if (formule != null)
                    {
                        CContexteEvaluationExpression ctx = new CContexteEvaluationExpression(elt);
                        CResultAErreur result             = formule.Eval(ctx);
                        if (result && result.Data is Color)
                        {
                            return((Color)result.Data);
                        }
                    }
                }
                return(null);
            }