]> git.llucax.com Git - z.facultad/75.42/plaqui.git/blobdiff - Client/src/principal.cpp
* Se modifica la UI del cliente para que quede mas linda.
[z.facultad/75.42/plaqui.git] / Client / src / principal.cpp
index 5066b52176d2aa165379deb789e46a0ad73489da..3775a8f7c3bf99df336ea0e2b0dd5799edf2721b 100644 (file)
 #include <unistd.h>
 #include <glibmm/thread.h>
 
 #include <unistd.h>
 #include <glibmm/thread.h>
 
+#define INFINITO 99999999
+
 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;
 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;
-       Gtk::Button *btn_get=0, *bar_connect=0;
+       Gtk::Button *bar_connect=0;
        txt_view = 0;
        txt_view = 0;
-       txt_target = txt_command = txt_args = 0;
        work_place = 0;
        lbl_cap_flujo = lbl_cap_extra = lbl_extra = lbl_nombre = lbl_color = lbl_flujo = 0;
        btn_simulate = btn_pause = 0;
 
        work_place = 0;
        lbl_cap_flujo = lbl_cap_extra = lbl_extra = lbl_nombre = lbl_color = lbl_flujo = 0;
        btn_simulate = btn_pause = 0;
 
+       anim_frames[0] = Gdk::Pixbuf::create_from_file(PACKAGE_DATA_DIR"/plaqui-client/pixmaps/anim_0.png");
+       anim_frames[1] = Gdk::Pixbuf::create_from_file(PACKAGE_DATA_DIR"/plaqui-client/pixmaps/anim_1.png");
+       anim_frames[2] = Gdk::Pixbuf::create_from_file(PACKAGE_DATA_DIR"/plaqui-client/pixmaps/anim_2.png");
+       anim_frames[3] = Gdk::Pixbuf::create_from_file(PACKAGE_DATA_DIR"/plaqui-client/pixmaps/anim_3.png");
+       anim_frames[4] = Gdk::Pixbuf::create_from_file(PACKAGE_DATA_DIR"/plaqui-client/pixmaps/anim_4.png");
+       current_frame = 0;
+
+       anim = 0;
+       rg->get_widget("anim_frames", anim);
+       anim->set(anim_frames[current_frame]);
+
        rg->get_widget("btn_pausa", btn_pause);
        rg->get_widget("btn_simular", btn_simulate);
        rg->get_widget("btn_activar", btn_activar);
        rg->get_widget("btn_pausa", btn_pause);
        rg->get_widget("btn_simular", btn_simulate);
        rg->get_widget("btn_activar", btn_activar);
@@ -42,11 +54,7 @@ Principal::Principal(BaseObjectType *co, const Glib::RefPtr<Gnome::Glade::Xml> &
        rg->get_widget("mnu_prop", mnu_prop);
        rg->get_widget_derived("dlg_property", dlg_property);
        rg->get_widget_derived("dlgConectar", dlg_conectar);
        rg->get_widget("mnu_prop", mnu_prop);
        rg->get_widget_derived("dlg_property", dlg_property);
        rg->get_widget_derived("dlgConectar", dlg_conectar);
-       rg->get_widget("btn_get", btn_get);
        rg->get_widget("txt_view", txt_view);
        rg->get_widget("txt_view", txt_view);
-       rg->get_widget("txt_target", txt_target);
-       rg->get_widget("txt_command", txt_command);
-       rg->get_widget("txt_args", txt_args);
        rg->get_widget("bar_connect", bar_connect);
        rg->get_widget("work_place", work_place);
        rg->get_widget("ico_conected", ico_conected);
        rg->get_widget("bar_connect", bar_connect);
        rg->get_widget("work_place", work_place);
        rg->get_widget("ico_conected", ico_conected);
@@ -60,7 +68,6 @@ Principal::Principal(BaseObjectType *co, const Glib::RefPtr<Gnome::Glade::Xml> &
        bar_connect->signal_clicked().connect( SigC::slot(*this, &Principal::on_mnu_file_connect));
        exit->signal_activate().connect( SigC::slot(*this, &Principal::on_mnu_file_exit));
        about->signal_activate().connect( SigC::slot(*this, &Principal::on_mnu_help_about));
        bar_connect->signal_clicked().connect( SigC::slot(*this, &Principal::on_mnu_file_connect));
        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_get->signal_clicked().connect( SigC::slot(*this, &Principal::on_get_clicked) );
        btn_activar->signal_clicked().connect( SigC::slot(*this, &Principal::on_btn_activar_clicked) );
        btn_simulate->signal_clicked().connect( SigC::slot(*this, &Principal::on_btn_simulate_clicked) );
        btn_pause->signal_clicked().connect( SigC::slot(*this, &Principal::on_btn_pause_clicked) );
        btn_activar->signal_clicked().connect( SigC::slot(*this, &Principal::on_btn_activar_clicked) );
        btn_simulate->signal_clicked().connect( SigC::slot(*this, &Principal::on_btn_simulate_clicked) );
        btn_pause->signal_clicked().connect( SigC::slot(*this, &Principal::on_btn_pause_clicked) );
@@ -68,6 +75,7 @@ Principal::Principal(BaseObjectType *co, const Glib::RefPtr<Gnome::Glade::Xml> &
        conexion = NULL;
        is_xml_loaded = false;
        last_selected = NULL;
        conexion = NULL;
        is_xml_loaded = false;
        last_selected = NULL;
+       paused = true;
        update_ui.connect( SigC::slot(*this, &Principal::update_items_prop ) );
        load_xml_dispatch.connect( SigC::slot(*this, &Principal::loadXML ) );
        gc = Gdk::GC::create(get_window());
        update_ui.connect( SigC::slot(*this, &Principal::update_items_prop ) );
        load_xml_dispatch.connect( SigC::slot(*this, &Principal::loadXML ) );
        gc = Gdk::GC::create(get_window());
@@ -280,17 +288,25 @@ bool Principal::on_item_clicked(GdkEventButton *e, ViewItem *i)
 
 void Principal::update_items_prop()
 {
 
 void Principal::update_items_prop()
 {
-       if (last_selected == NULL) return;
+       if (last_selected != NULL) {
+               lbl_nombre->set_text(last_selected->get_name());
+               lbl_flujo->set_text(last_selected->get_actual_flow());
+               lbl_extra->set_text(last_selected->get_extra());
 
 
-       lbl_nombre->set_text(last_selected->get_name());
-       lbl_flujo->set_text(last_selected->get_actual_flow());
-       lbl_extra->set_text(last_selected->get_extra());
+               lbl_cap_flujo->set_text(last_selected->get_cap_flow());
+               lbl_cap_extra->set_text(last_selected->get_cap_extra());
 
 
-       lbl_cap_flujo->set_text(last_selected->get_cap_flow());
-       lbl_cap_extra->set_text(last_selected->get_cap_extra());
+               color_preview->modify_bg(Gtk::STATE_NORMAL, last_selected->get_color());
+               color_preview->queue_draw();
+       }
 
 
-       color_preview->modify_bg(Gtk::STATE_NORMAL, last_selected->get_color());
-       color_preview->queue_draw();
+       if (!paused) {
+               current_frame++;
+               if (current_frame > 4) {
+                       current_frame = 0;
+               }
+               anim->set(anim_frames[current_frame]);
+       }
 
        // Mando a redibujar a todos los items
        std::map<const std::string, ViewItem *>::iterator i;
 
        // Mando a redibujar a todos los items
        std::map<const std::string, ViewItem *>::iterator i;
@@ -362,25 +378,6 @@ void Principal::on_conexion_error(unsigned code, const std::string& desc)
        txt_view->get_buffer()->insert_at_cursor("\n");
 }
 
        txt_view->get_buffer()->insert_at_cursor("\n");
 }
 
-void Principal::on_get_clicked()
-{
-       if (conexion == NULL) {
-               txt_view->get_buffer()->insert_at_cursor("SIN CONEXION\n");
-               return;
-       }
-       
-       PlaQui::Server::Command command(txt_target->get_text(), txt_command->get_text());
-       command.add_arg( txt_args->get_text() );
-       txt_view->get_buffer()->insert_at_cursor("Enviando comando\n");
-       try {
-               conexion->send(command);
-       }
-       catch (...) {
-               txt_view->get_buffer()->insert_at_cursor("EXCEPTION EN conexion->send !!\n");
-       }
-
-}
-
 void Principal::loadXML()
 {
        // ya lo cargue
 void Principal::loadXML()
 {
        // ya lo cargue
@@ -850,6 +847,7 @@ float Principal::get_float_from_xml(xmlNodePtr nodo)
                }
                nodo = nodo->next;
        }
                }
                nodo = nodo->next;
        }
+       if (tmp == INFINITO) tmp = 0;
        return tmp;
 }
 
        return tmp;
 }
 
@@ -892,6 +890,7 @@ void Principal::on_btn_simulate_clicked()
        PlaQui::Server::Command c("plant", "start");
        c.add_arg("default");
        conexion->send(c);
        PlaQui::Server::Command c("plant", "start");
        c.add_arg("default");
        conexion->send(c);
+       paused = false;
 }
 
 void Principal::on_btn_pause_clicked()
 }
 
 void Principal::on_btn_pause_clicked()
@@ -901,5 +900,6 @@ void Principal::on_btn_pause_clicked()
        PlaQui::Server::Command c("plant", "stop");
        c.add_arg("default");
        conexion->send(c);
        PlaQui::Server::Command c("plant", "stop");
        c.add_arg("default");
        conexion->send(c);
+       paused = true;
 }
 
 }