Exemple #1
0
        // Direction : settings From Target
        static public void copyProperty_SFT(object rootTarget, object source, string propertySourceName, List <string> path, PropFilter filterAllow)
        {
            System.Reflection.PropertyInfo tinfo = null;
            System.Reflection.PropertyInfo sinfo = null;
            string ttype = "";
            string stype = "";
            object FinalTarget;
            object TerminalSource;

            computePropertyAccess_SFT(rootTarget, source, propertySourceName, path, out tinfo, out sinfo, out ttype, out stype, out FinalTarget, out TerminalSource);

            if (tinfo == null)
            {
                return;          // the property does not exists in the widget
            }
            if ((stype == "System.Drawing.Color") && (ttype == "YColors.YColor"))
            {
                tinfo.SetValue(FinalTarget, YColor.fromColor((Color)TerminalSource), null);
            }
            else if ((stype == "System.Double") && (ttype == "YoctoVisualisation.doubleNan"))
            {
                tinfo.SetValue(FinalTarget, new doubleNan((double)TerminalSource), null);
            }
            else
            if ((stype == "YDataRendering.DataTracker+DataPrecision") && (ttype == "YoctoVisualisation.DataTrackerDescription+DataPrecision"))
            { // Mono doesn't like enums implicit conversions
                YDataRendering.DataTracker.DataPrecision svalue = (YDataRendering.DataTracker.DataPrecision)TerminalSource;
                int temp = (int)svalue;
                YoctoVisualisation.DataTrackerDescription.DataPrecision tvalue = (YoctoVisualisation.DataTrackerDescription.DataPrecision)(temp);
                tinfo.SetValue(FinalTarget, tvalue, null);
            }

            else
            {
                tinfo.SetValue(FinalTarget, TerminalSource, null);
            }
        }
Exemple #2
0
        //Direction :Settings To Target
        static public void copyProperty_STT(object rootTarget, object source, string propertySourceName, List <string> path, PropFilter filterAllow)
        {
            System.Reflection.PropertyInfo tinfo = null;
            System.Reflection.PropertyInfo sinfo = null;
            string ttype = "";
            string stype = "";
            object FinalTarget;
            object TerminalSource;


            computePropertyAccess(rootTarget, source, propertySourceName, path, out tinfo, out sinfo, out ttype, out stype, out FinalTarget, out TerminalSource);



            if (tinfo == null)
            {
                return;          // the property does not exists in the widget
            }
            if ((stype == "System.Drawing.Color") && (ttype == "System.Windows.Media.Color"))
            {
                Color c  = (Color)TerminalSource;
                Color C2 = Color.FromArgb(c.A, c.R, c.G, c.B);
                tinfo.SetValue(FinalTarget, C2, null);
            }
            else

            if ((stype == "YDataRendering.xAxisPosition") && (ttype == "System.Double"))
            {
                xAxisPosition v = (xAxisPosition)TerminalSource;
                tinfo.SetValue(FinalTarget, v.value, null);
            }
            else
            if ((stype == "YoctoVisualisation.doubleNan") && (ttype == "System.Double"))
            {
                doubleNan v = (doubleNan)TerminalSource;
                tinfo.SetValue(FinalTarget, v.value, null);
            }
            else
            if ((stype == "YoctoVisualisation.doubleNan") && (ttype.StartsWith("System.Nullable")))
            {
                if (Double.IsNaN(((doubleNan)TerminalSource).value))
                {
                    tinfo.SetValue(FinalTarget, null, null);
                }
                else
                {
                    tinfo.SetValue(FinalTarget, ((doubleNan)TerminalSource).value, null);
                }
            }


            else
            if ((stype == "System.String") && (ttype == "System.Windows.Media.FontFamily"))
            {
                string v = (string)TerminalSource;
                tinfo.SetValue(FinalTarget, new FontFamily(v), null);
            }


            else
            if ((stype == "System.Drawing.Color") && (ttype == "System.Windows.Media.Brush"))
            {
                Color c = (Color)TerminalSource;
                byte  a = c.A;
                if (propertySourceName == "Graph2_ScrollBarFill")
                {
                    a = 80;                                         // dirty hack to keep the navigator's cursor semi-transparent
                }
                Color      C2 = Color.FromArgb(a, c.R, c.G, c.B);
                SolidBrush b  = new SolidBrush(C2);
                tinfo.SetValue(FinalTarget, b, null);
            }
            else
            if ((stype == "YColors.YColor") && (ttype == "System.Drawing.Color"))
            {
                tinfo.SetValue(FinalTarget, ((YColor)TerminalSource).toColor(), null);
            }

            else
            if ((stype == "System.Drawing.Color") && (ttype == "System.Windows.Media.Brush"))
            {
                Color c = (Color)TerminalSource;
                byte  a = c.A;
                // if (propertySourceName == "Graph2_ScrollBarFill") a = 80; // dirty hack to keep the navigator's cursor semi-transparent
                Color      C2 = Color.FromArgb(a, c.R, c.G, c.B);
                SolidBrush b  = new SolidBrush(C2);
                tinfo.SetValue(FinalTarget, b, null);
            }
            else
            if ((stype == "YoctoVisualisation.DataTrackerDescription+DataPrecision") && (ttype == "YDataRendering.DataTracker+DataPrecision"))
            { // Mono doesn't like enums implicit conversions
                YoctoVisualisation.DataTrackerDescription.DataPrecision svalue = (YoctoVisualisation.DataTrackerDescription.DataPrecision)TerminalSource;
                int temp = (int)svalue;
                YDataRendering.DataTracker.DataPrecision tvalue = (YDataRendering.DataTracker.DataPrecision)(temp);
                tinfo.SetValue(FinalTarget, tvalue, null);
            }
            else
            {
                tinfo.SetValue(FinalTarget, TerminalSource, null);
            }
        }