示例#1
0
        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...")));
        }
示例#2
0
        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;
                }
            }
        }
示例#3
0
        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;
            });
        }
示例#4
0
        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);
        }
示例#5
0
        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...")));
		}