Пример #1
0
    public override void OnInspectorGUI()
    {
        bold = new GUIStyle(GUI.skin.label);
        bold.fontStyle = FontStyle.Bold;

        if (keyEditInfo.editing == false)
        {
            if (Rebind.defaultKeys.Dictionary.Count > 0)
            {
                //Show collumn labels            
                GUILayout.BeginHorizontal();
                GUILayout.Space(5);
                GUILayout.Label("Action Name", bold);
                GUILayout.FlexibleSpace();
                GUILayout.Label("Primary", bold, GUILayout.Width(105));
                GUILayout.Label("Secondary", bold, GUILayout.Width(110));
                GUILayout.Space(40);
                GUILayout.EndHorizontal();
            }

            foreach (KeyValuePair<string, List<InputCode>> pair in Rebind.defaultKeys.Dictionary)
            {
                GUILayout.BeginHorizontal();
                GUILayout.Label(pair.Key);
                GUILayout.FlexibleSpace();

                if (GUILayout.Button(pair.Value[0].ToString(), GUILayout.Width(115)))
                {
                    keyEditInfo = new KeyEditInfo(pair.Key, 0);
                    keyEditInfo.editing = true;
                }
                if (pair.Value.Count > 1)
                {
                    if (GUILayout.Button(pair.Value[1].ToString(), GUILayout.Width(115)))
                    {
                        keyEditInfo = new KeyEditInfo(pair.Key, 1);
                        keyEditInfo.editing = true;
                    }
                }
                else
                {
                    if (GUILayout.Button("Add", GUILayout.Width(115)))
                    {
                        keyEditInfo = new KeyEditInfo(pair.Key, 1);
                        keyEditInfo.editing = true;
                    }
                }

                if (GUILayout.Button("Delete"))
                {
                    deleteDictionaryEntry(pair);
                    break;
                }

                GUILayout.EndHorizontal();

            }
            if (!create)
            {
                if (GUILayout.Button("New"))
                {
                    create = true;
                }
            }
            else
            {
                GUILayout.BeginHorizontal();
                actionName = GUILayout.TextField(actionName, GUILayout.Width(150));
                GUILayout.FlexibleSpace();
                if (GUILayout.Button("Create", GUILayout.Width(137)))
                {
                    createDictionaryEntry();
                }
                if (GUILayout.Button("Cancel", GUILayout.Width(76)))
                {
                    create = false;
                }
                GUILayout.EndHorizontal();
            }
        }
        else
        {
            GUILayout.Space(10);
            GUILayout.BeginHorizontal();
            GUILayout.FlexibleSpace();
            GUILayout.Label("Press any key", bold);
            GUILayout.FlexibleSpace();
            GUILayout.EndHorizontal();
            GUILayout.Space(10);
            if (GUILayout.Button("Reset"))
            {
                resetInputCode();
            }
        }

        if (keyEditInfo.editing)
        {
            keyEditInfo.editing = pollForInput();
        }
    }
Пример #2
0
    public override void OnInspectorGUI()
    {
        bold           = new GUIStyle(GUI.skin.label);
        bold.fontStyle = FontStyle.Bold;

        if (keyEditInfo.editing == false)
        {
            if (Rebind.defaultKeys.Dictionary.Count > 0)
            {
                //Show collumn labels
                GUILayout.BeginHorizontal();
                GUILayout.Space(5);
                GUILayout.Label("Action Name", bold);
                GUILayout.FlexibleSpace();
                GUILayout.Label("Primary", bold, GUILayout.Width(105));
                GUILayout.Label("Secondary", bold, GUILayout.Width(110));
                GUILayout.Space(40);
                GUILayout.EndHorizontal();
            }

            foreach (KeyValuePair <string, List <InputCode> > pair in Rebind.defaultKeys.Dictionary)
            {
                GUILayout.BeginHorizontal();
                GUILayout.Label(pair.Key);
                GUILayout.FlexibleSpace();

                if (GUILayout.Button(pair.Value[0].ToString(), GUILayout.Width(115)))
                {
                    keyEditInfo         = new KeyEditInfo(pair.Key, 0);
                    keyEditInfo.editing = true;
                }
                if (pair.Value.Count > 1)
                {
                    if (GUILayout.Button(pair.Value[1].ToString(), GUILayout.Width(115)))
                    {
                        keyEditInfo         = new KeyEditInfo(pair.Key, 1);
                        keyEditInfo.editing = true;
                    }
                }
                else
                {
                    if (GUILayout.Button("Add", GUILayout.Width(115)))
                    {
                        keyEditInfo         = new KeyEditInfo(pair.Key, 1);
                        keyEditInfo.editing = true;
                    }
                }

                if (GUILayout.Button("Delete"))
                {
                    deleteDictionaryEntry(pair);
                    break;
                }

                GUILayout.EndHorizontal();
            }
            if (!create)
            {
                if (GUILayout.Button("New"))
                {
                    create = true;
                }
            }
            else
            {
                GUILayout.BeginHorizontal();
                actionName = GUILayout.TextField(actionName, GUILayout.Width(150));
                GUILayout.FlexibleSpace();
                if (GUILayout.Button("Create", GUILayout.Width(137)))
                {
                    createDictionaryEntry();
                }
                if (GUILayout.Button("Cancel", GUILayout.Width(76)))
                {
                    create = false;
                }
                GUILayout.EndHorizontal();
            }
        }
        else
        {
            GUILayout.Space(10);
            GUILayout.BeginHorizontal();
            GUILayout.FlexibleSpace();
            GUILayout.Label("Press any key", bold);
            GUILayout.FlexibleSpace();
            GUILayout.EndHorizontal();
            GUILayout.Space(10);
            if (GUILayout.Button("Reset"))
            {
                resetInputCode();
            }
        }

        if (keyEditInfo.editing)
        {
            keyEditInfo.editing = pollForInput();
        }
    }