]> git.llucax.com Git - z.facultad/75.42/plaqui.git/blobdiff - Constructor/src/cisternptywnd.cpp
Se leen bien los valores de punto flotante y la simulacion es mas coherente
[z.facultad/75.42/plaqui.git] / Constructor / src / cisternptywnd.cpp
index 31a01529a421c03575c0d9de8269adc70f0cd145..c63c57f377863073748551b9c48ecefc716a7351 100644 (file)
@@ -8,11 +8,19 @@ CisternPtyWnd::CisternPtyWnd(BaseObjectType* cobject, const Glib::RefPtr<Gnome::
        refGlade->get_widget("txt_cistern_name", txt_cistern_name);
        refGlade->get_widget("btn_select_color", btn_select_color);             
        refGlade->get_widget("color_preview",color_preview);
+       refGlade->get_widget("spin_flot_inf", spin_flot_inf);
+       refGlade->get_widget("spin_flot_sup", spin_flot_sup);
        
        Glib::RefPtr<Gnome::Glade::Xml> ref = Gnome::Glade::Xml::create(PACKAGE_DATA_DIR"/plaqui-constructor/dialogs/constructor.glade", "color_select_dlg");
        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));
@@ -35,6 +43,7 @@ CisternPtyWnd::~CisternPtyWnd()
 void CisternPtyWnd::on_btn_accept_clicked()
 {
        CisternPtyWnd::on_btn_apply_clicked();
+       if ( !cistern->workplace->chek_name(txt_cistern_name->get_text(), cistern->get_id()) && ( spin_flot_inf->get_value() < spin_flot_sup->get_value() )     )
        hide();
 }
 
@@ -44,6 +53,16 @@ void CisternPtyWnd::on_btn_apply_clicked()
        cistern->set_contenido_inicial( spin_inicial->get_value() );
        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()
@@ -63,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();
 }
+
+void CisternPtyWnd::on_btn_dlg_flot_ok_clicked()
+{
+       dlg_flot->hide();
+}