protected override void Draw(Rect rect, DataProvider target, bool isSetter) { MemberBindProvider memberBindProvider = (MemberBindProvider)target; rect.height = EditorGUIUtility.singleLineHeight; if (MemberBindProviderEd.loader != null) { plyEdGUI.DrawSpinner(rect, MemberBindProviderEd.GC_Loading); if (Event.current.type == EventType.Repaint) { MemberBindProviderEd.loader.DoUpdate(); } } else { this.InitCurrBindables(memberBindProvider, isSetter); EditorGUIUtility.labelWidth = 65f; Rect rect2 = rect; GUIContent label = isSetter ? MemberBindProviderEd.GC_SetMember : MemberBindProviderEd.GC_GetMember; if (memberBindProvider.member != null && memberBindProvider.member.MemberType == MemberTypes.Method) { label = MemberBindProviderEd.GC_InvokeMember; } EditorGUI.BeginChangeCheck(); this.memberBindIdx = EditorGUI.Popup(rect2, label, this.memberBindIdx, this.currBindableLabels); if (EditorGUI.EndChangeCheck()) { memberBindProvider.member = this.currBindables[this.memberBindIdx].mi; memberBindProvider.instanceMember = null; if (memberBindProvider.valSetterSources.Length != 0) { memberBindProvider.valSetterSources = new DataBindingValueSource[0]; } if (memberBindProvider.sourceObjType == MemberBindProvider.DataSourceOject.Instance) { MemberBindProvider target2 = memberBindProvider; BloxMemberInfo member = memberBindProvider.member; this.InitSubBindables(target2, (member != null) ? member.ReflectedType : null); } } if (memberBindProvider.member == null) { if (memberBindProvider.instanceMember != null) { memberBindProvider.instanceMember = null; GUI.changed = true; } if (memberBindProvider.valSetterSources.Length != 0) { memberBindProvider.valSetterSources = new DataBindingValueSource[0]; GUI.changed = true; } } else { if (!memberBindProvider.member.IsStatic) { rect2.y += (float)(EditorGUIUtility.singleLineHeight + 2.0); if (memberBindProvider.sourceObjType != 0 && memberBindProvider.sourceObjType != MemberBindProvider.DataSourceOject.Owner) { rect2.width = (float)(EditorGUIUtility.labelWidth + 100.0); } EditorGUI.BeginChangeCheck(); memberBindProvider.sourceObjType = (MemberBindProvider.DataSourceOject)EditorGUI.EnumPopup(rect2, MemberBindProviderEd.GC_TargetObject, (Enum)(object)memberBindProvider.sourceObjType); if (EditorGUI.EndChangeCheck()) { memberBindProvider.sourceObjData = ""; if (memberBindProvider.sourceObjType == MemberBindProvider.DataSourceOject.Instance) { MemberBindProvider target3 = memberBindProvider; BloxMemberInfo member2 = memberBindProvider.member; this.InitSubBindables(target3, (member2 != null) ? member2.ReflectedType : null); } } rect2.x += (float)(EditorGUIUtility.labelWidth + 102.0); rect2.width = (float)(rect.width - (EditorGUIUtility.labelWidth + 102.0)); if (memberBindProvider.sourceObjType == MemberBindProvider.DataSourceOject.WithName || memberBindProvider.sourceObjType == MemberBindProvider.DataSourceOject.WithTag) { memberBindProvider.sourceObjData = EditorGUI.TextField(rect2, memberBindProvider.sourceObjData); } else if (memberBindProvider.sourceObjType == MemberBindProvider.DataSourceOject.OfType) { EditorGUI.LabelField(rect2, BloxEd.PrettyTypeName(memberBindProvider.member.ReflectedType, true)); } else if (memberBindProvider.sourceObjType == MemberBindProvider.DataSourceOject.Instance) { EditorGUI.BeginChangeCheck(); this.subBindIdx = EditorGUI.Popup(rect2, this.subBindIdx, this.subBindableLabels); if (EditorGUI.EndChangeCheck()) { memberBindProvider.instanceMember = this.subBindables[this.subBindIdx].mi; } } } rect2.x = rect.x; rect2.y += (float)(EditorGUIUtility.singleLineHeight + 2.0); rect2.width = rect.width; if (memberBindProvider.member.MemberType == MemberTypes.Method) { ParameterInfo[] parameters = memberBindProvider.member.GetParameters(); if (memberBindProvider.valSetterSources.Length != parameters.Length) { GUI.changed = true; memberBindProvider.valSetterSources = new DataBindingValueSource[parameters.Length]; for (int i = 0; i < parameters.Length; i++) { memberBindProvider.valSetterSources[i] = new DataBindingValueSource(); } } if (memberBindProvider.valSetterSources.Length != 0) { GUI.Label(rect2, MemberBindProviderEd.GC_With); for (int j = 0; j < memberBindProvider.valSetterSources.Length; j++) { MemberBindProviderEd.GC_Param.text = parameters[j].Name + "="; rect2.y += (float)(EditorGUIUtility.singleLineHeight + 2.0); memberBindProvider.valSetterSources[j] = DataProviderEd.DataBindingValueSourceField(rect2, MemberBindProviderEd.GC_Param, memberBindProvider.valSetterSources[j], MemberBindProviderEd.GC_ToValBindWin, memberBindProvider); } } } else if (isSetter) { if (memberBindProvider.valSetterSources.Length != 1) { GUI.changed = true; memberBindProvider.valSetterSources = new DataBindingValueSource[1] { new DataBindingValueSource() }; } memberBindProvider.valSetterSources[0] = DataProviderEd.DataBindingValueSourceField(rect2, MemberBindProviderEd.GC_ToVal, memberBindProvider.valSetterSources[0], MemberBindProviderEd.GC_ToValBindWin, memberBindProvider); } } } }
protected override void Draw(Rect rect, DataProvider target, bool isSetter) { TriggerEventDataProvider triggerEventDataProvider = target as TriggerEventDataProvider; EditorGUIUtility.labelWidth = 110f; rect.height = EditorGUIUtility.singleLineHeight; Rect rect2 = rect; float num = 0f; rect2.width = EditorGUIUtility.labelWidth; GUI.Label(rect2, TriggerEventProviderEd.GC_VarHead); rect2.x += EditorGUIUtility.labelWidth; rect2.width = (num = (float)((rect.width - (rect2.width + 6.0)) / 2.0)); triggerEventDataProvider.varName = EditorGUI.TextField(rect2, triggerEventDataProvider.varName); Blox blox = null; if (!string.IsNullOrEmpty(triggerEventDataProvider.bloxIdent)) { blox = BloxEd.GetBloxDef(triggerEventDataProvider.bloxIdent); if ((UnityEngine.Object)blox == (UnityEngine.Object)null) { triggerEventDataProvider.bloxIdent = ""; } else { TriggerEventProviderEd.GC_BloxName.text = blox.screenName; } } TriggerEventProviderEd.GC_BloxName.text = (((UnityEngine.Object)blox == (UnityEngine.Object)null) ? "-select-" : blox.screenName); rect2.x += (float)(rect2.width + 3.0); if (GUI.Button(rect2, TriggerEventProviderEd.GC_BloxName)) { BloxListPopup.Show_BloxListPopup(null, this.OnBloxSelected, new object[1] { triggerEventDataProvider }); } rect2.y += (float)(EditorGUIUtility.singleLineHeight + 2.0); rect2.x = rect.x; rect2.width = EditorGUIUtility.labelWidth; GUI.Label(rect2, TriggerEventProviderEd.GC_ObjHead); rect2.x += EditorGUIUtility.labelWidth; rect2.width = num; triggerEventDataProvider.sourceObjType = (TriggerEventDataProvider.DataSourceOject)EditorGUI.EnumPopup(rect2, (Enum)(object)triggerEventDataProvider.sourceObjType); if (triggerEventDataProvider.sourceObjType != TriggerEventDataProvider.DataSourceOject.Owner) { rect2.x += (float)(rect2.width + 3.0); triggerEventDataProvider.objNameOrTag = plyEdGUI.InlineLabelTextField(rect2, (triggerEventDataProvider.sourceObjType == TriggerEventDataProvider.DataSourceOject.WithName) ? TriggerEventProviderEd.GC_ObjName : TriggerEventProviderEd.GC_TagName, triggerEventDataProvider.objNameOrTag); } rect2.y += (float)(EditorGUIUtility.singleLineHeight + 2.0); rect2.x = rect.x; rect2.width = EditorGUIUtility.labelWidth; GUI.Label(rect2, TriggerEventProviderEd.GC_EventHead); rect2.x += EditorGUIUtility.labelWidth; rect2.width = rect.width - EditorGUIUtility.labelWidth; triggerEventDataProvider.triggerBloxEvent = EditorGUI.TextField(rect2, triggerEventDataProvider.triggerBloxEvent); rect2.x = rect.x; rect2.width = rect.width; for (int i = 0; i < triggerEventDataProvider.valSetterSources.Length; i++) { rect2.y += (float)(EditorGUIUtility.singleLineHeight + 2.0); TriggerEventProviderEd.GC_Param.text = string.Format("with param{0} = ", i); triggerEventDataProvider.valSetterSources[i] = DataProviderEd.DataBindingValueSourceField(rect2, TriggerEventProviderEd.GC_Param, triggerEventDataProvider.valSetterSources[i], TriggerEventProviderEd.GC_ToValBindWin, triggerEventDataProvider); } rect2.y += (float)(EditorGUIUtility.singleLineHeight + 2.0); rect2.x = (float)(rect.xMax - 103.0); rect2.width = 50f; GUI.Label(rect2, TriggerEventProviderEd.GC_ParamsHead); rect2.x += 53f; rect2.width = 25f; if (GUI.Button(rect2, Ico._add, plyEdGUI.Styles.MiniButtonLeft)) { DataBindingValueSource item = new DataBindingValueSource(); ArrayUtility.Add <DataBindingValueSource>(ref triggerEventDataProvider.valSetterSources, item); plyEdUtil.SetDirty(triggerEventDataProvider); } rect2.x += 25f; GUI.enabled = (triggerEventDataProvider.valSetterSources.Length != 0); if (GUI.Button(rect2, Ico._remove, plyEdGUI.Styles.MiniButtonRight)) { DataBinding databind = triggerEventDataProvider.valSetterSources[triggerEventDataProvider.valSetterSources.Length - 1].databind; DataProviderEd.DestroyDataprovider((databind != null) ? databind.dataprovider : null); ArrayUtility.RemoveAt <DataBindingValueSource>(ref triggerEventDataProvider.valSetterSources, triggerEventDataProvider.valSetterSources.Length - 1); plyEdUtil.SetDirty(triggerEventDataProvider); } GUI.enabled = true; }