Principal::Principal(BaseObjectType *co, const Glib::RefPtr<Gnome::Glade::Xml> &rg):Gtk::Window(co),refXml(rg)
{
Gtk::MenuItem *conect=0, *exit=0, *about=0, *mnu_prop=0, *mnu_disconnect=0, *server_stop=0;
+ Gtk::MenuItem *mnu_simular=0, *mnu_pausar=0;
Gtk::Button *bar_connect=0, *close_about=0;
Gtk::Image *plaqui_logo;
Gtk::Label *lbl_plaqui_version;
rg->get_widget("close_about", close_about);
rg->get_widget("dlgAbout", dlg_about);
+ rg->get_widget("mnu_pausar", mnu_pausar);
rg->get_widget("btn_pausa", btn_pause);
+ rg->get_widget("mnu_simular", mnu_simular);
rg->get_widget("btn_simular", btn_simulate);
rg->get_widget("btn_activar", btn_activar);
rg->get_widget("color_preview", color_preview);
exit->signal_activate().connect( SigC::slot(*this, &Principal::on_mnu_file_exit));
about->signal_activate().connect( SigC::slot(*this, &Principal::on_mnu_help_about));
btn_activar->signal_clicked().connect( SigC::slot(*this, &Principal::on_btn_activar_clicked) );
+ mnu_simular->signal_activate().connect( SigC::slot(*this, &Principal::on_btn_simulate_clicked) );
btn_simulate->signal_clicked().connect( SigC::slot(*this, &Principal::on_btn_simulate_clicked) );
+ mnu_pausar->signal_activate().connect( SigC::slot(*this, &Principal::on_btn_pause_clicked) );
btn_pause->signal_clicked().connect( SigC::slot(*this, &Principal::on_btn_pause_clicked) );
close_about->signal_clicked().connect( SigC::slot(*dlg_about, &Gtk::Widget::hide) );
color_high = Gdk::Color("red");
Gtk::Widget::get_default_colormap()->alloc_color(color_low);
Gtk::Widget::get_default_colormap()->alloc_color(color_high);
+ txt_view->set_editable(false);
}
Principal::~Principal()
conexion = new PlaQui::Server::ControlClient(dlg_conectar->get_server_name(), dlg_conectar->get_server_port());
}
catch (...) {
- txt_view->get_buffer()->insert_at_cursor("NO SE PUDO CREAR OBJETO\n");
+ txt_view->get_buffer()->insert(txt_view->get_buffer()->begin(), "NO SE PUDO CONECTAR\n");
//delete conexion; XXX Si no me equivoco, si falla el
//constructor, no se reserva la memoria (el delete no va).
+ delete conexion;
conexion = NULL;
+ dlg_conectar->hide();
return;
}
conexion->signal_frame_received().connect(SigC::slot(*this, &Principal::on_conexion_frame));
// Lanzo la conexion!
conexion->run();
- txt_view->get_buffer()->insert_at_cursor("CONNECTED\n");
+ txt_view->get_buffer()->insert(txt_view->get_buffer()->begin(),"CONNECTED\n");
ico_conected->set( Gtk::Stock::YES , Gtk::IconSize(Gtk::ICON_SIZE_LARGE_TOOLBAR));
// Pido la planta por defecto
bool Principal::on_item_clicked(GdkEventButton *e, ViewItem *i)
{
-
- txt_view->get_buffer()->insert_at_cursor("Selecciono ");
- txt_view->get_buffer()->insert_at_cursor(i->get_name());
- txt_view->get_buffer()->insert_at_cursor("\n");
+ Glib::ustring s;
+ s = "Selecciono "+i->get_name()+"\n";
+ txt_view->get_buffer()->insert(txt_view->get_buffer()->begin(), s);
last_selected = i;
update_items_prop();
void Principal::on_conexion_finished()
{
- txt_view->get_buffer()->insert_at_cursor("HANG UP\n");
+ txt_view->get_buffer()->insert(txt_view->get_buffer()->begin(),"HANG UP\n");
ico_conected->set( Gtk::Stock::NO , Gtk::IconSize(Gtk::ICON_SIZE_LARGE_TOOLBAR));
conexion = NULL;
// Elimino la planta
/* lo paso a la carga del XML */
/* verifico que body este completo */
if ((body.find("</planta>")>0) && (body.find("<planta>")>0)) {
- //loadXML(body);
xml_body = body;
load_xml_dispatch();
} else {
- std::cout << body << std::endl;
- txt_view->get_buffer()->insert_at_cursor("<IN>\n");
- txt_view->get_buffer()->insert_at_cursor(Glib::locale_to_utf8(body));
- txt_view->get_buffer()->insert_at_cursor("</IN>\n");
+ Glib::ustring s;
+ s = "<IN>\n"+Glib::locale_to_utf8(body)+"\n</IN>\n";
+ txt_view->get_buffer()->insert(txt_view->get_buffer()->begin(),s);
}
}
std::string s;
a << code;
a >> s;
- txt_view->get_buffer()->insert_at_cursor("Error de red nro. ");
- txt_view->get_buffer()->insert_at_cursor(s);
- txt_view->get_buffer()->insert_at_cursor(": ");
- txt_view->get_buffer()->insert_at_cursor(desc);
- txt_view->get_buffer()->insert_at_cursor("\n");
+ Glib::ustring st;
+ st = "Error de red nro. "+s+": "+desc+"\n";
+ txt_view->get_buffer()->insert(txt_view->get_buffer()->begin(),st);
}
void Principal::on_conexion_error(unsigned code, const std::string& desc)
std::string s;
a << code;
a >> s;
- txt_view->get_buffer()->insert_at_cursor("El server dice que hay error nro. ");
- txt_view->get_buffer()->insert_at_cursor(s);
- txt_view->get_buffer()->insert_at_cursor(": ");
- txt_view->get_buffer()->insert_at_cursor(desc);
- txt_view->get_buffer()->insert_at_cursor("\n");
+ Glib::ustring st;
+ st = "El server dice que hay error nro. "+s+": "+desc+"\n";
+ txt_view->get_buffer()->insert(txt_view->get_buffer()->begin(),st);
}
void Principal::loadXML()
<signal name="activate" handler="on_main_menu_new_activate" last_modification_time="Tue, 14 Oct 2003 11:17:30 GMT"/>
<child internal-child="image">
- <widget class="GtkImage" id="image20">
+ <widget class="GtkImage" id="image25">
<property name="visible">True</property>
<property name="stock">gtk-new</property>
<property name="icon_size">1</property>
<signal name="activate" handler="on_main_menu_open_activate" last_modification_time="Tue, 14 Oct 2003 11:17:30 GMT"/>
<child internal-child="image">
- <widget class="GtkImage" id="image21">
+ <widget class="GtkImage" id="image26">
<property name="visible">True</property>
<property name="stock">gtk-open</property>
<property name="icon_size">1</property>
<signal name="activate" handler="on_main_menu_save_activate" last_modification_time="Tue, 14 Oct 2003 11:17:30 GMT"/>
<child internal-child="image">
- <widget class="GtkImage" id="image22">
+ <widget class="GtkImage" id="image27">
<property name="visible">True</property>
<property name="stock">gtk-save-as</property>
<property name="icon_size">1</property>
<signal name="activate" handler="on_main_menu_quit_activate" last_modification_time="Tue, 14 Oct 2003 11:17:30 GMT"/>
<child internal-child="image">
- <widget class="GtkImage" id="image23">
+ <widget class="GtkImage" id="image28">
<property name="visible">True</property>
<property name="stock">gtk-quit</property>
<property name="icon_size">1</property>
<signal name="activate" handler="on_edit_menu_del_activate" last_modification_time="Tue, 14 Oct 2003 11:17:30 GMT"/>
<child internal-child="image">
- <widget class="GtkImage" id="image24">
+ <widget class="GtkImage" id="image29">
<property name="visible">True</property>
<property name="stock">gtk-delete</property>
<property name="icon_size">1</property>
<signal name="activate" handler="on_delete_all_activate" last_modification_time="Fri, 21 Nov 2003 16:34:12 GMT"/>
<child internal-child="image">
- <widget class="GtkImage" id="image25">
+ <widget class="GtkImage" id="image30">
<property name="visible">True</property>
<property name="stock">gtk-clear</property>
<property name="icon_size">1</property>
<widget class="GtkMenu" id="menuitem4_menu">
<child>
- <widget class="GtkMenuItem" id="about1">
+ <widget class="GtkImageMenuItem" id="mnu_about">
<property name="visible">True</property>
<property name="label" translatable="yes">Acerca de...</property>
<property name="use_underline">True</property>
<signal name="activate" handler="on_about1_activate" last_modification_time="Tue, 14 Oct 2003 11:17:30 GMT"/>
+
+ <child internal-child="image">
+ <widget class="GtkImage" id="image31">
+ <property name="visible">True</property>
+ <property name="stock">gtk-dialog-info</property>
+ <property name="icon_size">1</property>
+ <property name="xalign">0.5</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ </widget>
+ </child>
</widget>
</child>
</widget>
</child>
</widget>
+<widget class="GtkDialog" id="dlgAbout">
+ <property name="title" translatable="yes">Acerca de ...</property>
+ <property name="type">GTK_WINDOW_TOPLEVEL</property>
+ <property name="window_position">GTK_WIN_POS_CENTER</property>
+ <property name="modal">True</property>
+ <property name="resizable">True</property>
+ <property name="destroy_with_parent">False</property>
+ <property name="has_separator">True</property>
+
+ <child internal-child="vbox">
+ <widget class="GtkVBox" id="vbox5">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">0</property>
+
+ <child internal-child="action_area">
+ <widget class="GtkHButtonBox" id="hbuttonbox3">
+ <property name="visible">True</property>
+ <property name="layout_style">GTK_BUTTONBOX_END</property>
+
+ <child>
+ <widget class="GtkButton" id="close_about">
+ <property name="visible">True</property>
+ <property name="can_default">True</property>
+ <property name="has_default">True</property>
+ <property name="can_focus">True</property>
+ <property name="label">gtk-close</property>
+ <property name="use_stock">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="response_id">-7</property>
+ <signal name="clicked" handler="gtk_widget_hide" last_modification_time="Mon, 01 Dec 2003 06:35:10 GMT"/>
+ </widget>
+ </child>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="pack_type">GTK_PACK_END</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkNotebook" id="notebook1">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="show_tabs">True</property>
+ <property name="show_border">True</property>
+ <property name="tab_pos">GTK_POS_TOP</property>
+ <property name="scrollable">False</property>
+ <property name="enable_popup">False</property>
+
+ <child>
+ <widget class="GtkVBox" id="vbox6">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">0</property>
+
+ <child>
+ <widget class="GtkImage" id="plaqui_logo">
+ <property name="visible">True</property>
+ <property name="xalign">0.5</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkLabel" id="lbl_plaqui_version">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">...</property>
+ <property name="use_underline">False</property>
+ <property name="use_markup">False</property>
+ <property name="justify">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap">False</property>
+ <property name="selectable">False</property>
+ <property name="xalign">0.5</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ </widget>
+ <packing>
+ <property name="padding">10</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="tab_expand">False</property>
+ <property name="tab_fill">True</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkLabel" id="label33">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">PlaQui</property>
+ <property name="use_underline">False</property>
+ <property name="use_markup">False</property>
+ <property name="justify">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap">False</property>
+ <property name="selectable">False</property>
+ <property name="xalign">0.5</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ </widget>
+ <packing>
+ <property name="type">tab</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+ </widget>
+ </child>
+</widget>
+
</glade-interface>
id = 0;
saved = false;
set_title("Constructor");
+ Gtk::Label *lbl_plaqui_version;
+ Gtk::Image *plaqui_logo;
+ Gtk::MenuItem *mnu_about;
+ Gtk::Button *close_about;
+
+ plaqui_logo = 0;
+ lbl_plaqui_version = 0;
+ refGlade->get_widget("lbl_plaqui_version", lbl_plaqui_version);
+ refGlade->get_widget("plaqui_logo", plaqui_logo);
+ plaqui_logo->set(PACKAGE_DATA_DIR"/plaqui-constructor/pixmaps/logo.png");
+
+ refGlade->get_widget("plaqui_logo", plaqui_logo);
+ // Calculo número de revisión.
+ std::string rev = "$Rev$";
+ rev = rev.substr(6, rev.length() - 8);
+ std::string s = "PlaQui Constructor versión " VERSION " (revisión ";
+ s += rev + ")";
+ lbl_plaqui_version->set_text(Glib::locale_to_utf8(s));
+
+ refGlade->get_widget("dlgAbout", dlg_about);
+ refGlade->get_widget("close_about", close_about);
+ refGlade->get_widget("mnu_about", mnu_about);
// Cargo todas las imagenes de los iconos de los botones
ico_canio = Gdk::Pixbuf::create_from_file(PACKAGE_DATA_DIR"/plaqui-constructor/pixmaps/canio_n.png");
listTargets.push_back( Gtk::TargetEntry("application/pointer") );
// Le indico cuales son los botones desde los cuales se puede hacer un drag.
+ mnu_about->signal_activate().connect( SigC::slot(*dlg_about, &Gtk::Widget::show) );
+ close_about->signal_clicked().connect( SigC::slot(*dlg_about, &Gtk::Widget::hide) );
btn_canio->drag_source_set(listTargets);
btn_y->drag_source_set(listTargets);
btn_codo->drag_source_set(listTargets);