Andreas Kling
b65ca3b944
LibVT: Make Terminal::Line non-copyable and non-movable
2020-05-09 13:20:01 +02:00
Andreas Kling
a0616d96bf
LibVT: Make the Xterm/OSC sequence parsing a bit more robust
...
Tolerate sequences ending in both <0x07> (BEL) and <0x1b> <0x5c> (ST).
The former is apparently an Xterm extension and the latter is standard.
2020-05-09 12:08:41 +02:00
Andreas Kling
283bd1a95c
LibVT: Respond to DSR 0 (device status)
...
Also emit query responses in a single write() syscall instead of going
character-at-a-time.
2020-05-09 12:02:22 +02:00
AnotherTest
54d400c685
LibVT: Handle ctrl+arrow keys
...
Prior to this commit, we would treat them the same.
2020-04-20 20:23:26 +02:00
Andreas Kling
17b8857dc0
LibVT: Shift+Tab should generate ESC[Z
...
Fixes #1751 .
2020-04-11 21:09:47 +02:00
AnotherTest
2663739db1
LibVT: Implement Device Status Report (cursor position report)
2020-04-10 00:58:59 +02:00
Andreas Kling
5c779c124b
LibVT: Don't scroll-to-bottom when pressing the Logo key
...
Let's treat the Logo key like all the other modifiers and not scroll to
the bottom of the buffer.
2020-03-30 13:15:47 +02:00
Andreas Kling
37fc6c117c
Userspace: Add missing #includes now that AK/StdLibExtras.h is smaller
2020-03-08 13:06:51 +01:00
rhin123
72ef3e529a
TerminalWidget: Implement ALT selection
...
When holding ALT & selecting text, the terminal now forms a rectangle
selection similar to other terminal behaviors.
2020-03-06 20:20:02 +01:00
Andreas Kling
ceec1a7d38
AK: Make Vector use size_t for its size and capacity
2020-02-25 14:52:35 +01:00
Andreas Kling
bfd86c4631
LibGUI: Make GUI::Frame have the 2px sunken container look by default
...
The overwhelming majority of GUI::Frame users set the same appearance,
so let's just make it the default.
2020-02-23 11:10:52 +01:00
Andreas Kling
3d20da9ee4
Userspace: Use Core::Object::add() when building interfaces
2020-02-23 11:10:52 +01:00
Andreas Kling
2143da6434
LibGUI: Add forwarding header
...
This patch adds <LibGUI/Forward.h> and uses it a bunch.
It also dragged various header dependency reduction changes into it.
2020-02-16 09:41:56 +01:00
Andreas Kling
66903ad987
LibGfx: Remove Utf8View.h dependency from Font.h
2020-02-15 00:27:50 +01:00
Andreas Kling
e1ff4fa034
LibGUI: Remove more header dependencies from Widget.h
2020-02-15 00:24:14 +01:00
Andreas Kling
814d59f462
LibGUI: Port the drag&drop code to Core::MimeData
2020-02-14 13:18:59 +01:00
Andreas Kling
6a9cc66b97
LibGUI: Remove leading G from filenames
2020-02-06 20:33:02 +01:00
Andreas Kling
d17e23bd27
LibCore: Remove leading C from filenames
2020-02-06 15:04:03 +01:00
Andreas Kling
f8b00aa290
LibGfx: Unpublish Gfx::Size from the global namespace
2020-02-06 13:32:14 +01:00
Andreas Kling
20cfd2a6bf
LibGfx: Unpublish Gfx::Rect from global namespace
2020-02-06 13:02:38 +01:00
Andreas Kling
c39d44fc2e
LibGfx: Rename GraphicsBitmap.{cpp,h} => Bitmap.{cpp,h}
2020-02-06 12:07:05 +01:00
Andreas Kling
9ac94d393e
LibGfx: Rename from LibDraw :^)
2020-02-06 12:04:00 +01:00
Andreas Kling
11580babbf
LibDraw: Put all classes in the Gfx namespace
...
I started adding things to a Draw namespace, but it somehow felt really
wrong seeing Draw::Rect and Draw::Bitmap, etc. So instead, let's rename
the library to LibGfx. :^)
2020-02-06 11:56:38 +01:00
Andreas Kling
c5bd9d4ed1
LibGUI: Put all classes in the GUI namespace and remove the leading G
...
This took me a moment. Welcome to the new world of GUI::Widget! :^)
2020-02-02 15:15:33 +01:00
Andreas Kling
2d39da5405
LibCore: Put all classes in the Core namespace and remove the leading C
...
I've been wanting to do this for a long time. It's time we start being
consistent about how this stuff works.
The new convention is:
- "LibFoo" is a userspace library that provides the "Foo" namespace.
That's it :^) This was pretty tedious to convert and I didn't even
start on LibGUI yet. But it's coming up next.
2020-02-02 15:15:30 +01:00
Linus Groh
174583cda5
LibVT: Add parameter names in function signatures for clarity
2020-01-26 15:58:06 +01:00
Linus Groh
3549623dc6
LibVT: Rename escape$r to DECSTBM (Set Top and Bottom Margins)
2020-01-26 15:58:06 +01:00
Linus Groh
79f88db6fb
LibVT: Remove empty line
2020-01-26 15:58:06 +01:00
Linus Groh
fd8c250866
LibVT: Replace escape$h_l with SM (Set Mode) / RM (Reset Mode)
2020-01-26 15:58:06 +01:00
Linus Groh
be57b81336
LibVT: Rename escape$f to HVP (Horizontal and Vertical Position)
2020-01-26 15:58:06 +01:00
Linus Groh
2edd8e37ae
LibVT: Rename escape$c to DA (Device Attributes)
2020-01-26 15:58:06 +01:00
Linus Groh
dcb5bf9e50
LibVT: Rename escape$m to SGR (Select Graphic Rendition)
2020-01-26 15:58:06 +01:00
Linus Groh
296afbe624
LibVT: Rename escape$H to CUP (Cursor Position)
2020-01-26 15:58:06 +01:00
Linus Groh
5cdfc58242
LibVT: Rename escape$D to CUB (Cursor Backward)
2020-01-26 15:58:06 +01:00
Linus Groh
428a55a196
LibVT: Rename escape$C to CUF (Cursor Forward)
2020-01-26 15:58:06 +01:00
Linus Groh
35310dbd22
LibVT: Rename escape$B to CUD (Cursor Down)
2020-01-26 15:58:06 +01:00
Linus Groh
cc73284c64
LibVT: Rename escape$A to CUU (Cursor Up)
2020-01-26 15:58:06 +01:00
Andreas Kling
8c1f2d7131
LibVT: Rename escape$K and escape$J to EL and ED respectively
...
We should rename all of these functions to match the real VT100 names.
This will make it 100% easier to work on LibVT.
For reference: https://vt100.net/docs/vt100-ug/
2020-01-25 20:54:40 +01:00
Andreas Kling
4ed5c13792
LibVT: Fix off-by-ones in ED (Erase in Display) and EL (Erase in Line)
2020-01-25 20:51:49 +01:00
Andreas Kling
a3069b16fd
LibVT: Make backspace (BS) non-destructive
...
I did not realize this was a thing. This fixes an artifact in vttest.
2020-01-25 20:39:23 +01:00
Andreas Kling
dca92af431
LibVT: Support IND and RI (cursor down/up basically)
2020-01-25 20:26:35 +01:00
Andreas Kling
0d191aae13
LibVT: Rename EscapeState::ExpectBracket => GotEscape
...
Seems like there are many escape sequences that don't start with
brackets, so let's call the post-escape state "GotEscape" instead. :^)
2020-01-25 20:02:31 +01:00
Andreas Kling
897ad1b927
LibVT: Support NEL (Next Line)
...
I think this can just behave as if you sent a newline character ('\n').
2020-01-25 20:01:43 +01:00
Andreas Kling
ab77bd4c3a
LibVT: Support <esc>#8 to fill screen with E's
...
This is apparently a "confidence test" supported by VT100.
2020-01-25 19:52:35 +01:00
Andreas Kling
25f04b06ad
LibVT: Don't go into "stomp" state after moving the cursor
...
The curious "stomp" state occurs when you type your way all the way
over to the right side of the terminal buffer, and we "stomp" once on
the very last column, before jumping to the next line.
We should never go into "stomp" state in response to programmatically
setting the cursor position. This fixes a small artifact in vttest.
2020-01-25 19:50:23 +01:00
Andreas Kling
20e41ab381
LibVT: Support HVP (Horizontal and Vertical Position) (final 'f')
2020-01-25 19:49:42 +01:00
Andreas Kling
e6f5ce8285
LibVT: Support the DA (Device Attributes) request (final 'c')
...
This is used by vttest on startup to query the device for identity.
2020-01-25 19:12:08 +01:00
Sergey Bugaev
b4923938e1
LibVT: Input dragged file path into the terminal on drop
...
We also support dropping plain text and non-file URLs.
2020-01-22 21:22:23 +01:00
Andreas Kling
94ca55cefd
Meta: Add license header to source files
...
As suggested by Joshua, this commit adds the 2-clause BSD license as a
comment block to the top of every source file.
For the first pass, I've just added myself for simplicity. I encourage
everyone to add themselves as copyright holders of any file they've
added or modified in some significant way. If I've added myself in
error somewhere, feel free to replace it with the appropriate copyright
holder instead.
Going forward, all new source files should include a license header.
2020-01-18 09:45:54 +01:00
joshua stein
5c25983844
LibVT: enforce a minimum size of 1 column and 1 row
...
Fixes #829
2020-01-16 12:41:09 +01:00