summaryrefslogtreecommitdiff
path: root/Applications/Terminal/Terminal.cpp
AgeCommit message (Collapse)Author
2019-08-13Terminal: Rename Terminal => TerminalWidgetAndreas Kling
This makes it a bit less confusing which is what between TerminalWidget and VT::Terminal.
2019-08-13LibVT: Rename VT::BufferPosition to VT::Position and move to own fileAndreas Kling
2019-08-12LibVT: Factor out terminal emulation from Terminal to make it reusableAndreas Kling
Now that we're bringing back the in-kernel virtual console, we should move towards having a single implementation of terminal emulation. This patch rips out the emulation code from the Terminal application and turns it into the beginnings of LibVT. The basic design idea is that users of VT::Terminal will implement and provide a VT::TerminalClient subclass to handle presentation-specific things. We'll need to iterate on this, but it's a start. :^)
2019-08-04Terminal: Paint bold text with a bold font.Andreas Kling
This was really straightforward since all the necessary pieces were already in place. This patch just passes a bold font to draw_glyphs() for buffer cells with the bold attribute set. :^)
2019-07-24Terminal: Convert Vector<OwnPtr> to NonnullOwnPtrVector.Andreas Kling
2019-07-20GWidget: Add set_preferred_size(width, height) overload.Andreas Kling
It was annoying to always write set_preferred_size({ width, height }). :^)
2019-07-18LibDraw: Introduce (formerly known as SharedGraphics.)Andreas Kling
Instead of LibGUI and WindowServer building their own copies of the drawing and graphics code, let's it in a separate LibDraw library. This avoids building the code twice, and will encourage better separation of concerns. :^)
2019-07-08Terminal: Try to preserve line contents when resizing the terminal window.Andreas Kling
This is still destructive when shrinking, but clearly better than throwing everything away.
2019-07-03AK: Rename the common integer typedefs to make it obvious what they are.Andreas Kling
These types can be picked up by including <AK/Types.h>: * u8, u16, u32, u64 (unsigned) * i8, i16, i32, i64 (signed)
2019-07-01Terminal: Track which character cells have had something printed in them.Andreas Kling
This helps us figure out where lines end, which we need when computing the selected text for copy-to-clipboard. :^)
2019-06-30Terminal: Unbreak single-line text selection.Andreas Kling
2019-06-28Terminal: Make it so typing resets the cursor blink timer.Andreas Kling
Patch contributed by "pd"
2019-06-28Terminal: Don't write erroneous characters to PTY when modifiers pressed.Andreas Kling
Additionally the Alt modifier now generates the correct characters, as do Insert/Delete/PgUp/PgDown. Patch contributed by "pd"
2019-06-28Terminal: Changex internal opacity representation to byte instead of float.Andreas Kling
This lets us avoid some math during paint events. Patch contributed by "pd"
2019-06-23Terminal: Don't compute buffer positions outside the possible area.Andreas Kling
2019-06-23Terminal: Add basic mouse selection with copy and paste.Andreas Kling
Left mouse button selects (and copies the selection on mouse up). The right mouse button then pastes whatever's on the clipboard. I always liked this behavior in PuTTY, so now we have it here as well :^)
2019-06-22Terminal: Fix compiler warnings.Andreas Kling
2019-06-21AK: Rename RetainPtr => RefPtr and Retained => NonnullRefPtr.Andreas Kling
2019-06-12Terminal: Add support for DCH ('P' final)Andreas Kling
Patch contributed by "pd"
2019-06-11Terminal: Add support for REP ('b' final)Andreas Kling
Patch contributed by "pd"
2019-06-06Terminal: Reallocate kept lines when resizing the terminal.Andreas Kling
Otherwise we end up with garbage text when making the window bigger.
2019-06-06Terminal: Store horizontal tabs in a Vector.Andreas Kling
There's no need to muck around with manual malloc()/free() here.
2019-06-03Terminal: Use Vectors and OwnPtrs for Terminal lines. Adjust scrollChristopher Dumas
region behavior
2019-06-03Terminal: Implement scroll region termcodesChristopher Dumas
2019-06-01Terminal: Fix insufficient repaint after visual bell clears.Andreas Kling
Also make the bell time a little shorter, 500ms kinda wears on you. :^)
2019-06-01Terminal: Single settings window & consistant visual bell timingChristopher Dumas
2019-06-01Terminal: Audible vs Visible beep optionChristopher Dumas
2019-05-30Terminal: Fix some missing text attributesRobin Burchell
Probably doesn't actually change much yet since we don't support many text rendering options, but it's at least good to have the options, and to record things we don't yet support too.
2019-05-27IRC client setttings, Terminal settings, more WM settingsChristopher Dumas
2019-05-17Terminal: Uh, also change the one caller of beep() to sysbeep()..Andreas Kling
2019-05-15Kernel: Add a beep() syscall that beeps the PC speaker.Andreas Kling
Hook this up in Terminal so that the '\a' character generates a beep. Finally emit an '\a' character in the shell line editing code when backspacing at the start of the line.
2019-05-12Change String&& arguments to const String& in a couple of places.Andreas Kling
String&& is more nuisance than anything, and the codegen improvement is basically negligible since the underlying type is already retainable.
2019-05-11Terminal: Give the terminal widget a sunken container look.Andreas Kling
This blends perfectly with the new window frames. :^)
2019-05-08Replace various copies of parse_uint(String) with String::to_uint().Andreas Kling
2019-05-07Shell: Support home/end keys for line editing.Andreas Kling
2019-05-03WindowServer+LibGUI: Allow changing whether windows have alpha channels.Andreas Kling
Use this in Terminal to tell the window server to not bother with the alpha channel in the backing store if we're running without transparency. Semi-transparent terminals look neat but they slow everything down, so this keeps things fast while making it easy to switch to the flashy mode. :^)
2019-04-30Terminal: <esc>[m should clear the current attribute.Andreas Kling
This was causing GCC error messages to appear in all-red text.
2019-04-29Terminal: Add ability to adjust the terminal's opacity.Andreas Kling
2019-04-20AK: Add String::copy(BufferType) helper.Andreas Kling
This will create a String from any BufferType that has data() and size().
2019-04-20Sprinkle use of AK::Vector in various places.Andreas Kling
Some of these are less helpful than others. Avoiding a bunch of mallocs in the event loop wakeup code is definitely nice.
2019-04-10LibCore: Move LibGUI/GNotifier to LibCore/CNotifier.Andreas Kling
2019-04-10LibCore: Add CEvent and make LibGUI/GEvent inherit from it.Andreas Kling
2019-03-30Terminal+LibGUI: Make the terminal cursor blink.Andreas Kling
Added a GTimer class to help with this. It's just a simple GObject subclass that sets up an event loop timer and invokes a callback on timeout.
2019-03-28LibGUI: Add a GPainter class that inherits from Painter.Andreas Kling
This gets rid of the last little piece of LibGUI knowledge in Painter.
2019-03-14Terminal: Enough compat work for Lynx to actually load web pages.Andreas Kling
2019-03-14Terminal: Use TERM=xterm by default, and implement some more escapes.Andreas Kling
2019-03-14Terminal: Add some logging for the 'r' final.Andreas Kling
I haven't implemented scrolling regions yet, but this will at least give me some indication that they're being used.
2019-03-10LibGUI: Don't fill widgets with background color by defualt.Andreas Kling
2019-03-06More work on the variable-width font support.Andreas Kling
Katica is now the default system font, and it looks quite nice. :^) I'm gonna need to refine the GTextBox movement stuff eventually, but it works well-enough for basic editing now.
2019-03-06Make a preparation pass for variable-width fonts.Andreas Kling