I did what you said, i chop off 95% of the code and here is the example of what is going on
main.cpp
Code:
#include "MainWindow.h"
#include <gtkmm/main.h>
#include <iostream>
int main(int argc, char *argv[]) {
Gnome::Gda::init();
Gtk::Main kit(argc, argv);
Glib::RefPtr<Gtk::Builder> refBuilder = Gtk::Builder::create_from_file("MainWindow.glade");
MainWindow *window;
refBuilder->get_widget_derived("window1", window);
//Shows the window and returns when it is closed.
Gtk::Main::run(*window);
return 0;
}
MainWindow.cpp
Code:
#include "MainWindow.h"
#include <libgdamm.h>
#include <gtkmm.h>
#include <iostream>
#include <fstream>
#include <memory>
#include "FormDialog.h"
//#include "Evaluador.h"
MainWindow::MainWindow(BaseObjectType* cobject, Glib::RefPtr<Gtk::Builder> refBuilder) :
Gtk::Window(cobject),
m_refBuilder(refBuilder) {
m_refBuilder->get_widget("button1", m_Button_New);
if (m_Button_New) {
m_Button_New->signal_clicked().connect(sigc::mem_fun(*this, &MainWindow::on_button_new));
}
}
MainWindow::~MainWindow() {
}
void MainWindow::on_button_new() {
FormDialog *dialog;
Glib::RefPtr<Gtk::Builder> refBuilder = Gtk::Builder::create_from_file("FormDialog.glade");
refBuilder->get_widget_derived("dialog1", dialog);
dialog->run();
delete dialog;
}
FormDialog.cpp
Code:
#include "FormDialog.h"
#include <gtkmm.h>
#include <iostream>
#include <cstdlib>
#include <cstring>
FormDialog::FormDialog(BaseObjectType* cobject, Glib::RefPtr<Gtk::Builder> refBuilder) :
Gtk::Dialog(cobject),
m_refBuilder(refBuilder) {
m_refBuilder->get_widget("button3", button3);
if (button3) {
button3->signal_clicked().connect(sigc::mem_fun(*this, &FormDialog::on_button_sel));
}
show_all_children();
}
FormDialog::~FormDialog() {
}
void FormDialog::on_button_sel() {
Glib::ustring* us = new Glib::ustring("\n Help text \n");
Gtk::Window* help_win = new Gtk::Window(Gtk::WINDOW_TOPLEVEL);
help_win->set_title ("Help title");
Gtk::Label* etiqueta = new Gtk::Label(*us,false);
help_win->add(*etiqueta);
help_win->show_all();
}