jsweeper/src/gui.cpp

78 lines
1.6 KiB
C++

#include <iostream>
#include <cmath>
#include <unistd.h>
#include "jack.h"
#include "portmanager.h"
#include "gui.h"
#include "config.h"
Gui::Gui()
{
set_title("JACK Sweeper");
set_border_width(0);
set_size_request(100, 100);
add(m_box);
m_scrolledwindow.set_policy(Gtk::POLICY_AUTOMATIC, Gtk::POLICY_AUTOMATIC);
m_scrolledwindow.set_border_width(0);
m_scrolledwindow.add(m_matrix);
m_matrix.parent = this;
Refresh();
Glib::signal_idle().connect(sigc::mem_fun(*this, &Gui::on_idle));
m_actiongroup = Gtk::ActionGroup::create();
m_actiongroup->add(Gtk::Action::create("MenuFile", "_File"));
m_actiongroup->add(Gtk::Action::create("Connect", "Connect"));
m_actiongroup->add(Gtk::Action::create("Disconnect", "Disconnect"));
m_actiongroup->add(Gtk::Action::create("Quit", Gtk::Stock::QUIT));
m_uimanager = Gtk::UIManager::create();
m_uimanager->insert_action_group(m_actiongroup);
add_accel_group(m_uimanager->get_accel_group());
std::string ui_info =
"<ui>"
" <menubar name='MenuBar'>"
" <menu action='MenuFile'>"
" <menuitem action='Connect'/>"
" <menuitem action='Disconnect'/>"
" <separator/>"
" <menuitem action='Quit'/>"
" </menu>"
" </menubar>"
"</ui>";
m_uimanager->add_ui_from_string(ui_info);
Gtk::Widget *menubar = m_uimanager->get_widget("/MenuBar");
m_box.pack_start(*menubar, Gtk::PACK_SHRINK);
m_box.pack_start(m_scrolledwindow);
show_all_children();
}
Gui::~Gui()
{
}
void Gui::Refresh()
{
m_matrix.Refresh();
}
bool Gui::on_idle()
{
if (jack.ProcessEvents()) {
Refresh();
queue_draw();
}
usleep(1000);
return true;
}