Or::Or()
{
+ 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;
+ }
}
- combo_entry->set_text(name);
+ list_pointed->push_back(name);
+ combo_entry->set_popdown_strings(*list_pointed);
+ combo_entry->get_entry()->set_text (name);
}
if ((event->type == GDK_BUTTON_PRESS) && ( event->button == 2)){
i++;
}
- //FIXME la or tiene n entradas y una salida!!!!!!!!!!!!!!!!!!
- return true;// (cant_in == cant_out );
+
+ return true;// out_connected;
}
ConnectorType Or::detect_click_position(int _a, int _b)
_a =out_x;
_b =out_y;
}
+
+void Or::set_out_connected(bool _o)
+{
+ out_connected = _o;
+}