Example #1
0
        private GuiWidget CreateAxisScalingControl(string axis, int axisIndex)
        {
            FlowLayoutWidget leftToRight = new FlowLayoutWidget();

            leftToRight.Padding = new BorderDouble(5, 3);

            TextWidget sizeDescription = new TextWidget("{0}:".FormatWith(axis), textColor: ActiveTheme.Instance.PrimaryTextColor);

            sizeDescription.VAnchor = Agg.UI.VAnchor.ParentCenter;
            leftToRight.AddChild(sizeDescription);

            sizeDisplay[axisIndex] = new EditableNumberDisplay(view3DWidget.textImageButtonFactory, "100", "1000.00");
            sizeDisplay[axisIndex].EditComplete += (sender, e) =>
            {
                if (view3DWidget.HaveSelection)
                {
                    Matrix4X4 startingTransform = view3DWidget.SelectedMeshGroupTransform;
                    SetNewModelSize(sizeDisplay[axisIndex].GetValue(), axisIndex);
                    sizeDisplay[axisIndex].SetDisplayString("{0:0.00}".FormatWith(view3DWidget.SelectedMeshGroup.GetAxisAlignedBoundingBox().Size[axisIndex]));
                    OnSelectedTransformChanged(null, null);
                    view3DWidget.AddUndoForSelectedMeshGroupTransform(startingTransform);
                }
                else
                {
                    sizeDisplay[axisIndex].SetDisplayString("---");
                }
            };

            leftToRight.AddChild(sizeDisplay[axisIndex]);

            return(leftToRight);
        }
Example #2
0
        protected override void AddChildElements()
        {
            AltGroupBox fanControlsGroupBox = new AltGroupBox(new TextWidget("Fan".Localize(), pointSize: 18, textColor: ActiveTheme.Instance.SecondaryAccentColor));

            fanControlsGroupBox.Margin      = new BorderDouble(0);
            fanControlsGroupBox.BorderColor = ActiveTheme.Instance.PrimaryTextColor;
            fanControlsGroupBox.HAnchor    |= Agg.UI.HAnchor.ParentLeftRight;
            fanControlsGroupBox.VAnchor     = Agg.UI.VAnchor.FitToChildren;

            this.HAnchor = Agg.UI.HAnchor.ParentLeftRight;
            this.AddChild(fanControlsGroupBox);

            FlowLayoutWidget leftToRight = new FlowLayoutWidget();

            FlowLayoutWidget fanControlsLayout = new FlowLayoutWidget(FlowDirection.TopToBottom);

            fanControlsLayout.Padding = new BorderDouble(3, 5, 3, 0);
            {
                fanControlsLayout.AddChild(CreateFanControls());
            }

            leftToRight.AddChild(fanControlsLayout);
            SetDisplayAttributes();

            fanSpeedDisplay = new EditableNumberDisplay(textImageButtonFactory, "{0}%".FormatWith(PrinterConnectionAndCommunication.Instance.FanSpeed0To255.ToString()), "100%");
            fanSpeedDisplay.EditComplete += (sender, e) =>
            {
                PrinterConnectionAndCommunication.Instance.FanSpeed0To255 = (int)(fanSpeedDisplay.GetValue() * 255.5 / 100);
            };
            leftToRight.AddChild(fanSpeedDisplay);

            fanControlsGroupBox.AddChild(leftToRight);
        }
		protected override void AddChildElements()
		{
			AltGroupBox fanControlsGroupBox = new AltGroupBox(new TextWidget("Fan".Localize(), pointSize: 18, textColor: ActiveTheme.Instance.SecondaryAccentColor));

			fanControlsGroupBox.Margin = new BorderDouble(0);
			fanControlsGroupBox.BorderColor = ActiveTheme.Instance.PrimaryTextColor;
			fanControlsGroupBox.HAnchor |= Agg.UI.HAnchor.ParentLeftRight;
			fanControlsGroupBox.VAnchor = Agg.UI.VAnchor.FitToChildren;

			this.HAnchor = Agg.UI.HAnchor.ParentLeftRight;
			this.AddChild(fanControlsGroupBox);

			FlowLayoutWidget leftToRight = new FlowLayoutWidget();

			FlowLayoutWidget fanControlsLayout = new FlowLayoutWidget(FlowDirection.TopToBottom);
			fanControlsLayout.Padding = new BorderDouble(3, 5, 3, 0);
			{
				fanControlsLayout.AddChild(CreateFanControls());
			}

			leftToRight.AddChild(fanControlsLayout);
			SetDisplayAttributes();

			fanSpeedDisplay = new EditableNumberDisplay(textImageButtonFactory, "{0}%".FormatWith(PrinterConnectionAndCommunication.Instance.FanSpeed0To255.ToString()), "100%");
			fanSpeedDisplay.EditComplete += (sender, e) =>
			{
				PrinterConnectionAndCommunication.Instance.FanSpeed0To255 = (int)(fanSpeedDisplay.GetValue() * 255.5 / 100);
			};
			leftToRight.AddChild(fanSpeedDisplay);

			fanControlsGroupBox.AddChild(leftToRight);
		}
		private GuiWidget createAxisScalingControl(string axis, int axisIndex)
		{
			FlowLayoutWidget leftToRight = new FlowLayoutWidget();
			leftToRight.Padding = new BorderDouble(5, 3);

			TextWidget sizeDescription = new TextWidget("{0}:".FormatWith(axis), textColor: ActiveTheme.Instance.PrimaryTextColor);
			sizeDescription.VAnchor = Agg.UI.VAnchor.ParentCenter;
			leftToRight.AddChild(sizeDescription);

			sizeDisplay[axisIndex] = new EditableNumberDisplay(textImageButtonFactory, "100", "1000.00");
			sizeDisplay[axisIndex].EditComplete += (sender, e) =>
			{
				if (HaveSelection)
				{
					SetNewModelSize(sizeDisplay[axisIndex].GetValue(), axisIndex);
					sizeDisplay[axisIndex].SetDisplayString("{0:0.00}".FormatWith(SelectedMeshGroup.GetAxisAlignedBoundingBox().Size[axisIndex]));
					UpdateSizeInfo();
				}
				else
				{
					sizeDisplay[axisIndex].SetDisplayString("---");
				}
			};

			leftToRight.AddChild(sizeDisplay[axisIndex]);

			return leftToRight;
		}
Example #5
0
        private FanControls(PrinterConnection printerConnection, ThemeConfig theme)
            : base(FlowDirection.TopToBottom)
        {
            this.HAnchor = HAnchor.Stretch;
            this.HAnchor = HAnchor.Stretch;


            //Matt's test editing to add a on/off toggle switch
            bool fanActive = printerConnection.FanSpeed0To255 != 0;

            Stopwatch timeSinceLastManualSend = new Stopwatch();

            var settingsRow = new SettingsRow(
                "Part Cooling Fan".Localize(),
                null,
                theme,
                fullRowSelect: true);

            this.AddChild(settingsRow);

            var container = new FlowLayoutWidget();

            settingsRow.AddChild(container);
            settingsRow.BorderColor = Color.Transparent;

            fanSpeedDisplay = new EditableNumberDisplay(0, "100")
            {
                DisplayFormat = "{0:0}",
                Value         = printerConnection.FanSpeed0To255 * 100 / 255
            };
            fanSpeedDisplay.ValueChanged += (sender, e) =>
            {
                // limit the rate we can send this message to 2 per second so we don't get in a crazy toggle state.
                if (!timeSinceLastManualSend.IsRunning ||
                    timeSinceLastManualSend.ElapsedMilliseconds > 500)
                {
                    timeSinceLastManualSend.Restart();
                    printerConnection.FanSpeed0To255 = (int)(fanSpeedDisplay.Value * 255 / 100 + .5);
                }
            };
            container.AddChild(fanSpeedDisplay);

            container.Selectable = true;

            // put in %
            container.AddChild(new TextWidget("%", pointSize: 10, textColor: ActiveTheme.Instance.PrimaryTextColor)
            {
                VAnchor = VAnchor.Center
            });

            var toggleSwitch = new RoundedToggleSwitch(theme)
            {
                Margin  = new BorderDouble(5, 0),
                VAnchor = VAnchor.Center
            };

            toggleSwitch.CheckedStateChanged += (s, e) =>
            {
                if (!timeSinceLastManualSend.IsRunning ||
                    timeSinceLastManualSend.ElapsedMilliseconds > 500)
                {
                    timeSinceLastManualSend.Restart();
                    if (toggleSwitch.Checked)
                    {
                        printerConnection.FanSpeed0To255 = 255;
                    }
                    else
                    {
                        printerConnection.FanSpeed0To255 = 0;
                    }
                }
            };
            container.AddChild(toggleSwitch);
            settingsRow.ActionWidget = toggleSwitch;

            // CreateFanControls
            printerConnection.FanSpeedSet.RegisterEvent((s, e) =>
            {
                if ((int)printerConnection.FanSpeed0To255 > 0)
                {
                    toggleSwitch.Checked = true;
                }
                else
                {
                    toggleSwitch.Checked = false;
                }

                fanSpeedDisplay.Value = printerConnection.FanSpeed0To255 * 100 / 255;
            }
                                                        , ref unregisterEvents);
        }