示例#1
0
 private ListViewItem CreateListItem(ProgramProcedure item)
 {
     string[] subItems = CreateListItemTexts(item);
     return(new ListViewItem(subItems)
     {
         Tag = item
     });
 }
示例#2
0
 private static string[] CreateListItemTexts(ProgramProcedure item)
 {
     var segName = item.Program.SegmentMap.TryFindSegment(item.Procedure.EntryAddress, out var seg)
         ? seg.Name
         : "???";
     var subItems = new[] {
         item.Procedure.EntryAddress.ToString(),
         item.Procedure.Name,
         segName
     };
     return subItems;
 }
示例#3
0
        public bool QueryStatus(CommandID cmdId, CommandStatus status, CommandText text)
        {
            int cItems             = listProcedures.SelectedItems.Count;
            var singleItemSelected = cItems == 1;
            ProgramProcedure pp    = default;

            if (singleItemSelected && listProcedures.SelectedItems[0].Tag is not null)
            {
                pp = (ProgramProcedure)listProcedures.SelectedItems[0].Tag;
            }
            if (cmdId.Guid == CmdSets.GuidReko)
            {
                switch (cmdId.ID)
                {
                case CmdIds.ActionEditSignature:
                case CmdIds.ViewGoToAddress:
                case CmdIds.ShowProcedureCallHierarchy:
                    status.Status = singleItemSelected
                        ? MenuStatus.Enabled | MenuStatus.Visible
                        : MenuStatus.Visible;
                    return(true);

#if DEBUG
                case CmdIds.ProcedureDebugTrace:
                    var st = MenuStatus.Visible;
                    if (singleItemSelected)
                    {
                        if (pp.Program.User.DebugTraceProcedures.Contains(pp.Procedure.Name))
                        {
                            st |= MenuStatus.Checked;
                        }
                        if (singleItemSelected)
                        {
                            st |= MenuStatus.Enabled;
                        }
                    }
                    status.Status = st;
                    return(true);
#endif
                }
            }
            return(false);
        }
示例#4
0
 private bool FilterProcedure(string searchtext, ProgramProcedure sItem)
 {
     return(sItem.Procedure.EntryAddress.ToString().Contains(searchtext) ||
            sItem.Procedure.Name.Contains(searchtext));
 }