private void DoDataProvider() { if (this.providerLabels == null) { base.Close(); GUIUtility.ExitGUI(); } else { if (this.isNewlyCreated) { EditorGUI.BeginChangeCheck(); this.providerIdx = EditorGUILayout.Popup(DataBindingWindow.GC_Space, this.providerIdx, this.providerLabels); if (EditorGUI.EndChangeCheck()) { string ident = this.bind.dataprovider.ident; DataProviderEd.DestroyDataprovider(this.bind.dataprovider); this.providerEd = DataProviderEd.factory.CreateEditor(this.providerLabels[this.providerIdx].text); this.bind.dataprovider = DataProviderEd.CreateDataprovider(this.providerEd.nfo.TargetType, ident, this.isForSetter); plyEdUtil.SetDirty(this.bindOwner); } } else { GUI.enabled = false; EditorGUILayout.Popup(DataBindingWindow.GC_Space, this.providerIdx, this.providerLabels); GUI.enabled = true; } DataBindingWindow.GC_Text.text = BloxEd.PrettyTypeName(this.bind.dataprovider.DataType(), !this.isForSetter); EditorGUILayout.LabelField(DataBindingWindow.GC_Space, DataBindingWindow.GC_Text); if (this.providerEd != null) { Rect rect = GUILayoutUtility.GetRect(0f, (float)(this.providerEd.EditorHeight(this.bind.dataprovider, this.isForSetter) + 10.0), GUILayout.ExpandWidth(true)); rect.x += 5f; rect.width -= 10f; rect.y += 10f; rect.height -= 10f; this.providerEd.DrawEditor(rect, this.bind.dataprovider, this.isForSetter); base.Repaint(); } } }
public static DataBindingValueSource DataBindingValueSourceField(Rect rect, GUIContent label, DataBindingValueSource val, GUIContent bindWinLabel, UnityEngine.Object ownerObj) { if (val == null) { val = new DataBindingValueSource(); GUI.changed = true; } Rect rect2 = rect; if (label != null) { rect2.width = EditorGUIUtility.labelWidth; GUI.Label(rect2, label); rect2.x += EditorGUIUtility.labelWidth; rect2.width = rect.width - EditorGUIUtility.labelWidth; } float num = (float)((rect2.width - 2.0) / 2.0); rect2.width = num; val.source = (DataBindingValueSource.Source)EditorGUI.EnumPopup(rect2, (Enum)(object)val.source); rect2.x = (float)(rect2.x + num + 2.0); if (val.source == DataBindingValueSource.Source.Blackboard) { if (val.databind != null) { DataProviderEd.DestroyDataprovider(val.databind.dataprovider); val.databind = null; } val.blackboardValueName = EditorGUI.TextArea(rect2, val.blackboardValueName); } else if (val.source == DataBindingValueSource.Source.DataProvider) { if (val.databind == null) { val.databind = new DataBinding(); } DataProviderEd.DataBindingField(rect2, null, val.databind, ownerObj, false, null); } return(val); }
protected void OnGUI() { EditorGUIUtility.labelWidth = 85f; EditorGUILayout.BeginHorizontal(); GUILayout.Label(DataBindingWindow.GC_Dataprovider, GUILayout.Width((float)(EditorGUIUtility.labelWidth - 4.0))); GUI.enabled = false; EditorGUILayout.TextField(((UnityEngine.Object) this.bind.dataprovider == (UnityEngine.Object)null) ? "" : this.bind.dataprovider.ident, plyEdGUI.Styles.TextField_NoRightMargin); GUI.enabled = ((UnityEngine.Object) this.bind.dataprovider != (UnityEngine.Object)null); if (GUILayout.Button(DataBindingWindow.GC_Rename, plyEdGUI.Styles.MiniButtonMid, GUILayout.Width(25f))) { plyTextInputWiz.ShowWiz("Rename Data Provider", "Enter a unique name", this.bind.dataprovider.ident, this.RenameDataProvider, null, 250f); } if (GUILayout.Button(DataBindingWindow.GC_Delete, plyEdGUI.Styles.MiniButtonMid, GUILayout.Width(25f)) && EditorUtility.DisplayDialog("Delete Data Provider", "Deleting the data provider can't be undone. Continue?", "Yes", "Cancel")) { DataProviderEd.DestroyDataprovider(this.bind.dataprovider); this.bind.dataprovider = null; this.providerEd = null; this.providerIdx = -1; } GUI.enabled = true; if (GUILayout.Button(DataBindingWindow.GC_CreateNew, plyEdGUI.Styles.MiniButtonRight, GUILayout.Width(80f))) { plyTextInputWiz.ShowWiz("New Data Provider", "Enter unique name or leave empty", "", this.AddDataProvider, null, 250f); } EditorGUILayout.EndHorizontal(); if ((UnityEngine.Object) this.bind.dataprovider != (UnityEngine.Object)null) { this.DoDataProvider(); } GUILayout.FlexibleSpace(); EditorGUILayout.BeginHorizontal(plyEdGUI.Styles.BottomBar); GUILayout.FlexibleSpace(); if (GUILayout.Button("Accept", GUILayout.Width(80f))) { this.accepted = true; } GUILayout.FlexibleSpace(); EditorGUILayout.EndHorizontal(); }
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; }