示例#1
0
        public void Run(ProcessStartInfo processStartInfo, WixFiles theWixFiles, OnCompleteDelegate onComplete)
        {
            if (IsBusy)
            {
                throw new WixEditException("OutputPanel is already busy.");
            }

            wixFiles          = theWixFiles;
            onCompletedOutput = onComplete;

            invokeClearRTF    = new DelegateClearRtf(ClearRtf);
            invokeOutput      = new DelegateOutput(Output);
            invokeOutputLine  = new DelegateOutputLine(OutputLine);
            invokeOutputStart = new DelegateOutputStart(OutputStart);
            invokeOutputDone  = new DelegateOutputDone(OutputDone);
            invokeProcessDone = new DelegateProcessDone(ProcessDone);

            isCancelled = false;

            buildMenu.MenuItems.Add(cancelMenuItem);
            outputTextBox.Cursor = Cursors.WaitCursor;

            currentProcessStartInfo = processStartInfo;

            currentProcessThread = new Thread(new ThreadStart(InternalThreadRunSingle));
            currentProcessThread.Start();
        }
示例#2
0
        public void Day5Part2Test(List <long> code, int input, int expectedOutput)
        {
            var io = new IntCodeComputerIO(new List <long>()
            {
                input
            });

            long output     = default;
            var  outputFunc = new DelegateOutput((long i) => output = i);

            var intCodeComputer = new IntCodeComputerInstance(code, io, outputFunc);

            intCodeComputer.Compute();

            Assert.IsTrue(output == expectedOutput);
        }
示例#3
0
        public void Day9Test3()
        {
            var code = new List <long>()
            {
                104, 1125899906842624, 99
            };
            var io = new IntCodeComputerIO(new List <long>());

            long output     = default;
            var  outputFunc = new DelegateOutput((long i) => output = i);

            var intCodeComputer = new IntCodeComputerInstance(code, io, outputFunc);

            intCodeComputer.ContinueAfterOutput = true;
            intCodeComputer.Compute();

            Assert.IsTrue(1125899906842624 == output);
        }
示例#4
0
        public void Day9Test2()
        {
            var code = new List <long>()
            {
                1102, 34915192, 34915192, 7, 4, 7, 99, 0
            };
            var io = new IntCodeComputerIO(new List <long>());

            long output     = default;
            var  outputFunc = new DelegateOutput((long i) => output = i);

            var intCodeComputer = new IntCodeComputerInstance(code, io, outputFunc);

            intCodeComputer.ContinueAfterOutput = true;
            intCodeComputer.Compute();

            Assert.IsTrue(16 == output.ToString().Length);
        }
示例#5
0
        public void Day9Test1()
        {
            var origCode = new List <long>()
            {
                109, 1, 204, -1, 1001, 100, 1, 100, 1008, 100, 16, 101, 1006, 101, 0, 99
            };
            var code = origCode.ToList();
            var io   = new IntCodeComputerIO(new List <long>());

            var output     = new List <long>();
            var outputFunc = new DelegateOutput((long i) => output.Add(i));

            var intCodeComputer = new IntCodeComputerInstance(code, io, outputFunc);

            intCodeComputer.ContinueAfterOutput = true;
            intCodeComputer.Compute();

            Assert.IsTrue(origCode.SequenceEqual(output));
        }
示例#6
0
        public OutputPanel(EditorForm editorForm, IconMenuItem buildMenu)
        {
            this.editorForm = editorForm;
            this.buildMenu  = buildMenu;

            TabStop = true;

            outputTextBox = new OutputTextbox();

            outputTextBox.Dock       = DockStyle.Fill;
            outputTextBox.ScrollBars = RichTextBoxScrollBars.Both;
            outputTextBox.WordWrap   = WixEditSettings.Instance.WordWrapInResultsPanel;
            outputTextBox.AllowDrop  = false;

            Controls.Add(outputTextBox);

            outputTextBox.TabStop       = true;
            outputTextBox.HideSelection = false;

            outputTextBox.MouseUp += new MouseEventHandler(outputTextBox_MouseDown);

            doubleClickTimer.Interval = 100;
            doubleClickTimer.Tick    += new EventHandler(doubleClickTimer_Tick);


            cancelMenuItem              = new IconMenuItem();
            cancelMenuItem.Text         = "Cancel Action";
            cancelMenuItem.Click       += new EventHandler(cancelMenuItem_Click);
            cancelMenuItem.Shortcut     = Shortcut.CtrlC;
            cancelMenuItem.ShowShortcut = true;

            invokeClearRTF    = new DelegateClearRtf(ClearRtf);
            invokeOutput      = new DelegateOutput(Output);
            invokeOutputLine  = new DelegateOutputLine(OutputLine);
            invokeOutputStart = new DelegateOutputStart(OutputStart);
            invokeOutputDone  = new DelegateOutputDone(OutputDone);
            invokeProcessDone = new DelegateProcessDone(ProcessDone);
        }
示例#7
0
        public OutputPanel(EditorForm editorForm, IconMenuItem buildMenu)
        {
            this.editorForm = editorForm;
            this.buildMenu = buildMenu;

            TabStop = true;

            outputTextBox = new OutputTextbox();

            outputTextBox.Dock = DockStyle.Fill;
            outputTextBox.ScrollBars = RichTextBoxScrollBars.Both;
            outputTextBox.WordWrap = WixEditSettings.Instance.WordWrapInResultsPanel;
            outputTextBox.AllowDrop = false;

            Controls.Add(outputTextBox);

            outputTextBox.TabStop = true;
            outputTextBox.HideSelection = false;

            outputTextBox.MouseUp += new MouseEventHandler(outputTextBox_MouseDown);

            doubleClickTimer.Interval = 100;
            doubleClickTimer.Tick += new EventHandler(doubleClickTimer_Tick);

            cancelMenuItem = new IconMenuItem();
            cancelMenuItem.Text = "Cancel Action";
            cancelMenuItem.Click += new EventHandler(cancelMenuItem_Click);
            cancelMenuItem.Shortcut = Shortcut.CtrlC;
            cancelMenuItem.ShowShortcut = true;

            invokeClearRTF = new DelegateClearRtf(ClearRtf);
            invokeOutput = new DelegateOutput(Output);
            invokeOutputLine = new DelegateOutputLine(OutputLine);
            invokeOutputStart = new DelegateOutputStart(OutputStart);
            invokeOutputDone = new DelegateOutputDone(OutputDone);
            invokeProcessDone = new DelegateProcessDone(ProcessDone);
        }
示例#8
0
        public void Run(ProcessStartInfo processStartInfo, WixFiles theWixFiles, OnCompleteDelegate onComplete)
        {
            if (IsBusy)
            {
                throw new WixEditException("OutputPanel is already busy.");
            }

            wixFiles = theWixFiles;
            onCompletedOutput = onComplete;

            invokeClearRTF = new DelegateClearRtf(ClearRtf);
            invokeOutput = new DelegateOutput(Output);
            invokeOutputLine = new DelegateOutputLine(OutputLine);
            invokeOutputStart = new DelegateOutputStart(OutputStart);
            invokeOutputDone = new DelegateOutputDone(OutputDone);
            invokeProcessDone = new DelegateProcessDone(ProcessDone);

            isCancelled = false;

            buildMenu.MenuItems.Add(cancelMenuItem);
            outputTextBox.Cursor = Cursors.WaitCursor;

            currentProcessStartInfo = processStartInfo;

            currentProcessThread = new Thread(new ThreadStart(InternalThreadRunSingle));
            currentProcessThread.Start();
        }
示例#9
0
 public Bandaid(DelegateOutput _Debug, DelegateOutput _Output)
 {
     Debug = _Debug;
     Output = _Output;
 }