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