]> git.llucax.com Git - z.facultad/75.42/plaqui.git/commitdiff
se validan valores del tanque
authorNicolás Dimov <ndimov@gmail.com>
Mon, 1 Dec 2003 15:09:58 +0000 (15:09 +0000)
committerNicolás Dimov <ndimov@gmail.com>
Mon, 1 Dec 2003 15:09:58 +0000 (15:09 +0000)
Constructor/dialogs/constructor.glade
Constructor/include/cisternptywnd.h
Constructor/src/cistern.cpp
Constructor/src/cisternptywnd.cpp

index 6c2ca14410ec421892dc53b75ca4bcf0a41a9da0..631d18b2929ab4ca9c9bc928fc4745ea4603b309 100644 (file)
@@ -2105,4 +2105,73 @@ Ingrese un nombre distinto para este elemento</property>
   </child>
 </widget>
 
   </child>
 </widget>
 
+<widget class="GtkDialog" id="dlg_flot">
+  <property name="width_request">225</property>
+  <property name="height_request">93</property>
+  <property name="title" translatable="yes">Error</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">False</property>
+  <property name="destroy_with_parent">False</property>
+  <property name="has_separator">True</property>
+
+  <child internal-child="vbox">
+    <widget class="GtkVBox" id="dialog-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="dialog-action_area4">
+         <property name="visible">True</property>
+         <property name="layout_style">GTK_BUTTONBOX_SPREAD</property>
+
+         <child>
+           <widget class="GtkButton" id="btn_dlg_flot_ok">
+             <property name="visible">True</property>
+             <property name="can_default">True</property>
+             <property name="can_focus">True</property>
+             <property name="label">gtk-ok</property>
+             <property name="use_stock">True</property>
+             <property name="relief">GTK_RELIEF_NORMAL</property>
+             <property name="response_id">-5</property>
+           </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="GtkLabel" id="label31">
+         <property name="width_request">138</property>
+         <property name="height_request">34</property>
+         <property name="visible">True</property>
+         <property name="label" translatable="yes">El flotante Inferior debe ser menor
+       que el flotante Superior.</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">0</property>
+         <property name="expand">False</property>
+         <property name="fill">False</property>
+       </packing>
+      </child>
+    </widget>
+  </child>
+</widget>
+
 </glade-interface>
 </glade-interface>
index e04d7037fa9681cc3184f5c0bf7b4cba9ab95033..b62f5ec7217e8da69f3a008d93ec5feb2633f8b6 100644 (file)
@@ -22,10 +22,11 @@ class CisternPtyWnd : public PropertyWnd {
        
                ///Objetos de la ventana.
                Gtk::SpinButton *spin_inicial, *spin_capacidad, *spin_flot_sup, *spin_flot_inf;
        
                ///Objetos de la ventana.
                Gtk::SpinButton *spin_inicial, *spin_capacidad, *spin_flot_sup, *spin_flot_inf;
-               Gtk::Button  *btn_select_color, *dlg_select_color_ok, *dlg_select_color_cancel;
+               Gtk::Button  *btn_select_color, *dlg_select_color_ok, *dlg_select_color_cancel, *btn_dlg_flot_ok;
                Gtk::Entry *txt_cistern_name;
                Gtk::ColorSelectionDialog *color_select_dlg;
                Gtk::DrawingArea *color_preview;
                Gtk::Entry *txt_cistern_name;
                Gtk::ColorSelectionDialog *color_select_dlg;
                Gtk::DrawingArea *color_preview;
+               Gtk::Dialog *dlg_flot;
        
                ///Señales invocadas al presionarse algun boton.
                virtual void on_btn_accept_clicked();
        
                ///Señales invocadas al presionarse algun boton.
                virtual void on_btn_accept_clicked();
@@ -33,6 +34,7 @@ class CisternPtyWnd : public PropertyWnd {
                virtual void on_btn_select_color_clicked();
                virtual void on_dlg_select_color_cancel_clicked();
                virtual void on_dlg_select_color_ok_clicked();
                virtual void on_btn_select_color_clicked();
                virtual void on_dlg_select_color_cancel_clicked();
                virtual void on_dlg_select_color_ok_clicked();
+               virtual void on_btn_dlg_flot_ok_clicked();
 };
 
 #endif
 };
 
 #endif
index 060f52457bb1aff2b4690014326e635f5c068350..812b88cb920cefe0d115e5a8b1c15f0ed7e8204c 100644 (file)
@@ -10,6 +10,8 @@ Cistern::Cistern(int orientacion)
        out_y = y + 64;
        capacidad = 100.0;
        contenido_inicial = 0;
        out_y = y + 64;
        capacidad = 100.0;
        contenido_inicial = 0;
+       flotante_inf = 20;
+       flotante_sup = 80;
        imageE = Gdk::Pixbuf::create_from_file(PACKAGE_DATA_DIR"/plaqui-constructor/pixmaps/tanque_e.png");
        imageO = Gdk::Pixbuf::create_from_file(PACKAGE_DATA_DIR"/plaqui-constructor/pixmaps/tanque_o.png");
        null = Gdk::Pixbuf::create_from_file(PACKAGE_DATA_DIR"/plaqui-constructor/pixmaps/tanque_null.png");
        imageE = Gdk::Pixbuf::create_from_file(PACKAGE_DATA_DIR"/plaqui-constructor/pixmaps/tanque_e.png");
        imageO = Gdk::Pixbuf::create_from_file(PACKAGE_DATA_DIR"/plaqui-constructor/pixmaps/tanque_o.png");
        null = Gdk::Pixbuf::create_from_file(PACKAGE_DATA_DIR"/plaqui-constructor/pixmaps/tanque_null.png");
@@ -208,7 +210,7 @@ Gdk::Color Cistern::get_liquid_color()
 
 void Cistern::save(FILE *archivo)
 {
 
 void Cistern::save(FILE *archivo)
 {
-       char c_id[50], c_cap[50], c_x[50], c_y[50], c_img[50], c_ini[50], c_red[50], c_green[50], c_blue[50];
+       char c_id[50], c_cap[50], c_x[50], c_y[50], c_img[50], c_ini[50], c_red[50], c_green[50], c_blue[50], c_float_s[50], c_float_i[50];
        Glib::ustring  con0, con1;
        con0 = "\t\t\t<entrada>"+get_other_name(connect_vec[0].id_dest)+"</entrada>\n";
        con1 = "\t\t\t<salida>"+get_other_name(connect_vec[1].id_dest)+"</salida>\n";
        Glib::ustring  con0, con1;
        con0 = "\t\t\t<entrada>"+get_other_name(connect_vec[0].id_dest)+"</entrada>\n";
        con1 = "\t\t\t<salida>"+get_other_name(connect_vec[1].id_dest)+"</salida>\n";
@@ -220,7 +222,9 @@ void Cistern::save(FILE *archivo)
        sprintf(c_id,"%d",ID);
        sprintf(c_cap,"\t\t<capacidad>%.2f</capacidad>\n", capacidad);
        sprintf(c_ini,"\t\t<inicial>%.2f</inicial>\n", contenido_inicial);
        sprintf(c_id,"%d",ID);
        sprintf(c_cap,"\t\t<capacidad>%.2f</capacidad>\n", capacidad);
        sprintf(c_ini,"\t\t<inicial>%.2f</inicial>\n", contenido_inicial);
-       sprintf(c_img,"\t\t<orientacion>%d</orientacion>\n",imgActual);
+       sprintf(c_float_s,"\t\t<superior>%.0f</superior>\n",flotante_sup);
+       sprintf(c_float_i,"\t\t\t<inferior>%.0f</inferior>\n",flotante_inf);
+       sprintf(c_img,"\t\t\t<orientacion>%d</orientacion>\n",imgActual);
        Glib::ustring dato;
        dato = "\t<tanque nombre=\""+name+"\" id=\"";
        dato += c_id;
        Glib::ustring dato;
        dato = "\t<tanque nombre=\""+name+"\" id=\"";
        dato += c_id;
@@ -233,6 +237,10 @@ void Cistern::save(FILE *archivo)
        dato += c_blue;
        dato += "\t\t</color>\n";
        dato += "\t\t<conector>\n"+con0+con1+"\t\t</conector>\n";
        dato += c_blue;
        dato += "\t\t</color>\n";
        dato += "\t\t<conector>\n"+con0+con1+"\t\t</conector>\n";
+       dato += "\t\t<flotantes>";
+       dato += c_float_s;
+       dato += c_float_i;
+       dato += "\t\t</flotantes>\n";
        dato += c_img;
        dato += c_x; 
        dato += c_y;
        dato += c_img;
        dato += c_x; 
        dato += c_y;
index d12595cd068e16245dae91f34bb39c1cd4909918..c63c57f377863073748551b9c48ecefc716a7351 100644 (file)
@@ -15,6 +15,12 @@ CisternPtyWnd::CisternPtyWnd(BaseObjectType* cobject, const Glib::RefPtr<Gnome::
        ref->get_widget("color_select_dlg",color_select_dlg);
        ref->get_widget("dlg_select_color_cancel",dlg_select_color_cancel);
        ref->get_widget("dlg_select_color_ok",dlg_select_color_ok);
        ref->get_widget("color_select_dlg",color_select_dlg);
        ref->get_widget("dlg_select_color_cancel",dlg_select_color_cancel);
        ref->get_widget("dlg_select_color_ok",dlg_select_color_ok);
+
+       Glib::RefPtr<Gnome::Glade::Xml> ref2 = Gnome::Glade::Xml::create(PACKAGE_DATA_DIR"/plaqui-constructor/dialogs/constructor.glade", "dlg_flot");
+       ref2->get_widget("dlg_flot",dlg_flot);
+       ref2->get_widget("btn_dlg_flot_ok",btn_dlg_flot_ok);
+       
+       btn_dlg_flot_ok->signal_clicked().connect(SigC::slot(*this,&CisternPtyWnd::on_btn_dlg_flot_ok_clicked));
        
        btn_select_color->signal_clicked().connect(SigC::slot(*this,&CisternPtyWnd::on_btn_select_color_clicked));
        dlg_select_color_cancel->signal_clicked().connect(SigC::slot(*this,&CisternPtyWnd::on_dlg_select_color_cancel_clicked));
        
        btn_select_color->signal_clicked().connect(SigC::slot(*this,&CisternPtyWnd::on_btn_select_color_clicked));
        dlg_select_color_cancel->signal_clicked().connect(SigC::slot(*this,&CisternPtyWnd::on_dlg_select_color_cancel_clicked));
@@ -37,7 +43,7 @@ CisternPtyWnd::~CisternPtyWnd()
 void CisternPtyWnd::on_btn_accept_clicked()
 {
        CisternPtyWnd::on_btn_apply_clicked();
 void CisternPtyWnd::on_btn_accept_clicked()
 {
        CisternPtyWnd::on_btn_apply_clicked();
-       if ( !cistern->workplace->chek_name(txt_cistern_name->get_text(), cistern->get_id()) 
+       if ( !cistern->workplace->chek_name(txt_cistern_name->get_text(), cistern->get_id()) && ( spin_flot_inf->get_value() < spin_flot_sup->get_value() )     )
        hide();
 }
 
        hide();
 }
 
@@ -46,13 +52,17 @@ void CisternPtyWnd::on_btn_apply_clicked()
        cistern->set_capacidad( spin_capacidad->get_value() );
        cistern->set_contenido_inicial( spin_inicial->get_value() );
        cistern->set_name( txt_cistern_name->get_text() );
        cistern->set_capacidad( spin_capacidad->get_value() );
        cistern->set_contenido_inicial( spin_inicial->get_value() );
        cistern->set_name( txt_cistern_name->get_text() );
-       cistern->set_flotante_inf(spin_flot_inf->get_value() );
-       cistern->set_flotante_sup(spin_flot_sup->get_value() );
        color_select_dlg->get_colorsel()->set_current_color(cistern->get_liquid_color());
        if ( cistern->workplace->chek_name(txt_cistern_name->get_text(), cistern->get_id()) ) 
                dlg_name->show();
        else 
                cistern->set_name( txt_cistern_name->get_text() );
        color_select_dlg->get_colorsel()->set_current_color(cistern->get_liquid_color());
        if ( cistern->workplace->chek_name(txt_cistern_name->get_text(), cistern->get_id()) ) 
                dlg_name->show();
        else 
                cistern->set_name( txt_cistern_name->get_text() );
+       if ( spin_flot_inf->get_value() >= spin_flot_sup->get_value() ) 
+               dlg_flot->show();
+       else {
+               cistern->set_flotante_inf(spin_flot_inf->get_value() );
+               cistern->set_flotante_sup(spin_flot_sup->get_value() );
+       }               
 }
 
 void CisternPtyWnd::on_btn_select_color_clicked()
 }
 
 void CisternPtyWnd::on_btn_select_color_clicked()
@@ -72,3 +82,8 @@ void CisternPtyWnd::on_dlg_select_color_ok_clicked()
        color_preview->modify_bg( Gtk::STATE_NORMAL , cistern->get_liquid_color() );
        color_select_dlg->hide();
 }
        color_preview->modify_bg( Gtk::STATE_NORMAL , cistern->get_liquid_color() );
        color_select_dlg->hide();
 }
+
+void CisternPtyWnd::on_btn_dlg_flot_ok_clicked()
+{
+       dlg_flot->hide();
+}