Exemplo n.º 1
0
        protected override void Execute(DnHexBox dnHexBox)
        {
            var sel = dnHexBox.Selection;

            if (sel == null)
            {
                return;
            }

            var ask = new AskForInput();

            ask.Owner         = MainWindow.Instance;
            ask.Title         = "Enter Value";
            ask.label.Content = "_Byte";
            ask.textBox.Text  = "0xFF";
            ask.ShowDialog();
            if (ask.DialogResult != true)
            {
                return;
            }

            string error;
            byte   b = NumberVMUtils.ParseByte(ask.textBox.Text, byte.MinValue, byte.MaxValue, out error);

            if (!string.IsNullOrEmpty(error))
            {
                MainWindow.Instance.ShowMessageBox(error);
                return;
            }

            dnHexBox.FillBytes(sel.Value.StartOffset, sel.Value.EndOffset, b);
            dnHexBox.Selection = null;
        }
Exemplo n.º 2
0
        static void ExecuteInternal(DnHexBox dnHexBox)
        {
            if (dnHexBox == null)
            {
                return;
            }
            ulong start = dnHexBox.CaretPosition.Offset;
            ulong end   = start;

            if (dnHexBox.Selection != null)
            {
                start = dnHexBox.Selection.Value.StartOffset;
                end   = dnHexBox.Selection.Value.EndOffset;
            }
            var data = new SelectVM(dnHexBox.PhysicalToVisibleOffset(start), dnHexBox.PhysicalToVisibleOffset(end), dnHexBox.PhysicalToVisibleOffset(dnHexBox.StartOffset), dnHexBox.PhysicalToVisibleOffset(dnHexBox.EndOffset));
            var win  = new SelectDlg();

            win.DataContext = data;
            win.Owner       = MainWindow.Instance;
            if (win.ShowDialog() != true)
            {
                return;
            }

            dnHexBox.Selection     = new HexSelection(dnHexBox.VisibleToPhysicalOffset(data.EndVM.Value), dnHexBox.VisibleToPhysicalOffset(data.StartVM.Value));
            dnHexBox.CaretPosition = new HexBoxPosition(dnHexBox.VisibleToPhysicalOffset(data.StartVM.Value), dnHexBox.CaretPosition.Kind, 0);
        }
Exemplo n.º 3
0
        internal static void Execute2(DnHexBox dnHexBox)
        {
            if (!CanExecute(dnHexBox))
            {
                return;
            }

            var data = new GoToOffsetVM(dnHexBox.PhysicalToVisibleOffset(dnHexBox.CaretPosition.Offset), dnHexBox.PhysicalToVisibleOffset(dnHexBox.StartOffset), dnHexBox.PhysicalToVisibleOffset(dnHexBox.EndOffset));
            var win  = new GoToOffsetDlg();

            win.DataContext = data;
            win.Owner       = MainWindow.Instance;
            if (dnHexBox.IsMemory)
            {
                win.Title = "Go to Address";
                win.offsetLabel.Content = "_Address";
            }
            else
            {
                win.Title = "Go to Offset";
                win.offsetLabel.Content = "O_ffset";
            }
            if (win.ShowDialog() != true)
            {
                return;
            }

            dnHexBox.CaretPosition = new HexBoxPosition(dnHexBox.VisibleToPhysicalOffset(data.OffsetVM.Value), dnHexBox.CaretPosition.Kind, 0);
        }
Exemplo n.º 4
0
        internal static void Execute2(DnHexBox dnHexBox)
        {
            var sel = dnHexBox.Selection;

            if (sel == null)
            {
                return;
            }

            dnHexBox.StartOffset = sel.Value.StartOffset;
            dnHexBox.EndOffset   = sel.Value.EndOffset;
        }
Exemplo n.º 5
0
 protected override void Initialize(DnHexBox dnHexBox, MenuItem menuItem)
 {
     foreach (var info in subMenus) {
         var mi = new MenuItem {
             Header = info.Item2,
             IsChecked = info.Item1 == dnHexBox.BytesPerLine,
         };
         var tmpInfo = info;
         mi.Click += (s, e) => dnHexBox.BytesPerLine = tmpInfo.Item1;
         menuItem.Items.Add(mi);
     }
 }
Exemplo n.º 6
0
		public HexTabState() {
			this.HexBox = new DnHexBox();
			this.HexBox.Tag = this;
			var scroller = new ScrollViewer();
			scroller.Content = HexBox;
			scroller.CanContentScroll = true;
			scroller.HorizontalScrollBarVisibility = ScrollBarVisibility.Auto;
			scroller.VerticalScrollBarVisibility = ScrollBarVisibility.Auto;
			this.TabItem.Content = scroller;

			InstallMouseWheelZoomHandler(HexBox);
		}
Exemplo n.º 7
0
		public void CopyTo(DnHexBox dnHexBox) {
			dnHexBox.BytesGroupCount = this.BytesGroupCount;
			dnHexBox.BytesPerLine = this.BytesPerLine;
			dnHexBox.UseHexPrefix = this.UseHexPrefix;
			dnHexBox.ShowAscii = this.ShowAscii;
			dnHexBox.LowerCaseHex = this.LowerCaseHex;
			dnHexBox.AsciiEncoding = this.AsciiEncoding;
			dnHexBox.HexOffsetSize = this.HexOffsetSize;
			dnHexBox.UseRelativeOffsets = this.UseRelativeOffsets;
			dnHexBox.BaseOffset = this.BaseOffset;
			dnHexBox.StartOffset = this.StartOffset ?? dnHexBox.DocumentStartOffset;
			dnHexBox.EndOffset = this.EndOffset ?? dnHexBox.DocumentEndOffset;
		}
Exemplo n.º 8
0
 protected override void Initialize(DnHexBox dnHexBox, MenuItem menuItem)
 {
     foreach (var info in subMenus)
     {
         var mi = new MenuItem {
             Header    = info.Item2,
             IsChecked = info.Item1 == dnHexBox.AsciiEncoding,
         };
         var tmpInfo = info;
         mi.Click += (s, e) => dnHexBox.AsciiEncoding = tmpInfo.Item1;
         menuItem.Items.Add(mi);
     }
 }
Exemplo n.º 9
0
		public LocalHexSettings(DnHexBox dnHexBox) {
			this.BytesGroupCount = dnHexBox.BytesGroupCount;
			this.BytesPerLine = dnHexBox.BytesPerLine;
			this.UseHexPrefix = dnHexBox.UseHexPrefix;
			this.ShowAscii = dnHexBox.ShowAscii;
			this.LowerCaseHex = dnHexBox.LowerCaseHex;
			this.AsciiEncoding = dnHexBox.AsciiEncoding;
			this.HexOffsetSize = dnHexBox.HexOffsetSize;
			this.UseRelativeOffsets = dnHexBox.UseRelativeOffsets;
			this.BaseOffset = dnHexBox.BaseOffset;
			this.StartOffset = dnHexBox.StartOffset == dnHexBox.DocumentStartOffset ? (ulong?)null : dnHexBox.StartOffset;
			this.EndOffset = dnHexBox.EndOffset == dnHexBox.DocumentEndOffset ? (ulong?)null : dnHexBox.EndOffset;
		}
Exemplo n.º 10
0
 public LocalHexSettings(DnHexBox dnHexBox)
 {
     this.BytesGroupCount    = dnHexBox.BytesGroupCount;
     this.BytesPerLine       = dnHexBox.BytesPerLine;
     this.UseHexPrefix       = dnHexBox.UseHexPrefix;
     this.ShowAscii          = dnHexBox.ShowAscii;
     this.LowerCaseHex       = dnHexBox.LowerCaseHex;
     this.AsciiEncoding      = dnHexBox.AsciiEncoding;
     this.HexOffsetSize      = dnHexBox.HexOffsetSize;
     this.UseRelativeOffsets = dnHexBox.UseRelativeOffsets;
     this.BaseOffset         = dnHexBox.BaseOffset;
     this.StartOffset        = dnHexBox.StartOffset == dnHexBox.DocumentStartOffset ? (ulong?)null : dnHexBox.StartOffset;
     this.EndOffset          = dnHexBox.EndOffset == dnHexBox.DocumentEndOffset ? (ulong?)null : dnHexBox.EndOffset;
 }
Exemplo n.º 11
0
        protected override void Execute(DnHexBox dnHexBox)
        {
            var data = new LocalSettingsVM(new LocalHexSettings(dnHexBox));
            var win  = new LocalSettingsDlg();

            win.DataContext = data;
            win.Owner       = MainWindow.Instance;
            if (win.ShowDialog() != true)
            {
                return;
            }

            data.CreateLocalHexSettings().CopyTo(dnHexBox);
        }
Exemplo n.º 12
0
        internal static void Execute2(DnHexBox dnHexBox)
        {
            if (!CanExecute(dnHexBox))
            {
                return;
            }

            var data = GetBlobData(ClipboardUtils.GetData());

            if (data != null)
            {
                dnHexBox.Paste(data);
            }
        }
Exemplo n.º 13
0
 public void CopyTo(DnHexBox dnHexBox)
 {
     dnHexBox.BytesGroupCount    = this.BytesGroupCount;
     dnHexBox.BytesPerLine       = this.BytesPerLine;
     dnHexBox.UseHexPrefix       = this.UseHexPrefix;
     dnHexBox.ShowAscii          = this.ShowAscii;
     dnHexBox.LowerCaseHex       = this.LowerCaseHex;
     dnHexBox.AsciiEncoding      = this.AsciiEncoding;
     dnHexBox.HexOffsetSize      = this.HexOffsetSize;
     dnHexBox.UseRelativeOffsets = this.UseRelativeOffsets;
     dnHexBox.BaseOffset         = this.BaseOffset;
     dnHexBox.StartOffset        = this.StartOffset ?? dnHexBox.DocumentStartOffset;
     dnHexBox.EndOffset          = this.EndOffset ?? dnHexBox.DocumentEndOffset;
 }
Exemplo n.º 14
0
        internal static void Execute2(DnHexBox dnHexBox)
        {
            dnHexBox.StartOffset = dnHexBox.DocumentStartOffset;
            dnHexBox.EndOffset   = dnHexBox.DocumentEndOffset;
            var sel = dnHexBox.Selection;

            dnHexBox.Dispatcher.BeginInvoke(DispatcherPriority.Loaded, new Action(delegate {
                if (sel != null && sel == dnHexBox.Selection)
                {
                    dnHexBox.SetCaretPositionAndMakeVisible(sel.Value.StartOffset, sel.Value.EndOffset);
                }
                else
                {
                    dnHexBox.BringCaretIntoView();
                }
            }));
        }
Exemplo n.º 15
0
        internal static void Execute2(DnHexBox dnHexBox)
        {
            var doc = dnHexBox.Document;

            if (doc == null)
            {
                return;
            }
            var sel = dnHexBox.Selection;

            if (sel == null)
            {
                return;
            }

            var dialog = new WF.SaveFileDialog()
            {
                Filter           = PickFilenameConstants.AnyFilenameFilter,
                RestoreDirectory = true,
                ValidateNames    = true,
            };

            if (dialog.ShowDialog() != WF.DialogResult.OK)
            {
                return;
            }

            var data = new ProgressVM(MainWindow.Instance.Dispatcher, new HexDocumentDataSaver(doc, sel.Value.StartOffset, sel.Value.EndOffset, dialog.FileName));
            var win  = new ProgressDlg();

            win.DataContext = data;
            win.Owner       = MainWindow.Instance;
            win.Title       = string.Format("Save Selection 0x{0:X}-0x{1:X}", sel.Value.StartOffset, sel.Value.EndOffset);
            var res = win.ShowDialog();

            if (res != true)
            {
                return;
            }
            if (!data.WasError)
            {
                return;
            }
            MainWindow.Instance.ShowMessageBox(string.Format("An error occurred:\n\n{0}", data.ErrorMessage));
        }
Exemplo n.º 16
0
		protected override void Execute(DnHexBox dnHexBox) {
			dnHexBox.CopyVBArray();
		}
Exemplo n.º 17
0
		protected override void Execute(DnHexBox dnHexBox) {
			dnHexBox.CopyOffset();
		}
Exemplo n.º 18
0
		protected override void Initialize(DnHexBox dnHexBox, MenuItem menuItem) {
			menuItem.IsChecked = dnHexBox.LowerCaseHex ?? HexSettings.Instance.LowerCaseHex;
		}
Exemplo n.º 19
0
		protected override bool IsEnabled(DnHexBox dnHexBox) {
			return dnHexBox.Selection != null;
		}
Exemplo n.º 20
0
		protected virtual bool IsEnabled(DnHexBox dnHexBox) {
			return IsVisible(dnHexBox);
		}
Exemplo n.º 21
0
 protected override void Execute(DnHexBox dnHexBox)
 {
     dnHexBox.PasteUtf8();
 }
Exemplo n.º 22
0
 protected override bool IsEnabled(DnHexBox dnHexBox)
 {
     return(CanExecute(dnHexBox));
 }
Exemplo n.º 23
0
		protected abstract void Execute(DnHexBox dnHexBox);
Exemplo n.º 24
0
 protected override void Execute(DnHexBox dnHexBox)
 {
     dnHexBox.CopyUIContents();
 }
Exemplo n.º 25
0
 protected override bool IsVisible(DnHexBox dnHexBox)
 {
     return(true);
 }
Exemplo n.º 26
0
 internal static bool CanExecute(DnHexBox dnHexBox)
 {
     return(dnHexBox != null && GetBlobData(ClipboardUtils.GetData()) != null);
 }
Exemplo n.º 27
0
 protected override bool IsEnabled(DnHexBox dnHexBox)
 {
     return(dnHexBox.CanPasteUnicode());
 }
Exemplo n.º 28
0
 protected override void Execute(DnHexBox dnHexBox)
 {
     dnHexBox.PasteUnicode();
 }
Exemplo n.º 29
0
		protected override void Execute(DnHexBox dnHexBox) {
			dnHexBox.PasteUnicode();
		}
Exemplo n.º 30
0
 protected abstract void Execute(DnHexBox dnHexBox);
Exemplo n.º 31
0
		internal static bool CanExecute(DnHexBox dnHexBox) {
			return dnHexBox != null && GetBlobData(ClipboardUtils.GetData()) != null;
		}
Exemplo n.º 32
0
 protected virtual void Initialize(DnHexBox dnHexBox, MenuItem menuItem)
 {
 }
Exemplo n.º 33
0
		protected override bool IsEnabled(DnHexBox dnHexBox) {
			return CanExecute(dnHexBox);
		}
Exemplo n.º 34
0
 protected virtual bool IsEnabled(DnHexBox dnHexBox)
 {
     return(IsVisible(dnHexBox));
 }
Exemplo n.º 35
0
		protected override void Execute(DnHexBox dnHexBox) {
			Execute2(dnHexBox);
		}
Exemplo n.º 36
0
 protected abstract bool IsVisible(DnHexBox dnHexBox);
Exemplo n.º 37
0
		protected override void Execute(DnHexBox dnHexBox) {
			dnHexBox.LowerCaseHex = !(dnHexBox.LowerCaseHex ?? HexSettings.Instance.LowerCaseHex);
		}
Exemplo n.º 38
0
 protected override void Execute(DnHexBox dnHexBox)
 {
     Execute2(dnHexBox);
 }
Exemplo n.º 39
0
		protected override void Execute(DnHexBox dnHexBox) {
			var data = new LocalSettingsVM(new LocalHexSettings(dnHexBox));
			var win = new LocalSettingsDlg();
			win.DataContext = data;
			win.Owner = MainWindow.Instance;
			if (win.ShowDialog() != true)
				return;

			data.CreateLocalHexSettings().CopyTo(dnHexBox);
		}
Exemplo n.º 40
0
 protected override void Initialize(DnHexBox dnHexBox, MenuItem menuItem)
 {
     menuItem.IsChecked = dnHexBox.ShowAscii ?? HexSettings.Instance.ShowAscii;
 }
Exemplo n.º 41
0
		protected override void Execute(DnHexBox dnHexBox) {
			dnHexBox.CopyUnicodeString();
		}
Exemplo n.º 42
0
 protected override void Execute(DnHexBox dnHexBox)
 {
     dnHexBox.CopyVBArray();
 }
Exemplo n.º 43
0
		protected override void Execute(DnHexBox dnHexBox) {
			dnHexBox.CopyUIContents();
		}
Exemplo n.º 44
0
 protected override void Execute(DnHexBox dnHexBox)
 {
     dnHexBox.CopyUnicodeString();
 }
Exemplo n.º 45
0
		protected override void Execute(DnHexBox dnHexBox) {
			dnHexBox.PasteUtf8();
		}
Exemplo n.º 46
0
 protected override bool IsEnabled(DnHexBox dnHexBox)
 {
     return(dnHexBox.Selection != null);
 }
Exemplo n.º 47
0
		protected override bool IsEnabled(DnHexBox dnHexBox) {
			return dnHexBox.CanPasteUnicode();
		}
Exemplo n.º 48
0
		internal static bool CanExecute(DnHexBox dnHexBox) {
			return dnHexBox != null && dnHexBox.Document != null;
		}
Exemplo n.º 49
0
		internal static void Execute2(DnHexBox dnHexBox) {
			if (!CanExecute(dnHexBox))
				return;

			var data = GetBlobData(ClipboardUtils.GetData());
			if (data != null)
				dnHexBox.Paste(data);
		}
Exemplo n.º 50
0
 protected override void Initialize(DnHexBox dnHexBox, MenuItem menuItem)
 {
     menuItem.IsChecked = dnHexBox.LowerCaseHex ?? HexSettings.Instance.LowerCaseHex;
 }
Exemplo n.º 51
0
		protected override bool IsVisible(DnHexBox dnHexBox) {
			return true;
		}
Exemplo n.º 52
0
		protected override void Initialize(DnHexBox dnHexBox, MenuItem menuItem) {
			menuItem.IsChecked = dnHexBox.UseHexPrefix ?? HexSettings.Instance.UseHexPrefix;
		}
Exemplo n.º 53
0
		protected virtual void Initialize(DnHexBox dnHexBox, MenuItem menuItem) {
		}
Exemplo n.º 54
0
		protected override void Execute(DnHexBox dnHexBox) {
			dnHexBox.ShowAscii = !(dnHexBox.ShowAscii ?? HexSettings.Instance.ShowAscii);
		}
Exemplo n.º 55
0
		protected abstract bool IsVisible(DnHexBox dnHexBox);
Exemplo n.º 56
0
		protected override void Initialize(DnHexBox dnHexBox, MenuItem menuItem) {
			menuItem.IsChecked = dnHexBox.ShowAscii ?? HexSettings.Instance.ShowAscii;
		}
Exemplo n.º 57
0
		protected override bool IsVisible(DnHexBox dnHexBox) {
			return CanExecute(dnHexBox);
		}
Exemplo n.º 58
0
 protected override void Execute(DnHexBox dnHexBox)
 {
     dnHexBox.CopyOffset();
 }
Exemplo n.º 59
0
		internal static void Execute2(DnHexBox dnHexBox) {
			if (!CanExecute(dnHexBox))
				return;

			var data = new GoToOffsetVM(dnHexBox.PhysicalToVisibleOffset(dnHexBox.CaretPosition.Offset), dnHexBox.PhysicalToVisibleOffset(dnHexBox.StartOffset), dnHexBox.PhysicalToVisibleOffset(dnHexBox.EndOffset));
			var win = new GoToOffsetDlg();
			win.DataContext = data;
			win.Owner = MainWindow.Instance;
			if (dnHexBox.IsMemory) {
				win.Title = "Go to Address";
				win.offsetLabel.Content = "_Address";
			}
			else {
				win.Title = "Go to Offset";
				win.offsetLabel.Content = "O_ffset";
			}
			if (win.ShowDialog() != true)
				return;

			dnHexBox.CaretPosition = new HexBoxPosition(dnHexBox.VisibleToPhysicalOffset(data.OffsetVM.Value), dnHexBox.CaretPosition.Kind, 0);
		}
Exemplo n.º 60
0
 protected override void Execute(DnHexBox dnHexBox)
 {
     dnHexBox.LowerCaseHex = !(dnHexBox.LowerCaseHex ?? HexSettings.Instance.LowerCaseHex);
 }