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

📄 main.c

📁 linux下的人机对话编程
💻 C
📖 第 1 页 / 共 2 页
字号:
#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;  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_D1=TRUE,      Rf_D3=FALSE,     Rf_D5=FALSE,      Rf_D7=FALSE,     Rf_D9=FALSE,              Rf_D11=FALSE,    Rf_D13=FALSE,    Rf_D15=FALSE,     Rf_D17=FALSE,    Rf_D19=FALSE,           Rf_X=FALSE,      Rf_XD=FALSE,     Rf_S3=FALSE,      Rf_S5=FALSE,     Rf_S2=FALSE,           Rf_S4=FALSE,     Rf_D2=FALSE,     Rf_D4=FALSE,      Rf_D6=FALSE,     Rf_D8=FALSE,           Rf_S=FALSE,      Rf_X1=FALSE,     Rf_X3=FALSE,      Rf_X4=FALSE,     Rf_X5=FALSE;/*区段和道岔是否刷新控制量*/ gboolean Rf_Sw=FALSE,Rf_Fd=FALSE;  int Ma,Ba; GnomeCanvasItem *A,*B;    /*全局量定义*/ GnomeCanvasItem *A_TEXT; GnomeCanvasItem *B_TEXT; 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){ 	 }/*******************试验函数********************/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(){  close1=TRUE;  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",550.0,"y",450.0,"width",250.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,100);  gtk_clist_set_column_width(GTK_CLIST(clist),1,110);  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); }/*************此函数实现A|B机监控(具有闪的动作)***************/void Flash_Main(){  if(Main==FALSE)  {    gnome_canvas_item_hide(A);    Main=TRUE;  }  else  {    gnome_canvas_item_show(A);    Main=FALSE;  }}void Flash_Bake(){  if(Bake==FALSE)  {    gnome_canvas_item_hide(B);    Bake=TRUE;  }  else  {    gnome_canvas_item_show(B);    Bake=FALSE;  }}/****************响应监控灯操作*********************/gboolean Pressed_A(GtkWidget *widget,GdkEvent *event,gpointer data){  int id;  GdkCursor *cursor;    id=GPOINTER_TO_INT(data);    if(event->type==GDK_ENTER_NOTIFY)  {    cursor=gdk_cursor_new(GDK_HAND2);    gdk_window_set_cursor(window->window,cursor);  }  if(event->type==GDK_LEAVE_NOTIFY)  {    cursor=gdk_cursor_new(GDK_ARROW);    gdk_window_set_cursor(window->window,cursor);  }  if(event->type==GDK_BUTTON_PRESS)  {    GdkEventButton *buttonevent=(GdkEventButton*)event;/***将事件转化为按钮事件***/        if(buttonevent->button==1) {}       }}int Show_Fun_Cir(){  GnomeCanvasGroup *group;  group=gnome_canvas_root(GNOME_CANVAS(canvas));  GdkEvent *event;  gtk_object_destroy(GTK_OBJECT(A));      /***为什么要销毁????***/  gtk_object_destroy(GTK_OBJECT(B));  gtk_object_destroy(GTK_OBJECT(A_TEXT));  gtk_object_destroy(GTK_OBJECT(B_TEXT));  if(Main_Cpu==TRUE)  {     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);  

⌨️ 快捷键说明

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