예제 #1
0
 public static void Delete(HexEditorData data)
 {
     if (data.IsSomethingSelected)
     {
         data.DeleteSelection();
         return;
     }
     if (data.Caret.Offset >= data.Length)
     {
         return;
     }
     data.ByteBuffer.Remove(data.Caret.Offset, 1);
     data.UpdateLine(data.Caret.Line);
 }
예제 #2
0
        public static void GotoPrevious(HexEditorData data)
        {
            data.Bookmarks.Sort();
            long cur = -1;

            for (int i = 0; i < data.Bookmarks.Count; i++)
            {
                if (data.Bookmarks[i] < data.Caret.Offset && cur < data.Bookmarks[i])
                {
                    cur = data.Bookmarks[i];
                }
            }
            if (cur == -1 && data.Bookmarks.Count > 0)
            {
                cur = data.Bookmarks[data.Bookmarks.Count - 1];
            }

            if (cur != -1)
            {
                data.Caret.Offset = cur;
                data.UpdateLine(data.Caret.Offset / data.BytesInRow);
            }
        }
예제 #3
0
        public static void GotoNext(HexEditorData data)
        {
            data.Bookmarks.Sort();
            long cur = long.MaxValue;

            for (int i = 0; i < data.Bookmarks.Count; i++)
            {
                if (data.Bookmarks[i] > data.Caret.Offset && cur > data.Bookmarks[i])
                {
                    cur = data.Bookmarks[i];
                }
            }
            if (cur == long.MaxValue && data.Bookmarks.Count > 0)
            {
                cur = data.Bookmarks[0];
            }

            if (cur != long.MaxValue)
            {
                data.Caret.Offset = cur;
                data.UpdateLine(data.Caret.Offset / data.BytesInRow);
            }
        }
예제 #4
0
 public static void SwitchCaretMode(HexEditorData data)
 {
     data.Caret.IsInsertMode = !data.Caret.IsInsertMode;
     data.UpdateLine(data.Caret.Line);
 }
예제 #5
0
 public static void SwitchSide(HexEditorData data)
 {
     data.Caret.InTextEditor = !data.Caret.InTextEditor;
     data.UpdateLine(data.Caret.Line);
 }