private void StringTextBox_LostFocus(object sender, EventArgs e) { if (_ocrEngine == null || !_ocrEngine.IsStarted) { return; } TextBox tb = sender as TextBox; string settingName = tb.Tag.ToString(); bool valueOk = true; string value = tb.Text; if (valueOk) { IOcrSettingDescriptor settingDescriptor = _ocrEngine.SettingManager.GetSettingDescriptor(settingName); if (settingDescriptor.StringNullAllowed && value.Length == 0) { value = null; } } if (valueOk) { SetSettingValue(settingName, value); } else { tb.Text = _ocrEngine.SettingManager.GetStringValue(settingName); tb.Focus(); } }
private void AddEnumSetting(IOcrSettingDescriptor settingDescriptor) { ComboBox cb = new ComboBox(); cb.DropDownStyle = ComboBoxStyle.DropDownList; cb.Width = _pnlSettings.ClientSize.Width - _edge * 2; cb.Location = new Point(_edge, _edge); cb.Anchor = AnchorStyles.Left | AnchorStyles.Top | AnchorStyles.Right; _pnlSettings.Controls.Add(cb); cb.SelectedItem = _ocrEngine.SettingManager.GetValue(settingDescriptor.Name); string[] members = settingDescriptor.GetEnumMemberFriendlyNames(); foreach (string member in members) { cb.Items.Add(member); } int value = _ocrEngine.SettingManager.GetEnumValue(settingDescriptor.Name); cb.SelectedIndex = value; cb.Tag = settingDescriptor.Name; cb.SelectedIndexChanged += new EventHandler(EnumComboBox_SelectedIndexChanged); }
private void AddEnumFlagsSetting(IOcrSettingDescriptor settingDescriptor) { CheckedListBox clb = new CheckedListBox(); clb.CheckOnClick = true; clb.Location = new Point(_edge, _edge); clb.Size = new Size(_pnlSettings.ClientSize.Width - _edge * 2, _pnlSettings.ClientSize.Height - _edge * 2); clb.Anchor = AnchorStyles.Left | AnchorStyles.Top | AnchorStyles.Right | AnchorStyles.Bottom; _pnlSettings.Controls.Add(clb); string[] memberNames = settingDescriptor.GetEnumMemberFriendlyNames(); int[] memberValues = settingDescriptor.GetEnumMemberValues(); int value = _ocrEngine.SettingManager.GetEnumValue(settingDescriptor.Name); for (int i = 0; i < memberNames.Length; i++) { int memberValue = memberValues[i]; if (memberValue != 0) { int index = clb.Items.Add(memberNames[i]); if ((memberValue & value) == memberValue) { clb.SetItemChecked(index, true); } } } clb.Tag = settingDescriptor.Name; clb.ItemCheck += new ItemCheckEventHandler(EnumFlagsCheckedListBox_ItemCheck); }
private void ShowCurrentSetting() { _pnlSettings.Controls.Clear(); if (_tvCategories.SelectedNode != null) { if (_tvCategories.SelectedNode.Tag != null) { // Get the setting string settingName = _tvCategories.SelectedNode.Tag.ToString(); IOcrSettingDescriptor settingDescriptor = _ocrEngine.SettingManager.GetSettingDescriptor(settingName); // Add a control for it switch (settingDescriptor.ValueType) { case OcrSettingValueType.Integer: AddIntegerSetting(settingDescriptor); break; case OcrSettingValueType.Enum: if (settingDescriptor.EnumIsFlags) { AddEnumFlagsSetting(settingDescriptor); } else { AddEnumSetting(settingDescriptor); } break; case OcrSettingValueType.Double: AddDoubleSetting(settingDescriptor); break; case OcrSettingValueType.Boolean: AddBooleanSetting(settingDescriptor); break; case OcrSettingValueType.Character: AddCharacterSetting(settingDescriptor); break; case OcrSettingValueType.String: AddStringSetting(settingDescriptor); break; default: break; } } } }
public void SetEngine(IOcrEngine engine) { _ocrEngine = engine; _tvCategories.BeginUpdate(); // Clear the old settings _tvCategories.Nodes.Clear(); // Get all the settings string[] settingNames = _ocrEngine.SettingManager.GetSettingNames(); TreeNode currentCatrgoryNode = null; foreach (string settingName in settingNames) { IOcrSettingDescriptor settingDescriptor = _ocrEngine.SettingManager.GetSettingDescriptor(settingName); if (settingDescriptor.ValueType == OcrSettingValueType.BeginCategory) { TreeNode catrgoryNode = new TreeNode(settingDescriptor.FriendlyName); if (currentCatrgoryNode != null) { currentCatrgoryNode.Nodes.Add(catrgoryNode); } else { _tvCategories.Nodes.Add(catrgoryNode); } catrgoryNode.Tag = null; currentCatrgoryNode = catrgoryNode; } else if (settingDescriptor.ValueType == OcrSettingValueType.EndCategory) { currentCatrgoryNode = currentCatrgoryNode.Parent; } else { TreeNode settingNode = new TreeNode(settingDescriptor.FriendlyName); settingNode.Tag = settingName; currentCatrgoryNode.Nodes.Add(settingNode); } } _tvCategories.ExpandAll(); _tvCategories.EndUpdate(); }
private void AddCharacterSetting(IOcrSettingDescriptor settingDescriptor) { TextBox tb = new TextBox(); tb.Width = _pnlSettings.ClientSize.Width - _edge * 2; tb.Location = new Point(_edge, _edge); tb.Anchor = AnchorStyles.Left | AnchorStyles.Top | AnchorStyles.Right; tb.MaxLength = 1; tb.Font = new System.Drawing.Font("Arial Unicode MS", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); _pnlSettings.Controls.Add(tb); tb.Text = _ocrEngine.SettingManager.GetCharacterValue(settingDescriptor.Name).ToString(); tb.Tag = settingDescriptor.Name; tb.LostFocus += new EventHandler(CharacterTextBox_LostFocus); }
private void AddBooleanSetting(IOcrSettingDescriptor settingDescriptor) { ComboBox cb = new ComboBox(); cb.DropDownStyle = ComboBoxStyle.DropDownList; cb.Width = _pnlSettings.ClientSize.Width - _edge * 2; cb.Location = new Point(_edge, _edge); cb.Anchor = AnchorStyles.Left | AnchorStyles.Top | AnchorStyles.Right; _pnlSettings.Controls.Add(cb); cb.Items.Add(true); cb.Items.Add(false); cb.SelectedItem = _ocrEngine.SettingManager.GetBooleanValue(settingDescriptor.Name); cb.Tag = settingDescriptor.Name; cb.SelectedIndexChanged += new EventHandler(BooleanCheckBox_SelectedIndexChanged); }
private void DoubleTextBox_LostFocus(object sender, EventArgs e) { if (_ocrEngine == null || !_ocrEngine.IsStarted) { return; } TextBox tb = sender as TextBox; string settingName = tb.Tag.ToString(); bool valueOk = true; double value; if (!double.TryParse(tb.Text, out value)) { valueOk = false; } if (valueOk) { IOcrSettingDescriptor settingDescriptor = _ocrEngine.SettingManager.GetSettingDescriptor(settingName); if (value < settingDescriptor.DoubleMinimumValue) { valueOk = false; MessageBox.Show(this, string.Format(DemosGlobalization.GetResxString(GetType(), "Resx_ErrorValueGreater") + settingDescriptor.IntegerMinimumValue), DemosGlobalization.GetResxString(GetType(), "Resx_Error"), MessageBoxButtons.OK, MessageBoxIcon.Exclamation); } else if (value > settingDescriptor.DoubleMaximumValue) { valueOk = false; MessageBox.Show(this, string.Format(DemosGlobalization.GetResxString(GetType(), "Resx_ErrorValueLess") + settingDescriptor.IntegerMaximumValue), DemosGlobalization.GetResxString(GetType(), "Resx_Error"), MessageBoxButtons.OK, MessageBoxIcon.Exclamation); } } if (valueOk) { SetSettingValue(settingName, value.ToString()); } else { tb.Text = _ocrEngine.SettingManager.GetDoubleValue(settingName).ToString(); tb.Focus(); } }
private void AddDoubleSetting(IOcrSettingDescriptor settingDescriptor) { Label lbl = new Label(); lbl.AutoSize = true; lbl.TextAlign = ContentAlignment.MiddleLeft; lbl.Text = settingDescriptor.Units; lbl.Location = new Point(_edge, _edge); _pnlSettings.Controls.Add(lbl); TextBox tb = new TextBox(); tb.Width = _pnlSettings.ClientSize.Width - lbl.Width - _edge * 3; tb.Location = new Point(lbl.Right + _edge, _edge); tb.Anchor = AnchorStyles.Left | AnchorStyles.Top | AnchorStyles.Right; _pnlSettings.Controls.Add(tb); lbl.Top = tb.Top + (tb.Height - lbl.Height) / 2; tb.Text = _ocrEngine.SettingManager.GetDoubleValue(settingDescriptor.Name).ToString(); tb.Tag = settingDescriptor.Name; tb.LostFocus += new EventHandler(DoubleTextBox_LostFocus); }