1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-26 08:17:45 +00:00

Terminal: Rename Terminal => TerminalWidget

This makes it a bit less confusing which is what between TerminalWidget
and VT::Terminal.
This commit is contained in:
Andreas Kling 2019-08-13 13:21:58 +02:00
parent ca9592d56f
commit 178788f19a
4 changed files with 35 additions and 36 deletions

View file

@ -1,7 +1,7 @@
include ../../Makefile.common include ../../Makefile.common
OBJS = \ OBJS = \
Terminal.o \ TerminalWidget.o \
main.o main.o
APP = Terminal APP = Terminal

View file

@ -1,4 +1,4 @@
#include "Terminal.h" #include "TerminalWidget.h"
#include "XtermColors.h" #include "XtermColors.h"
#include <AK/AKString.h> #include <AK/AKString.h>
#include <AK/StdLibExtras.h> #include <AK/StdLibExtras.h>
@ -18,7 +18,7 @@
//#define TERMINAL_DEBUG //#define TERMINAL_DEBUG
Terminal::Terminal(int ptm_fd, RefPtr<CConfigFile> config) TerminalWidget::TerminalWidget(int ptm_fd, RefPtr<CConfigFile> config)
: m_terminal(*this) : m_terminal(*this)
, m_ptm_fd(ptm_fd) , m_ptm_fd(ptm_fd)
, m_notifier(ptm_fd, CNotifier::Read) , m_notifier(ptm_fd, CNotifier::Read)
@ -67,7 +67,7 @@ Terminal::Terminal(int ptm_fd, RefPtr<CConfigFile> config)
m_terminal.set_size(m_config->read_num_entry("Window", "Width", 80), m_config->read_num_entry("Window", "Height", 25)); m_terminal.set_size(m_config->read_num_entry("Window", "Width", 80), m_config->read_num_entry("Window", "Height", 25));
} }
Terminal::~Terminal() TerminalWidget::~TerminalWidget()
{ {
} }
@ -76,14 +76,14 @@ static inline Color lookup_color(unsigned color)
return Color::from_rgb(xterm_colors[color]); return Color::from_rgb(xterm_colors[color]);
} }
Rect Terminal::glyph_rect(u16 row, u16 column) Rect TerminalWidget::glyph_rect(u16 row, u16 column)
{ {
int y = row * m_line_height; int y = row * m_line_height;
int x = column * font().glyph_width('x'); int x = column * font().glyph_width('x');
return { x + frame_thickness() + m_inset, y + frame_thickness() + m_inset, font().glyph_width('x'), font().glyph_height() }; return { x + frame_thickness() + m_inset, y + frame_thickness() + m_inset, font().glyph_width('x'), font().glyph_height() };
} }
Rect Terminal::row_rect(u16 row) Rect TerminalWidget::row_rect(u16 row)
{ {
int y = row * m_line_height; int y = row * m_line_height;
Rect rect = { frame_thickness() + m_inset, y + frame_thickness() + m_inset, font().glyph_width('x') * m_terminal.columns(), font().glyph_height() }; Rect rect = { frame_thickness() + m_inset, y + frame_thickness() + m_inset, font().glyph_width('x') * m_terminal.columns(), font().glyph_height() };
@ -91,7 +91,7 @@ Rect Terminal::row_rect(u16 row)
return rect; return rect;
} }
void Terminal::event(CEvent& event) void TerminalWidget::event(CEvent& event)
{ {
if (event.type() == GEvent::WindowBecameActive || event.type() == GEvent::WindowBecameInactive) { if (event.type() == GEvent::WindowBecameActive || event.type() == GEvent::WindowBecameInactive) {
m_in_active_window = event.type() == GEvent::WindowBecameActive; m_in_active_window = event.type() == GEvent::WindowBecameActive;
@ -107,7 +107,7 @@ void Terminal::event(CEvent& event)
return GWidget::event(event); return GWidget::event(event);
} }
void Terminal::keydown_event(GKeyEvent& event) void TerminalWidget::keydown_event(GKeyEvent& event)
{ {
// Reset timer so cursor doesn't blink while typing. // Reset timer so cursor doesn't blink while typing.
m_cursor_blink_timer.stop(); m_cursor_blink_timer.stop();
@ -169,7 +169,7 @@ void Terminal::keydown_event(GKeyEvent& event)
} }
} }
void Terminal::paint_event(GPaintEvent& event) void TerminalWidget::paint_event(GPaintEvent& event)
{ {
GFrame::paint_event(event); GFrame::paint_event(event);
@ -214,7 +214,7 @@ void Terminal::paint_event(GPaintEvent& event)
} }
} }
void Terminal::set_window_title(const StringView& title) void TerminalWidget::set_window_title(const StringView& title)
{ {
auto* w = window(); auto* w = window();
if (!w) if (!w)
@ -222,12 +222,12 @@ void Terminal::set_window_title(const StringView& title)
w->set_title(title); w->set_title(title);
} }
void Terminal::invalidate_cursor() void TerminalWidget::invalidate_cursor()
{ {
m_terminal.invalidate_cursor(); m_terminal.invalidate_cursor();
} }
void Terminal::flush_dirty_lines() void TerminalWidget::flush_dirty_lines()
{ {
if (m_terminal.m_need_full_flush) { if (m_terminal.m_need_full_flush) {
update(); update();
@ -242,7 +242,7 @@ void Terminal::flush_dirty_lines()
update(rect); update(rect);
} }
void Terminal::force_repaint() void TerminalWidget::force_repaint()
{ {
m_needs_background_fill = true; m_needs_background_fill = true;
for (int i = 0; i < m_terminal.rows(); ++i) for (int i = 0; i < m_terminal.rows(); ++i)
@ -250,26 +250,26 @@ void Terminal::force_repaint()
update(); update();
} }
void Terminal::resize_event(GResizeEvent& event) void TerminalWidget::resize_event(GResizeEvent& event)
{ {
int new_columns = (event.size().width() - frame_thickness() * 2 - m_inset * 2) / font().glyph_width('x'); int new_columns = (event.size().width() - frame_thickness() * 2 - m_inset * 2) / font().glyph_width('x');
int new_rows = (event.size().height() - frame_thickness() * 2 - m_inset * 2) / m_line_height; int new_rows = (event.size().height() - frame_thickness() * 2 - m_inset * 2) / m_line_height;
m_terminal.set_size(new_columns, new_rows); m_terminal.set_size(new_columns, new_rows);
} }
void Terminal::apply_size_increments_to_window(GWindow& window) void TerminalWidget::apply_size_increments_to_window(GWindow& window)
{ {
window.set_size_increment({ font().glyph_width('x'), m_line_height }); window.set_size_increment({ font().glyph_width('x'), m_line_height });
window.set_base_size({ frame_thickness() * 2 + m_inset * 2, frame_thickness() * 2 + m_inset * 2 }); window.set_base_size({ frame_thickness() * 2 + m_inset * 2, frame_thickness() * 2 + m_inset * 2 });
} }
void Terminal::update_cursor() void TerminalWidget::update_cursor()
{ {
invalidate_cursor(); invalidate_cursor();
flush_dirty_lines(); flush_dirty_lines();
} }
void Terminal::set_opacity(u8 new_opacity) void TerminalWidget::set_opacity(u8 new_opacity)
{ {
if (m_opacity == new_opacity) if (m_opacity == new_opacity)
return; return;
@ -279,26 +279,26 @@ void Terminal::set_opacity(u8 new_opacity)
force_repaint(); force_repaint();
} }
VT::Position Terminal::normalized_selection_start() const VT::Position TerminalWidget::normalized_selection_start() const
{ {
if (m_selection_start < m_selection_end) if (m_selection_start < m_selection_end)
return m_selection_start; return m_selection_start;
return m_selection_end; return m_selection_end;
} }
VT::Position Terminal::normalized_selection_end() const VT::Position TerminalWidget::normalized_selection_end() const
{ {
if (m_selection_start < m_selection_end) if (m_selection_start < m_selection_end)
return m_selection_end; return m_selection_end;
return m_selection_start; return m_selection_start;
} }
bool Terminal::has_selection() const bool TerminalWidget::has_selection() const
{ {
return m_selection_start.is_valid() && m_selection_end.is_valid(); return m_selection_start.is_valid() && m_selection_end.is_valid();
} }
bool Terminal::selection_contains(const VT::Position& position) const bool TerminalWidget::selection_contains(const VT::Position& position) const
{ {
if (!has_selection()) if (!has_selection())
return false; return false;
@ -306,7 +306,7 @@ bool Terminal::selection_contains(const VT::Position& position) const
return position >= normalized_selection_start() && position <= normalized_selection_end(); return position >= normalized_selection_start() && position <= normalized_selection_end();
} }
VT::Position Terminal::buffer_position_at(const Point& position) const VT::Position TerminalWidget::buffer_position_at(const Point& position) const
{ {
auto adjusted_position = position.translated(-(frame_thickness() + m_inset), -(frame_thickness() + m_inset)); auto adjusted_position = position.translated(-(frame_thickness() + m_inset), -(frame_thickness() + m_inset));
int row = adjusted_position.y() / m_line_height; int row = adjusted_position.y() / m_line_height;
@ -322,7 +322,7 @@ VT::Position Terminal::buffer_position_at(const Point& position) const
return { row, column }; return { row, column };
} }
void Terminal::mousedown_event(GMouseEvent& event) void TerminalWidget::mousedown_event(GMouseEvent& event)
{ {
if (event.button() == GMouseButton::Left) { if (event.button() == GMouseButton::Left) {
m_selection_start = buffer_position_at(event.position()); m_selection_start = buffer_position_at(event.position());
@ -340,7 +340,7 @@ void Terminal::mousedown_event(GMouseEvent& event)
} }
} }
void Terminal::mousemove_event(GMouseEvent& event) void TerminalWidget::mousemove_event(GMouseEvent& event)
{ {
if (!(event.buttons() & GMouseButton::Left)) if (!(event.buttons() & GMouseButton::Left))
return; return;
@ -351,7 +351,7 @@ void Terminal::mousemove_event(GMouseEvent& event)
update(); update();
} }
void Terminal::mouseup_event(GMouseEvent& event) void TerminalWidget::mouseup_event(GMouseEvent& event)
{ {
if (event.button() != GMouseButton::Left) if (event.button() != GMouseButton::Left)
return; return;
@ -360,7 +360,7 @@ void Terminal::mouseup_event(GMouseEvent& event)
GClipboard::the().set_data(selected_text()); GClipboard::the().set_data(selected_text());
} }
String Terminal::selected_text() const String TerminalWidget::selected_text() const
{ {
StringBuilder builder; StringBuilder builder;
auto start = normalized_selection_start(); auto start = normalized_selection_start();
@ -385,7 +385,7 @@ String Terminal::selected_text() const
return builder.to_string(); return builder.to_string();
} }
void Terminal::terminal_did_resize(u16 columns, u16 rows) void TerminalWidget::terminal_did_resize(u16 columns, u16 rows)
{ {
m_pixel_width = (frame_thickness() * 2) + (m_inset * 2) + (columns * font().glyph_width('x')); m_pixel_width = (frame_thickness() * 2) + (m_inset * 2) + (columns * font().glyph_width('x'));
m_pixel_height = (frame_thickness() * 2) + (m_inset * 2) + (rows * (font().glyph_height() + m_line_spacing)) - m_line_spacing; m_pixel_height = (frame_thickness() * 2) + (m_inset * 2) + (rows * (font().glyph_height() + m_line_spacing)) - m_line_spacing;
@ -403,7 +403,7 @@ void Terminal::terminal_did_resize(u16 columns, u16 rows)
ASSERT(rc == 0); ASSERT(rc == 0);
} }
void Terminal::beep() void TerminalWidget::beep()
{ {
if (m_should_beep) { if (m_should_beep) {
sysbeep(); sysbeep();

View file

@ -9,12 +9,12 @@
#include <LibGUI/GFrame.h> #include <LibGUI/GFrame.h>
#include <LibVT/Terminal.h> #include <LibVT/Terminal.h>
class Terminal final : public GFrame class TerminalWidget final : public GFrame
, public VT::TerminalClient { , public VT::TerminalClient {
C_OBJECT(Terminal) C_OBJECT(TerminalWidget)
public: public:
explicit Terminal(int ptm_fd, RefPtr<CConfigFile> config); explicit TerminalWidget(int ptm_fd, RefPtr<CConfigFile> config);
virtual ~Terminal() override; virtual ~TerminalWidget() override;
void create_window(); void create_window();
@ -52,7 +52,6 @@ private:
virtual void set_window_title(const StringView&) override; virtual void set_window_title(const StringView&) override;
virtual void terminal_did_resize(u16 columns, u16 rows) override; virtual void terminal_did_resize(u16 columns, u16 rows) override;
Rect glyph_rect(u16 row, u16 column); Rect glyph_rect(u16 row, u16 column);
Rect row_rect(u16 row); Rect row_rect(u16 row);

View file

@ -1,4 +1,4 @@
#include "Terminal.h" #include "TerminalWidget.h"
#include <Kernel/KeyCode.h> #include <Kernel/KeyCode.h>
#include <LibCore/CUserInfo.h> #include <LibCore/CUserInfo.h>
#include <LibDraw/PNGLoader.h> #include <LibDraw/PNGLoader.h>
@ -82,7 +82,7 @@ static void make_shell(int ptm_fd)
} }
} }
GWindow* create_settings_window(Terminal& terminal, RefPtr<CConfigFile> config) GWindow* create_settings_window(TerminalWidget& terminal, RefPtr<CConfigFile> config)
{ {
auto* window = new GWindow; auto* window = new GWindow;
window->set_title("Terminal Settings"); window->set_title("Terminal Settings");
@ -150,7 +150,7 @@ int main(int argc, char** argv)
window->set_double_buffering_enabled(false); window->set_double_buffering_enabled(false);
RefPtr<CConfigFile> config = CConfigFile::get_for_app("Terminal"); RefPtr<CConfigFile> config = CConfigFile::get_for_app("Terminal");
auto* terminal = new Terminal(ptm_fd, config); auto* terminal = new TerminalWidget(ptm_fd, config);
window->set_has_alpha_channel(true); window->set_has_alpha_channel(true);
window->set_main_widget(terminal); window->set_main_widget(terminal);
window->move_to(300, 300); window->move_to(300, 300);