//============================================================================== public override bool OnGUI(IAudioEffectPlugin plugin) { PluginGUIInstance guiInstance = getGUIInstanceForPlugin(ref plugin); if (!guiInstance.hasEditor) { return(true); } float[] arr; plugin.GetFloatBuffer("Size", out arr, 6); Rect r = GUILayoutUtility.GetRect(arr[0], arr[1], new GUILayoutOption[] { GUILayout.MinWidth(arr[2]), GUILayout.MinHeight(arr[3]), GUILayout.MaxWidth(arr[4]), GUILayout.MaxHeight(arr[5]) }); int controlID = GUIUtility.GetControlID(FocusType.Passive); Event currentEvent = Event.current; EventType currentEventType = currentEvent.GetTypeForControl(controlID); if (currentEventType == EventType.Repaint) { guiInstance.repaint(r); } else if (currentEvent.isMouse) { guiInstance.handleMouseEvent(currentEventType); } else if (currentEvent.isKey) { guiInstance.handleKeyEvent(currentEventType); } return(false); }
private PluginGUIInstance getGUIInstanceForPlugin(ref IAudioEffectPlugin plugin) { float[] idArray; plugin.GetFloatBuffer("ID", out idArray, 1); int id = (int)idArray[0]; for (int i = 0; i < guis.Count; ++i) { if (guis[i].instanceID == id) { return(guis[i]); } } PluginGUIInstance newInstance = new PluginGUIInstance(ref plugin, id); guis.Add(newInstance); return(guis[guis.Count - 1]); }