private bool GetStateChangeInfo(Element2D element, string settingName, SlicerSettingsItem setting, string parentTag, out AdvancedPrintSettingsFrame.ErrorStateEnum oldState, out AdvancedPrintSettingsFrame.ErrorStateEnum currentState) { if (!tabsErrorWarningCount.ContainsKey(parentTag)) { tabsErrorWarningCount[parentTag] = new AdvancedPrintSettingsFrame.TabErrorStateCount(); } oldState = AdvancedPrintSettingsFrame.ErrorStateEnum.AllGood; var flag = false; if (settingErrorWarningState.ContainsKey(settingName)) { oldState = settingErrorWarningState[settingName]; } if (setting.HasError && setting.IsSettingOn) { currentState = AdvancedPrintSettingsFrame.ErrorStateEnum.Error; flag = true; if (!settingErrorWarningState.ContainsKey(settingName)) { settingErrorWarningState.Add(settingName, AdvancedPrintSettingsFrame.ErrorStateEnum.Error); } else { flag = settingErrorWarningState[settingName] != AdvancedPrintSettingsFrame.ErrorStateEnum.Error; settingErrorWarningState[settingName] = AdvancedPrintSettingsFrame.ErrorStateEnum.Error; } } else if (setting.HasWarning && setting.IsSettingOn) { currentState = AdvancedPrintSettingsFrame.ErrorStateEnum.Warning; flag = true; if (!settingErrorWarningState.ContainsKey(settingName)) { settingErrorWarningState.Add(settingName, AdvancedPrintSettingsFrame.ErrorStateEnum.Warning); } else { flag = settingErrorWarningState[settingName] != AdvancedPrintSettingsFrame.ErrorStateEnum.Warning; settingErrorWarningState[settingName] = AdvancedPrintSettingsFrame.ErrorStateEnum.Warning; } } else { currentState = AdvancedPrintSettingsFrame.ErrorStateEnum.AllGood; if (settingErrorWarningState.ContainsKey(settingName)) { settingErrorWarningState.Remove(settingName); flag = true; } element.Enabled = setting.IsSettingOn; if (!element.Enabled) { flag = true; } } return(flag); }
private void comboBoxChangedCallBack(ComboBoxWidget combobox) { var tag = combobox.tag; SlicerSettingsItem smartSlicerSetting = smartSlicerSettings[tag]; smartSlicerSetting.ParseUserValue(combobox.Value.ToString()); ProcessValidity(tag, smartSlicerSetting, combobox); }
private void EditBoxCallback(EditBoxWidget edit) { var tag = edit.tag; SlicerSettingsItem smartSlicerSetting = smartSlicerSettings[tag]; smartSlicerSetting.ParseUserValue(edit.Value.ToString()); ProcessValidity(tag, smartSlicerSetting, edit); }
private void UpdateGUIFromSetting(string name, SlicerSettingsItem setting) { if (tab_frame == null) { return; } Element2D childElement = tab_frame.FindChildElement(name); if (childElement == null) { return; } var userValue = setting.TranslateToUserValue(); switch (setting.GetItemType()) { case SettingItemType.IntType: case SettingItemType.FloatMMType: var editBoxWidget = childElement as EditBoxWidget; if (editBoxWidget != null) { editBoxWidget.Text = userValue; break; } break; case SettingItemType.BoolType: var buttonWidget = childElement as ButtonWidget; if (buttonWidget != null) { buttonWidget.Checked = bool.Parse(userValue); break; } break; case SettingItemType.FillPatternType: case SettingItemType.SupportPatternType: var comboBoxWidget = childElement as ComboBoxWidget; var settingsEnumItem = setting as SlicerSettingsEnumItem; if (comboBoxWidget != null && settingsEnumItem != null) { comboBoxWidget.Select = settingsEnumItem.ValueInt; break; } break; default: throw new NotImplementedException("GenerateAdvancedSettings was given an unknown setting"); } ProcessValidity(name, setting, childElement); }
private void CheckBoxCallback(ButtonWidget button) { var tag = button.tag; if (tag.StartsWith("InternalToGUI_")) { PrinterObject selectedPrinter = SelectedPrinter; var filament = (FilamentSpool)null; if (selectedPrinter != null) { filament = selectedPrinter.GetCurrentFilament(); } SlicerConnection.SlicerSettings.SmartCheckBoxCallBack(tag, button.Checked, filament); SyncAllSettingWithGUI(); } else { SlicerSettingsItem smartSlicerSetting = smartSlicerSettings[tag]; smartSlicerSetting.ParseUserValue(button.Value.ToString()); ProcessValidity(tag, smartSlicerSetting, button); } }
private void ProcessValidity(string settingName, SlicerSettingsItem setting, Element2D element) { Element2D parent = element.Parent; while (parent != null && string.IsNullOrEmpty(parent.tag)) { parent = parent.Parent; } if (parent == null) { return; } var tag = parent.tag; var num = GetStateChangeInfo(element, settingName, setting, tag, out ErrorStateEnum oldState, out ErrorStateEnum currentState) ? 1 : 0; Element2D childElement = element.Parent.FindChildElement(GetRangeText(settingName)); if (num != 0) { AdvancedPrintSettingsFrame.TabErrorStateCount tabErrorStateCount = tabsErrorWarningCount[tag]; switch (oldState) { case AdvancedPrintSettingsFrame.ErrorStateEnum.Warning: --tabErrorStateCount.Warnings; --globalWarningCount; if (tabErrorStateCount.Warnings == 0) { Image_Helper(GetWarningImageTag(tag), false); break; } break; case AdvancedPrintSettingsFrame.ErrorStateEnum.Error: --tabErrorStateCount.Errors; --globalErrorCount; if (tabErrorStateCount.Errors == 0) { Image_Helper(GetErrorImageTag(tag), false); break; } break; } Color4 color4 = DEFAULT_COLOR; var flag = true; switch (currentState) { case AdvancedPrintSettingsFrame.ErrorStateEnum.Warning: color4 = WARNING_COLOR; ++tabErrorStateCount.Warnings; ++globalWarningCount; if (tabErrorStateCount.Warnings == 1) { Image_Helper(GetWarningImageTag(tag), true); break; } break; case AdvancedPrintSettingsFrame.ErrorStateEnum.Error: color4 = ERROR_COLOR; ++tabErrorStateCount.Errors; ++globalErrorCount; if (tabErrorStateCount.Errors == 1) { Image_Helper(GetErrorImageTag(tag), true); break; } break; default: flag = false; break; } if (element is EditBoxWidget) { (element as EditBoxWidget).Color = color4; } if (childElement is TextWidget) { var textWidget = childElement as TextWidget; textWidget.Color = color4; textWidget.Visible = flag; } UpdateErrorWarningMessage(); } if (!(childElement is TextWidget)) { return; } (childElement as TextWidget).Text = setting.GetErrorMsg(); }