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); }
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); }
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); }
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); }