Example #1
0
        static int GetChildCount(List <GenericMenu.MenuItem> items, GenericMenu.MenuItem item)
        {
            if (!item.separator)
            {
                return(0);
            }

            string level = GetSubmenuPath(item);
            int    count = 0;

            for (int i = 0, c = items.Count; i < c; ++i)
            {
                if (items[i].separator)
                {
                    continue;
                }
                var dir = GetSubmenuPath(items[i]);
                if (dir.StartsWith(level))
                {
                    count++;
                }
            }

            return(count);
        }
Example #2
0
 private void CatchMenu(object userData, string[] options, int selected)
 {
     GenericMenu.MenuItem menuItem = (GenericMenu.MenuItem) this.menuItems[selected];
     if (menuItem.func2 != null)
     {
         menuItem.func2(menuItem.userData);
     }
     else if (menuItem.func != null)
     {
         menuItem.func();
     }
 }
Example #3
0
        public void DropDown(Rect position)
        {
            string[]  array     = new string[this.menuItems.Count];
            bool[]    array2    = new bool[this.menuItems.Count];
            ArrayList arrayList = new ArrayList();

            bool[] array3 = new bool[this.menuItems.Count];
            for (int i = 0; i < this.menuItems.Count; i++)
            {
                GenericMenu.MenuItem menuItem = (GenericMenu.MenuItem) this.menuItems[i];
                array[i]  = menuItem.content.text;
                array2[i] = (menuItem.func != null || menuItem.func2 != null);
                array3[i] = menuItem.separator;
                if (menuItem.on)
                {
                    arrayList.Add(i);
                }
            }
            EditorUtility.DisplayCustomMenuWithSeparators(position, array, array2, array3, (int[])arrayList.ToArray(typeof(int)), new EditorUtility.SelectMenuItemFunction(this.CatchMenu), null, true);
        }
Example #4
0
        /// <summary>
        ///   <para>Show the menu at the given screen rect.</para>
        /// </summary>
        /// <param name="position">The position at which to show the menu.</param>
        public void DropDown(Rect position)
        {
            string[]  options   = new string[this.menuItems.Count];
            bool[]    enabled   = new bool[this.menuItems.Count];
            ArrayList arrayList = new ArrayList();

            bool[] separator = new bool[this.menuItems.Count];
            for (int index = 0; index < this.menuItems.Count; ++index)
            {
                GenericMenu.MenuItem menuItem = (GenericMenu.MenuItem) this.menuItems[index];
                options[index]   = menuItem.content.text;
                enabled[index]   = menuItem.func != null || menuItem.func2 != null;
                separator[index] = menuItem.separator;
                if (menuItem.on)
                {
                    arrayList.Add((object)index);
                }
            }
            EditorUtility.DisplayCustomMenuWithSeparators(position, options, enabled, separator, (int[])arrayList.ToArray(typeof(int)), new EditorUtility.SelectMenuItemFunction(this.CatchMenu), (object)null);
        }
Example #5
0
        static string GetSubmenuPath(GenericMenu.MenuItem item)
        {
            int index = item.content.text.LastIndexOf('/');

            return(item.content.text.Substring(0, index + 1));
        }