void SelectPreviousMenuEntry() { if(mFilteredMenuCommands.Count == 0) return; if(!mFilteredMenuCommands.Contains( mSelectedEntry )) { mSelectedEntry = mFilteredMenuCommands[0]; return; } int idx = mFilteredMenuCommands.IndexOf(mSelectedEntry) + 1; mSelectedEntry = mFilteredMenuCommands[ idx % mFilteredMenuCommands.Count ]; }
void RenderMenuEntry(SceneMenuCommand pCommand) { GUILayout.BeginHorizontal(); if(pCommand == mSelectedEntry) { GUI.color = new Color(0.2f,0.6f,1.0f,1.0f); }else { GUI.color = Color.white; } GUILayout.Label(pCommand.mName,EditorStyles.whiteLabel); GUILayout.FlexibleSpace(); GUILayout.Label(pCommand.GetFormattedShortCut(),EditorStyles.whiteLabel); GUILayout.EndHorizontal(); }
void FilterCommands(string pFilter) { pFilter = pFilter.ToLower(); mFilteredMenuCommands = new List<SceneMenuCommand>(); foreach(var c in mMenuCommands) { if(c.mName.ToLower().StartsWith(pFilter)) mFilteredMenuCommands.Add(c); } if(mFilteredMenuCommands.Count > 0) mSelectedEntry = mFilteredMenuCommands[0]; else mSelectedEntry = null; }
void OpenMenu() { mSceneMenuVisible = true; isVisible = mSceneMenuVisible; mSelectedEntry = null; GUI.FocusControl(kMenuTextField); }
void Execute(SceneMenuCommand pCommand) { pCommand.Execute(); if(!mLastCommandHadError) SceneView.currentDrawingSceneView.ShowNotification(new GUIContent(pCommand.mName)); mLastCommandHadError = false; }