Add glade/gtkbuilder UI
git-svn-id: file:///home/vcs/svn/jsweeper/trunk@4 6611ac79-6612-48ef-a1e9-b906f853523emaster
parent
5249fa7d89
commit
91350c93dc
58
src/gui.cpp
58
src/gui.cpp
|
@ -6,58 +6,40 @@
|
|||
#include "gui.h"
|
||||
#include "config.h"
|
||||
|
||||
Gui::Gui()
|
||||
Glib::RefPtr<Gtk::Builder> g_builder;
|
||||
|
||||
Gui::Gui(BaseObjectType *cobject, const Glib::RefPtr<Gtk::Builder> &builder)
|
||||
: Gtk::Window(cobject),
|
||||
m_scrolledwindow(NULL)
|
||||
{
|
||||
set_title("JACK Sweeper");
|
||||
set_border_width(0);
|
||||
set_size_request(100, 100);
|
||||
builder->get_widget("scrolledwindow1", m_scrolledwindow);
|
||||
|
||||
add(m_box);
|
||||
if (m_scrolledwindow != NULL) {
|
||||
m_scrolledwindow->add(m_matrix);
|
||||
}
|
||||
|
||||
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()
|
||||
{
|
||||
}
|
||||
|
||||
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();
|
||||
|
|
11
src/gui.h
11
src/gui.h
|
@ -4,17 +4,18 @@
|
|||
#include <gtkmm.h>
|
||||
#include "matrix.h"
|
||||
|
||||
extern Glib::RefPtr<Gtk::Builder> g_builder;
|
||||
|
||||
class Gui : public Gtk::Window
|
||||
{
|
||||
private:
|
||||
Glib::RefPtr<Gtk::ActionGroup> m_actiongroup;
|
||||
Glib::RefPtr<Gtk::UIManager> m_uimanager;
|
||||
Gtk::ScrolledWindow m_scrolledwindow;
|
||||
Gtk::VBox m_box;
|
||||
Gtk::ScrolledWindow *m_scrolledwindow;
|
||||
Matrix m_matrix;
|
||||
|
||||
public:
|
||||
Gui();
|
||||
Gui(BaseObjectType *cobject, const Glib::RefPtr<Gtk::Builder> &builder);
|
||||
|
||||
static Gui *Open();
|
||||
virtual ~Gui();
|
||||
|
||||
void Refresh();
|
||||
|
|
|
@ -17,7 +17,7 @@ int main(int argc, char **argv)
|
|||
|
||||
jack.Connect();
|
||||
|
||||
Gui *g = new Gui();
|
||||
Gui *g = Gui::Open();
|
||||
kit.run(*g);
|
||||
delete g;
|
||||
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -283,7 +283,7 @@ void Matrix::Refresh()
|
|||
m_height = h;
|
||||
|
||||
set_size_request(w, h);
|
||||
parent->set_size_request(w + 20, h + 20);
|
||||
// parent->set_size_request(w + 20, h + 20);
|
||||
}
|
||||
|
||||
void Matrix::Box(Cairo::RefPtr<Cairo::Context> cr, float r, float g, float b, Rect &rect)
|
||||
|
|
Loading…
Reference in New Issue