]> git.llucax.com Git - z.facultad/75.42/plaqui.git/blobdiff - Constructor/src/or.cpp
agrego una barrita de estado para ver los datos con mas comodidad, se pueden hacer...
[z.facultad/75.42/plaqui.git] / Constructor / src / or.cpp
index fbd2152f99f5aa51dc0bee3c1e52ec9c29cbed10..4fdf2f2ae9636ae09ab0ca269f2c840263b9842e 100644 (file)
@@ -2,6 +2,7 @@
 
 Or::Or()
 {
 
 Or::Or()
 {
+       out_connected = false;
        in_x = x;
        in_y = y+16;
        out_x = x+32;
        in_x = x;
        in_y = y+16;
        out_x = x+32;
@@ -26,10 +27,18 @@ bool Or::on_button_press_event(GdkEventButton *event)
 {
        if ((event->type == GDK_BUTTON_PRESS) && ( event->button == 1)) {
                if ( CItem::logic_connect ) {
 {
        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)){
        }
        
        if ((event->type == GDK_BUTTON_PRESS) && ( event->button == 2)){
@@ -140,8 +149,8 @@ bool Or::check_connection()
                i++;
        }
 
                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)
 }
 
 ConnectorType Or::detect_click_position(int _a, int _b)
@@ -214,3 +223,8 @@ void Or::get_out_logic_connect_position(int& _a, int& _b)
        _a =out_x;
        _b =out_y;
 }
        _a =out_x;
        _b =out_y;
 }
+
+void Or::set_out_connected(bool _o)
+{
+       out_connected = _o;
+}