Example #1
0
        protected ThreeWayToggleSwitch AddRocker(string name, Point posn, Size size,
                                                 ThreeWayToggleSwitchPosition defaultPosition, ThreeWayToggleSwitchType defaultType,
                                                 string interfaceDeviceName, string interfaceElementName, bool fromCenter,
                                                 string positionOneImage   = "{Helios}/Images/Toggles/round-up.png",
                                                 string positionTwoImage   = "{Helios}/Images/Toggles/round-norm.png",
                                                 string positionThreeImage = "{Helios}/Images/Toggles/round-down.png",
                                                 LinearClickType clickType = LinearClickType.Touch,
                                                 bool horizontal           = false)
        {
            string componentName        = GetComponentName(name);
            ThreeWayToggleSwitch rocker = new ThreeWayToggleSwitch
            {
                Top                = posn.Y,
                Left               = posn.X,
                Width              = size.Width,
                Height             = size.Height,
                DefaultPosition    = defaultPosition,
                PositionOneImage   = positionOneImage,
                PositionTwoImage   = positionTwoImage,
                PositionThreeImage = positionThreeImage,
                SwitchType         = defaultType,
                Name               = componentName,
                ClickType          = clickType
            };

            if (horizontal)
            {
                rocker.Rotation    = HeliosVisualRotation.CW;
                rocker.Orientation = ToggleSwitchOrientation.Horizontal;
            }

            Children.Add(rocker);
            foreach (IBindingTrigger trigger in rocker.Triggers)
            {
                AddTrigger(trigger, componentName);
            }
            AddAction(rocker.Actions["set.position"], componentName);
            AddDefaultOutputBinding(
                childName: componentName,
                deviceTriggerName: "position one.entered",
                interfaceActionName: interfaceDeviceName + ".push up." + interfaceElementName
                );
            AddDefaultOutputBinding(
                childName: componentName,
                deviceTriggerName: "position two.entered",
                interfaceActionName: interfaceDeviceName + ".release." + interfaceElementName
                );
            AddDefaultOutputBinding(
                childName: componentName,
                deviceTriggerName: "position three.entered",
                interfaceActionName: interfaceDeviceName + ".push down." + interfaceElementName
                );

            AddDefaultInputBinding(
                childName: componentName,
                interfaceTriggerName: interfaceDeviceName + "." + interfaceElementName + ".changed",
                deviceActionName: "set.position");

            return(rocker);
        }
Example #2
0
        protected ThreeWayToggleSwitch AddThreeWayToggle(string name, Point pos, Size size,
                                                         ThreeWayToggleSwitchPosition defaultPosition, ThreeWayToggleSwitchType switchType,
                                                         string interfaceDeviceName, string interfaceElementName, bool fromCenter,
                                                         string positionOneImage   = "{Helios}/Images/Toggles/round-up.png",
                                                         string positionTwoImage   = "{Helios}/Images/Toggles/round-norm.png",
                                                         string positionThreeImage = "{Helios}/Images/Toggles/round-down.png",
                                                         LinearClickType clickType = LinearClickType.Swipe,
                                                         bool horizontal           = false,
                                                         bool horizontalRender     = false)
        {
            string componentName        = GetComponentName(name);
            ThreeWayToggleSwitch toggle = new ThreeWayToggleSwitch
            {
                Top                = pos.Y,
                Left               = pos.X,
                Width              = size.Width,
                Height             = size.Height,
                DefaultPosition    = defaultPosition,
                PositionOneImage   = positionOneImage,
                PositionTwoImage   = positionTwoImage,
                PositionThreeImage = positionThreeImage,
                SwitchType         = switchType,
                Name               = componentName
            };

            toggle.ClickType = clickType;
            if (horizontal)
            {
                toggle.Orientation = ToggleSwitchOrientation.Horizontal;
            }
            else
            {
                toggle.Orientation = ToggleSwitchOrientation.Vertical;
            }
            if (horizontalRender)
            {
                toggle.Rotation    = HeliosVisualRotation.CW;
                toggle.Orientation = ToggleSwitchOrientation.Horizontal;
            }

            Children.Add(toggle);
            foreach (IBindingTrigger trigger in toggle.Triggers)
            {
                AddTrigger(trigger, componentName);
            }
            AddAction(toggle.Actions["set.position"], componentName);

            AddDefaultOutputBinding(
                childName: componentName,
                deviceTriggerName: "position.changed",
                interfaceActionName: interfaceDeviceName + ".set." + interfaceElementName
                );
            AddDefaultInputBinding(
                childName: componentName,
                interfaceTriggerName: interfaceDeviceName + "." + interfaceElementName + ".changed",
                deviceActionName: "set.position");

            return(toggle);
        }
Example #3
0
        protected ToggleSwitch AddToggleSwitch(string name, Point posn, Size size, ToggleSwitchPosition defaultPosition,
                                               string positionOneImage, string positionTwoImage, ToggleSwitchType defaultType, LinearClickType clickType, string interfaceDeviceName, string interfaceElementName,
                                               bool fromCenter, bool horizontal = false)
        {
            if (fromCenter)
            {
                posn = FromCenter(posn, size);
            }
            string componentName = GetComponentName(name);

            ToggleSwitch newSwitch = new ToggleSwitch
            {
                Name             = componentName,
                SwitchType       = defaultType,
                ClickType        = clickType,
                DefaultPosition  = defaultPosition,
                PositionOneImage = positionOneImage,
                PositionTwoImage = positionTwoImage,
                Width            = size.Width,
                Height           = size.Height,
                Top  = posn.Y,
                Left = posn.X
            };

            if (horizontal)
            {
                newSwitch.Rotation    = HeliosVisualRotation.CW;
                newSwitch.Orientation = ToggleSwitchOrientation.Horizontal;
            }

            Children.Add(newSwitch);

            foreach (IBindingTrigger trigger in newSwitch.Triggers)
            {
                AddTrigger(trigger, componentName);
            }
            AddAction(newSwitch.Actions["set.position"], componentName);

            AddDefaultOutputBinding(
                childName: componentName,
                deviceTriggerName: "position.changed",
                interfaceActionName: interfaceDeviceName + ".set." + interfaceElementName
                );
            AddDefaultInputBinding(
                childName: componentName,
                interfaceTriggerName: interfaceDeviceName + "." + interfaceElementName + ".changed",
                deviceActionName: "set.position");

            return(newSwitch);
        }
Example #4
0
        protected ToggleSwitch AddToggleSwitch(string name, Point posn, Size size, ToggleSwitchPosition defaultPosition,
                                               string positionOneImage, string positionTwoImage, ToggleSwitchType defaultType, LinearClickType clickType,
                                               string interfaceDeviceName, string interfaceElementName,
                                               bool fromCenter, bool horizontal = false, string interfaceIndicatorElementName = "")
        {
            if (fromCenter)
            {
                posn = FromCenter(posn, size);
            }

            string componentName = GetComponentName(name);

            ToggleSwitch newSwitch = new ToggleSwitch
            {
                Name            = componentName,
                SwitchType      = defaultType,
                ClickType       = clickType,
                DefaultPosition = defaultPosition,
                HasIndicator    = true
            };

            if (interfaceIndicatorElementName != "")
            {
                // if there is an indicatorElementname then the image names will be partial
                // and need to be completed
                newSwitch.PositionOneImage            = positionOneImage + " off.png";
                newSwitch.PositionTwoImage            = positionTwoImage + " off.png";
                newSwitch.PositionOneIndicatorOnImage = positionOneImage + " on.png";
                newSwitch.PositionTwoIndicatorOnImage = positionTwoImage + " on.png";
                newSwitch.HasIndicator = true;
            }
            else
            {
                newSwitch.PositionOneImage = positionOneImage;
                newSwitch.PositionTwoImage = positionTwoImage;
                newSwitch.HasIndicator     = false;
            }

            newSwitch.Width  = size.Width;
            newSwitch.Height = size.Height;

            newSwitch.Top  = posn.Y;
            newSwitch.Left = posn.X;
            if (horizontal)
            {
                newSwitch.Rotation    = HeliosVisualRotation.CW;
                newSwitch.Orientation = ToggleSwitchOrientation.Horizontal;
            }

            Children.Add(newSwitch);

            foreach (IBindingTrigger trigger in newSwitch.Triggers)
            {
                AddTrigger(trigger, componentName);
            }

            AddAction(newSwitch.Actions["set.position"], componentName);

            AddDefaultOutputBinding(
                componentName,
                "position.changed",
                interfaceDeviceName + ".set." + interfaceElementName
                );
            AddDefaultInputBinding(
                componentName,
                interfaceDeviceName + "." + interfaceElementName + ".changed",
                "set.position");

            if (newSwitch.HasIndicator)
            {
                AddAction(newSwitch.Actions["set.indicator"], componentName);

                AddDefaultInputBinding(
                    componentName,
                    interfaceDeviceName + "." + interfaceIndicatorElementName + ".changed",
                    "set.indicator");
            }

            return(newSwitch);
        }