public static void Show(Rect rect, Speech speech, ValidateCallback callback) { //Close window if already open if (window != null) { Hide(); return; } //Open window ClipPopup.callback = callback; ClipPopup.voiceUUID = speech.voiceUUID; clips = null; error = Error.None; window = CreateInstance <ClipPopup>(); window.ShowPopup(); window.minSize = rect.size; window.titleContent = new GUIContent("Voices"); window.position = rect; //Request clips List <string> existingClips = speech.clips.Select(x => x.uuid).ToList(); APIBridge.GetClips((ResembleClip[] clips, Error error) => { ClipPopup.clips = clips.Where(x => x.voice == voiceUUID && !existingClips.Contains(x.uuid)).ToArray(); ClipPopup.error = error; window.Repaint(); }); }
public static void Hide() { if (window != null) { window.Close(); window = null; } }
public override void OnInspectorGUI() { //Init vars Event e = Event.current; mousePosition = e.mousePosition; //Speech properties GUILayout.Space(10); DrawSpeechProperties(); GUILayout.Space(10); //Select a voice box bool noVoice = string.IsNullOrEmpty(speech.voiceUUID); if (noVoice) { EditorGUILayout.HelpBox("Please select a voice.", MessageType.Info); } //Disable ui if there is no voice selecteds EditorGUI.BeginDisabledGroup(noVoice); //Rebuild list if needed and draw it if (list == null) { RebuildClipList(); } list.DoLayoutList(); //Draw commands buttons GUILayout.BeginHorizontal(); GUILayout.FlexibleSpace(); EditorGUI.BeginDisabledGroup(list.index < 0); deleteButton.DoLayout((Rect r) => { HidePopups(); DeletePopup.Show(r, DeleteClip); }); EditorGUI.EndDisabledGroup(); importButton.DoLayout((Rect r) => { HidePopups(); ClipPopup.Show(r, speech, ImportClip); }); CreateButton.DoLayout((Rect r) => { HidePopups(); StringPopup.Show(r, "New clip name", CreateClip); }); GUILayout.EndHorizontal(); EditorGUI.EndDisabledGroup(); //Draw connected error Utils.ConnectionRequireMessage(); //Keep a constant refresh Repaint(); }
/// <summary> Ensures that all popup windows that the editor can open are closed. </summary> private void HidePopups() { DeletePopup.Hide(); ClipPopup.Hide(); StringPopup.Hide(); }