]> git.llucax.com Git - z.facultad/75.42/plaqui.git/blobdiff - Client/include/principal.h
se mejora la conexion entre compuertas, se salvan en el XML, hay un par de cosas...
[z.facultad/75.42/plaqui.git] / Client / include / principal.h
index a6daef37f901c12fcb05cbca37aef9286de7ea79..5f78d99e98f525d09d26aef5ee5138c27fd09ec7 100644 (file)
@@ -6,6 +6,7 @@
 #include <gtkmm.h>
 #include <libglademm.h>
 #include "dlg_conectar.h"
 #include <gtkmm.h>
 #include <libglademm.h>
 #include "dlg_conectar.h"
+#include "dlg_property.h"
 #include "plaqui/server/controlclient.h"
 #include <libxml/parser.h>
 #include <map>
 #include "plaqui/server/controlclient.h"
 #include <libxml/parser.h>
 #include <map>
@@ -16,6 +17,7 @@ public:
        Principal(BaseObjectType *co, const Glib::RefPtr<Gnome::Glade::Xml> &rg);
        virtual ~Principal();
 
        Principal(BaseObjectType *co, const Glib::RefPtr<Gnome::Glade::Xml> &rg);
        virtual ~Principal();
 
+       virtual void on_realize();
 protected:
        PlaQui::Server::ControlClient *conexion;
        // Utilizo un map para no tener que buscar un item
 protected:
        PlaQui::Server::ControlClient *conexion;
        // Utilizo un map para no tener que buscar un item
@@ -23,40 +25,72 @@ protected:
        // Simplemente lo busco como map["nombre"]
        std::map<const std::string, ViewItem *> mapItems;
 
        // Simplemente lo busco como map["nombre"]
        std::map<const std::string, ViewItem *> mapItems;
 
+       // Actualiza el estado de una planta
+       void read_status_xml(const std::string &frame);
+       float get_float_from_xml(xmlNodePtr nodo);
+       bool get_bool_from_xml(xmlNodePtr nodo);
+       Gdk::Color get_rgb_from_xml(xmlNodePtr nodo);
+
        // Funciones de carga del XML
        // Funciones de carga del XML
+       bool is_xml_loaded;
+       void loadXML();
        void loadBomba(xmlNodePtr nodo);
        void loadCodo(xmlNodePtr nodo);
        void loadConduct(xmlNodePtr nodo);
        void loadExclusa(xmlNodePtr nodo);
        void loadTank(xmlNodePtr nodo);
        void loadUnion(xmlNodePtr nodo);
        void loadBomba(xmlNodePtr nodo);
        void loadCodo(xmlNodePtr nodo);
        void loadConduct(xmlNodePtr nodo);
        void loadExclusa(xmlNodePtr nodo);
        void loadTank(xmlNodePtr nodo);
        void loadUnion(xmlNodePtr nodo);
+       void loadDrain(xmlNodePtr nodo);
+       void loadOr(xmlNodePtr nodo);
+       void loadNot(xmlNodePtr nodo);
+       void loadAnd(xmlNodePtr nodo);
        
        
+       Glib::Dispatcher load_xml_dispatch, update_ui;
+       std::string xml_body;
+
        // Archivo XML del Padre
        Glib::RefPtr<Gnome::Glade::Xml> refXml;
 
        // Archivo XML del Padre
        Glib::RefPtr<Gnome::Glade::Xml> refXml;
 
+       // Para la actualizacion automatica
+       ViewItem *last_selected;
        // Dialogo de Conectar
        DlgConectar *dlg_conectar;
        // Dialogo de Conectar
        DlgConectar *dlg_conectar;
+       DlgProperty *dlg_property;
        Gtk::Entry *txt_target, *txt_command, *txt_args;
        Gtk::TextView *txt_view;
        Gtk::Fixed *work_place;
        Gtk::Entry *txt_target, *txt_command, *txt_args;
        Gtk::TextView *txt_view;
        Gtk::Fixed *work_place;
-       Gtk::Label *lbl_nombre, *lbl_color, *lbl_flujo;
+       Gtk::Label *lbl_nombre, *lbl_color, *lbl_flujo, *lbl_extra, *lbl_cap_flujo, *lbl_cap_extra;
        Gtk::Image *ico_conected;
        Gtk::Image *ico_conected;
+       Gtk::Button *btn_activar, *btn_simulate, *btn_pause;
+       Gtk::DrawingArea *color_preview;
+       Glib::RefPtr<Gdk::GC> gc;
+
+       // Actualiza las propiedades en la ventana del item actual
+       void update_items_prop();
+       ViewItem *find_item(std::string &_name);        
 
        // Callbacks del menu y la barra
        virtual void on_mnu_file_exit();
        virtual void on_mnu_file_connect();
 
        // Callbacks del menu y la barra
        virtual void on_mnu_file_exit();
        virtual void on_mnu_file_connect();
+       virtual void on_mnu_file_disconnect();
        virtual void on_mnu_help_about();
        virtual void on_mnu_help_about();
+       virtual void on_mnu_property();
+       virtual void on_dlg_property_ok();
        virtual void on_dlg_connect_ok();
        virtual void on_get_clicked();
        virtual void on_dlg_connect_ok();
        virtual void on_get_clicked();
-       virtual void on_mnu_prop();
-
+       virtual void on_btn_activar_clicked();
+       virtual void on_btn_simulate_clicked();
+       virtual void on_btn_pause_clicked();
        virtual bool on_item_clicked(GdkEventButton *, ViewItem *);
        virtual bool on_item_clicked(GdkEventButton *, ViewItem *);
+       virtual bool on_workplace_expose_event(GdkEventExpose *);
+       virtual bool on_delete_event(GdkEventAny *);
        
        // Callbacks para las conexiones
        
        // Callbacks para las conexiones
-       void on_conexion_connected();
        void on_conexion_finished();
        void on_conexion_finished();
-       void on_conexion_ok();
-       void on_conexion_error(unsigned code);
+       void on_conexion_ok(const std::string &body);
+       void on_conexion_fatal_error(const PlaQui::Server::ControlClient::Error& code, const std::string& desc);
+       void on_conexion_error(unsigned code, const std::string& desc);
+       void on_conexion_frame(const std::string &frame);
 };
 
 #endif // _PRINCIPAL_H_
 };
 
 #endif // _PRINCIPAL_H_