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

📄 menu_options.c

📁 linux上实现的多种型号的AVR模拟器
💻 C
📖 第 1 页 / 共 2 页
字号:
				  XmNbottomAttachment,XmATTACH_FORM,				  /*  XmNrightAttachment,XmATTACH_FORM, */				  XmNleftAttachment,XmATTACH_WIDGET,				  XmNleftWidget,label,XmNvalue,number,				  XmNleftOffset,4,XmNrightOffset,4,				  XmNbottomOffset,4,				  XmNcolumns,3,XmNmaxLength,3,				  XmNcursorPositionVisible,False,				  NULL);  frame2=XtVaCreateManagedWidget("Frame",xmFrameWidgetClass,option_form,				 XmNtopAttachment,XmATTACH_WIDGET,				 XmNtopWidget,frame1,				 XmNtopOffset,5,				 XmNleftAttachment,XmATTACH_FORM,				 XmNleftOffset,5,				 XmNbottomAttachment,XmATTACH_FORM,				 XmNbottomOffset,5,				 XmNmarginWidth,2,XmNmarginHeight,2,NULL);    string=XmStringGenerate(_("Auto Step"),XmFONTLIST_DEFAULT_TAG,          			  XmCHARSET_TEXT,_MOTIF_DEFAULT_LOCALE);   XtVaCreateManagedWidget("label",xmLabelGadgetClass,frame2,                          XmNlabelString,string,                          XmNframeChildType,XmFRAME_TITLE_CHILD,                          XmNchildHorizontalAlignment,XmALIGNMENT_CENTER,                          XmNchildVerticalAlignment,XmALIGNMENT_CENTER,                          NULL);  XmStringFree(string);  form=XtVaCreateManagedWidget("form",xmFormWidgetClass,frame2,NULL);  string=XmStringGenerate(_("Single Step delay (ms)"),XmFONTLIST_DEFAULT_TAG,			  XmCHARSET_TEXT,_MOTIF_DEFAULT_LOCALE);   label=XtVaCreateManagedWidget("label",xmLabelGadgetClass,form,				XmNlabelString,string,XmNbottomOffset,4,				XmNtopAttachment,XmATTACH_FORM,				XmNleftAttachment,XmATTACH_FORM,				XmNbottomAttachment,XmATTACH_FORM,NULL);  XmStringFree(string);  sprintf(number,"%d",auto_step);  data[1]=XtVaCreateManagedWidget("field",xmTextFieldWidgetClass,form,				  XmNtopAttachment,XmATTACH_FORM,				  XmNbottomAttachment,XmATTACH_FORM,				  /*  XmNrightAttachment,XmATTACH_FORM, */				  XmNleftAttachment,XmATTACH_WIDGET,				  XmNleftWidget,label,XmNvalue,number,				  XmNleftOffset,4,XmNrightOffset,4,				  XmNbottomOffset,4,				  XmNcolumns,3,XmNmaxLength,3,				  XmNcursorPositionVisible,False,				  NULL);  frame3=XtVaCreateManagedWidget("Frame",xmFrameWidgetClass,option_form,				 XmNtopAttachment,XmATTACH_FORM,				 XmNtopOffset,5,				 XmNleftAttachment,XmATTACH_WIDGET,				 XmNleftWidget,frame1,				 XmNleftOffset,5,				 XmNrightAttachment,XmATTACH_FORM,				 XmNrightOffset,5,				 XmNbottomAttachment,XmATTACH_FORM,				 XmNbottomOffset,5,				 XmNmarginWidth,2,XmNmarginHeight,2,NULL);    string=XmStringGenerate(_("Generic"),XmFONTLIST_DEFAULT_TAG,          			  XmCHARSET_TEXT,_MOTIF_DEFAULT_LOCALE);   XtVaCreateManagedWidget("label",xmLabelGadgetClass,frame3,                          XmNlabelString,string,                          XmNframeChildType,XmFRAME_TITLE_CHILD,                          XmNchildHorizontalAlignment,XmALIGNMENT_CENTER,                          XmNchildVerticalAlignment,XmALIGNMENT_CENTER,                          NULL);  XmStringFree(string);  form=XtVaCreateManagedWidget("form",xmFormWidgetClass,frame3,NULL);    string=XmStringGenerate(_("Break enabled if interrupt occur"),			  XmFONTLIST_DEFAULT_TAG,			  XmCHARSET_TEXT,_MOTIF_DEFAULT_LOCALE);   data[2]=XtVaCreateManagedWidget("toggle_debugger",xmToggleButtonGadgetClass,				  form,XmNtopAttachment,XmATTACH_FORM,				  XmNleftAttachment,XmATTACH_FORM,				  XmNrightAttachment,XmATTACH_FORM,				  XmNlabelString,string,				  NULL);  XmStringFree(string);    string=XmStringGenerate(_("OK"),XmFONTLIST_DEFAULT_TAG,			  XmCHARSET_TEXT,_MOTIF_DEFAULT_LOCALE);  button=XtVaCreateManagedWidget("OK",xmPushButtonGadgetClass,				 debugger_window,				 XmNtopAttachment,XmATTACH_WIDGET,				 XmNtopOffset,7,XmNtopWidget,option_form,				 XmNleftAttachment,XmATTACH_POSITION,				 XmNleftPosition,1,XmNlabelString,string,				 XmNrightAttachment,XmATTACH_POSITION,				 XmNrightPosition,2,				 XmNbottomAttachment,XmATTACH_FORM,				 XmNbottomOffset,7,NULL);  XtAddCallback(button,XmNactivateCallback,		(XtCallbackProc)use_debugger_callback,data);  XmStringFree(string);    string=XmStringGenerate(_("Close"),XmFONTLIST_DEFAULT_TAG,			  XmCHARSET_TEXT,_MOTIF_DEFAULT_LOCALE);  button=XtVaCreateManagedWidget("Close",xmPushButtonGadgetClass,				 debugger_window,				 XmNtopAttachment,XmATTACH_WIDGET,				 XmNtopOffset,7,XmNtopWidget,option_form,				 XmNrightAttachment,XmATTACH_POSITION,				 XmNrightPosition,4,XmNlabelString,string,				 XmNleftAttachment,XmATTACH_POSITION,				 XmNleftPosition,3,				 XmNbottomAttachment,XmATTACH_FORM,				 XmNbottomOffset,7,NULL);  XtVaSetValues(frame2,XmNrightAttachment,XmATTACH_WIDGET,		XmNrightWidget,frame3,XmNrightOffset,5,NULL);    XtAddCallback(button,XmNactivateCallback,		(XtCallbackProc)close_debugger_callback,data);  XmStringFree(string);  XtAddCallback(shell,XmNpopupCallback,(XtCallbackProc)set_size_static_window,		NULL);}void use_debugger_callback(Widget w,Widget *client_data,XtPointer call_data){  char *string;  unsigned int number;  unsigned char set;  string=XmTextFieldGetString(client_data[0]);  if((number=strtoul(string,NULL,10)))    multi_step=number;  XtFree(string);  string=XmTextFieldGetString(client_data[1]);  if((number=strtoul(string,NULL,10)))    auto_step=number;  XtFree(string);  XtVaGetValues(client_data[2],XmNset,&set,NULL);  if(set==XmSET) debug_flag=debug_flag|DEBUG_INTERRUPT;  else debug_flag=debug_flag&(~DEBUG_INTERRUPT);      XtUnmanageChild(debugger_window);}void close_debugger_callback(Widget w,Widget *client_data,XtPointer call_data){  char string[10];  sprintf(string,"%d",multi_step);  XtVaSetValues(client_data[0],XmNvalue,string,NULL);    sprintf(string,"%d",auto_step);  XtVaSetValues(client_data[1],XmNvalue,string,NULL);    if(debug_flag&DEBUG_INTERRUPT)    XtVaSetValues(client_data[2],XmNset,XmSET,NULL);  else     XtVaSetValues(client_data[2],XmNset,XmUNSET,NULL);      XtUnmanageChild(debugger_window);}void create_project_selection(void){  int n,size_list,size_string,t;  XmString *list,string;  char buf[30];  Widget shell,rowcolumn,label,button,frame,menu;  /* create field for choosen processor */  shell=XtVaCreateWidget("project",xmDialogShellWidgetClass,toplevel,			 XmNtitle,_("Project"),NULL);  project_window=XtVaCreateWidget("form",xmFormWidgetClass,shell,				  XmNautoUnmanage,False,XmNdialogStyle,				  XmDIALOG_FULL_APPLICATION_MODAL,				  XmNresizePolicy,XmRESIZE_NONE,				  XmNfractionBase,5,NULL);    frame=XtVaCreateManagedWidget("frame",xmFrameWidgetClass,project_window,				XmNtopAttachment,XmATTACH_FORM,				XmNtopOffset,5,				XmNleftAttachment,XmATTACH_FORM,				XmNleftOffset,5,				XmNrightAttachment,XmATTACH_FORM,				XmNrightOffset,5,NULL);  rowcolumn=    XtVaCreateManagedWidget("Rowcolumn",xmRowColumnWidgetClass,frame, 			    XmNpacking,XmPACK_COLUMN,      			    XmNorientation,XmHORIZONTAL,XmNisAligned,True,			    XmNentryAlignment,XmALIGNMENT_BEGINNING,			    XmNspacing,3,XmNentryVerticalAlignment,			    XmALIGNMENT_CENTER,XmNnumColumns,4,NULL);    size_string=1;n=0;  while(controllers[n].name!=(char *)NULL)     {      if((t=strlen(controllers[n].name))>size_string) size_string=t;      n++;    }  size_list=n;    if((list=malloc(size_list*sizeof(XmString)))==NULL)    {      puts("create_project_selection(): can't allocate memory for 'list'");      exit(1);    }  for(n=0;n<size_list;n++)    list[n]=XmStringCreateLtoR(controllers[n].name,XmSTRING_DEFAULT_CHARSET);    string=XmStringGenerate(_("Processor:"),XmFONTLIST_DEFAULT_TAG,			  XmCHARSET_TEXT,_MOTIF_DEFAULT_LOCALE);  label=XtVaCreateManagedWidget("processor_label",xmLabelGadgetClass,				rowcolumn,XmNlabelString,string,NULL);  XmStringFree(string);  combo_proc=XtVaCreateManagedWidget("processor_box",xmComboBoxWidgetClass,				     rowcolumn,				     XmNcomboBoxType,XmDROP_DOWN_LIST,				     XmNitems,list,XmNitemCount,size_list,				     XmNvisibleItemCount,10,				     XmNcolumns,size_string,	       				     NULL);  XtVaSetValues(XtNameToWidget(combo_proc,"*Text"),XmNshadowThickness,1,NULL);  for(n=0;n<size_list;n++) XmStringFree(list[n]);  free(list);  /* end field for choosen processor*/  /* setting frequency */  string=XmStringGenerate(_("Frequency:"),XmFONTLIST_DEFAULT_TAG,			  XmCHARSET_TEXT,_MOTIF_DEFAULT_LOCALE);  label=XtVaCreateManagedWidget("freq_label",xmLabelGadgetClass,rowcolumn,				XmNlabelString,string,NULL);  XmStringFree(string);  sprintf(buf,"%d",frequency);  freq_field=XtVaCreateManagedWidget("freq_field",xmTextFieldWidgetClass,				     rowcolumn,XmNcolumns,8,XmNmaxLength,8,				     XmNvalue,buf,				     XmNcursorPositionVisible,True,NULL);  /* end of setting frequency */  /* setting watchdog frequency */  string=XmStringGenerate(_("Watchdog frequency:"),XmFONTLIST_DEFAULT_TAG,			  XmCHARSET_TEXT,_MOTIF_DEFAULT_LOCALE);  label=XtVaCreateManagedWidget("watchdog_freq_label",xmLabelGadgetClass,				rowcolumn,XmNlabelString,string,NULL);  XmStringFree(string);    sprintf(buf,"%d",wtd_freq);  watchdog_freq_field=    XtVaCreateManagedWidget("field",xmTextFieldWidgetClass,			    rowcolumn,XmNcolumns,8,XmNmaxLength,8,XmNvalue,buf,			    XmNcursorPositionVisible,True,NULL);  /* end of setting watchdog frequency */  /* choosing Reset Delay Time-Out Period */  string=XmStringGenerate(_("Reset Delay Time-Out Period:"),			  XmFONTLIST_DEFAULT_TAG,			  XmCHARSET_TEXT,_MOTIF_DEFAULT_LOCALE);  label=XtVaCreateManagedWidget("watchdog_freq_label",xmLabelGadgetClass,				rowcolumn,XmNlabelString,string,NULL);  XmStringFree(string);  prog_option_menu=XmCreateOptionMenu(rowcolumn,"option_menu",NULL,0);  menu=XmCreatePulldownMenu(prog_option_menu,"option",NULL,0);    string=XmStringGenerate(_("Unprogrammed"),XmFONTLIST_DEFAULT_TAG,			  XmCHARSET_TEXT,_MOTIF_DEFAULT_LOCALE);  prog_button[UNPROGRAMMED]=    XtVaCreateManagedWidget("unprogrammed",xmPushButtonGadgetClass,			    menu,XmNlabelString,string,NULL);  XtAddCallback(prog_button[UNPROGRAMMED],XmNactivateCallback,		(XtCallbackProc)watchdog_unprog_callback,NULL);  XmStringFree(string);  string=XmStringGenerate(_("Programmed"),XmFONTLIST_DEFAULT_TAG,			  XmCHARSET_TEXT,_MOTIF_DEFAULT_LOCALE);  prog_button[PROGRAMMED]=    XtVaCreateManagedWidget("programmed",xmPushButtonGadgetClass,			    menu,XmNlabelString,string,NULL);  XtAddCallback(prog_button[PROGRAMMED],XmNactivateCallback,		(XtCallbackProc)watchdog_prog_callback,NULL);  XmStringFree(string);     XtVaSetValues(prog_option_menu,XmNsubMenuId,menu,NULL);  XtManageChild(prog_option_menu);  /* end of choosing Reset Delay Time-Out Period */    string=XmStringGenerate(_("OK"),XmFONTLIST_DEFAULT_TAG,			  XmCHARSET_TEXT,_MOTIF_DEFAULT_LOCALE);  button=XtVaCreateManagedWidget("OK",xmPushButtonGadgetClass,				 project_window,XmNtopAttachment,				 XmATTACH_WIDGET,				 XmNtopOffset,7,XmNtopWidget,label,				 XmNleftAttachment,XmATTACH_POSITION,				 XmNleftPosition,1,XmNlabelString,string,				 XmNrightAttachment,XmATTACH_POSITION,				 XmNrightPosition,2,				 XmNbottomAttachment,XmATTACH_FORM,				 XmNbottomOffset,7,NULL);  XtAddCallback(button,XmNactivateCallback,		(XtCallbackProc)use_project_callback,NULL);  XmStringFree(string);    string=XmStringGenerate(_("Close"),XmFONTLIST_DEFAULT_TAG,			  XmCHARSET_TEXT,_MOTIF_DEFAULT_LOCALE);  button=XtVaCreateManagedWidget("Close",xmPushButtonGadgetClass,				 project_window,XmNtopAttachment,				 XmATTACH_WIDGET,				 XmNtopOffset,7,XmNtopWidget,				 watchdog_freq_field,				 XmNrightAttachment,XmATTACH_POSITION,				 XmNrightPosition,4,XmNlabelString,string,				 XmNleftAttachment,XmATTACH_POSITION,				 XmNleftPosition,3,				 XmNbottomAttachment,XmATTACH_FORM,				 XmNbottomOffset,7,NULL);    XtAddCallback(button,XmNactivateCallback,		(XtCallbackProc)close_project_callback,NULL);  XmStringFree(string);  XtAddCallback(shell,XmNpopupCallback,(XtCallbackProc)set_size_static_window,		NULL);}void watchdog_unprog_callback(Widget w,XtPointer client,XtPointer call){  wacthdog_timeout_temp=UNPROGRAMMED;}void watchdog_prog_callback(Widget w,XtPointer data,XtPointer call){  wacthdog_timeout_temp=PROGRAMMED;}void close_project_callback(Widget w,XtPointer data,XtPointer call){  char buf[10];   XtVaSetValues(combo_proc,XmNselectedPosition,type_micro,NULL);  sprintf(buf,"%d",frequency);  XmTextFieldSetString(freq_field,buf);  sprintf(buf,"%d",wtd_freq);  XmTextFieldSetString(watchdog_freq_field,buf);  XtVaSetValues(prog_option_menu,XmNmenuHistory,prog_button[wacthdog_timeout],		NULL);  XtUnmanageChild(project_window);}/* check format of file */int check_port_file(char *name){  FILE *file;  int temp1,temp2,result;  if((file=fopen(name,"r"))==NULL)    {      sprintf(error_message,"open file '%s': %s",name,strerror(errno));      return 1;    }  while((result=fscanf(file,"%d:%x",&temp1,&temp2))==2);  if(result!=EOF)    {      sprintf(error_message,"file '%s' has bad format",name);      return 1;    }  fclose(file);  return 0;}

⌨️ 快捷键说明

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