Exemple #1
0
		private void DoDisplayTypeClick(Common.DisplayType type)
		{
			if (_settings.Type != type)
			{
				if (!string.IsNullOrEmpty(SpecificValueBox.Text))
				{
					SpecificValueBox.Text = "0";
				}

				if (!string.IsNullOrEmpty(DifferenceBox.Text))
				{
					DifferenceBox.Text = "0";
				}

				if (!string.IsNullOrEmpty(DifferentByBox.Text))
				{
					DifferentByBox.Text = "0";
				}
			}

			SpecificValueBox.Type = _settings.Type = type;
			DifferenceBox.Type = type;
			DifferentByBox.Type = type;
			_searches.SetType(type);

			_dropdownDontfire = true;
			DisplayTypeDropdown.SelectedItem = Watch.DisplayTypeToString(type);
			_dropdownDontfire = false;
			WatchListView.Refresh();
		}
Exemple #2
0
        private void MoveUpMenuItem_Click(object sender, EventArgs e)
        {
            var indexes = SelectedIndices.ToList();

            if (!indexes.Any() || indexes[0] == 0)
            {
                return;
            }

            foreach (var index in indexes)
            {
                var watch = _watches[index];
                _watches.RemoveAt(index);
                _watches.Insert(index - 1, watch);
            }

            Changes();

            var indices = indexes.Select(t => t - 1).ToList();

            WatchListView.SelectedIndices.Clear();
            foreach (var t in indices)
            {
                WatchListView.SelectItem(t, true);
            }

            WatchListView.ItemCount = _watches.Count;
        }
Exemple #3
0
        private void MoveBottomMenuItem_Click(object sender, EventArgs e)
        {
            var indices = SelectedIndices.ToList();

            if (indices.Count == 0)
            {
                return;
            }

            for (var i = 0; i < indices.Count; i++)
            {
                var watch = _watches[indices[i] - i];
                _watches.RemoveAt(indices[i] - i);
                _watches.Insert(_watches.Count, watch);
            }

            var newInd = new List <int>();

            for (int i = 0, x = _watches.Count - indices.Count; i < indices.Count; i++, x++)
            {
                newInd.Add(x);
            }

            WatchListView.SelectedIndices.Clear();
            foreach (var t in newInd)
            {
                WatchListView.SelectItem(t, true);
            }

            Changes();
            WatchListView.ItemCount = _watches.Count;
        }
Exemple #4
0
        private void MoveTopMenuItem_Click(object sender, EventArgs e)
        {
            var indexes = SelectedIndices.ToList();

            if (!indexes.Any())
            {
                return;
            }

            for (int i = 0; i < indexes.Count; i++)
            {
                var watch = _watches[indexes[i]];
                _watches.RemoveAt(indexes[i]);
                _watches.Insert(i, watch);
                indexes[i] = i;
            }

            Changes();

            WatchListView.SelectedIndices.Clear();
            foreach (var t in indexes)
            {
                WatchListView.SelectItem(t, true);
            }

            WatchListView.ItemCount = _watches.Count;
        }
Exemple #5
0
        private void MoveDownMenuItem_Click(object sender, EventArgs e)
        {
            var indices = SelectedIndices.ToList();

            if (indices.Count == 0 || indices.Last() == _watches.Count - 1)
            {
                return;
            }

            for (var i = indices.Count - 1; i >= 0; i--)
            {
                var watch = _watches[indices[i]];
                _watches.RemoveAt(indices[i]);
                _watches.Insert(indices[i] + 1, watch);
            }

            var newindices = indices.Select(t => t + 1).ToList();

            WatchListView.SelectedIndices.Clear();
            foreach (var t in newindices)
            {
                WatchListView.SelectItem(t, true);
            }

            Changes();
            WatchListView.ItemCount = _watches.Count;
        }
Exemple #6
0
        private void LoadColumnInfo()
        {
            WatchListView.Columns.Clear();
            WatchListView.AddColumn(WatchList.ADDRESS, Global.Config.RamWatchShowAddressColumn, GetColumnWidth(WatchList.ADDRESS));
            WatchListView.AddColumn(WatchList.VALUE, true, GetColumnWidth(WatchList.VALUE));
            WatchListView.AddColumn(WatchList.PREV, Global.Config.RamWatchShowPrevColumn, GetColumnWidth(WatchList.PREV));
            WatchListView.AddColumn(WatchList.CHANGES, Global.Config.RamWatchShowChangeColumn, GetColumnWidth(WatchList.CHANGES));
            WatchListView.AddColumn(WatchList.DIFF, Global.Config.RamWatchShowDiffColumn, GetColumnWidth(WatchList.DIFF));
            WatchListView.AddColumn(WatchList.DOMAIN, Global.Config.RamWatchShowDomainColumn, GetColumnWidth(WatchList.DOMAIN));
            WatchListView.AddColumn(WatchList.NOTES, true, GetColumnWidth(WatchList.NOTES));

            ColumnPositions();
        }
Exemple #7
0
		private void RemoveAddresses()
		{
			var indices = SelectedIndices.ToList();
			if (indices.Any())
			{
				SetRemovedMessage(indices.Count);
				_searches.RemoveRange(indices);

				WatchListView.DeselectAll();
				UpdateList();
				ToggleSearchDependentToolBarItems();
			}
		}
Exemple #8
0
        private void OrderColumn(RollColumn column)
        {
            if (column.Name != _sortedColumn)
            {
                _sortReverse = false;
            }

            _watches.OrderWatches(column.Name, _sortReverse);

            _sortedColumn = column.Name;
            _sortReverse ^= true;
            WatchListView.Refresh();
        }
Exemple #9
0
        private void LoadColumnInfo()
        {
            WatchListView.Columns.Clear();

            var columns = Settings.Columns
                          .Where(c => c.Visible)
                          .OrderBy(c => c.Index);

            foreach (var column in columns)
            {
                WatchListView.AddColumn(column);
            }
        }
Exemple #10
0
		private void WatchListView_ColumnClick(object sender, InputRoll.ColumnClickEventArgs e)
		{
			var column = e.Column;
			if (column.Name != _sortedColumn)
			{
				_sortReverse = false;
			}

			_searches.Sort(column.Name, _sortReverse);

			_sortedColumn = column.Name;
			_sortReverse ^= true;
			WatchListView.Refresh();
		}
Exemple #11
0
        private void OrderColumn(int index)
        {
            var column = WatchListView.Columns[index];

            if (column.Name != _sortedColumn)
            {
                _sortReverse = false;
            }

            _watches.OrderWatches(column.Name, _sortReverse);

            _sortedColumn = column.Name;
            _sortReverse ^= true;
            WatchListView.Refresh();
        }
Exemple #12
0
		private void RamSearch_Load(object sender, EventArgs e)
		{
			// Hack for previous config settings
			if (Settings.Columns.Any(c => string.IsNullOrWhiteSpace(c.Text)))
			{
				Settings = new RamSearchSettings();
			}

			RamSearchMenu.Items.Add(WatchListView.ToColumnsMenu(ColumnToggleCallback));

			_settings = new SearchEngineSettings(MemoryDomains, Settings.UseUndoHistory);
			_searches = new RamSearchEngine(_settings, MemoryDomains);

			ErrorIconButton.Visible = false;
			_dropdownDontfire = true;
			LoadConfigSettings();
			SpecificValueBox.ByteSize = _settings.Size;
			SpecificValueBox.Type = _settings.Type;
			DifferentByBox.Type = Common.DisplayType.Unsigned;
			DifferenceBox.Type = Common.DisplayType.Unsigned;

			MessageLabel.Text = "";
			SpecificAddressBox.MaxLength = (MemoryDomains.MainMemory.Size - 1).NumHexDigits();
			HardSetSizeDropDown(_settings.Size);
			PopulateTypeDropDown();
			HardSetDisplayTypeDropDown(_settings.Type);
			DoDomainSizeCheck();
			SetReboot(false);

			SpecificAddressBox.SetHexProperties(_settings.Domain.Size);
			SpecificValueBox.ResetText();
			SpecificAddressBox.ResetText();
			NumberOfChangesBox.ResetText();
			DifferenceBox.ResetText();
			DifferentByBox.ResetText();

			_dropdownDontfire = false;

			if (_settings.IsFastMode())
			{
				SetToFastMode();
			}

			NewSearch();
		}
        public void UpdateValues()
        {
            if (_paused)
            {
                return;
            }

            if ((!IsHandleCreated || IsDisposed) && !Global.Config.DisplayRamWatch)
            {
                return;
            }

            if (_watches.Any())
            {
                _watches.UpdateValues();

                if (Global.Config.DisplayRamWatch)
                {
                    for (var i = 0; i < _watches.Count; i++)
                    {
                        var frozen = !_watches[i].IsSeparator && Global.CheatList.IsActive(_watches[i].Domain, _watches[i].Address);
                        GlobalWin.OSD.AddGUIText(
                            _watches[i].ToDisplayString(),
                            Global.Config.DispRamWatchx,
                            Global.Config.DispRamWatchy + (i * 14),
                            Color.Black,
                            frozen ? Color.Cyan : Color.White,
                            0
                            );
                    }
                }

                if (!IsHandleCreated || IsDisposed)
                {
                    return;
                }

                WatchListView.BlazingFast         = true;
                WatchListView.UseCustomBackground = NeedsBackground;
                WatchListView.Invalidate();
                WatchListView.BlazingFast = false;
            }
        }
Exemple #14
0
        private void RestoreDefaultsMenuItem_Click(object sender, EventArgs e)
        {
            Settings = new RamWatchSettings();
            Size     = new Size(_defaultWidth, _defaultHeight);

            RamWatchMenu.Items.Remove(
                RamWatchMenu.Items
                .OfType <ToolStripMenuItem>()
                .First(x => x.Name == "GeneratedColumnsSubMenu"));

            RamWatchMenu.Items.Add(WatchListView.ToColumnsMenu(ColumnToggleCallback));

            Global.Config.DisplayRamWatch = false;

            RefreshFloatingWindowControl(Settings.FloatingWindow);

            WatchListView.AllColumns.Clear();
            SetColumns();
        }
Exemple #15
0
        private void NewRamWatch_Load(object sender, EventArgs e)
        {
            // Hack for previous config settings
            if (Settings.Columns.Any(c => string.IsNullOrWhiteSpace(c.Text)))
            {
                Settings = new RamWatchSettings();
            }

            TopMost  = Settings.TopMost;
            _watches = new WatchList(MemoryDomains, Emu.SystemId);
            LoadConfigSettings();
            RamWatchMenu.Items.Add(WatchListView.ToColumnsMenu(ColumnToggleCallback));
            UpdateStatusBar();

            PokeAddressToolBarItem.Enabled       =
                FreezeAddressToolBarItem.Enabled =
                    SelectedIndices.Any() &&
                    SelectedWatches.All(w => w.Domain.CanPoke());
        }
Exemple #16
0
		private void GoToSpecifiedAddress()
		{
			WatchListView.DeselectAll();
			var prompt = new InputPrompt
			{
				Text = "Go to Address",
				StartLocation = this.ChildPointToScreen(WatchListView),
				Message = "Enter a hexadecimal value"
			};

			var result = this.ShowDialogWithTempMute(prompt);
			while (result.IsOk())
			{
				try
				{
					var addr = int.Parse(prompt.PromptText, NumberStyles.HexNumber);
					for (int index = 0; index < _searches.Count; index++)
					{
						if (_searches[index].Address == addr)
						{
							WatchListView.SelectRow(index, true);
							WatchListView.ScrollToIndex(index);
							return; // Don't re-show dialog on success
						}
					}

					// TODO add error text to dialog?
					// Re-show dialog if the address isn't found
				}
				catch (FormatException)
				{
					// Re-show dialog if given invalid text (shouldn't happen)
				}
				catch (OverflowException)
				{
					// TODO add error text to dialog?
					// Re-show dialog if the address isn't valid
				}
			}
		}
Exemple #17
0
		private void RestoreDefaultsMenuItem()
		{
			var recentFiles = Settings.RecentSearches; // We don't want to wipe recent files when restoring

			Settings = new RamSearchSettings { RecentSearches = recentFiles };

			RamSearchMenu.Items.Remove(
				RamSearchMenu.Items
					.OfType<ToolStripMenuItem>()
					.Single(x => x.Name == "GeneratedColumnsSubMenu"));

			RamSearchMenu.Items.Add(WatchListView.ToColumnsMenu(ColumnToggleCallback));

			_settings = new SearchEngineSettings(MemoryDomains, Settings.UseUndoHistory);
			if (_settings.IsFastMode())
			{
				SetToFastMode();
			}

			WatchListView.AllColumns.Clear();
			SetColumns();
		}
Exemple #18
0
		private void CopyValueToPrevMenuItem_Click(object sender, EventArgs e)
		{
			_searches.SetPreviousToCurrent();
			WatchListView.Refresh();
		}
Exemple #19
0
 private void NewRamWatch_Enter(object sender, EventArgs e)
 {
     WatchListView.Focus();
 }
Exemple #20
0
 private void NewRamWatch_Activated(object sender, EventArgs e)
 {
     WatchListView.Refresh();
 }
Exemple #21
0
		private void ClearChangeCountsMenuItem_Click(object sender, EventArgs e)
		{
			_searches.ClearChangeCounts();
			WatchListView.Refresh();
		}
Exemple #22
0
 private void SetColumns()
 {
     WatchListView.AllColumns.AddRange(Settings.Columns);
     WatchListView.Refresh();
 }
Exemple #23
0
		private void ClearPreviewContextMenuItem_Click(object sender, EventArgs e)
		{
			_forcePreviewClear = true;
			WatchListView.Refresh();
		}
Exemple #24
0
		private void DifferentByBox_TextChanged(object sender, EventArgs e)
		{
			_searches.DifferentBy = !string.IsNullOrWhiteSpace(DifferentByBox.Text) ? DifferentByBox.ToRawInt() : null;
			WatchListView.Refresh();
		}
Exemple #25
0
		private void SetCompareValue(int? value)
		{
			_searches.CompareValue = value;
			WatchListView.Refresh();
		}
Exemple #26
0
		private void SetCompareTo(Compare comp)
		{
			_searches.CompareTo = comp;
			WatchListView.Refresh();
		}
Exemple #27
0
		private void WatchListView_Enter(object sender, EventArgs e)
		{
			WatchListView.Refresh();
		}
Exemple #28
0
 private void SelectAllMenuItem_Click(object sender, EventArgs e)
 {
     WatchListView.SelectAll();
 }
Exemple #29
0
		private void SetComparisonOperator(ComparisonOperator op)
		{
			_searches.Operator = op;
			WatchListView.Refresh();
		}