From 33a5f978014e65a402a3d376c7e47bd8ee8ab8ab Mon Sep 17 00:00:00 2001 From: Ricardo Markiewicz Date: Mon, 1 Dec 2003 22:47:08 +0000 Subject: [PATCH] * Dialogo About en el Constructor agregado y conectado * Logo agregado al constructor * Detalles en el cliente --- Client/src/principal.cpp | 45 ++++---- Constructor/dialogs/constructor.glade | 155 ++++++++++++++++++++++++-- Constructor/include/constructor.h | 2 +- Constructor/pixmaps/Makefile.am | 1 + Constructor/src/constructor.cpp | 24 ++++ 5 files changed, 197 insertions(+), 30 deletions(-) diff --git a/Client/src/principal.cpp b/Client/src/principal.cpp index 9be2279..9fabc78 100644 --- a/Client/src/principal.cpp +++ b/Client/src/principal.cpp @@ -21,6 +21,7 @@ Principal::Principal(BaseObjectType *co, const Glib::RefPtr &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; @@ -59,7 +60,9 @@ Principal::Principal(BaseObjectType *co, const Glib::RefPtr & 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); @@ -92,7 +95,9 @@ Principal::Principal(BaseObjectType *co, const Glib::RefPtr & 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) ); @@ -107,6 +112,7 @@ Principal::Principal(BaseObjectType *co, const Glib::RefPtr & 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() @@ -206,10 +212,12 @@ void Principal::on_dlg_connect_ok() 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; } @@ -221,7 +229,7 @@ void Principal::on_dlg_connect_ok() 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 @@ -302,10 +310,9 @@ void Principal::on_mnu_help_about() 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(); @@ -350,7 +357,7 @@ void Principal::on_conexion_frame(const std::string &frame) 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 @@ -367,14 +374,12 @@ void Principal::on_conexion_ok(const std::string &body) /* lo paso a la carga del XML */ /* verifico que body este completo */ if ((body.find("")>0) && (body.find("")>0)) { - //loadXML(body); xml_body = body; load_xml_dispatch(); } else { - std::cout << body << std::endl; - txt_view->get_buffer()->insert_at_cursor("\n"); - txt_view->get_buffer()->insert_at_cursor(Glib::locale_to_utf8(body)); - txt_view->get_buffer()->insert_at_cursor("\n"); + Glib::ustring s; + s = "\n"+Glib::locale_to_utf8(body)+"\n\n"; + txt_view->get_buffer()->insert(txt_view->get_buffer()->begin(),s); } } @@ -384,11 +389,9 @@ void Principal::on_conexion_fatal_error(const PlaQui::Server::ControlClient::Err 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) @@ -397,11 +400,9 @@ 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() diff --git a/Constructor/dialogs/constructor.glade b/Constructor/dialogs/constructor.glade index 631d18b..8d197ad 100644 --- a/Constructor/dialogs/constructor.glade +++ b/Constructor/dialogs/constructor.glade @@ -49,7 +49,7 @@ - + True gtk-new 1 @@ -70,7 +70,7 @@ - + True gtk-open 1 @@ -91,7 +91,7 @@ - + True gtk-save-as 1 @@ -118,7 +118,7 @@ - + True gtk-quit 1 @@ -152,7 +152,7 @@ - + True gtk-delete 1 @@ -173,7 +173,7 @@ - + True gtk-clear 1 @@ -200,11 +200,23 @@ - + True Acerca de... True + + + + True + gtk-dialog-info + 1 + 0.5 + 0.5 + 0 + 0 + + @@ -2174,4 +2186,133 @@ Ingrese un nombre distinto para este elemento + + Acerca de ... + GTK_WINDOW_TOPLEVEL + GTK_WIN_POS_CENTER + True + True + False + True + + + + True + False + 0 + + + + True + GTK_BUTTONBOX_END + + + + True + True + True + True + gtk-close + True + GTK_RELIEF_NORMAL + -7 + + + + + + 0 + False + True + GTK_PACK_END + + + + + + True + True + True + True + GTK_POS_TOP + False + False + + + + True + False + 0 + + + + + 0 + True + True + + + + + + True + ... + False + False + GTK_JUSTIFY_LEFT + False + False + 0.5 + 0.5 + 0 + 0 + + + 10 + False + False + + + + + False + True + + + + + + True + PlaQui + False + False + GTK_JUSTIFY_LEFT + False + False + 0.5 + 0.5 + 0 + 0 + + + tab + + + + + 0 + True + True + + + + + + diff --git a/Constructor/include/constructor.h b/Constructor/include/constructor.h index fe3e817..55f1ffd 100644 --- a/Constructor/include/constructor.h +++ b/Constructor/include/constructor.h @@ -83,7 +83,7 @@ class Constructor : public Gtk::Window { Gtk::CheckButton *chk_btn_logica; Gtk::FileSelection *file_selection, *file_open_selection; Gtk::Combo *combo_entry; - Gtk::Dialog *dlg_connect; + Gtk::Dialog *dlg_connect, *dlg_about; Gtk::Label *dlg_label; Gtk::Statusbar *status_bar; Glib::RefPtr ico_canio, ico_y, ico_codo, ico_tanque, ico_bomba, ico_exclusa, ico_drain, ico_and, ico_or, ico_not; diff --git a/Constructor/pixmaps/Makefile.am b/Constructor/pixmaps/Makefile.am index 7e19fb6..fef4d3b 100644 --- a/Constructor/pixmaps/Makefile.am +++ b/Constructor/pixmaps/Makefile.am @@ -3,6 +3,7 @@ plaquidlgdir = $(datadir)/plaqui-constructor/dialogs # Imagenes que se cargar "on the fly" plaquiimg_DATA = \ +logo.png \ and_e.png \ and_n.png \ and_o.png \ diff --git a/Constructor/src/constructor.cpp b/Constructor/src/constructor.cpp index acf5bc1..facfd8d 100644 --- a/Constructor/src/constructor.cpp +++ b/Constructor/src/constructor.cpp @@ -5,6 +5,28 @@ Constructor::Constructor(BaseObjectType* cobject, const Glib::RefPtrget_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"); @@ -59,6 +81,8 @@ Constructor::Constructor(BaseObjectType* cobject, const Glib::RefPtrsignal_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); -- 2.43.0