Hi, thanks for your answer.
Could you give me a couple of pointers? In this simple test example I'm using libglade - how can I change this code to use GtkBuilder?
File elevator.cpp:
Code:
#include <gtkmm.h>
#include <libglademm/xml.h>
#include "Egui.h"
using namespace std;
int main (int argc, char *argv[]) {
Glib::RefPtr<Gnome::Glade::Xml>elevator;
Gtk::Main kit(argc, argv);
// load the interface
elevator = Gnome::Glade::Xml::create("src/Egui.glade");
// Get the main window:
Egui *mwindow;
elevator->get_widget_derived("mwindow", mwindow);
// start the event loop
Gtk::Main::run(*mwindow );
return 0;
}
File Egui.cpp:
Code:
#include "Egui.h"
#include <iostream>
using namespace std;
Egui::Egui (BaseObjectType* base_object, const Glib::RefPtr<Gnome::Glade::Xml>& glade_xml):Gtk::Window(base_object) {
glade_xml->get_widget("mwindow", mwindow);
glade_xml->get_widget("f5bttn", f5bttn);
// Connect the appropriate callbacks...
f5bttn->signal_clicked().connect(sigc::mem_fun(*this, &Egui::on_f5bttn_clicked)); // signal_clicked -> in the glade file: clicked
}
Egui::~Egui () {}
// Signal handler methods:
void Egui::on_f5bttn_clicked () {
cout << "Mmmmm.....5......" <<endl;
}
File Egui.h:
Code:
class Egui:public Gtk::Window {
public:
Egui (BaseObjectType* cobject, const Glib::RefPtr<Gnome::Glade::Xml>& glade_xml);
virtual ~Egui ();
protected:
Gtk::Window *mwindow;
Gtk::Button *f5bttn;
void on_f5bttn_clicked ();
};
I'm using gcc/g++, and compiling/linking like this:
$ g++ -c src/Egui.cpp -export-dynamic `pkg-config gtkmm-2.4 libglademm-2.4 --cflags --libs`
g++ -c src/elevator.cpp -export-dynamic `pkg-config gtkmm-2.4 libglademm-2.4 --cflags --libs`
g++ -o testrun elevator.o Egui.o -export-dynamic `pkg-config gtkmm-2.4 libglademm-2.4 --cflags --libs`