// 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); } }
//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); } }