/* Maneja el Ayuda->Acerca de */
#include <gtkmm.h>
+#include <glibmm/iochannel.h>
#include <iostream>
class MnuHelpAbout:public Gtk::MenuItem {
virtual ~MnuHelpAbout() {}
protected:
- // preparo para leer el archivo ChangeLog
- Glif::RefPtr<StreamIOChannel> change_log;
- fstream fp("../ChangeLog");
- change_log = StreamIOChannel::create(fstream);
-
-
Glib::RefPtr<Gnome::Glade::Xml> refXml;
+
virtual void on_activate() {
+ // preparo para leer el archivo ChangeLog
+ Glib::ustring line;
+ Glib::RefPtr<Gtk::TextBuffer> log_buffer;
+ Glib::RefPtr<Glib::IOChannel> log_io;
+
+ log_buffer = Gtk::TextBuffer::create();
+ log_io = Glib::IOChannel::create_from_file("../ChangeLog", "r");
+ while (log_io->read_line(line) != Glib::IO_STATUS_EOF) {
+ log_buffer->insert_at_cursor(line);
+ }
+
try {
refXml = Gnome::Glade::Xml::create("client.glade", "dlgAbout");
}
}
Gtk::Window *dlg = 0;
Gtk::Button *btn_cerrar = 0;
+ Gtk::TextView *txt_changelog = 0;
refXml->get_widget("dlgAbout", dlg);
refXml->get_widget("btn_close", btn_cerrar);
+ refXml->get_widget("txt_changelog", txt_changelog);
btn_cerrar->signal_clicked().connect(SigC::slot(*dlg, &Gtk::Dialog::hide));
+ txt_changelog->set_buffer(log_buffer);
dlg->show();
}
};