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:
parent
245c4bd7c8
commit
25f28a54a1
5 changed files with 96 additions and 1 deletions
39
LibGUI/GTimer.cpp
Normal file
39
LibGUI/GTimer.cpp
Normal 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();
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue