예제 #1
0
 public MenuStatusSetter(EventHandler popupHandler, CommandMenuEventHandler clickHandler)
 {
     this.cmdStatus = new CommandStatus();
     this.cmdText = new CommandText();
     this.popupHandler = popupHandler;
     this.clickHandler = clickHandler;
 }
 public void DviSupportMarkProcedure()
 {
     var status = new CommandStatus();
     var text = new CommandText();
     var ret = interactor.QueryStatus(new CommandID(CmdSets.GuidReko, CmdIds.ActionMarkProcedure), status, null);
     Assert.IsTrue(ret);
     Assert.AreEqual(MenuStatus.Enabled | MenuStatus.Visible, status.Status);
 }
예제 #3
0
 public override bool QueryStatus(CommandID cmdId, CommandStatus status, CommandText text)
 {
     if (cmdId.Guid == CmdSets.GuidReko)
     {
         switch (cmdId.ID)
         {
         case CmdIds.EditProperties: 
             status.Status = MenuStatus.Enabled|MenuStatus.Visible;
             return true;
         }
     }
     return base.QueryStatus(cmdId, status, text);
 }
예제 #4
0
        public void Di_ItemsSelected_EnableCopy()
        {
            mr.ReplayAll();

            svc.Error("Nilz");
            lv.SelectedIndices.Add(0);

            var cmd = new CommandID(CmdSets.GuidReko, CmdIds.EditCopy);
            var status = new CommandStatus();
            var txt = new CommandText();
            Assert.IsTrue(interactor.QueryStatus(cmd, status, txt));

            Assert.AreEqual(MenuStatus.Visible|MenuStatus.Enabled, status.Status);
            mr.VerifyAll();
        }
예제 #5
0
 public override bool QueryStatus(CommandID cmdId, CommandStatus status, CommandText text)
 {
     if (cmdId.Guid== CmdSets.GuidReko)
     {
         switch (cmdId.ID)
         {
         case CmdIds.ViewGoToAddress:
         case CmdIds.ViewShowAllFragments:
         case CmdIds.ViewShowUnscanned:
         case CmdIds.ActionEditSignature:
         case CmdIds.ActionMarkProcedure:
             status.Status = 0;
             return true;
         }
     }
     return base.QueryStatus(cmdId, status, text);
 }
예제 #6
0
        public override bool QueryStatus(CommandID cmdId, CommandStatus status, CommandText text)
        {
            if (cmdId.Guid== CmdSets.GuidReko)
            {
                switch (cmdId.ID)
                {
                case CmdIds.ViewGoToAddress:
                case CmdIds.ViewShowAllFragments:
                case CmdIds.ViewShowUnscanned:
                case CmdIds.ActionMarkProcedure:
                case CmdIds.ActionRestartDecompilation:
                    status.Status = 0;
                    return true;
                case CmdIds.ActionNextPhase:
                    status.Status = CanAdvance 
                        ? MenuStatus.Visible | MenuStatus.Enabled
                        : MenuStatus.Visible;
                    text.Text = Resources.ScanBinaries;
                    return true;

                }
            }
            return base.QueryStatus(cmdId, status, text);
        }
예제 #7
0
 public override bool QueryStatus(CommandID cmdId, CommandStatus status, CommandText text)
 {
     if (cmdId.Guid == CmdSets.GuidReko)
     {
         switch (cmdId.ID)
         {
         case CmdIds.ActionEditSignature:
             status.Status = MenuStatus.Visible;
             if (SelectedProcedureEntry.Key != null)
                 status.Status |= MenuStatus.Enabled;
             return true;
         }
     }
     return base.QueryStatus(cmdId, status, text);
 }
예제 #8
0
 public bool QueryStatus(CommandID cmdId, CommandStatus status, CommandText text)
 {
     var des = GetSelectedDesigner();
     if (des == null)
         return false;
     return des.QueryStatus(cmdId, status, text);
 }
예제 #9
0
 public virtual bool QueryStatus(CommandID cmdID, CommandStatus status, CommandText txt)
 {
     if (cmdID.Guid == CmdSets.GuidReko)
     {
         switch (cmdID.ID)
         {
         case CmdIds.ActionMarkProcedure:
         case CmdIds.ViewFindWhatPointsHere:
             status.Status = MenuStatus.Enabled|MenuStatus.Visible;
             return true;
         }
     }
     return false;
 }
예제 #10
0
 public virtual bool QueryStatus(CommandID cmdId, CommandStatus status, CommandText text)
 {
     return false;
 }
 public bool QueryStatus(CommandID cmdId, CommandStatus status, CommandText text)
 {
     if (cmdId.Guid == CmdSets.GuidReko)
     {
         switch (cmdId.ID)
         {
         case CmdIds.ViewGoToAddress: status.Status = MenuStatus.Enabled | MenuStatus.Visible; return true;
         case CmdIds.ActionMarkProcedure: status.Status = MenuStatus.Enabled | MenuStatus.Visible; return true;
         }
     }
     return false;
 }
예제 #12
0
        public void Di_NoItemsSelected_DisableCopy()
        {
            mr.ReplayAll();

            var cmd = new CommandID(CmdSets.GuidReko, CmdIds.EditCopy);
            var status = new CommandStatus();
            var txt = new CommandText();
            Assert.IsTrue(interactor.QueryStatus(cmd, status, txt));

            Assert.AreEqual(MenuStatus.Visible, status.Status);
            mr.VerifyAll();
        }
예제 #13
0
        public bool QueryStatus(CommandID cmdId, CommandStatus status, CommandText text)
        {
            if (mruFirst <= cmdId.ID && cmdId.ID < mruMax)
            {
                status.Status = MenuStatus.Visible|MenuStatus.Enabled;
                text.Text = string.Format("MRU {0}", cmdId.ID - mruFirst);
                return true;
            }

            if (mpCmdIdToStatus.Contains(cmdId.ID))
            {
                status.Status = (MenuStatus) mpCmdIdToStatus[cmdId.ID];
                Console.WriteLine("Testring cmd {0}: status {1}", cmdId.ID, status.Status);

                return true;
            }
            return false;
        }
예제 #14
0
 public bool QueryStatus(CommandID cmdId, CommandStatus status, CommandText text)
 {
     var des = GetSelectedDesigner();
     if (des != null)
         return des.QueryStatus(cmdId, status, text);
     if (cmdId.Guid == CmdSets.GuidReko)
     {
         switch (cmdId.ID)
         {
         case CmdIds.CollapseAllNodes: status.Status = MenuStatus.Visible | MenuStatus.Enabled; return true;
         }
     }
     return false;
 }
예제 #15
0
 public override bool QueryStatus(CommandID cmdId, CommandStatus status, CommandText text)
 {
     if (cmdId.Guid == CmdSets.GuidReko)
     {
         MenuCommand cmd = (MenuCommand) mpCmdidToCommand[cmdId.ID];
         if (cmd == null)
             return false;
         status.Status = (MenuStatus) cmd.OleStatus;
         return true;
     }
     return false;
 }
예제 #16
0
 public virtual bool QueryStatus(CommandID cmdID, CommandStatus status, CommandText txt)
 {
     if (cmdID.Guid == CmdSets.GuidReko)
     {
         switch (cmdID.ID)
         {
         case CmdIds.ViewFindWhatPointsHere:
             status.Status = MenuStatus.Enabled | MenuStatus.Visible;
             return true;
         case CmdIds.ViewAsCode:
             status.Status = details == AddressSearchDetails.Code
                 ? MenuStatus.Enabled | MenuStatus.Visible | MenuStatus.Checked
                 : MenuStatus.Enabled | MenuStatus.Visible;
             return true;
         case CmdIds.ViewAsStrings:
             status.Status = details == AddressSearchDetails.Strings
                 ? MenuStatus.Enabled | MenuStatus.Visible | MenuStatus.Checked
                 : MenuStatus.Enabled | MenuStatus.Visible;
             return true;
         case CmdIds.ViewAsData:
             status.Status = details == AddressSearchDetails.Data
                 ? MenuStatus.Enabled | MenuStatus.Visible | MenuStatus.Checked
                 : MenuStatus.Enabled | MenuStatus.Visible;
             return true;
         case CmdIds.ActionMarkProcedure:
             status.Status = details == AddressSearchDetails.Code
                 ? MenuStatus.Enabled | MenuStatus.Visible
                 : MenuStatus.Visible;
             return true;
         case CmdIds.ActionMarkType:
             status.Status = details != AddressSearchDetails.Code
                 ? MenuStatus.Enabled | MenuStatus.Visible
                 : MenuStatus.Visible;
             return true;
         }
     }
     return false;
 }
예제 #17
0
 //$REFACTOR: copied from LoadedPageInteractor, should
 // push to base class or utility class.
 private MenuStatus QueryStatus(int cmdId)
 {
     CommandStatus status = new CommandStatus();
     i.QueryStatus(new CommandID(CmdSets.GuidReko, cmdId), status, null);
     return status.Status;
 }
예제 #18
0
		public void SetItemVisibility(CommandMenuItem item, CommandStatus cmdStatus)
		{
			item.Visible = (cmdStatus.Status & MenuStatus.Visible) != 0;
			item.Enabled = (cmdStatus.Status & MenuStatus.Enabled) != 0;
			item.Checked = (cmdStatus.Status & MenuStatus.Checked) != 0;
		}
예제 #19
0
 public void GotoAddressEnabled()
 {
     var status = new CommandStatus();
     Assert.IsTrue(interactor.QueryStatus(new CommandID(CmdSets.GuidReko, CmdIds.ViewGoToAddress), status, null));
     Assert.AreEqual(MenuStatus.Enabled | MenuStatus.Visible, status.Status);
 }
예제 #20
0
 public bool QueryStatus(CommandID cmdId, Reko.Gui.CommandStatus status, Reko.Gui.CommandText text)
 {
     return(false);
 }
예제 #21
0
 public override bool QueryStatus(CommandID cmdId, CommandStatus status, CommandText text)
 {
     if (cmdId.Guid == CmdSets.GuidReko)
     {
         switch (cmdId.ID)
         {
         case CmdIds.ActionNextPhase:
             status.Status = MenuStatus.Visible | MenuStatus.Enabled;
             text.Text = Resources.ReconstructDataTypes;
             return true;
         }
     }
     return base.QueryStatus(cmdId, status, text);
 }
예제 #22
0
        public void LLI_GotoAddressEnabled()
        {
            Given_Architecture();
            Given_Program(new byte[0x13000]);
            Given_Interactor();
            mr.ReplayAll();

            When_ShowControl();
            control.MemoryView.Focus();
            var status = new CommandStatus();
            Assert.IsTrue(interactor.QueryStatus(new CommandID(CmdSets.GuidReko, CmdIds.ViewGoToAddress), status, null));
            Assert.AreEqual(status.Status, MenuStatus.Enabled | MenuStatus.Visible);
        }
예제 #23
0
 public bool QueryStatus(CommandID cmdId, CommandStatus status, CommandText text)
 {
     if (cmdId.Guid == CmdSets.GuidReko)
     {
         switch (cmdId.ID)
         {
         case CmdIds.EditCopy:
             status.Status = listView.SelectedIndices.Count > 0
                 ? MenuStatus.Visible | MenuStatus.Enabled
                 : MenuStatus.Visible;
             return true;
         case CmdIds.EditSelectAll:
             status.Status = MenuStatus.Visible | MenuStatus.Enabled;
             return true;
         }
     }
     return false;
 }
예제 #24
0
 public bool QueryStatus(CommandID cmdId, CommandStatus status, CommandText text)
 {
     throw new NotImplementedException();
 }