</child>
</widget>
+<widget class="GtkDialog" id="dlg_name">
+ <property name="width_request">308</property>
+ <property name="height_request">110</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-vbox4">
+ <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_area3">
+ <property name="visible">True</property>
+ <property name="layout_style">GTK_BUTTONBOX_SPREAD</property>
+
+ <child>
+ <widget class="GtkButton" id="btn_dlg_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="label28">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">
+ El nombre esta repetido.
+Ingrese un nombre distinto para este elemento</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>
\begin_inset Graphics
- filename /home/nico/plaqui/Constructor/doc/barra_herramientas.png
+ filename barra_herramientas.png
\end_inset
\begin_inset Graphics
- filename /home/nico/plaqui/Constructor/doc/buscar.png
+ filename buscar.png
\end_inset
Es el espacio grillado central, en ella se arrastran y sueltan los elementos
de una planta para su diseño.
+\layout Comment
+
+ACA ESTARIA BUENO PONER UNA IMAGEN DE TODA LA PANTALLA INDICANDO QUE ES
+ CADA COSA
+\layout Comment
+
+( DENTRO DE LA MISMA IMAGEN)
\layout Section
Guardar y recuperar el trabajo.
el botón con el mismo ícono, que se encuentra en la primera posición.
\layout Standard
-Esta acción
+Luego de este procedimiento, si el usuario desea guardar nuevamente el trabajo,
+ volverá a aparecer el diálogo para seleccionar la ubicación y nombre del
+ archivo por primera vez.
\layout Section
Salir del programa.
\layout Section
Diseño Físico de la planta.
-\layout Comment
-
-Mencionar el botón de verificar conexionado.
\layout Subsection
Agregar un elemento.
///Elimina el Item al seleccionarse la opcion en el menu flotante
virtual void on_menu_popup_eliminar();
-
- ///TODO: conectar los items con lineas!!!
- virtual void on_menu_popup_conectar();
///Retorna un puntero a la imagen actual.
Glib::RefPtr<Gdk::Pixbuf> get_image() { return image; }
CItem *item;
///Objetos de la ventana.
- Gtk::Button *btn_cancel, *btn_accept, *btn_apply;
+ Gtk::Button *btn_cancel, *btn_accept, *btn_apply, *btn_dlg_ok;
+
+ ///Dialogo que avisa que hay un nombre repetido.
+ Gtk::Dialog *dlg_name;
///Señales que se invocan al presionar los botones.
virtual void on_btn_cancel_clicked();
virtual void on_btn_accept_clicked();
virtual void on_btn_apply_clicked();
+ virtual void on_btn_dlg_name_clicked();
};
///Punteros a las listas de items.
std::list<CItem *> *listaItems, *lista_logic_Items;
+ ///Verifica si hay nombres repetidos.
+ virtual bool chek_name(Glib::ustring _name, int _id);
+
/** Listas de lineas que van de una compuerta a la entrada de un item y de la salida de un item a una compuerta
* lista_lineas_in = (salida) compuerta --> (entrada) item
* lista_lineas_out= (entrada) compuerta --> (salida) item
}
set_size_request(image->get_width(), image->get_height());
name = "and";
- menulist.push_back( Gtk::Menu_Helpers::ImageMenuElem("Conectar", menu_image_linea,SigC::slot(*this, &CItem::on_menu_popup_conectar) ) ) ;
}
And::~And()
void CisternPtyWnd::on_btn_accept_clicked()
{
CisternPtyWnd::on_btn_apply_clicked();
+ if ( !cistern->workplace->chek_name(txt_cistern_name->get_text(), cistern->get_id()) )
hide();
}
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() );
}
void CisternPtyWnd::on_btn_select_color_clicked()
void ExclusaPtyWnd::on_btn_accept_clicked()
{
- exclusa->set_name( txt_exclusa_name->get_text() );
+ on_btn_apply_clicked();
+ if (! exclusa->workplace->chek_name(txt_exclusa_name->get_text(), exclusa->get_id()) )
hide();
}
void ExclusaPtyWnd::on_btn_apply_clicked()
{
exclusa->set_name( txt_exclusa_name->get_text() );
+ if ( exclusa->workplace->chek_name(txt_exclusa_name->get_text(), exclusa->get_id()) )
+ dlg_name->show();
+ else
+ exclusa->set_name( txt_exclusa_name->get_text() );
}
void ExclusaPtyWnd::on_rd_btn_close_clicked()
workplace->delete_item(ID);
}
-void CItem::on_menu_popup_conectar()
-{
-}
-
int CItem::get_position_x()
{
return x;
void ItemPtyWnd::on_btn_accept_clicked()
{
- item->set_caudal( spin_caudal->get_value() );
- item->set_name( txt_item_name->get_text() );
+ on_btn_apply_clicked();
+ if ( !item->workplace->chek_name(txt_item_name->get_text(), item->get_id()) )
hide();
}
{
item->set_caudal( spin_caudal->get_value() );
item->set_name( txt_item_name->get_text() );
+ if ( item->workplace->chek_name(txt_item_name->get_text(), item->get_id()) )
+ dlg_name->show();
+ else
+ item->set_name( txt_item_name->get_text() );
}
void ItemPtyWnd::on_btn_cancel_clicked()
}
set_size_request(image->get_width(), image->get_height());
name = "not";
- menulist.push_back( Gtk::Menu_Helpers::ImageMenuElem("Conectar", menu_image_linea,SigC::slot(*this, &CItem::on_menu_popup_conectar) ) ) ;
}
Not::~Not()
}
set_size_request(image->get_width(), image->get_height());
name = "or";
- menulist.push_back( Gtk::Menu_Helpers::ImageMenuElem("Conectar", menu_image_linea,SigC::slot(*this, &CItem::on_menu_popup_conectar) ) ) ;
}
Or::~Or()
refGlade->get_widget("btn_cancel", btn_cancel);
refGlade->get_widget("btn_apply", btn_apply);
refGlade->get_widget("btn_accept", btn_accept);
+ Glib::RefPtr<Gnome::Glade::Xml> ref = Gnome::Glade::Xml::create(PACKAGE_DATA_DIR"/plaqui-constructor/dialogs/constructor.glade", "dlg_name");
+ ref->get_widget("dlg_name", dlg_name);
+ ref->get_widget("btn_dlg_ok", btn_dlg_ok);
btn_cancel->signal_clicked().connect(SigC::slot(*this, &PropertyWnd::on_btn_cancel_clicked));
btn_accept->signal_clicked().connect(SigC::slot(*this, &PropertyWnd::on_btn_accept_clicked));
btn_apply->signal_clicked().connect(SigC::slot(*this, &PropertyWnd::on_btn_apply_clicked));
+ btn_dlg_ok->signal_clicked().connect(SigC::slot(*this, &PropertyWnd::on_btn_dlg_name_clicked));
}
PropertyWnd::~PropertyWnd()
void PropertyWnd::on_btn_apply_clicked()
{
}
+
+void PropertyWnd::on_btn_dlg_name_clicked()
+{
+ dlg_name->hide();
+}
void PumpPtyWnd::on_btn_accept_clicked()
{
PumpPtyWnd::on_btn_apply_clicked();
+ if ( !pump->workplace->chek_name(txt_pump_name->get_text(), pump->get_id()) )
hide();
}
void PumpPtyWnd::on_btn_apply_clicked()
{
pump->set_entrega( spin_fluid->get_value() );
- pump->set_name( txt_pump_name->get_text() );
color_select_dlg->get_colorsel()->set_current_color(pump->get_liquid_color());
+ if ( pump->workplace->chek_name(txt_pump_name->get_text(), pump->get_id()) )
+ dlg_name->show();
+ else
+ pump->set_name( txt_pump_name->get_text() );
}
void PumpPtyWnd::on_btn_select_color_clicked()
get_window()->draw_line (gc, x1, y1, x1, y2);
get_window()->draw_line (gc, x1, y2, x2, y2);
}
+
+
+bool WorkPlace::chek_name(Glib::ustring _name, int _id)
+{
+ std::list<CItem *>::iterator i;
+ i = listaItems->begin();
+ while ( i != listaItems->end() ) {
+ if ( (*i)->get_name() == _name && (*i)->get_id() != _id )
+ return true;
+ i++;
+ }
+ return false;
+}