jsweeper/src/gui.cpp

60 lines
927 B
C++

#include <iostream>
#include <cmath>
#include <unistd.h>
#include "jack.h"
#include "portmanager.h"
#include "gui.h"
#include "config.h"
Glib::RefPtr<Gtk::Builder> g_builder;
Gui::Gui(BaseObjectType *cobject, const Glib::RefPtr<Gtk::Builder> &builder)
: Gtk::Window(cobject),
m_scrolledwindow(NULL)
{
builder->get_widget("scrolledwindow1", m_scrolledwindow);
if (m_scrolledwindow != NULL) {
m_scrolledwindow->add(m_matrix);
}
m_matrix.parent = this;
Refresh();
Glib::signal_idle().connect(sigc::mem_fun(*this, &Gui::on_idle));
}
Gui::~Gui()
{
}
Gui *Gui::Open()
{
if (g_builder == NULL) {
g_builder = Gtk::Builder::create_from_file("jsweeper.ui");
}
Gui *window = NULL;
g_builder->get_widget_derived("window1", window);
return window;
}
void Gui::Refresh()
{
m_matrix.Refresh();
}
bool Gui::on_idle()
{
if (jack.ProcessEvents()) {
Refresh();
queue_draw();
}
usleep(1000);
return true;
}