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