No selection event, no generic objects, no way to format button appearance, no way to set separator or disable items...
public class EditorGUILayoutEx { private static object _CustomPopup_SelectedObject; private static int _CustomPopup_ControlID = -1; private static int _CustomPopup_SelectedIndex = -1; public delegate void MenuCallaback <T> (int selectedIndex,T SelectedObject,int controlID); public delegate void EventCallback (int ownerControlID,Event e);
Use like this (returning Index or Generic Object with Arrays or Lists as values):
int selectedIndex; selectedIndex=ws.winx.editor.extensions.EditorGUILayoutEx.CustomPopup(new GUIContent("State1"),selectedIndex,new GUIContent[]{new GUIContent("mile1*"),new GUIContent("mile1/kitic")},new int[]{22,33},onMenuSelectionIndex); String selectedObject2; selectedObject2=ws.winx.editor.extensions.EditorGUILayoutEx.CustomObjectPopup(new GUIContent("State1"),selectedObject2,new GUIContent[]{new GUIContent("mile"),new GUIContent("mile/kitic")},new ListHandle events:(){ "One", "Two" },onMenuSelectionObject); String selectedObject3; selectedObject3=ws.winx.editor.extensions.EditorGUILayoutEx.CustomObjectPopup(new GUIContent("State1"),selectedObject3,new GUIContent[]{new GUIContent("mile"),new GUIContent("mile/kitic")},new string[]{"mile","kitic"},onMenuSelectionObject); MyClass selectedObject3; selectedObject3=ws.winx.editor.extensions.EditorGUILayoutEx.CustomObjectPopup(new GUIContent("State1"),selectedObject3,new GUIContent[]{new GUIContent("mile"),new GUIContent("mile/kitic")},new MyClass[]{new MyClass,new MyClass},onMenuSelectionMyClass);
void onMenuSelectionObject (int si,string obj,int cid) { Debug.Log ("Selected at inx: " + si+" selection="+obj+" cid:"+cid); } void onMenuSelectionIndex (int si,int obj,int cid) { Debug.Log ("Selected at inx: " + si+" selection="+obj+" cid:"+cid); } void onMenuSelectionMyClass (int si,MyClass obj,int cid) { Debug.Log ("Selected at inx: " + si+" selection="+obj+" cid:"+cid); }
No comments:
Post a Comment