?? sg.h
字號:
/*#include<gnome.h>#include"sg.h"#include"popmenu.h"#include"main.h"*/ int Show_Leg(GtkWidget * canvas){ int dir,h,i,idlamp; double px,py; gchar* cr,*cr1,*cr2; unsigned char a,b,temp; if(Sg_Num<=1) return 0; for(i=0;i<25;i++){ idlamp=SgNode_StatTab[i][0]; b=SgNode_StatTab[i][1]; temp=aw->SgNode_DynTab[i][1]; px=SgNode_StatTab[i][2]; py=SgNode_StatTab[i][3]; if((b==0xe8)||(b==0xdc)||(b==0xd0)||(b==0xe8)||(b==0xd8)||(b==0xe4)||(b==0xec) ||(b==0xd4)||(b==0xe0)){ /*單燈*/ a=b&0x01; if(a==0x01) h=1;/*有腿*/ else h=0;/*無腿*/ a=b&0x04; if(a==0x04) dir=1;/* <-- */ else dir=0;/*<--> */ if(temp==0x01) cr=color[1]; else cr=color[2]; DrawSignalSing(px,py,cr,dir,h,canvas,idlamp); } else if((b==0x78)||(b==0x7e)){ /*雙燈*/ a=b&0x04; h=0; if(a==0x04) dir=1; /*<--*/ else dir=0; /*-->*/ cr1=cr2=color[4]; if(temp==0x15) cr1=color[5]; else if(temp==0x0d){ cr1=color[5]; cr2=color[5]; } else if(temp==0x03) cr1=color[2]; else if(temp==0x01) cr1=color[0]; else if(temp==0x05) cr1=color[5]; DrawSignalDouble(px,py,cr1,cr2,dir,h,canvas,idlamp); } else if((b==0x83)||(b==0x87)||(b==0xbb)){ /*三燈*/ a=b&0x01; if(a==0x01) h=1; else h=0; a=b&0x04; if(a==0x04) dir=1;/*<--*/ else dir=0; /*-->*/ if((temp==0x36)||(temp==0x37)) cr1=color[5]; else if(temp==0x67){ cr1=color[5]; cr2=color[3]; } else if((temp==0x26)||(temp==0x27)) cr1=color[3]; else if(temp==0x23){ cr1=color[3]; cr2=color[3]; } else if(temp==0x0b){ cr1=color[0]; cr2=color[2]; } else if((temp==0x02)||(temp==0x03)) cr1=color[0]; DrawSignalDouble(px,py,cr1,cr2,dir,h,canvas,idlamp,i); } } return 1;} int DrawSignalSing(double x,double y,gchar *cor,int dir,int h,GtkWidget * canvas,int idlamp,int i){ GnomeCanvasGroup *group; GnomeCanvasPoints *point1; GnomeCanvasPoints *point2; GnomeCanvasItem *line1; GnomeCanvasItem *line2; GnomeCanvasItem *singlelamp; group=gnome_canvas_root(GNOME_CANVAS(canvas)); gdouble p1x,p1y,p2x,p2y,p3x,p3y,p4x,p4y,p5x,p5y,p6x,p6y,p7x,p7y,p8x,p8y; if((dir==0)&&(h==0)){ p1x=x+0.0; p1y=y+5.0; p2x=x+0.0; p2y=y-5.0; p3x=x+0.0; p3y=y-8.0; p4x=x+0.0; p4y=p3y-10.0; p5x=x+3.0; p5y=p4y; p6x=p5x; p6y=p5y+10.0; p7x=p5x+10.0; p7y=p4y; p8x=p7x; p8y=p6y; point1=gnome_canvas_points_new(2); point1->coords[0]=p1x; point1->coords[1]=p1y; point1->coords[2]=p2x; point1->coords[3]=p2y; gnome_canvas_item_new(group,gnome_canvas_line_get_type(), "points",point1,"fill_color", "white","width_units",0.7, "join_style", GDK_CAP_BUTT,"line_style", GDK_LINE_SOLID,NULL); gnome_canvas_points_unref(point1); point2=gnome_canvas_points_new(2); point2->coords[0]=p3x; point2->coords[1]=p3y; point2->coords[2]=p4x; point2->coords[3]=p4y; line2= gnome_canvas_item_new(group,gnome_canvas_line_get_type(), "points",point2,"fill_color", "white","width_units",0.6, "join_style", GDK_CAP_BUTT,"line_style", GDK_LINE_SOLID,NULL); gnome_canvas_points_unref(point2); } else if((dir==1)&&(h==0)){ p1x=x; p1y=y-5; p2x=x; p2y=y+5; p3x=x; p3y=y+8; p4x=x; p4y=p3y+10; p5x=p3x-3; p5y=p3y; p6x=p5x; p6y=p4y; p7x=p5x-10; p7y=p5y; p8x=p7x; p8y=p4y; point1=gnome_canvas_points_new(2); point1->coords[0]=p1x; point1->coords[1]=p1y; point1->coords[2]=p2x; point1->coords[3]=p2y; line1= gnome_canvas_item_new(group,gnome_canvas_line_get_type(), "points",point1,"fill_color", "white","width_units",0.7, "join_style", GDK_CAP_BUTT,"line_style", GDK_LINE_SOLID,NULL); gnome_canvas_points_unref(point1); point2=gnome_canvas_points_new(2); point2->coords[0]=p3x; point2->coords[1]=p3y; point2->coords[2]=p4x; point2->coords[3]=p4y; line2= gnome_canvas_item_new(group,gnome_canvas_line_get_type(), "points",point2,"fill_color", "white","width_units",0.6, "join_style", GDK_CAP_BUTT,"line_style", GDK_LINE_SOLID,NULL); gnome_canvas_points_unref(point2); } return 1;}int DrawSignalDouble(double x,double y,gchar *cor1,gchar *cor2,int dir,int h,GtkWidget * canvas,int idlamp,int i){ GnomeCanvasGroup *group; GnomeCanvasPoints *point1; GnomeCanvasPoints *point2; GnomeCanvasPoints *point3; GnomeCanvasItem *line1; GnomeCanvasItem *line2; GnomeCanvasItem *line3; GnomeCanvasItem *doublelamp; group=gnome_canvas_root(GNOME_CANVAS(canvas)); gdouble p1x,p1y,p2x,p2y,p3x,p3y,p4x,p4y,p5x,p5y,p6x,p6y,p7x,p7y,p8x,p8y,p9x,p9y,p10x,p10y,p11x,p11y,p12x,p12y; if((dir==0)&&(h==0)){ p1x=x; p1y=y+5; p2x=x; p2y=y-5; p3x=x; p3y=y-8; p4x=x; p4y=p3y-10; p5x=p3x+3; p5y=p4y; p6x=p5x; p6y=p3y; p7x=p5x+10; p7y=p5y; p8x=p7x; p8y=p3y; p9x=p7x+10; p9y=p7y; p10x=p9x; p10y=p3y; point1=gnome_canvas_points_new(2); point1->coords[0]=p1x; point1->coords[1]=p1y; point1->coords[2]=p2x; point1->coords[3]=p2y; line1= gnome_canvas_item_new(group,gnome_canvas_line_get_type(), "points",point1,"fill_color", "white","width_units",0.7, "join_style", GDK_CAP_BUTT,"line_style", GDK_LINE_SOLID,NULL); gnome_canvas_points_unref(point1); point2=gnome_canvas_points_new(2); point2->coords[0]=p3x; point2->coords[1]=p3y; point2->coords[2]=p4x; point2->coords[3]=p4y; line2= gnome_canvas_item_new(group,gnome_canvas_line_get_type(), "points",point2,"fill_color", "white","width_units",0.6, "join_style", GDK_CAP_BUTT,"line_style", GDK_LINE_SOLID,NULL); gnome_canvas_points_unref(point2); } if((dir==1)&&(h==0)){ p1x=x; p1y=y-5; p2x=x; p2y=y+5; p3x=x; p3y=y+8; p4x=x; p4y=p3y+10; p5x=p3x-3; p5y=p3y; p6x=p5x; p6y=p4y; p7x=p5x-10; p7y=p5y; p8x=p7x; p8y=p4y; p9x=p7x-10; p9y=p3y; p10x=p9x; p10y=p4y; point1=gnome_canvas_points_new(2); point1->coords[0]=p1x; point1->coords[1]=p1y; point1->coords[2]=p2x; point1->coords[3]=p2y; line1= gnome_canvas_item_new(group,gnome_canvas_line_get_type(), "points",point1,"fill_color", "white","width_units",0.7, "join_style", GDK_CAP_BUTT,"line_style", GDK_LINE_SOLID,NULL); gnome_canvas_points_unref(point1); point2=gnome_canvas_points_new(2); point2->coords[0]=p3x; point2->coords[1]=p3y; point2->coords[2]=p4x; point2->coords[3]=p4y; line2= gnome_canvas_item_new(group,gnome_canvas_line_get_type(), "points",point2,"fill_color", "white","width_units",0.6, "join_style", GDK_CAP_BUTT,"line_style", GDK_LINE_SOLID,NULL); gnome_canvas_points_unref(point2); } if((dir==0)&&(h==1)){/*畫三燈-->*/ p1x=x; p1y=y+5; p2x=x; p2y=y-5; p3x=x; p3y=y-8; p4x=x; p4y=p3y-5; p5x=x; p5y=p3y-10; p6x=p5x+7; p6y=p5y; p7x=p6x; p7y=p6y+5; p8x=p7x; p8y=p6y+10; p9x=p6x+10; p9y=p5y; p10x=p9x; p10y=p3y; p11x=p9x+10; p11y=p9y; p12x=p11x; p12y=p10y; point1=gnome_canvas_points_new(2); point1->coords[0]=p1x; point1->coords[1]=p1y; point1->coords[2]=p2x; point1->coords[3]=p2y; line1= gnome_canvas_item_new(group,gnome_canvas_line_get_type(), "points",point1,"fill_color", "white","width_units",0.7, "join_style", GDK_CAP_BUTT,"line_style", GDK_LINE_SOLID,NULL); gnome_canvas_points_unref(point1); point2=gnome_canvas_points_new(2); point2->coords[0]=p3x; point2->coords[1]=p3y; point2->coords[2]=p5x; point2->coords[3]=p5y; line2= gnome_canvas_item_new(group,gnome_canvas_line_get_type(), "points",point2,"fill_color", "white","width_units",0.6, "join_style", GDK_CAP_BUTT,"line_style", GDK_LINE_SOLID,NULL); gnome_canvas_points_unref(point2); point3=gnome_canvas_points_new(2); point3->coords[0]=p4x; point3->coords[1]=p4y; point3->coords[2]=p7x; point3->coords[3]=p7y; line3= gnome_canvas_item_new(group,gnome_canvas_line_get_type(), "points",point3,"fill_color", "white","width_units",0.6, "join_style", GDK_CAP_BUTT,"line_style", GDK_LINE_SOLID,NULL); gnome_canvas_points_unref(point3); } if((dir==1)&&(h==1)){/*畫三燈-->*/ p1x=x; p1y=y-5; p2x=x; p2y=y+5; p3x=x; p3y=y+8; p4x=x; p4y=p3y+5; p5x=x; p5y=p3y+10; p6x=p5x-7; p6y=p5y; p7x=p6x; p7y=p6y-5; p8x=p7x; p8y=p6y-10; p9x=p8x-10; p9y=p3y; p10x=p9x; p10y=p5y; p11x=p9x-10; p11y=p3y; p12x=p11x; p12y=p10y; point1=gnome_canvas_points_new(2); point1->coords[0]=p1x; point1->coords[1]=p1y; point1->coords[2]=p2x; point1->coords[3]=p2y; line1= gnome_canvas_item_new(group,gnome_canvas_line_get_type(), "points",point1,"fill_color", "white","width_units",0.7, "join_style", GDK_CAP_BUTT,"line_style", GDK_LINE_SOLID,NULL); gnome_canvas_points_unref(point1); point2=gnome_canvas_points_new(2); point2->coords[0]=p3x; point2->coords[1]=p3y; point2->coords[2]=p5x; point2->coords[3]=p5y; line2= gnome_canvas_item_new(group,gnome_canvas_line_get_type(), "points",point2,"fill_color", "white","width_units",0.6, "join_style", GDK_CAP_BUTT,"line_style", GDK_LINE_SOLID,NULL); gnome_canvas_points_unref(point2); point3=gnome_canvas_points_new(2); point3->coords[0]=p4x; point3->coords[1]=p4y; point3->coords[2]=p7x; point3->coords[3]=p7y; line3= gnome_canvas_item_new(group,gnome_canvas_line_get_type(), "points",point3,"fill_color", "white","width_units",0.6, "join_style", GDK_CAP_BUTT,"line_style", GDK_LINE_SOLID,NULL); gnome_canvas_points_unref(point3); } return 1;}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -