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

📄 mm.h

📁 linux下的人机对话编程
💻 H
字号:
/*#include <gnome.h>#include<gtk/gtk.h>#include <sys/types.h>#include <sys/ipc.h>#include <sys/shm.h>#include <sys/sem.h>#include<sys/stat.h>	#include"bg.h"#include"toggle.h"#include"sg.h"#include"switch.h"#include"line.h"#include"text.h"#include"popmenu.h"#include"sig.h"#include"echo_fd.h"#include"field.h"#include"sendto.h"#include"main.h"*/ int t=0; GtkWidget *canvas; GtkWidget *clist; GtkWidget *window;GtkWidget *dialog; GnomeCanvasGroup *group;  static GtkWidget *entry; static GtkWidget *entry1; GnomeCanvasItem  *enbox; GnomeCanvasItem  *pass_word; GnomeCanvasItem  *bu_ok; GnomeCanvasItem  *bu_cancel; GtkWidget        *entrybox;  gboolean Main_Cpu=TRUE; gboolean Bake_Cpu=FALSE; gboolean Main=FALSE;        /***主机使用标志***/ gboolean Bake=FALSE;        /**备用机使用标志**/ gboolean value=FALSE; gboolean value_sw=FALSE; gboolean close_app=FALSE;/*区段和道岔是否刷新控制量*/ gboolean Rf_Sw=FALSE,Rf_Fd=FALSE; GnomeCanvasItem *A,*B,*TA,*TB; GtkWidget       *dialog; int aaa,t; gboolean test=FALSE; gchar *titles[1]={"信息提示"};/*****************密码程序******************/ void Button_Ok_Pressed(GtkWidget *button,gpointer data){  const  gchar *password;  password=gtk_entry_get_text(GTK_ENTRY(entry));  if(strcmp(password,"123456")==0)        gtk_main_quit();  else         g_print("eorr!\n");   g_print("密码是: %s",password);  g_print("\n");}void Button_Cancel_Pressed(){  /* gchar*password=gtk_entry_get_text(GTK_ENTRY(entry));*/}void stringcallback(gchar *string,gpointer data){ }/*int eventDelete(GtkWidget *widget,GdkEvent *event,gpointer data){ exit_main_init();	 }*//*******************试验函数********************/int sby(){  unsigned char gdj;  gdj=aw->FdNode_DynTab[23][1];   if(test==FALSE)  {    aw->SwNode_DynTab[5][1]=0x55;    test=TRUE;  }  else if(test==TRUE)  {    aw->SwNode_DynTab[5][1]=0xaa;    test=FALSE;  }  if(gdj==0xaa)    aw->FdNode_DynTab[23][1]=0x55;  else if(gdj==0x55)    aw->FdNode_DynTab[23][1]=0xaa;   g_print("%x\n",aw->FdNode_DynTab[23][1]);  return 1; }/********************应用程序结束函数***********************/void CloseApp(){//	exit_main_init();  gtk_main_quit();  GnomeCanvasGroup *group;/*程序结束对话框*/  group=gnome_canvas_root(GNOME_CANVAS(canvas));/*获得根组*/   GtkWidget *box;  GtkWidget *box1;  GtkWidget *scrolled_window1;  GtkWidget *button_ok;  GtkWidget *button_cancel;/* gtk_container_add(GTK_CONTAINER(window),box);*//*---------------------------------------*//* dialog=gnome_dialog_new("123",GNOME_STOCK_BUTTON_YES,GNOME_STOCK_BUTTON_NO,NULL);  gnome_dialog_set_parent(GNOME_DIALOG(dialog),GTK_WINDOW(window));*/  entry=gtk_entry_new();        gtk_entry_set_visibility(GTK_ENTRY(entry),FALSE);  gtk_entry_set_editable(GTK_ENTRY(entry),TRUE);  gtk_entry_set_text(GTK_ENTRY(entry),"123456");/* gtk_container_add(GTK_CONTAINER(box),entry);*//* gtk_box_pack_start(GTK_BOX(box),entry,FALSE,FALSE,5);*//* scrolled_window1=gtk_scrolled_window_new(0,NULL);  gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolled_window1),GTK_POLICY_AUTOMATIC,GTK                                 _POLICY_AUTOMATIC);*/  /**********************口令对话框放置在画布上**************************/  entrybox=gnome_canvas_item_new(group,gnome_canvas_widget_get_type(),"widget",entry,"x",385.0,                                 "y",485.0,"width",85.0,"height",20.0,"size_pixels",TRUE,NULL);  pass_word=gnome_canvas_item_new(group,gnome_canvas_text_get_type(),			      "text","PassWord","x",330.0,"y",495.0,"anchor",GTK_ANCHOR_WEST,                              "font","6*12","fill_color","green",NULL);	        button_ok=gtk_button_new_with_label("Ok");  button_cancel=gtk_button_new_with_label("Cancel");  bu_ok= gnome_canvas_item_new(group,gnome_canvas_widget_get_type(),			      "widget",button_ok,"x",385.0,"y",510.0,"width",40.0,"height",                               15.0,"size_pixels",TRUE,NULL);    bu_cancel= gnome_canvas_item_new(group,gnome_canvas_widget_get_type(),				  "widget",button_cancel,"x",430.0,"y",510.0,"width",40.0,                                 "height",15.0,"size_pixels",TRUE,NULL);   gtk_signal_connect(GTK_OBJECT(button_ok),"clicked",GTK_SIGNAL_FUNC(Button_Ok_Pressed),NULL);  gtk_signal_connect(GTK_OBJECT(button_cancel),"clicked",GTK_SIGNAL_FUNC(Button_Cancel_Pressed)                     ,NULL);	  gtk_widget_show_all(window);	    }/**********************建立列表框*******************/void show_list(){  GnomeCanvasGroup *group;  GtkWidget *scrolled_window;  GnomeCanvasItem *IF;  group=gnome_canvas_root(GNOME_CANVAS(canvas));  /**********创建滚动窗口*************/  scrolled_window=gtk_scrolled_window_new(0,NULL);  gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolled_window),GTK_POLICY_AUTOMATIC,                                 GTK_POLICY_ALWAYS);     /******放置在画布上******/  gnome_canvas_item_new(group,gnome_canvas_widget_get_type(),                        "widget",scrolled_window,"x",600.0,"y",440.0,"width",200.0,"height",                        150.0,"size_pixels",TRUE,NULL);  /*******建立列表框及定义其性质*******/  clist=gtk_clist_new(2);     /**参数是列数原型为:GtkWidget *gtk_clist_new(gint columns)**/  gtk_clist_set_column_width(GTK_CLIST(clist),0,70);  gtk_clist_set_column_width(GTK_CLIST(clist),1,150);  gtk_clist_set_shadow_type(GTK_CLIST(clist),GTK_SHADOW_OUT);     /* gtk_clist_set_row_height(GTK_CLIST(clist),5);*/       gtk_container_add(GTK_CONTAINER(scrolled_window),clist);  GdkColor dfcolor1;  GtkStyle *dfstyle1;	  gint k;  dfcolor1.red=0x00aa;  dfcolor1.green=0x00aa;  dfcolor1.blue=0x00aa;  GdkColor dfcolor2;  GtkStyle *dfstyle2;/*是不是没用*/       gint j;	  dfcolor2.red=0x8e8e;  dfcolor2.green=0x8e8e;  dfcolor2.blue=0x8e8e;	/*gtk_clist_set_foreground(GTK_CLIST(clist),0,dfcolor2);  gtk_clist_set_foreground(GTK_CLIST(clist),1,dfcolor2);  gtk_clist_set_background(GTK_CLIST(clist),0,dfcolor2);  gtk_clist_set_background(GTK_CLIST(clist),1,dfcolor2);*/    dfstyle1=gtk_style_copy(gtk_widget_get_style(clist));  /******为什么要分开赋值????******/	  for(k=0;k<5;k++)  {    dfstyle1->text[k]=dfcolor1;    dfstyle1->fg[k]=dfcolor1;   }	  for(j=0;j<5;j++)  {    dfstyle1->bg[j]=dfcolor2;   }  gtk_widget_set_style(clist,dfstyle1); }/****************************************************/int init_AB(){        A=gnome_canvas_item_new(group,gnome_canvas_ellipse_get_type(),"x1",650.0,"y1",140.0,"x2",665.0,"y2",155.0,"fill_color","green",NULL);        B=gnome_canvas_item_new(group,gnome_canvas_ellipse_get_type(),"x1",720.0,"y1",140.0,"x2",735.0,"y2",155.0,"fill_color","gray",NULL);        TA=gnome_canvas_item_new(group,gnome_canvas_text_get_type(),"text","A","x",655.0,"y",170.0,"anchor",GTK_ANCHOR_WEST,"font","10*20","fill_color","green",NULL);        TB=gnome_canvas_item_new(group,gnome_canvas_text_get_type(),"text","B","x",725.0,"y",170.0,"anchor",GTK_ANCHOR_WEST,"font","10*20","fill_color","gray",NULL);}//init_AB()int flush_AB(){	switch(ap->flag_sys_check)	{	case 1:		{		gnome_canvas_item_set(A,"x1",650.0,"y1",140.0,"x2",665.0,"y2",155.0,"fill_color","green",NULL);	        gnome_canvas_item_set(B,"x1",720.0,"y1",140.0,"x2",735.0,"y2",155.0,"fill_color","gray",NULL);	        gnome_canvas_item_set(TA,"text","A","x",655.0,"y",170.0,"anchor",GTK_ANCHOR_WEST,"font","10*20","fill_color","green",NULL);        	gnome_canvas_item_set(TB,"text","B","x",725.0,"y",170.0,"anchor",GTK_ANCHOR_WEST,"font","10*20","fill_color","gray",NULL);		gnome_canvas_item_request_update(A);         	gnome_canvas_item_request_update(B);		gnome_canvas_item_request_update(TA);		gnome_canvas_item_request_update(TB);        	break;		}		case 2:		 {		 gnome_canvas_item_set(A,"x1",650.0,"y1",140.0,"x2",665.0,"y2",155.0,"fill_color","green",NULL);                gnome_canvas_item_set(B,"x1",720.0,"y1",140.0,"x2",735.0,"y2",155.0,"fill_color","red",NULL);                gnome_canvas_item_set(TA,"text","A","x",655.0,"y",170.0,"anchor",GTK_ANCHOR_WEST,"font","10*20","fill_color","green",NULL);                gnome_canvas_item_set(TB,"text","B","x",725.0,"y",170.0,"anchor",GTK_ANCHOR_WEST,"font","10*20","fill_color","red",NULL);                gnome_canvas_item_request_update(A);                gnome_canvas_item_request_update(B);                gnome_canvas_item_request_update(TA);                gnome_canvas_item_request_update(TB);                break;                }		case 3:  		 {		 gnome_canvas_item_set(A,"x1",650.0,"y1",140.0,"x2",665.0,"y2",155.0,"fill_color","red",NULL);                gnome_canvas_item_set(B,"x1",720.0,"y1",140.0,"x2",735.0,"y2",155.0,"fill_color","green",NULL);                gnome_canvas_item_set(TA,"text","A","x",655.0,"y",170.0,"anchor",GTK_ANCHOR_WEST,"font","10*20","fill_color","red",NULL);                gnome_canvas_item_set(TB,"text","B","x",725.0,"y",170.0,"anchor",GTK_ANCHOR_WEST,"font","10*20","fill_color","green",NULL);                gnome_canvas_item_request_update(A);                gnome_canvas_item_request_update(B);                gnome_canvas_item_request_update(TA);                gnome_canvas_item_request_update(TB);                break;                }	 	case 4:	         {		 gnome_canvas_item_set(A,"x1",650.0,"y1",140.0,"x2",665.0,"y2",155.0,"fill_color","red",NULL);                gnome_canvas_item_set(B,"x1",720.0,"y1",140.0,"x2",735.0,"y2",155.0,"fill_color","red",NULL);                gnome_canvas_item_set(TA,"text","A","x",655.0,"y",170.0,"anchor",GTK_ANCHOR_WEST,"font","10*20","fill_color","red",NULL);                gnome_canvas_item_set(TB,"text","B","x",725.0,"y",170.0,"anchor",GTK_ANCHOR_WEST,"font","10*20","fill_color","red",NULL);                gnome_canvas_item_request_update(A);                gnome_canvas_item_request_update(B);                gnome_canvas_item_request_update(TA);                gnome_canvas_item_request_update(TB);                break;                }		default: break;	}//switch}//flush_AB()//exitvoid stringCallback(gchar *string,gpointer data);int exit_main_init(){   GtkWidget *app;        //GtkWidget *dialog;        GtkWidget *button;        GtkWidget *window_exit;                                                                                            //gnome_init("requestdialog","1.0",argc,argv);        app=gnome_app_new("requestdialog","Request Dialog");        button=gtk_button_new_with_label(exit);       gtk_container_set_border_width(GTK_CONTAINER(app),30);        gnome_app_set_contents(GNOME_APP(app),button);	 gtk_widget_hide(button);	 gtk_widget_show(app);         dialog=gnome_request_dialog(TRUE,"确定要退出程序吗?\n\n请输入管理员密码!","",30,(GnomeStringCallback)stringCallback,NULL,GTK_WINDOW(app));//	dialog=gnome_request_password_dialog_parented("password",(GnomeStringCallback)stringCallback,NULL,GTK_WINDOW(app));//         gtk_container_add(GTK_CONTAINER(window),dialog);        gtk_window_set_modal(GTK_WINDOW(dialog),TRUE);//	gtk_widget_hide(dialog);gtk_main();exit(0);                                                                                                      }void stringCallback(gchar *string,gpointer data) {    if(string==NULL)	return;    if(strcmp(string,"123456")== 0)       {	int i;                gtk_main_quit();                for(i=0;i<9;i++)                    {kill(aw->pids[i],SIGKILL);		    shmctl(shmid,IPC_RMID,(struct shmid_ds *) 0);		    shmctl(shmid_win,IPC_RMID,(struct shmid_ds *) 0);		    }               	exit(0);      }}                                                                                                      int eventDelete(GtkWidget *widget,GdkEvent *event,gpointer data){ exit_main_init(); gtk_window_set_focus(window,canvas);}/****************** 建立各种画布项**********************/void CreatCanvasItem_Static(){  GnomeCanvasGroup *group;  group=gnome_canvas_root(GNOME_CANVAS(canvas));  GnomeCanvasItem *co;   GtkWidget *closebutton;  /* show_bg(canvas);*/       show_echo_fd();      show_toggle(canvas); show_text(canvas);      show_line(canvas);   show_resist(canvas);   Show_Frame(canvas);   Show_Leg(canvas);   show_list(canvas);   show_name(canvas);  //exit button/*GtkWidget *button_exit;                                                                                                                 button_exit=gtk_button_new_with_label("退出");  gnome_canvas_item_new(group,gnome_canvas_widget_get_type(),                                    "widget",button_exit,"x",395.0,"y",                                    570.0,"anchor",GTK_ANCHOR_WEST,"width",                                    50.0,"height",30.0, "size_pixels",TRUE,                                    NULL);                                                                                                                 gtk_signal_connect(GTK_OBJECT(button_exit),"clicked",GTK_SIGNAL_FUNC(exit_main_init),NULL);  */                                                                                                           //system show  GnomeCanvasItem *text_sys;                                                                                                                      text_sys= gnome_canvas_item_new(group,gnome_canvas_text_get_type(),                              "text","InterLocking System For WuHan Man_Machine",                              "x",270.0,"y",140.0,"anchor",GTK_ANCHOR_WEST,"font",                              "10*20","fill_color","green",NULL);/*GtkWidget *sys_show_button;                                                                                                                 sys_show_button=gtk_button_new_with_label("武汉微机联锁系统");  gnome_canvas_item_new(group,gnome_canvas_widget_get_type(),                                    "widget",sys_show_button,"x",395.0,"y",                                    70.0,"anchor",GTK_ANCHOR_WEST,"width",                                    150.0,"height",50.0, "size_pixels",TRUE,                                    NULL);*/}/*******************画布初始化******************/int CreatCanvasItem_Init(){   Show_Sw(canvas);   Show_Field(canvas);   Show_Sg(canvas);   return 1;}/*******************踊

⌨️ 快捷键说明

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