7 #include <libglademm.h>
8 #include "dlg_conectar.h"
9 #include "plaqui/server/controlclient.h"
10 #include <libxml/parser.h>
14 class Principal:public Gtk::Window {
16 Principal(BaseObjectType *co, const Glib::RefPtr<Gnome::Glade::Xml> &rg);
20 PlaQui::Server::ControlClient *conexion;
21 // Utilizo un map para no tener que buscar un item
22 // en una lista cada vez que quiero actualizar su propiedad.
23 // Simplemente lo busco como map["nombre"]
24 std::map<const std::string, ViewItem *> mapItems;
26 // Actualiza el estado de una planta
27 void read_status_xml(const std::string &frame);
28 float get_float_from_xml(xmlNodePtr nodo);
29 bool get_bool_from_xml(xmlNodePtr nodo);
30 Gdk::Color get_rgb_from_xml(xmlNodePtr nodo);
32 // Funciones de carga del XML
35 void loadBomba(xmlNodePtr nodo);
36 void loadCodo(xmlNodePtr nodo);
37 void loadConduct(xmlNodePtr nodo);
38 void loadExclusa(xmlNodePtr nodo);
39 void loadTank(xmlNodePtr nodo);
40 void loadUnion(xmlNodePtr nodo);
41 void loadDrain(xmlNodePtr nodo);
43 Glib::Dispatcher load_xml_dispatch, update_ui;
46 // Archivo XML del Padre
47 Glib::RefPtr<Gnome::Glade::Xml> refXml;
49 // Para la actualizacion automatica
50 ViewItem *last_selected;
51 // Dialogo de Conectar
52 DlgConectar *dlg_conectar;
53 Gtk::Entry *txt_target, *txt_command, *txt_args;
54 Gtk::TextView *txt_view;
55 Gtk::Fixed *work_place;
56 Gtk::Label *lbl_nombre, *lbl_color, *lbl_flujo, *lbl_extra, *lbl_cap_flujo, *lbl_cap_extra;
57 Gtk::Image *ico_conected;
58 Gtk::Button *btn_activar;
59 Gtk::DrawingArea *color_preview;
61 // Actualiza las propiedades en la ventana del item actual
62 void update_items_prop();
64 // Callbacks del menu y la barra
65 virtual void on_mnu_file_exit();
66 virtual void on_mnu_file_connect();
67 virtual void on_mnu_file_disconnect();
68 virtual void on_mnu_help_about();
69 virtual void on_dlg_connect_ok();
70 virtual void on_get_clicked();
71 virtual void on_btn_activar_clicked();
73 virtual bool on_item_clicked(GdkEventButton *, ViewItem *);
75 // Callbacks para las conexiones
76 void on_conexion_finished();
77 void on_conexion_ok(const std::string &body);
78 void on_conexion_error(unsigned code);
79 void on_conexion_frame(const std::string &frame);
82 #endif // _PRINCIPAL_H_