static void BuildEncodingsCombo(CustomCommonFileDialogComboBox combo, bool showAutoDetected, Encoding selectedEncoding) { combo.Items.Clear(); int i = 0; if (showAutoDetected) { combo.Items.Add(new EncodingComboItem(null, GettextCatalog.GetString("Auto Detected"))); combo.SelectedIndex = 0; i = 1; } var encodings = TextEncoding.ConversionEncodings; foreach (var e in encodings) { var mdEnc = TextEncoding.SupportedEncodings.FirstOrDefault(t => t.CodePage == e.CodePage); string name = mdEnc != null ? mdEnc.Name + " (" + mdEnc.Id + ")" : e.Name + " (" + e.Id + ")"; var item = new EncodingComboItem(Encoding.GetEncoding(e.CodePage), name); combo.Items.Add(item); if (e.Equals(selectedEncoding)) { combo.SelectedIndex = i; } i++; } if (combo.SelectedIndex == -1) { combo.SelectedIndex = 0; } combo.Items.Add(new EncodingComboItem(null, GettextCatalog.GetString("Add or Remove..."))); }
private void cbEncoding_SelectedIndexChanged(object sender, EventArgs e) { Object obj = cmbEncoding.Items[cmbEncoding.SelectedIndex]; if (obj != null && obj is EncodingComboItem) { EncodingComboItem item = (EncodingComboItem)obj; if (!item.Encoding.Equals(logTrailer.Encoding)) { logTrailer.Encoding = item.Encoding; } } }
void logTrailer_EncodingChanged(object sender, EventArgs e) { int index = GetEncodingIndex(logTrailer.Encoding); Invoke((MethodInvoker) delegate { EncodingComboItem item = null; if (index >= 0) { item = GetEncodingItemByIndex(index); } else { item = AddEncodingToCombo(logTrailer.Encoding); } cmbEncoding.SelectedItem = item; }); }
private EncodingComboItem AddEncodingToCombo(Encoding encoding) { EncodingComboItem item = null; int index = GetEncodingIndex(encoding); if (index >= 0) { item = GetEncodingItemByIndex(index); } else { item = new EncodingComboItem(); item.Name = encoding.EncodingName; item.Encoding = encoding; cmbEncoding.Items.Add(item); } return(item); }
private int GetEncodingIndex(Encoding encoding) { int index = 0; foreach (object obj in cmbEncoding.Items) { if (obj is EncodingComboItem) { EncodingComboItem item = (EncodingComboItem)obj; if (item.Encoding.Equals(encoding)) { return(index); } } index++; } return(-1); }
static void BuildEncodingsCombo (CustomCommonFileDialogComboBox combo, bool showAutoDetected, Encoding selectedEncoding) { combo.Items.Clear (); int i = 0; if (showAutoDetected) { combo.Items.Add (new EncodingComboItem (null, GettextCatalog.GetString ("Auto Detected"))); combo.SelectedIndex = 0; i = 1; } var encodings = TextEncoding.ConversionEncodings; foreach (var e in encodings) { var mdEnc = TextEncoding.SupportedEncodings.FirstOrDefault (t => t.CodePage == e.CodePage); string name = mdEnc != null ? mdEnc.Name + " (" + mdEnc.Id + ")" : e.Name + " (" + e.Id + ")"; var item = new EncodingComboItem (Encoding.GetEncoding (e.CodePage), name); combo.Items.Add (item); if (e.Equals (selectedEncoding)) combo.SelectedIndex = i; i++; } if (combo.SelectedIndex == -1) combo.SelectedIndex = 0; combo.Items.Add (new EncodingComboItem (null, GettextCatalog.GetString ("Add or Remove..."))); }