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