Not::Not()
{
+ in_connected = 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 && !in_connected) {
+ 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);
+ workplace->queue_draw();
}
if ((event->type == GDK_BUTTON_PRESS) && ( event->button == 2)){
}
i++;
}
-
- //FIXME la not tiene que tener una sola salida y una sola entrada!!!!!
- return true;// (cant_in == cant_out );
+ return true;// (in_connected == out_connected ) ==true;
}
ConnectorType Not::detect_click_position(int _a, int _b)
_a =out_x;
_b =out_y;
}
+
+void Not::set_out_connected(bool _o)
+{
+ out_connected = _o;
+}
+
+void Not::set_in_connected(bool _o)
+{
+ in_connected = _o;
+}