1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-19 03:25:07 +00:00

Terminal+LibGUI: Make the terminal cursor blink.

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.
This commit is contained in:
Andreas Kling 2019-03-30 21:40:27 +01:00
parent 245c4bd7c8
commit 25f28a54a1
5 changed files with 96 additions and 1 deletions

39
LibGUI/GTimer.cpp Normal file
View file

@ -0,0 +1,39 @@
#include <LibGUI/GTimer.h>
GTimer::GTimer(GObject* parent)
: GObject(parent)
{
}
GTimer::~GTimer()
{
}
void GTimer::start()
{
start(m_interval);
}
void GTimer::start(int interval)
{
if (m_active)
return;
start_timer(interval);
m_active = true;
}
void GTimer::stop()
{
if (!m_active)
return;
stop_timer();
m_active = false;
}
void GTimer::timer_event(GTimerEvent&)
{
if (m_single_shot)
stop();
if (on_timeout)
on_timeout();
}