Exemple #1
0
 void AddressSpaceControl_SelectionChanged(object sender, SelectionChangedEventArgs e)
 {
     InfoForm.Update(e.SelectedBlock.Allocation);
 }
Exemple #2
0
        void SelectTask(CancellationToken ct)
        {
            while (true)
            {
                RecalculateSelectedBlock.WaitOne();

                if (ct.IsCancellationRequested)
                {
                    return;
                }

                lock (RebuildDataLock)
                {
                    // TODO: This shouldn't even need history
                    Snapshot snapshot = SnapshotOverride ?? History.Snapshot;
                    if (snapshot != null)
                    {
                        Renderer.SelectedBlock = snapshot.Find(Renderer.GetLocalMouseLocation());
                        if (Renderer.SelectedBlock != null && !Renderer.SelectedBlock.IsValid)
                        {
                            Renderer.SelectedBlock = null;
                        }

                        if (Renderer.SelectedBlock != null)
                        {
                            SelectionChangedEventArgs e = new SelectionChangedEventArgs();
                            e.SelectedBlock = Renderer.SelectedBlock;
                            this.Invoke((MethodInvoker)(() => SelectionChanged(this, e)));
                        }
                    }
                }
            }
        }
Exemple #3
0
 void AddressSpace_SelectionChanged(object sender, SelectionChangedEventArgs e)
 {
     AdvanceButton.Text = "Nice work! Click Here.";
     AdvanceButton.Enabled = true;
     AddressSpace.SelectionChanged -= AddressSpace_SelectionChanged;
 }
Exemple #4
0
        public void SelectAt(Allocation targetAllocation)
        {
            if (targetAllocation == null)
            {
                return;
            }

            Snapshot snapshot = SnapshotOverride ?? History.Snapshot;

            MemoryBlock block = snapshot.Find(targetAllocation.Address);
            if (block != null)
            {
                Renderer.SelectedBlock = block;

                SelectionChangedEventArgs e = new SelectionChangedEventArgs();
                e.SelectedBlock = Renderer.SelectedBlock;
                this.Invoke((MethodInvoker)(() => SelectionChanged(this, e)));
            }
            else
            {
                // TODO: What should be done here? Scroll the timeline to a point where it exists?
            }

            // TODO: Automatically bring the new selection into view
        }