public override void Draw(LocalizationObjectItem drawing, LocalizationObjectItem reference = null, params GUILayoutOption[] areaOptions) { EditableLabel_Auto currentLabel; SpriteSelector currentSelector; if (labelDict == null) { labelDict = new Dictionary <int, EditableLabel_Auto>(); } if (!labelDict.ContainsKey(drawing.GetInstanceID())) { currentLabel = new EditableLabel_Auto(drawing.SetID); labelDict.Add(drawing.GetInstanceID(), currentLabel); } else { currentLabel = labelDict[drawing.GetInstanceID()]; } if (!selectorDict.ContainsKey(drawing.GetInstanceID())) { currentSelector = SpriteSelector.Create_ScaleByWidth(); selectorDict.Add(drawing.GetInstanceID(), currentSelector); } else { currentSelector = selectorDict[drawing.GetInstanceID()]; } if (reference != null && reference.ItemType != drawing.ItemType) { reference = null; } GUILayout.BeginVertical(areaOptions); drawing.Storage = currentSelector.DrawLayout(drawing.Get <Sprite>() as Sprite, false, areaOptions); Rect inputRect = GUILayoutUtility.GetLastRect(); GUILayout.BeginHorizontal(); GUILayout.Label("》", GUILayout.Width(10)); currentLabel.Draw(drawing.ID, true); if (reference == null) { GUI.enabled = false; } if (GUILayout.Button("✦", GUILayout.Width(20))) { PopupWindow.Show(inputRect, new SpriteRefPeeker(reference.Get <Sprite>() as Sprite, reference.containerGroup.database.name, inputRect)); } GUI.enabled = true; if (GUILayout.Button("X", GUILayout.Width(20))) { drawing.Destroy(); } GUILayout.EndHorizontal(); GUILayout.EndVertical(); }
void Init() { if (peeked == null) { this.height = 48; } else { this.height = 160; } labelStyle = new GUIStyle(GUI.skin.label); labelStyle.wordWrap = true; labelStyle.fontSize = 12; selector = SpriteSelector.Create_ScaleByWidth(attached.width); }