static public void ShowCommandMenu(Rect position, string currentHandlerName, Block block, int width, int height) { curBlock = block; if (!FungusEditorPreferences.useLegacyMenus) { var win = new CommandSelectorPopupWindowContent(currentHandlerName, width, (int)(height - EditorGUIUtility.singleLineHeight * 3)); PopupWindow.Show(position, win); } else { //need to ensure we have filtered data filteredAttributes = GetFilteredSupportedCommands(curBlock.GetFlowchart()); } //old method DoOlderMenu(); }
public virtual void DrawButtonToolbar() { GUILayout.BeginHorizontal(); // Previous Command if ((Event.current.type == EventType.KeyDown) && (Event.current.keyCode == KeyCode.PageUp)) { SelectPrevious(); GUI.FocusControl("dummycontrol"); Event.current.Use(); } // Next Command if ((Event.current.type == EventType.KeyDown) && (Event.current.keyCode == KeyCode.PageDown)) { SelectNext(); GUI.FocusControl("dummycontrol"); Event.current.Use(); } if (GUILayout.Button(upIcon)) { SelectPrevious(); } // Down Button if (GUILayout.Button(downIcon)) { SelectNext(); } GUILayout.FlexibleSpace(); //using false to prevent forcing a longer row than will fit on smallest inspector var pos = EditorGUILayout.GetControlRect(false, 0, EditorStyles.objectField); if (pos.x != 0) { lastCMDpopupPos = pos; lastCMDpopupPos.x += EditorGUIUtility.labelWidth; lastCMDpopupPos.y += EditorGUIUtility.singleLineHeight * 2; } // Add Button if (GUILayout.Button(addIcon)) { CommandSelectorPopupWindowContent.ShowCommandMenu(lastCMDpopupPos, "", target as Block, (int)(EditorGUIUtility.currentViewWidth), (int)(EditorWindow.focusedWindow.position.height - lastCMDpopupPos.y)); } // Duplicate Button if (GUILayout.Button(duplicateIcon)) { Copy(); Paste(); } // Delete Button if (GUILayout.Button(deleteIcon)) { Delete(); } GUILayout.EndHorizontal(); }
public virtual void DrawButtonToolbar() { GUILayout.BeginHorizontal(); // Previous Command if ((Event.current.type == EventType.KeyDown) && (Event.current.keyCode == KeyCode.PageUp)) { SelectPrevious(); GUI.FocusControl("dummycontrol"); Event.current.Use(); } // Next Command if ((Event.current.type == EventType.KeyDown) && (Event.current.keyCode == KeyCode.PageDown)) { SelectNext(); GUI.FocusControl("dummycontrol"); Event.current.Use(); } if (GUILayout.Button(upIcon)) { SelectPrevious(); } // Down Button if (GUILayout.Button(downIcon)) { SelectNext(); } GUILayout.FlexibleSpace(); //using false to prevent forcing a longer row than will fit on smallest inspector var pos = EditorGUILayout.GetControlRect(false, 0, EditorStyles.objectField); if (pos.x != 0) { lastCMDpopupPos = pos; lastCMDpopupPos.x += EditorGUIUtility.labelWidth; lastCMDpopupPos.y += EditorGUIUtility.singleLineHeight * 2; } // Add Button if (GUILayout.Button(addIcon)) { //this may be less reliable for HDPI scaling but previous method using editor window height is now returning // null in 2019.2 suspect ongoing ui changes, so default to screen.height and then attempt to get the better result int h = Screen.height; if (EditorWindow.focusedWindow != null) { h = (int)EditorWindow.focusedWindow.position.height; } else if (EditorWindow.mouseOverWindow != null) { h = (int)EditorWindow.mouseOverWindow.position.height; } CommandSelectorPopupWindowContent.ShowCommandMenu(lastCMDpopupPos, "", target as Block, (int)(EditorGUIUtility.currentViewWidth), (int)(h - lastCMDpopupPos.y)); } // Duplicate Button if (GUILayout.Button(duplicateIcon)) { Copy(); Paste(); } // Delete Button if (GUILayout.Button(deleteIcon)) { Delete(); } GUILayout.EndHorizontal(); }