Beispiel #1
0
 // ----------------------
 static public void AddAllMenuItems(GenericMenu menu, string axisName, string menuPath, InputRig rig, System.Action callback)
 {
     AddMenuItem(menu, axisName, menuPath, InputRig.AxisType.Digital, rig, callback);
     AddMenuItem(menu, axisName, menuPath, InputRig.AxisType.UnsignedAnalog, rig, callback);
     AddMenuItem(menu, axisName, menuPath, InputRig.AxisType.SignedAnalog, rig, callback);
     AddMenuItem(menu, axisName, menuPath, InputRig.AxisType.Delta, rig, callback);
     AddMenuItem(menu, axisName, menuPath, InputRig.AxisType.ScrollWheel, rig, callback);
 }
Beispiel #2
0
 // ------------------
 public string Draw(string labelText, string curName, InputRig rig)
 {
     return(Draw(new GUIContent(labelText, "Target Axis Name"), curName, rig));
 }
Beispiel #3
0
 // ----------------------
 public void SetRig(InputRig rig)
 {
     this.rig = rig;
 }
Beispiel #4
0
        // ------------------------
        static public void CreateContextMenuForAxisBinding(Object panelOrRig, string axisName, /*InputRig.InputSource sourceType, */ System.Action onRefreshCallback = null)
        {
            InputRig          rig   = (panelOrRig as InputRig);
            TouchControlPanel panel = (panelOrRig as TouchControlPanel);

            //bool displayPanelName = false;

            if (panel != null)
            {
                rig = panel.rig;
            }

            else if (rig != null)
            {
                // Auto Select panel...

                panel = TouchControlWizardUtils.GetRigPanel(rig);
                //displayPanelName = true;
            }
            else
            {
                return;
            }


            List <TouchControl> controlList = rig.GetTouchControls();


            GenericMenu menu = new GenericMenu();


            string commandName = ("\"" + axisName + "\" axis ");

            menu.AddDisabledItem(new GUIContent("Actions for : " + commandName));
            menu.AddSeparator("");


            InputRig.AxisConfig axisConfig = rig.GetAxisConfig(axisName);
            if (axisConfig == null)
            {
                AxisCreationMenuItem.AddAllMenuItems(menu, axisName, "", rig, onRefreshCallback);
            }

            else
            {
                int
                    axisSourceTypeMask = axisConfig.GetSupportedInputSourceMask();
                BindingDescription.BindingType
                    bindingTypeMask = BindingDescription.BindingType.Axis | BindingDescription.BindingType.Digital;


                UniversalBindingAssignment.AddBindingContainerToMenu(menu, rig, onRefreshCallback, bindingTypeMask, commandName,
                                                                     "Bind to Input Rig/", rig, KeyCode.None, axisName, axisSourceTypeMask); //, true); //, null);

                menu.AddSeparator("");

                if (panel == null)
                {
                    menu.AddDisabledItem(new GUIContent("Add a Touch Control Panel to this rig to create and bind commands to Touch Controls!"));
                }
                else
                {
                    UniversalBindingAssignment.AddControlListBindingsToMenu(menu, controlList, onRefreshCallback,
                                                                            bindingTypeMask, commandName, "Bind to Touch Controls/", KeyCode.None, axisName); //, true); //, null);

                    menu.AddSeparator("");

                    AddTouchControlCreationItemsToMenuForAxisOrKey(menu, panel, axisName, KeyCode.None, onRefreshCallback);
                }
            }

            menu.ShowAsContext();
        }
Beispiel #5
0
 public bool IsBoundToKey(KeyCode key, InputRig rig)
 {
     return(this.OnIsBoundToKey(key, rig));
 }
Beispiel #6
0
 virtual protected bool OnIsBoundToKey(KeyCode key, InputRig rig)
 {
     return(false);
 }
Beispiel #7
0
 // -----------------
 static public string GetUniqueButtonName(InputRig rig)
 {
     return(GetUniqueControlName(rig, typeof(ControlFreak2.TouchButton), "Button-"));
 }
Beispiel #8
0
 // --------------------
 bool OnIsBoundToAxis(string axisName, InputRig rig)
 {
     return((this.axisName == axisName));
 }
        // ------------------
        public void Draw(DirectionBinding bind, InputRig rig)
        {
            bool
                bindingEnabled = bind.enabled,
                bindDiagonals  = bind.bindDiagonals;

            DirectionBinding.BindMode
                bindMode = bind.bindMode;

            EditorGUILayout.BeginVertical();

            if (bindingEnabled = EditorGUILayout.ToggleLeft(this.labelContent, bindingEnabled, GUILayout.MinWidth(30)))
            {
                CFGUI.BeginIndentedVertical(CFEditorStyles.Inst.transpSunkenBG);

                if (this.customPreGUI != null)
                {
                    this.customPreGUI();
                }

                bindMode = (DirectionBinding.BindMode)CFGUI.EnumPopup(new GUIContent("Bind mode"),
                                                                      bindMode, 70);

                bindDiagonals = EditorGUILayout.ToggleLeft(new GUIContent("Bind diagonals",
                                                                          "Bind diagonal directions separately. When turned off, diagonal directions are translated into combinations of main directions."),
                                                           bindDiagonals, GUILayout.MinWidth(30));

                EditorGUILayout.Space();

                this.dirN.Draw(bind.dirBindingN, rig);
                this.dirAny.Draw(bind.dirBindingAny, rig);

                this.dirU.Draw(bind.dirBindingU, rig);
                if (bindDiagonals)
                {
                    this.dirUR.Draw(bind.dirBindingUR, rig);
                }

                this.dirR.Draw(bind.dirBindingR, rig);
                if (bindDiagonals)
                {
                    this.dirDR.Draw(bind.dirBindingDR, rig);
                }

                this.dirD.Draw(bind.dirBindingD, rig);
                if (bindDiagonals)
                {
                    this.dirDL.Draw(bind.dirBindingDL, rig);
                }

                this.dirL.Draw(bind.dirBindingL, rig);
                if (bindDiagonals)
                {
                    this.dirUL.Draw(bind.dirBindingUL, rig);
                }

                CFGUI.EndIndentedVertical();

                GUILayout.Space(InputBindingGUIUtils.VERT_MARGIN);
            }

            EditorGUILayout.EndVertical();


            if ((bindingEnabled != bind.enabled) ||
                (bindMode != bind.bindMode) ||
                (bindDiagonals != bind.bindDiagonals))
            {
                CFGUI.CreateUndo("Direction Binding modification.", this.undoObject);

                bind.enabled       = bindingEnabled;
                bind.bindDiagonals = bindDiagonals;
                bind.bindMode      = bindMode;

                CFGUI.EndUndo(this.undoObject);
            }
        }
Beispiel #10
0
 // -----------------
 static public InputRig GetRigFromSelection(InputRig prevSel, bool searchForAnythingIfNothingIsSelected)
 {
     return((InputRig)GetComponentFromSelectionEx(typeof(InputRig), prevSel, searchForAnythingIfNothingIsSelected));
 }
Beispiel #11
0
        // ------------------
        public void Draw(TouchGestureStateBinding bind, TouchGestureConfig config, InputRig rig)
        {
            bool bindingEnabled = bind.enabled;


            //EditorGUILayout.BeginVertical();

            //if (bindingEnabled = EditorGUILayout.ToggleLeft(this.labelContent, bindingEnabled, GUILayout.MinWidth(30), GUILayout.ExpandWidth(true)))
            //	{
            //	CFGUI.BeginIndentedVertical();

            if (InspectorUtils.BeginIndentedSection(this.labelContent, ref bindingEnabled))
            {
                InspectorUtils.BeginIndentedSection(new GUIContent("Press bindings"));

                this.rawPressBinding.Draw(bind.rawPressBinding, rig);
                this.rawPressMousePosBindingInsp.Draw(bind.rawPressMousePosBinding, rig);
                EditorGUILayout.Space();

                this.normalPressBinding.Draw(bind.normalPressBinding, rig);
                this.normalPressMousePosBindingInsp.Draw(bind.normalPressMousePosBinding, rig);
                EditorGUILayout.Space();

                if ((config == null) || config.detectLongPress)
                {
                    this.longPressBinding.Draw(bind.longPressBinding, rig);
                    this.longPressMousePosBindingInsp.Draw(bind.longPressMousePosBinding, rig);
                }

                EditorGUILayout.Space();

                this.rawPressEmuTouchInsp.Draw(bind.rawPressEmuTouchBinding, rig);
                this.normalPressEmuTouchInsp.Draw(bind.normalPressEmuTouchBinding, rig);

                if ((config == null) || config.detectLongPress)
                {
                    this.longPressEmuTouchInsp.Draw(bind.longPressEmuTouchBinding, rig);
                }


                InspectorUtils.EndIndentedSection();

                if ((config == null) || (config.maxTapCount >= 1) || (config.detectLongTap))
                {
                    InspectorUtils.BeginIndentedSection(new GUIContent("Tap bindings"));

                    if ((config == null) || (config.maxTapCount >= 1))
                    {
                        this.tapBinding.Draw(bind.tapBinding, rig);
                        this.tapMousePosBindingInsp.Draw(bind.tapMousePosBinding, rig);
                        EditorGUILayout.Space();
                    }

                    if ((config == null) || (config.maxTapCount >= 2))
                    {
                        this.doubleTapBinding.Draw(bind.doubleTapBinding, rig);
                        this.doubleTapMousePosBindingInsp.Draw(bind.doubleTapMousePosBinding, rig);
                        EditorGUILayout.Space();
                    }


                    if ((config == null) || (config.detectLongPress && config.detectLongTap))
                    {
                        this.longTapBinding.Draw(bind.longTapBinding, rig);
                        this.longTapMousePosBindingInsp.Draw(bind.longTapMousePosBinding, rig);
                        EditorGUILayout.Space();
                    }

                    InspectorUtils.EndIndentedSection();
                }


                InspectorUtils.BeginIndentedSection(new GUIContent("Swipe bindings"));

                this.normalPressSwipeHorzAxisBinding.Draw(bind.normalPressSwipeHorzAxisBinding, rig);
                this.normalPressSwipeVertAxisBinding.Draw(bind.normalPressSwipeVertAxisBinding, rig);
                this.normalPressSwipeMousePosBindingInsp.Draw(bind.normalPressSwipeMousePosBinding, rig);
                this.normalPressSwipeDirBinding.Draw(bind.normalPressSwipeDirBinding, rig);
                this.normalPressSwipeJoyBinding.Draw(bind.normalPressSwipeJoyBinding, rig);

                if ((config == null) || config.detectLongPress)
                {
                    this.longPressSwipeHorzAxisBinding.Draw(bind.longPressSwipeHorzAxisBinding, rig);
                    this.longPressSwipeVertAxisBinding.Draw(bind.longPressSwipeVertAxisBinding, rig);
                    this.longPressSwipeMousePosBindingInsp.Draw(bind.longPressSwipeMousePosBinding, rig);
                    this.longPressSwipeDirBinding.Draw(bind.longPressSwipeDirBinding, rig);
                    this.longPressSwipeJoyBinding.Draw(bind.longPressSwipeJoyBinding, rig);
                }

                InspectorUtils.EndIndentedSection();

                InspectorUtils.BeginIndentedSection(new GUIContent("Scroll bindings"));
                this.normalPressScrollHorzBinding.Draw(bind.normalPressScrollHorzBinding, rig);
                this.normalPressScrollVertBinding.Draw(bind.normalPressScrollVertBinding, rig);

                if ((config == null) || config.detectLongPress)
                {
                    this.longPressScrollHorzBinding.Draw(bind.longPressScrollHorzBinding, rig);
                    this.longPressScrollVertBinding.Draw(bind.longPressScrollVertBinding, rig);
                }
                InspectorUtils.EndIndentedSection();



                if (this.customPostGUICallback != null)
                {
                    InspectorUtils.BeginIndentedSection(new GUIContent("Other"));

                    this.customPostGUICallback();

                    InspectorUtils.EndIndentedSection();
                }


                InspectorUtils.EndIndentedSection();
                //CFGUI.EndIndentedVertical();
                //GUILayout.Space(InputBindingGUIUtils.VERT_MARGIN);
            }

            //EditorGUILayout.EndVertical();



            if ((bindingEnabled != bind.enabled))
            {
                CFGUI.CreateUndo("Touch Binding modification.", this.undoObject);

                bind.enabled = bindingEnabled;

                CFGUI.EndUndo(this.undoObject);
            }
        }
Beispiel #12
0
        // ------------------------
        static public void CreateContextMenuForKeyBinding(Object panelOrRig, KeyCode key, System.Action onRefreshCallback = null)
        {
            InputRig          rig   = (panelOrRig as InputRig);
            TouchControlPanel panel = (panelOrRig as TouchControlPanel);

            string axisName = null;

            //bool displayPanelName = false;

            if (panel != null)
            {
                rig = panel.rig;
            }

            else if (rig != null)
            {
                // Auto Select panel...

                panel = TouchControlWizardUtils.GetRigPanel(rig);
                //displayPanelName = true;
            }
            else
            {
                return;
            }


            List <TouchControl> controlList = rig.GetTouchControls();


            GenericMenu menu = new GenericMenu();

            string commandName = (string.IsNullOrEmpty(axisName) ? ("\"" + key.ToString() + "\" keycode ") : ("\"" + axisName + "\" axis "));

            menu.AddDisabledItem(new GUIContent("Actions for : " + commandName));
            menu.AddSeparator("");



            {
                UniversalBindingAssignment.AddBindingContainerToMenu(menu, rig, onRefreshCallback, BindingDescription.BindingType.Digital, commandName,
                                                                     "Bind to Input Rig/", rig, key, null); //, null);


                menu.AddSeparator("");

                if (panel == null)
                {
                    menu.AddDisabledItem(new GUIContent("Add a Touch Control Panel to this rig to create and bind commands to Touch Controls!"));
                }
                else
                {
                    UniversalBindingAssignment.AddControlListBindingsToMenu(menu, controlList, onRefreshCallback,
                                                                            BindingDescription.BindingType.Digital, commandName, "Bind to Touch Controls/", key, null); // true); //, null);


                    menu.AddSeparator("");


                    AddTouchControlCreationItemsToMenuForAxisOrKey(menu, panel, null, key, onRefreshCallback);
                }
            }

            menu.ShowAsContext();
        }
Beispiel #13
0
            // ----------------------
            static public void AddMenuItem(GenericMenu menu, string axisName, string menuPath, InputRig.AxisType axisType, InputRig rig, System.Action callback)
            {
                AxisCreationMenuItem o = new AxisCreationMenuItem();

                string itemName = "";

                o.axisName = axisName;
                o.axisType = axisType;
                o.callback = callback;
                o.rig      = rig;

                itemName = "Create \"" + axisName + "\" " + axisType.ToString() + " axis!";

                menu.AddItem(new GUIContent(menuPath + itemName), false, o.Execute);
            }
Beispiel #14
0
 // -----------------
 override protected bool OnIsBoundToKey(KeyCode keycode, InputRig rig)
 {
     return(this.enabled && (this.keyList.Count > 0) && (this.keyList.IndexOf(keycode) >= 0));      //(this.key == keycode));
 }
Beispiel #15
0
 static public string GetUniqueJoystickName(InputRig rig)
 {
     return(GetUniqueControlName(rig, typeof(ControlFreak2.TouchJoystick), "Joystick-"));
 }
Beispiel #16
0
 // --------------------
 override protected bool OnIsBoundToAxis(string axisName, InputRig rig)
 {
     return(this.enabled && (this.axisList.Count > 0) && (this.axisList.FindIndex(x => (x.axisName == axisName)) >= 0));      //(this.axisName == axisName));
 }
Beispiel #17
0
 static public string GetUniqueTrackPadName(InputRig rig)
 {
     return(GetUniqueControlName(rig, typeof(ControlFreak2.TouchTrackPad), "TrackPad-"));
 }
Beispiel #18
0
 public bool IsBoundToAxis(string axisName, InputRig rig)
 {
     return(this.OnIsBoundToAxis(axisName, rig));
 }
Beispiel #19
0
 static public string GetUniqueWheelName(InputRig rig)
 {
     return(GetUniqueControlName(rig, typeof(ControlFreak2.TouchSteeringWheel), "Wheel-"));
 }
Beispiel #20
0
 virtual protected bool OnIsBoundToAxis(string axisName, InputRig rig)
 {
     return(false);
 }
Beispiel #21
0
 static public string GetUniqueTouchZoneName(InputRig rig)
 {
     return(GetUniqueControlName(rig, typeof(ControlFreak2.SuperTouchZone), "TouchZone-"));
 }
Beispiel #22
0
 // ---------------------
 public bool IsInEffect(InputRig rig)
 {
     return(rig.rigSwitches.GetSwitchState(this.name, ref this.cachedId, this.disableWhenSwitchIsOff) != this.disableWhenSwitchIsOff);
 }
Beispiel #23
0
 static public string GetUniqueTouchSplitterName(InputRig rig)
 {
     return(GetUniqueControlName(rig, typeof(ControlFreak2.TouchSplitter), "TouchSplitter-"));
 }
 // -----------------
 public SwitchCreationParams(InputRig rig, string name)
 {
     this.rig  = rig;
     this.name = name;
 }
Beispiel #25
0
 // -----------------
 public AxisCreationParams(InputRig rig, string name, InputRig.AxisType axisType)
 {
     this.rig      = rig;
     this.name     = name;
     this.axisType = axisType;
 }
Beispiel #26
0
        // ------------------------
        static public void CreateContextMenuForMousePositionBinding(Object panelOrRig, System.Action onRefreshCallback = null)
        {
            InputRig          rig   = (panelOrRig as InputRig);
            TouchControlPanel panel = (panelOrRig as TouchControlPanel);

            //bool displayPanelName = false;

            if (panel != null)
            {
                rig = panel.rig;
            }

            else if (rig != null)
            {
                // Auto Select panel...

                panel = TouchControlWizardUtils.GetRigPanel(rig);
                //displayPanelName = true;
            }
            else
            {
                return;
            }


            List <TouchControl> controlList = rig.GetTouchControls();


            GenericMenu menu = new GenericMenu();


            string commandName = ("Mouse Position ");

            menu.AddDisabledItem(new GUIContent("Actions for : " + commandName));
            menu.AddSeparator("");

            UniversalBindingAssignment.AddBindingContainerToMenu(menu, rig, onRefreshCallback, BindingDescription.BindingType.MousePos, commandName,
                                                                 "Bind to Input Rig/", rig);

            menu.AddSeparator("");

            if (panel == null)
            {
                menu.AddDisabledItem(new GUIContent("Add a Touch Control Panel to this rig to create and bind commands to Touch Controls!"));
            }
            else
            {
                UniversalBindingAssignment.AddControlListBindingsToMenu(menu, controlList, onRefreshCallback,
                                                                        BindingDescription.BindingType.MousePos, commandName, "Bind to Touch Controls/");

                menu.AddSeparator("");



                int mouseTargetMaxId = CFUtils.GetEnumMaxValue(typeof(SuperTouchZoneCreationWizard.BindingSetup.MouseBindingTarget));

                for (int i = 1; i <= 2; ++i)
                {
                    for (int j = 1; j <= mouseTargetMaxId; ++j)
                    {
                        SuperTouchZoneCreationWizard.BindingSetup.MouseBindingTarget
                            mouseTarget = (SuperTouchZoneCreationWizard.BindingSetup.MouseBindingTarget)j;

                        WizardMenuItem.AddToMenu(menu, "Create a Super Touch Zone/Super Touch Zone with " + commandName + "bound to [" +
                                                 ((i == 1) ? "Single-finger" : "Two-finger") + mouseTarget.ToString() + "]...", panel, typeof(SuperTouchZoneCreationWizard),
                                                 SuperTouchZoneCreationWizard.BindingSetup.MousePos(i, mouseTarget), onRefreshCallback);
                    }
                }

                menu.AddSeparator("Create a Super Touch Zone/");

                WizardMenuItem.AddToMenu(menu, "Create a Super Touch Zone/Super Touch Zone...", panel,
                                         typeof(SuperTouchZoneCreationWizard), null, onRefreshCallback);
            }

            menu.ShowAsContext();
        }
Beispiel #27
0
        // ------------------------
        static public void CreateContextMenuForEmuTouchBinding(Object panelOrRig, System.Action onRefreshCallback = null)
        {
            InputRig          rig   = (panelOrRig as InputRig);
            TouchControlPanel panel = (panelOrRig as TouchControlPanel);

            //bool displayPanelName = false;

            if (panel != null)
            {
                rig = panel.rig;
            }

            else if (rig != null)
            {
                // Auto Select panel...

                panel = TouchControlWizardUtils.GetRigPanel(rig);
                //displayPanelName = true;
            }
            else
            {
                return;
            }


            List <TouchControl> controlList = rig.GetTouchControls();


            GenericMenu menu = new GenericMenu();


            string commandName = ("Emuulated Touch ");

            menu.AddDisabledItem(new GUIContent("Actions for : " + commandName));
            menu.AddSeparator("");

            UniversalBindingAssignment.AddBindingContainerToMenu(menu, rig, onRefreshCallback, BindingDescription.BindingType.EmuTouch, commandName,
                                                                 "Bind to Input Rig/", rig);

            menu.AddSeparator("");

            if (panel == null)
            {
                menu.AddDisabledItem(new GUIContent("Add a Touch Control Panel to this rig to create and bind commands to Touch Controls!"));
            }
            else
            {
                UniversalBindingAssignment.AddControlListBindingsToMenu(menu, controlList, onRefreshCallback,
                                                                        BindingDescription.BindingType.EmuTouch, commandName, "Bind to Touch Controls/");

                menu.AddSeparator("");



                WizardMenuItem.AddToMenu(menu, "Create a Super Touch Zone/Super Touch Zone with " + commandName + "bound to [Single-finger Touch]...", panel,
                                         typeof(SuperTouchZoneCreationWizard), SuperTouchZoneCreationWizard.BindingSetup.EmuTouch(1), onRefreshCallback);
                WizardMenuItem.AddToMenu(menu, "Create a Super Touch Zone/Super Touch Zone with " + commandName + "bound to [Two-finger Touch]...", panel,
                                         typeof(SuperTouchZoneCreationWizard), SuperTouchZoneCreationWizard.BindingSetup.EmuTouch(2), onRefreshCallback);


                menu.AddSeparator("Create a Super Touch Zone/");

                WizardMenuItem.AddToMenu(menu, "Create a Super Touch Zone/Super Touch Zone...", panel,
                                         typeof(SuperTouchZoneCreationWizard), null, onRefreshCallback);
            }

            menu.ShowAsContext();
        }