mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-06-01 07:52:50 +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:
parent
ae4811fbae
commit
53d34a0885
Notes:
sideshowbarker
2024-07-19 15:48:04 +09:00
Author: https://github.com/awesomekling
Commit: 53d34a0885
15 changed files with 268 additions and 151 deletions
15
LibGUI/GNotifier.cpp
Normal file
15
LibGUI/GNotifier.cpp
Normal file
|
@ -0,0 +1,15 @@
|
|||
#include <LibGUI/GNotifier.h>
|
||||
#include <LibGUI/GEventLoop.h>
|
||||
|
||||
GNotifier::GNotifier(int fd, unsigned event_mask)
|
||||
: m_fd(fd)
|
||||
, m_event_mask(event_mask)
|
||||
{
|
||||
GEventLoop::main().register_notifier(Badge<GNotifier>(), *this);
|
||||
}
|
||||
|
||||
GNotifier::~GNotifier()
|
||||
{
|
||||
GEventLoop::main().unregister_notifier(Badge<GNotifier>(), *this);
|
||||
}
|
||||
|
Loading…
Add table
Add a link
Reference in a new issue