⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 popmenu.c~

📁 linux下的人机对话编程
💻 C~
📖 第 1 页 / 共 3 页
字号:
  else   {gnome_canvas_item_show(Item_D4);     buttonD4=FALSE;   } return 1;}   gint show_D6(){  if(buttonD6==FALSE)   { gnome_canvas_item_hide(Item_D6);     buttonD6=TRUE;   }  else   {gnome_canvas_item_show(Item_D6);     buttonD6=FALSE;   } return 1;}   gint show_D8(){  if(buttonD8==FALSE)   { gnome_canvas_item_hide(Item_D8);     buttonD8=TRUE;   }  else   {gnome_canvas_item_show(Item_D8);     buttonD8=FALSE;   } return 1;}   gint show_X(){  if(buttonX==FALSE)   { gnome_canvas_item_hide(Item_X);     buttonX=TRUE;   }  else   {gnome_canvas_item_show(Item_X);     buttonX=FALSE;   } return 1;}   gint show_XD(){  if(buttonXD==FALSE)   { gnome_canvas_item_hide(Item_XD);     buttonXD=TRUE;   }  else   {gnome_canvas_item_show(Item_XD);     buttonXD=FALSE;   } return 1;}   gint show_S(){  if(buttonS==FALSE)   { gnome_canvas_item_hide(Item_S);     buttonS=TRUE;   }  else   {gnome_canvas_item_show(Item_S);     buttonS=FALSE;   } return 1;}   gboolean operate_flash_lamp(){  if(Flash_D1==TRUE){    buttonD1=FALSE;    gtk_timeout_remove(timer_show_d1);    timer_show_d1=gtk_timeout_add(1000,show_D1,NULL);   }   if(Flash_D2==TRUE){     buttonD2=FALSE;gtk_timeout_remove(timer_show_d2);    timer_show_d2=gtk_timeout_add(1000,show_D2,NULL);  } if(Flash_D3==TRUE){   buttonD3=FALSE;gtk_timeout_remove(timer_show_d3);    timer_show_d3=gtk_timeout_add(1000,show_D3,NULL);  } if(Flash_D19==TRUE){   buttonD19=FALSE;gtk_timeout_remove(timer_show_d19);    timer_show_d19=gtk_timeout_add(1000,show_D19,NULL);  } if(Flash_D4==TRUE){   buttonD4=FALSE;gtk_timeout_remove(timer_show_d4);    timer_show_d4=gtk_timeout_add(1000,show_D4,NULL);  } if(Flash_D5==TRUE){   buttonD5=FALSE;gtk_timeout_remove(timer_show_d5);    timer_show_d5=gtk_timeout_add(1000,show_D5,NULL);  } if(Flash_D6==TRUE){   buttonD6=FALSE;gtk_timeout_remove(timer_show_d6);    timer_show_d6=gtk_timeout_add(1000,show_D6,NULL);  } if(Flash_D7==TRUE){   buttonD7=FALSE;gtk_timeout_remove(timer_show_d7);    timer_show_d7=gtk_timeout_add(1000,show_D7,NULL);  } if(Flash_D8==TRUE){   buttonD8=FALSE;gtk_timeout_remove(timer_show_d8);    timer_show_d8=gtk_timeout_add(1000,show_D8,NULL);  } if(Flash_D9==TRUE){   buttonD9=FALSE;gtk_timeout_remove(timer_show_d9);    timer_show_d9=gtk_timeout_add(1000,show_D9,NULL);  } if(Flash_X==TRUE){   buttonX=FALSE;gtk_timeout_remove(timer_show_X);    timer_show_X=gtk_timeout_add(1000,show_X,NULL);  } if(Flash_D11==TRUE){   buttonD11=FALSE;gtk_timeout_remove(timer_show_d11);    timer_show_d11=gtk_timeout_add(1000,show_D11,NULL);  } if(Flash_XD==TRUE){   buttonXD=FALSE;gtk_timeout_remove(timer_show_XD);    timer_show_XD=gtk_timeout_add(1000,show_XD,NULL);  } if(Flash_D13==TRUE){   buttonD13=FALSE;gtk_timeout_remove(timer_show_d13);    timer_show_d13=gtk_timeout_add(1000,show_D13,NULL);  } if(Flash_S==TRUE){   buttonS=FALSE;gtk_timeout_remove(timer_show_S);    timer_show_S=gtk_timeout_add(1000,show_S,NULL);  } if(Flash_D15==TRUE){   buttonD15=FALSE;gtk_timeout_remove(timer_show_d15);    timer_show_d15=gtk_timeout_add(1000,show_D15,NULL);  } if(Flash_D17==TRUE){   buttonD17=FALSE;gtk_timeout_remove(timer_show_d17);    timer_show_d17=gtk_timeout_add(1000,show_D17,NULL);  }   return TRUE;}gboolean PressedLamp(GnomeCanvasItem*widget,GdkEvent*event,gpointer data)/*响应信号灯操作*/{     gint timer_show,i;  id=GPOINTER_TO_INT(data);    if(event->type==GDK_BUTTON_PRESS)  {      GdkEventButton*buttonevent=(GdkEventButton*)event;      if(buttonevent->button==1)    {           switch(id)        { case 0x8000:              	    { if(BD1==FALSE)/*此标志为控制灯只允许一次操作*/             {                  Item_D1=widget;	         if(Flash_D1==FALSE) timer_show_d1=gtk_timeout_add(1000,show_D1,NULL);                  Flash_D1=TRUE;                 operate_flash_lamp();		 Oprate_Data();                    BD1=TRUE;                 break;	      }       	    else  	      break;	    }         case 0x8001:	   {               if(BD3==FALSE)	     { Item_D3=widget;                             if(Flash_D3==FALSE) timer_show_d3=gtk_timeout_add(1000,show_D3,NULL);            Flash_D3=TRUE;              operate_flash_lamp();              	      Oprate_Data();              BD3=TRUE;              break;             }	   else 	     break;	    }         case 0x8002:	    { if(BD5==FALSE)              {              Item_D5=widget;                if(Flash_D5==FALSE) timer_show_d5=gtk_timeout_add(1000,show_D5,NULL); Flash_D5=TRUE;               operate_flash_lamp(); 	      	      Oprate_Data();              BD5=TRUE;              break;	      }	    else	      break;	    }        case 0x8003:	  { if(BD7==FALSE)	    {              Item_D7=widget;                if(Flash_D7==FALSE)  timer_show_d7=gtk_timeout_add(1000,show_D7,NULL); Flash_D7=TRUE;               operate_flash_lamp();	      	      Oprate_Data();	      BD7=TRUE;              break;	    }	  else	    break;	  }         case 0x8004:	  {if(BD9==FALSE)	    {              Item_D9=widget;                 if(Flash_D9==FALSE) timer_show_d9=gtk_timeout_add(1000,show_D9,NULL);Flash_D9=TRUE;              operate_flash_lamp();               	      Oprate_Data();	      BD9=TRUE;              break;	    }	  else	    break;	  }        case 0x8005:	  {if(BD11==FALSE)	    {              Item_D11=widget;                if(Flash_D11==FALSE) timer_show_d11=gtk_timeout_add(1000,show_D11,NULL); Flash_D11=TRUE;             operate_flash_lamp(); 	    	      Oprate_Data();	      BD11=TRUE;              break;	    }	  else	    break;	    }         case 0x8006:	   {if(BD13==FALSE)	     {              Item_D13=widget;                if(Flash_D13==FALSE) timer_show_d13=gtk_timeout_add(1000,show_D13,NULL); Flash_D13=TRUE;              operate_flash_lamp();               	      Oprate_Data();	      BD13=TRUE;              break;	    }	   else	     break;	   }         case 0x8007:	   {if(BD15==FALSE)	     {              Item_D15=widget;                if(Flash_D15==FALSE) timer_show_d15=gtk_timeout_add(1000,show_D15,NULL); Flash_D15=TRUE;              operate_flash_lamp();               	      Oprate_Data();	      BD15=TRUE;              break;	    }	   else	     break;	   }         case 0x8008:	   {if(BD17==FALSE)	     {              Item_D17=widget;                 if(Flash_D17==FALSE) timer_show_d17=gtk_timeout_add(1000,show_D17,NULL);              Flash_D17=TRUE;              operate_flash_lamp(); 	      	      Oprate_Data();	      BD17=TRUE;              break;	    }	   else	     break;	   }         case 0x8009:	   {if(BD19==FALSE)	     {              Item_D19=widget;               if(Flash_D19==FALSE) timer_show_d19=gtk_timeout_add(1000,show_D19,NULL); Flash_D19=TRUE;              operate_flash_lamp();               	      Oprate_Data();	      BD19=TRUE;              break;	    }	   else	     break;	   }         case 0x800a:	   {if(BDX==FALSE)	     {              Item_X=widget;                if(Flash_X==FALSE) timer_show_X=gtk_timeout_add(1000,show_X,NULL); Flash_X=TRUE;              operate_flash_lamp();               	      Oprate_Data();	      BDX=TRUE;              break;	    }	   else	     break;	   }         case 0x800b:	   {if(BDXD==FALSE)	     {              Item_XD=widget;                if(Flash_XD==FALSE) timer_show_XD=gtk_timeout_add(1000,show_XD,NULL); Flash_XD=TRUE;             operate_flash_lamp();             	      Oprate_Data();	      BDXD=TRUE;              break;	    }	   else	     break;	   }	 case 0x8010:	   {if(BD2==FALSE)	     {              Item_D2=widget;                 if(Flash_D2==FALSE) timer_show_d2=gtk_timeout_add(1000,show_D2,NULL); Flash_D2=TRUE;              operate_flash_lamp();               	      Oprate_Data();	      BD2=TRUE;              break;	    }	   else	     break;	   }	 case 0x8011:	   {if(BD4==FALSE)	     {              Item_D4=widget;                 if(Flash_D4) timer_show_d4=gtk_timeout_add(1000,show_D4,NULL);               Flash_D4=TRUE;               operate_flash_lamp();                Oprate_Data();	       BD4=TRUE;               break;	    }	   else	     break;	   }	 case 0x8012:	   {if(BD6==FALSE)	     {              Item_D6=widget;               if(Flash_D6==FALSE) timer_show_d6=gtk_timeout_add(1000,show_D6,NULL);              Flash_D6=TRUE;              operate_flash_lamp();                 Oprate_Data();	      BD6=TRUE;              break;	    }	   else	     break;	   }	 case 0x8013:	   {if(BD8==FALSE)	     {              Item_D8=widget;               if(Flash_D8==FALSE) timer_show_d8=gtk_timeout_add(1000,show_D8,NULL);              Flash_D8=TRUE;              operate_flash_lamp(); 	      Oprate_Data();	      BD8=TRUE;              break;	    }	   else	     break;	   }	 case 0x8014:	   {if(BDS==FALSE)	     {              Item_S=widget;                 if(Flash_S==FALSE) timer_show_S=gtk_timeout_add(1000,show_S,NULL); Flash_S=TRUE;              operate_flash_lamp();              	      Oprate_Data();	      BDS=TRUE;              break;	    }	   else	     break;	   }	 default:              break;	}          }  }     } int Oprate_Data(){/*处理灯\小按钮\功能按钮函数*/ if(rebutton==FALSE)       {int i;       for(i=0;i<5;i++)       Com_Code[i]=0;       Button1=id;       rebutton=TRUE; /*rebutton控制当按下时ID号传递到Button1还是Button2*/     if((Button1==0x300e)||(Button1==0x3010)||(Button1==0x3011)||(Button1==0x300d)||(Button1==0x300f))               Call_C(Button1);      }  else{       Button2=id;       rebutton=FALSE;      }     if((Button1!=0)&&(Button2!=0))      {       if((Button1>=0x8000)&&(Button1<=0x8018)) Call_A();       else if((Button1>=0x3001)&&(Button1<=0x3025)) Call_B();       else {	 SySInfo(1);}      }}	   void Call_A(){int i;  if((Button2>=0x8000)&&(Button2<=0x8018))    {       M=Valid_Oper1(Button1,Button2);       g_print("%d\n",M);       if(M==21)         {          SySInfo(1);	  /* Send_To(FM,Com_Code);*/       }       else if(M==20)      {           Com_Code[0]=0x3001;           Com_Code[1]=Button1;           Com_Code[2]=0;           Com_Code[3]=Button2;           Com_Code[4]=1;	   for(i=0;i<5;i++)	     g_print("Com_Code[%d]=%d\n",i,Com_Code[i]);	  	   exchange(Com_Code);      }      Button1=0;      Button2=0;  }    else   {     SySInfo(1);     /*	Send_To(FM,Com_Code);*/   }                                                                                  }     void Call_B(){  if(Button1==0x3002) Call_B1();/*总取消*/  else if((Button1==0x3003)||(Button1==0x3013)) Call_B2();/*总人解  */  else if(Button1==0x300a) Call_B3();/*进路故障*/  else if(Button1==0x3012) Call_B4();/*重复开放*/    else if(Button1==0x3022) Call_B5();/*关信号*/  else if(Button1==0x3006) Call_B6();/*道岔单锁*/  else if(Button1==0x3007) Call_B7();/*道岔单解*/  else if(Button1==0x3008) Call_B8();/*道岔封锁*/  else if(Button1==0x3009) Call_B9();/*道岔解封*/  else if(Button1==0x3004) Call_B10();/* 总定位*/  else if(Button1==0x3005) Call_B11();/* 总反位*/  else if(Button1==0x300d) Call_B12();/*S引导总锁闭*/  else if(Button1==0x300f) Call_B13();/*X引导总锁闭*/    else SySInfo(1);}void Call_B1(){int i;  if((Button2>=0x8000)&&(Button2<=0x8018))   {           Com_Code[0]=0x3002;           Com_Code[1]=Button2;           Com_Code[2]=0;           Com_Code[3]=0;           Com_Code[4]=1;         for(i=0;i<5;i++)	  g_print("Com_Code[%d]=%d\n",i,Com_Code[i]);         exchange(Com_Code); } else{           Com_Code[0]=0x3002;           Com_Code[1]=Button2;           Com_Code[2]=0;           Com_Code[3]=0;           Com_Code[4]=1;           for(i=0;i<5;i++)	   g_print("Com_Code[%d]=%d\n",i,Com_Code[i]);           SySInfo(1);     }  /* Send_To(FM,Com_Code); */}void Call_B2(){int i; if((Button2>=0x8000)&&(Button2<=0x8018))    {      if(Button1==0x3003){           Com_Code[0]=0x3003;           Com_Code[1]=Button2;           Com_Code[2]=0;           Com_Code[3]=0;           Com_Code[4]=1;          for(i=0;i<5;i++)	  g_print("Com_Code[%d]=%d\n",i,Com_Code[i]);          exchange(Com_Code);           }     else if(Button1==0x3013){           Com_Code[0]=0x3013;           Com_Code[1]=Button2;           Com_Code[2]=0;           Com_Code[3]=0;           Com_Code[4]=1;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -