Example #1
0
        public override void OnUpdate()
        {
            base.OnUpdate();
            PrinterObject selectedPrinter = spooler_connection.SelectedPrinter;

            if (selectedPrinter != null && selectedPrinter.IsConnected())
            {
                if (selectedPrinter.isBusy && controls_enabled)
                {
                    controls_enabled = false;
                    DisableGroup(10001);
                    if (!selectedPrinter.Info.FirmwareIsInvalid)
                    {
                        DisableGroup(10003);
                    }
                }
                else if (!selectedPrinter.isBusy && !controls_enabled)
                {
                    controls_enabled = true;
                    EnableGroup(10001);
                    EnableGroup(10003);
                }
                if (selectedPrinter.Info.FirmwareIsInvalid)
                {
                    EnableGroup(10003);
                }

                if (selectedPrinter.Info.Status == PrinterStatus.Firmware_IsWaitingToPause || selectedPrinter.Info.Status == PrinterStatus.Firmware_PrintingPausedProcessing || selectedPrinter.Info.Status == PrinterStatus.Firmware_PrintingPaused)
                {
                    controls_enabled = false;
                    DisableGroup(10001);
                    DisableGroup(10003);
                }
                EnableGroup(10002);
                if (!selectedPrinter.HasHeatedBed)
                {
                    if (TabFrame.ChildList.Contains(advancedHeatedBedButton))
                    {
                        if (advancedHeatedBedButton.Checked)
                        {
                            basicButton.Checked = true;
                        }

                        TabFrame.RemoveChildElement(advancedHeatedBedButton);
                        advancedHeatedBedButton.Enabled = false;
                    }
                }
                else if (selectedPrinter.HasHeatedBed && !TabFrame.ChildList.Contains(advancedHeatedBedButton))
                {
                    TabFrame.AddChildElement(advancedHeatedBedButton);
                    advancedHeatedBedButton.Enabled = true;
                    TabFrame.RemoveChildElement(gCodeButton);
                    TabFrame.AddChildElement(gCodeButton);
                }
                if (!selectedPrinter.SDCardExtension.Available)
                {
                    if (!TabFrame.ChildList.Contains(sdCardButton))
                    {
                        return;
                    }

                    if (sdCardButton.Checked)
                    {
                        basicButton.Checked = true;
                    }

                    TabFrame.RemoveChildElement(sdCardButton);
                    sdCardButton.Enabled = false;
                }
                else
                {
                    if (!selectedPrinter.SDCardExtension.Available || TabFrame.ChildList.Contains(sdCardButton))
                    {
                        return;
                    }

                    TabFrame.AddChildElement(sdCardButton);
                    sdCardButton.Enabled = true;
                    TabFrame.RemoveChildElement(gCodeButton);
                    TabFrame.AddChildElement(gCodeButton);
                }
            }
            else
            {
                controls_enabled = false;
                DisableGroup(10001);
                DisableGroup(10002);
                DisableGroup(10003);
            }
        }