/// <summary> /// Constructor /// </summary> /// <param name="filters">one or multiple file filters</param> public FileSelector(FileSelectorFilters filters) { m_FilterString = String.Empty; m_FilterList = new List <FileSelectorFilters>(); TryAddFilter(filters, FileSelectorFilters.Circuits, c_CircuitFilter); TryAddFilter(filters, FileSelectorFilters.Symbols, c_SymbolFilter); TryAddFilter(filters, FileSelectorFilters.Macros, c_MacroFilter); TryAddFilter(filters, FileSelectorFilters.AnyFile, c_AnyFile); }
private void TryAddFilter(FileSelectorFilters filterFlags, FileSelectorFilters certainFilter, string filterPart) { if ((filterFlags & certainFilter) == certainFilter) { m_FilterList.Add(certainFilter); if (String.IsNullOrEmpty(m_FilterString) == false) { m_FilterString += @"|"; } m_FilterString += filterPart; } }
private void HandleRecentFiles(string fileName, FileSelectorFilters filter) { if (m_RecentFiles == null) { m_RecentFiles = new List <string>(); m_RecentFileTypes = new Dictionary <string, FileSelectorFilters>(); } if (m_RecentFiles.Contains(fileName)) { m_RecentFiles.Remove(fileName); m_RecentFileTypes.Remove(fileName); } m_RecentFiles.Insert(0, fileName); m_RecentFileTypes.Add(fileName, filter); while (m_RecentFiles.Count > 10) { m_RecentFiles.RemoveAt(m_RecentFiles.Count - 1); } int count = 0; foreach (ToolStripItem tsitem in menuItem_RecentFiles.DropDownItems) { tsitem.Text = Path.GetFileName(m_RecentFiles[count]); count++; } while (count < m_RecentFiles.Count) { ToolStripMenuItem menuItem = new ToolStripMenuItem(Path.GetFileName(m_RecentFiles[count])); menuItem.ToolTipText = m_RecentFiles[count]; menuItem.Click += new EventHandler(LoadRecentFile); menuItem.Tag = count; menuItem_RecentFiles.DropDownItems.Add(menuItem); count++; } }