예제 #1
0
    private List <ShortItem> LoadShortcutKeyFromFile(string savePath, ShortType sType)
    {
        if (!File.Exists(savePath))
        {
            return(null);
        }
        List <ShortItem> itemList = new List <ShortItem> ();
        XmlDocument      xml      = new XmlDocument();

        xml.Load(savePath);
        XmlNodeList xnlList = xml.SelectSingleNode("KeyData").ChildNodes;
        string      tn = "", sn = "", blongto = "";

        for (int i = 0; i < xnlList.Count; i++)
        {
            XmlElement xel = xnlList [i] as XmlElement;
            if (xel.GetAttribute("id") == (i + 1).ToString())
            {
                ShortItem itemRes = new ShortItem();
                foreach (XmlNode item in xel.ChildNodes)
                {
                    if (item.Name.Equals("Path"))
                    {
                        tn = item.InnerText;
                    }
                    if (item.Name.Equals("ShortKeyName"))
                    {
                        sn = item.InnerText;
                    }
                    if (item.Name.Equals("BlongTo"))
                    {
                        blongto = item.InnerText;
                    }
                }

                if (blongto.Equals(sType.ToString()))
                {
                    itemRes.SetData(tn, sn, sType);
                    if (!string.IsNullOrEmpty(sn) && sn.Length >= 2)
                    {
                        if (sn.Contains(ShortKeyCode.Command))
                        {
                            itemRes.AIDCommand = true;
                        }
                        if (sn.Contains(ShortKeyCode.Shift))
                        {
                            itemRes.AIDShift = true;
                        }
                        if (sn.Contains(ShortKeyCode.Control))
                        {
                            itemRes.AIDCtrl = true;
                        }
                    }
                    itemList.Add(itemRes);
                }
            }
        }
        return(itemList);
    }
예제 #2
0
    private void ShowItem(ShortItem codeItem, List <ShortItem> list, bool isSystem = false)
    {
        EditorGUILayout.BeginHorizontal();
        EditorGUILayout.LabelField("Path:", GUILayout.Width(45));
        if (isOldFirst)
        {
            codeItem.Path = EditorGUILayout.TextField(codeItem.Path, GUILayout.Width(200));
            EditorGUILayout.LabelField("ShortcutName:", GUILayout.Width(85));
            codeItem.ShortKey = EditorGUILayout.TextField(codeItem.ShortKey, GUILayout.Width(85));
            if (!isSystem && GUILayout.Button("delete", GUILayout.Width(70), GUILayout.Height(20)))
            {
                if (list.Contains(codeItem))
                {
                    list.Remove(codeItem);
                }
            }
        }
        else
        {
            if (codeItem.BlongTo == ShortType.Extension)
            {
                codeItem.Path = EditorGUILayout.TextField(codeItem.Path, GUILayout.Width(200));
            }
            else
            {
                EditorGUILayout.LabelField("", codeItem.Path, GUILayout.Width(200));
            }
            GUILayout.Space(10);
//			EditorGUILayout.BeginToggleGroup("√", codeItem.EnableChange);
            EditorGUILayout.BeginHorizontal();
            //辅助键
            codeItem.AIDShift   = EditorGUILayout.ToggleLeft("Shift", codeItem.AIDShift, GUILayout.Width(50));
            codeItem.AIDCommand = EditorGUILayout.ToggleLeft("Command", codeItem.AIDCommand, GUILayout.Width(80));
            codeItem.AIDCtrl    = EditorGUILayout.ToggleLeft("Ctrl", codeItem.AIDCtrl, GUILayout.Width(50));
            codeItem.AIDSingle  = EditorGUILayout.ToggleLeft("Single", codeItem.AIDSingle, GUILayout.Width(70));
            //热键
            codeItem.KeySelectIndex = EditorGUILayout.Popup(codeItem.KeySelectIndex, popupKEYStr, GUILayout.Width(70));
            //设置热键
            codeItem.SetKey(ShortKeyCode.popupKEYDict[popupKEYStr[codeItem.KeySelectIndex]]);
            GUILayout.Space(10);
            if (!isSystem && GUILayout.Button("delete", GUILayout.Width(70), GUILayout.Height(20)))
            {
                if (list.Contains(codeItem))
                {
                    list.Remove(codeItem);
                }
            }
            EditorGUILayout.EndHorizontal();
//			EditorGUILayout.EndToggleGroup();
        }
        EditorGUILayout.EndHorizontal();
    }
예제 #3
0
 void OnGUI()
 {
     //绘制标题
     GUILayout.Space(10);
     GUI.skin.label.fontSize  = 24;
     GUI.skin.label.alignment = TextAnchor.MiddleCenter;
     GUILayout.Label("Shortcut Style");
     GUI.skin.label.fontSize = 12;
     GUILayout.Space(10);
     isOldFirst = EditorGUILayout.Toggle("Old Version First", isOldFirst);
     //Show
     ShowList();
     //button
     EditorGUILayout.BeginHorizontal();
     m_SType = (ShortType)EditorGUILayout.EnumPopup(m_SType);
     if (GUILayout.Button("add"))
     {
         ski = new ShortItem("Editor1/Editor2/Editor3", "", m_SType);
         Debug.LogFormat("add {0} {1} {2} {3} ", ski.Path, ski.ShortKey, ski.MenuItemName, ski.FuncName);
         if (m_ShortKeyDict[m_SType] == null)
         {
             m_ShortKeyDict[m_SType] = new List <ShortItem>();
         }
         m_ShortKeyDict[m_SType].Add(ski);
     }
     if (GUILayout.Button("save"))
     {
         mSkiList.Clear();
         mSkiList = new List <ShortItem>();
         foreach (ShortType st in m_ShortKeyDict.Keys)
         {
             if (st != ShortType.Extension)
             {
                 mSkiList.AddRange(m_ShortKeyDict[st]);
             }
         }
         SaveShortcutKey2File(ShortcutSystemSavePath, mSkiList);
         SaveShortcutKey2EditorCode(ShortcutSystemPath, mSkiList);
         //save to script
         SaveShortcutKey2File(ShortcutSavePath, m_ShortKeyDict[ShortType.Extension]);
         SaveShortcutKey2EditorCode(ShortcutPath, m_ShortKeyDict[ShortType.Extension]);
     }
     EditorGUILayout.EndHorizontal();
     GUILayout.Space(10);
 }
예제 #4
0
 void Awake()
 {
     InitSystemData();
     ski      = new ShortItem();
     mSkiList = new List <ShortItem>();
 }