public BitFlagsForm(ref SADS6x s6x, ref S6xRegister register, ref ImageList stateImageList, ref S6xNavCategories navCategories) { S6x = s6x; s6xReg = register; s6xNavCategories = navCategories; slBitFlags = new SortedList(); if (s6xReg.BitFlags != null) { foreach (S6xBitFlag s6xObject in s6xReg.BitFlags) { if (s6xObject != null) { slBitFlags.Add(s6xObject.UniqueKey, s6xObject); } } } try { Icon = Icon.ExtractAssociatedIcon(Application.ExecutablePath); } catch { } this.FormClosing += new FormClosingEventHandler(Form_FormClosing); InitializeComponent(); advElemsTreeView.StateImageList = stateImageList; }
public static void s6xNavCategoriesLoad(S6xNavHeaderCategory headerCateg, ComboBox categComboBox, S6xNavCategoryLevel ncLevel, ref S6xNavCategories s6xNavCategories) { if (categComboBox.Tag != null) { // No need to reload if ((S6xNavHeaderCategory)categComboBox.Tag == headerCateg) { return; } } if (s6xNavCategories == null) { s6xNavCategories = new S6xNavCategories(); } categComboBox.Items.Clear(); categComboBox.Items.Add(new S6xNavCategory(string.Empty)); foreach (S6xNavCategory navCateg in s6xNavCategories.getCategories(headerCateg, ncLevel, true).Values) { categComboBox.Items.Add(navCateg); } categComboBox.Tag = headerCateg; }
public static void s6xNavCategoriesReset(S6xNavHeaderCategory headerCateg, ref S6xNavCategories s6xNavCategories, ref SADBin sadBin, ref SADS6x sadS6x) { if (s6xNavCategories == null) { s6xNavCategories = new S6xNavCategories(); } if (headerCateg == S6xNavHeaderCategory.RESERVED && sadBin != null) { if (sadBin.Bank8 != null) { s6xNavCategories.addCategory(headerCateg, S6xNavCategoryLevel.ONE, "Bank 8"); } if (sadBin.Bank1 != null) { s6xNavCategories.addCategory(headerCateg, S6xNavCategoryLevel.ONE, "Bank 1"); } if (sadBin.Bank9 != null) { s6xNavCategories.addCategory(headerCateg, S6xNavCategoryLevel.ONE, "Bank 9"); } if (sadBin.Bank0 != null) { s6xNavCategories.addCategory(headerCateg, S6xNavCategoryLevel.ONE, "Bank 0"); } return; } if (sadS6x != null) { s6xNavCategories.resetCategory(headerCateg, S6xNavCategoryLevel.ONE); s6xNavCategories.resetCategory(headerCateg, S6xNavCategoryLevel.TWO); s6xNavCategories.resetCategory(headerCateg, S6xNavCategoryLevel.THREE); string nameOfCategory = "Category"; string nameOfCategory2 = "Category2"; string nameOfCategory3 = "Category3"; S6xNavHeaderCategory replacedHeaderCateg = S6xNavHeaderCategory.UNDEFINED; SortedList slS6xList = null; switch (headerCateg) { case S6xNavHeaderCategory.TABLES: slS6xList = sadS6x.slTables; break; case S6xNavHeaderCategory.FUNCTIONS: slS6xList = sadS6x.slFunctions; break; case S6xNavHeaderCategory.SCALARS: slS6xList = sadS6x.slScalars; break; case S6xNavHeaderCategory.STRUCTURES: slS6xList = sadS6x.slStructures; break; case S6xNavHeaderCategory.ROUTINES: slS6xList = sadS6x.slRoutines; break; case S6xNavHeaderCategory.OPERATIONS: slS6xList = sadS6x.slOperations; break; case S6xNavHeaderCategory.REGISTERS: slS6xList = sadS6x.slRegisters; break; case S6xNavHeaderCategory.OTHER: slS6xList = sadS6x.slOtherAddresses; break; case S6xNavHeaderCategory.SIGNATURES: slS6xList = sadS6x.slSignatures; replacedHeaderCateg = headerCateg; nameOfCategory = "SignatureCategory"; nameOfCategory2 = "SignatureCategory2"; nameOfCategory3 = "SignatureCategory3"; break; case S6xNavHeaderCategory.ELEMSSIGNATURES: slS6xList = sadS6x.slElementsSignatures; replacedHeaderCateg = headerCateg; nameOfCategory = "SignatureCategory"; nameOfCategory2 = "SignatureCategory2"; nameOfCategory3 = "SignatureCategory3"; break; } if (slS6xList != null) { foreach (object s6xObject in slS6xList.Values) { if (s6xObject == null) { continue; } Type s6xType = s6xObject.GetType(); PropertyInfo piPI = null; object oValue = null; piPI = s6xType.GetProperty(nameOfCategory); if (piPI != null) { oValue = piPI.GetValue(s6xObject, null); if (oValue != null) { s6xNavCategories.addCategory(replacedHeaderCateg, S6xNavCategoryLevel.ONE, (string)oValue); } } piPI = null; piPI = s6xType.GetProperty(nameOfCategory2); if (piPI != null) { oValue = piPI.GetValue(s6xObject, null); if (oValue != null) { s6xNavCategories.addCategory(replacedHeaderCateg, S6xNavCategoryLevel.TWO, (string)oValue); } } piPI = null; piPI = s6xType.GetProperty(nameOfCategory3); if (piPI != null) { oValue = piPI.GetValue(s6xObject, null); if (oValue != null) { s6xNavCategories.addCategory(replacedHeaderCateg, S6xNavCategoryLevel.THREE, (string)oValue); } } piPI = null; } } } }
public static void s6xNavCategoriesAdd(S6xNavHeaderCategory addHeaderCateg, S6xNavHeaderCategory reloadHeaderCateg, ref ComboBox categComboBox, S6xNavCategoryLevel ncLevel, string newCategory, ref S6xNavCategories s6xNavCategories) { if (newCategory == null || newCategory == string.Empty) { return; } bool addedCategory = s6xNavCategories.addCategory(addHeaderCateg, ncLevel, newCategory); if (addedCategory) { categComboBox.Tag = null; // To force the reload s6xNavCategoriesLoad(reloadHeaderCateg, categComboBox, ncLevel, ref s6xNavCategories); } }