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