public SearchUI(IPluginHost host, AddOn.SearchUIAddOn searchUIAddOn) { CBItem item; _searchUIAddOn = searchUIAddOn; _host = host; InitializeComponent(); _emptyContextMenu = new MetroFramework.Controls.MetroContextMenu(this.components); this.Shown += SearchUI_Shown; CbScanMethod.Items.Clear(); CbScanDataType.Items.Clear(); // Setup data type and method combo boxes foreach (ISearchMethod sm in host.SearchMethods) { if (sm.Mode == Types.SearchMode.First || sm.Mode == Types.SearchMode.Both) { item = new UI.CBItem(sm); this.CbScanMethod.Items.Add(item); _cbScanMethodToolTips.Add(sm, item.ToTooltip()); } } foreach (ISearchType st in host.SearchTypes) { item = new UI.CBItem(st); this.CbScanDataType.Items.Add(item); _cbScanDataTypeToolTips.Add(st, item.ToTooltip()); } }
private void UpdateSearchMethods(Types.SearchMode mode) { CBItem oldItem = CbScanMethod.SelectedIndex < 0 ? null : (CBItem)CbScanMethod.SelectedItem; CBItem item; CbScanMethod.BeginUpdate(); CbScanMethod.SuspendLayout(); CbScanMethod.Items.Clear(); _isUserInput = false; // Setup method combo boxes foreach (ISearchMethod sm in _host.SearchMethods) { if (sm.Mode == mode || sm.Mode == Types.SearchMode.Both) { item = new UI.CBItem(sm); this.CbScanMethod.Items.Add(item); if (!_cbScanMethodToolTips.Keys.Contains(sm)) { _cbScanMethodToolTips.Add(sm, item.ToTooltip()); } if (oldItem != null && oldItem.Plugin == item.Plugin) { CbScanMethod.SelectedIndex = CbScanMethod.Items.Count - 1; // Update Search Data Types UpdateSearchTypes(sm); } } } _isUserInput = true; CbScanMethod.ResumeLayout(true); CbScanMethod.EndUpdate(); }