public static void Initialize(ref IntPtr data, IntPtr rm) { Rainmeter.API api = new Rainmeter.API(rm); string parent = api.ReadString("ParentName", ""); Measure measure; if(String.IsNullOrEmpty(parent)) { measure = new ParentMeasure(); } else { measure = new ChildMeasure(); } data = GCHandle.ToIntPtr(GCHandle.Alloc(measure)); }
public static void Initialize(ref IntPtr data, IntPtr rm) { Rainmeter.API api = new Rainmeter.API(rm); string parent = api.ReadString("ParentName", ""); Measure measure; if (String.IsNullOrEmpty(parent)) { measure = new ParentMeasure(); } else { measure = new ChildMeasure(); } data = GCHandle.ToIntPtr(GCHandle.Alloc(measure)); }
internal override void Reload(Rainmeter.API api, ref double maxValue) { base.Reload(api, ref maxValue); string parentName = api.ReadString("ParentName", ""); IntPtr skin = api.GetSkin(); // Find parent using name AND the skin handle to be sure that it's the right one. ParentMeasure = null; foreach (ParentMeasure parentMeasure in ParentMeasure.ParentMeasures) { if (parentMeasure.Skin.Equals(skin) && parentMeasure.Name.Equals(parentName)) { ParentMeasure = parentMeasure; } } if (ParentMeasure == null) { API.Log(API.LogType.Error, "ParentChild.dll: ParentName=" + parentName + " is not valid"); } }
internal override void Reload(Rainmeter.API api, ref double maxValue) { base.Reload(api, ref maxValue); string parentName = api.ReadString("ParentName", ""); IntPtr skin = api.GetSkin(); // Find parent using name AND the skin handle to be sure that it's the right one. ParentMeasure = null; foreach(ParentMeasure parentMeasure in ParentMeasure.ParentMeasures) { if(parentMeasure.Skin.Equals(skin) && parentMeasure.Name.Equals(parentName)) { ParentMeasure = parentMeasure; } } if(ParentMeasure == null) { API.Log(API.LogType.Error, "ParentChild.dll: ParentName=" + parentName + " is not valid"); } }