1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-31 15:28:11 +00:00

Port Terminal to LibGUI.

To facilitate listening for action on arbitrary file descriptors,
I've added a GNotifier class. It's quite simple but very useful:

GNotifier notifier(fd, GNotifier::Read);
notifier.on_ready_to_read = [this] (GNotifier& fd) {
    // read from fd or whatever else you like :^)
};

The callback will get invoked by GEventLoop when select() says we
have something to read on the fd.
This commit is contained in:
Andreas Kling 2019-02-10 14:28:39 +01:00
parent ae4811fbae
commit 53d34a0885
15 changed files with 268 additions and 151 deletions

View file

@ -26,6 +26,7 @@ public:
int height() const { return rect().height(); }
Rect rect() const;
Size size() const { return rect().size(); }
void set_rect(const Rect&);
void set_rect(int x, int y, int width, int height) { set_rect({ x, y, width, height }); }
@ -58,6 +59,8 @@ public:
void set_should_exit_app_on_close(bool b) { m_should_exit_app_on_close = b; }
private:
virtual const char* class_name() const override { return "GWindow"; }
RetainPtr<GraphicsBitmap> m_backing;
int m_window_id { 0 };
bool m_is_active { false };