And::And()
{
+ out_connected = false;
in_x = x;
in_y = y+16;
out_x = x+32;
{
if ((event->type == GDK_BUTTON_PRESS) && ( event->button == 1)) {
if ( CItem::logic_connect ) {
- CItem::gate_id = ID;
- WorkPlace::pointed = ID;
- }
+ if ( detect_click_position((int)event->x, (int)event->y ) == OUT && !out_connected) {
+ CItem::gate_id = ID;
+ WorkPlace::pointed = ID;
+ }
+ if ( detect_click_position((int)event->x, (int)event->y ) == IN ) {
+ CItem::gate_id = ID;
+ WorkPlace::pointed = ID;
+ }
+ }
list_pointed->push_back(name);
combo_entry->set_popdown_strings(*list_pointed);
combo_entry->get_entry()->set_text (name);
}
i++;
}
- //FIXME la and tiene n entradas y una salida!!!!!!!!!!!!!!!
- return true;// (cant_in == cant_out );
+ return true; //out_connected;
}
ConnectorType And::detect_click_position(int _a, int _b)
_a =out_x;
_b =out_y;
}
+
+void And::set_out_connected(bool _o)
+{
+ out_connected = _o;
+}