Ctrl+c, ctrlv, ctrlx
This commit is contained in:
@@ -328,7 +328,56 @@ int main() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (IsKeyDown(KEY_LEFT_CONTROL) && IsKeyPressed(KEY_C)) {
|
||||||
|
Array<String> strings = {FrameArena};
|
||||||
|
For(focused_window->cursors) {
|
||||||
|
String string = GetString(focused_window->buffer, it.range);
|
||||||
|
strings.add(string);
|
||||||
|
}
|
||||||
|
String to_save = Merge(FrameArena, strings, "\n");
|
||||||
|
SetClipboardText(to_save.data);
|
||||||
|
}
|
||||||
|
if (IsKeyDown(KEY_LEFT_CONTROL) && (IsKeyPressed(KEY_V) || IsKeyPressedRepeat(KEY_V))) {
|
||||||
|
BeforeEdit(focused_window);
|
||||||
|
Array<Edit> edits = {FrameArena};
|
||||||
|
const char *text = GetClipboardText();
|
||||||
|
String string = text;
|
||||||
|
For(focused_window->cursors) {
|
||||||
|
AddEdit(&edits, it.range, string);
|
||||||
|
}
|
||||||
|
ApplyEdits(&focused_window->buffer, edits);
|
||||||
|
AfterEdit(focused_window, edits);
|
||||||
|
}
|
||||||
|
if (IsKeyDown(KEY_LEFT_CONTROL) && (IsKeyPressed(KEY_X) || IsKeyPressedRepeat(KEY_X))) {
|
||||||
|
BeforeEdit(focused_window);
|
||||||
|
Array<Edit> edits = {FrameArena};
|
||||||
|
Array<String> strings = {FrameArena};
|
||||||
|
For(focused_window->cursors) {
|
||||||
|
Range range = {};
|
||||||
|
if (GetRangeSize(it.range)) {
|
||||||
|
range = it.range;
|
||||||
|
} else {
|
||||||
|
Line line = FindLine(focused_window->buffer, it.range.min);
|
||||||
|
range = {line.range.min, line.range.max + 1};
|
||||||
|
}
|
||||||
|
AddEdit(&edits, range, "");
|
||||||
|
String string = GetString(focused_window->buffer, range);
|
||||||
|
strings.add(string);
|
||||||
|
}
|
||||||
|
String to_save = Merge(FrameArena, strings, "\n");
|
||||||
|
SetClipboardText(to_save.data);
|
||||||
|
ApplyEdits(&focused_window->buffer, edits);
|
||||||
|
AfterEdit(focused_window, edits);
|
||||||
|
}
|
||||||
|
|
||||||
|
// @todo: scrolling
|
||||||
|
if (IsKeyPressed(KEY_DELETE) || IsKeyPressedRepeat(KEY_DELETE)) {
|
||||||
|
if (IsKeyDown(KEY_LEFT_SHIFT)) {
|
||||||
|
}
|
||||||
|
}
|
||||||
if (IsKeyPressed(KEY_BACKSPACE) || IsKeyPressedRepeat(KEY_BACKSPACE)) {
|
if (IsKeyPressed(KEY_BACKSPACE) || IsKeyPressedRepeat(KEY_BACKSPACE)) {
|
||||||
|
if (IsKeyDown(KEY_LEFT_SHIFT)) {
|
||||||
|
}
|
||||||
BeforeEdit(focused_window);
|
BeforeEdit(focused_window);
|
||||||
Array<Edit> edits = {FrameArena};
|
Array<Edit> edits = {FrameArena};
|
||||||
String string = {};
|
String string = {};
|
||||||
|
|||||||
Reference in New Issue
Block a user