📄 popmenu.c~
字号:
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 + -