📄 xutils.c
字号:
if (!interactive) fprintf(stdout,"%s",istr); else Message(MSG_ERROR,istr);}/** warning()** Prints warning msg.* Variadic parameter list can be passed.** Return values:* none*/void warning( char *msg,...){ va_list ap; char istr[MESSLENGTH*MESSLINES] = "WARNING: "; char vstr[1000]; va_start(ap,msg); vsprintf(vstr,msg,ap); va_end(ap); strncat(istr,vstr,MESSLENGTH*MESSLINES-10); if (!interactive) fprintf(stdout,"%s",istr); else Message(MSG_ERROR,istr);}/** info()** Prints info msg.* Variadic parameter list can be passed.** Return values:* none*/void info( char *msg,...){ va_list ap; char istr[MESSLENGTH+10] = ""; char vstr[1000]; if (!mess_output) return; va_start(ap,msg); vsprintf(vstr,msg,ap); va_end(ap); strncat(istr,vstr,MESSLENGTH); if (!interactive) fprintf(stdout,"%s\n",istr); else { UseWindow(mainw); SelectFont(systemFont); SetTitle(message,istr); if(save_log && save_log_fd!=NULL) fprintf(save_log_fd,"%s\n",istr); Update(); }}void set_helix_gp(TexT t){ char str[10]; int temp; GetTitle(t,str,10); temp = atoi(str); if (temp < 0 || temp > 9) return; helix_penalty = temp;}void set_strand_gp(TexT t){ char str[10]; int temp; GetTitle(t,str,10); temp = atoi(str); if (temp < 0 || temp > 9) return; strand_penalty = temp;}void set_loop_gp(TexT t){ char str[10]; int temp; GetTitle(t,str,10); temp = atoi(str); if (temp < 0 || temp > 9) return; loop_penalty = temp;}void set_terminal_gp(TexT t){ char str[10]; int temp; GetTitle(t,str,10); temp = atoi(str); if (temp < 0 || temp > 9) return; helix_end_penalty = temp;}void set_helix_minus(TexT t){ char str[10]; int temp; GetTitle(t,str,10); temp = atoi(str); if (temp < 0 || temp > 9) return; helix_end_minus = temp;}void set_helix_plus(TexT t){ char str[10]; int temp; GetTitle(t,str,10); temp = atoi(str); if (temp < 0 || temp > 9) return; helix_end_plus = temp;}void set_strand_plus(TexT t){ char str[10]; int temp; GetTitle(t,str,10); temp = atoi(str); if (temp < 0 || temp > 9) return; strand_end_plus = temp;}void set_strand_minus(TexT t){ char str[10]; int temp; GetTitle(t,str,10); temp = atoi(str); if (temp < 0 || temp > 9) return; strand_end_minus = temp;} void set_inverted(IteM i){ inverted=GetStatus(i); if (inverted==FALSE) { strcpy(color_lut[0].name,"BLACK"); color_lut[0].r=0.4; color_lut[0].g=0.4; color_lut[0].b=0.4; SelectColor(color_lut[0].r*255, color_lut[0].g*255, color_lut[0].b*255); color_lut[0].val=GetColor(); } else { strcpy(color_lut[0].name,"WHITE"); color_lut[0].r=1.0; color_lut[0].g=1.0; color_lut[0].b=1.0; SelectColor(color_lut[0].r*255, color_lut[0].g*255, color_lut[0].b*255); color_lut[0].val=GetColor(); } if(aln_mode==MULTIPLEM) DrawPanel(seq_panel.seqs); else { DrawPanel(prf_panel[0].seqs); DrawPanel(prf_panel[1].seqs); } }void set_ss_output(ButtoN b){ int tmp; tmp = GetStatus(b); if (tmp) output_ss = TRUE; else output_ss = FALSE; if (output_ss && output_gp) output_struct_penalties=2; else if (output_ss) output_struct_penalties=0; else if (output_gp) output_struct_penalties=1; else output_struct_penalties=3;}void set_gp_output(ButtoN b){ int tmp; tmp = GetStatus(b); if (tmp) output_gp = TRUE; else output_gp = FALSE; if (output_ss && output_gp) output_struct_penalties=2; else if (output_ss) output_struct_penalties=0; else if (output_gp) output_struct_penalties=1; else output_struct_penalties=3;}void set_user_matrix(ButtoN but){ if(get_series_matrixname(usermtrxname,usermat,aa_xref,5,&matnum,mattext)) strcpy(mtrxname,usermtrxname); SetValue(matrix_list,matnum);}void set_pw_user_matrix(ButtoN but){ if(get_user_matrixname(pw_usermtrxname,pw_usermat,pw_aa_xref,5,&pw_matnum,pwmattext)) strcpy(pw_mtrxname,pw_usermtrxname); SetValue(pw_matrix_list,pw_matnum);}void set_pw_matrix(GrouP g){ int tmp; tmp = GetValue(g); if (tmp>0 && tmp<pw_matrix_menu.noptions) { pw_matnum = tmp; strcpy(pw_mtrxname,pw_matrix_menu.opt[tmp-1].string); } else if(pw_usermtrxname[0]=='\0') { if(get_user_matrixname(pw_usermtrxname,pw_usermat,pw_aa_xref,pw_matrix_menu.noptions,&pw_matnum,pwmattext)) strcpy(pw_mtrxname,pw_usermtrxname); } else pw_matnum=pw_matrix_menu.noptions; SetValue(pw_matrix_list,pw_matnum);}void set_matrix(GrouP g){ int tmp; int status; tmp = GetValue(g); if (tmp>0 && tmp<matrix_menu.noptions) { matnum = tmp; strcpy(mtrxname,matrix_menu.opt[tmp-1].string); } else if(usermtrxname[0]=='\0') { if(get_series_matrixname(usermtrxname,usermat,aa_xref,matrix_menu.noptions,&matnum,mattext)) strcpy(mtrxname,usermtrxname); } else matnum=matrix_menu.noptions; SetValue(matrix_list,matnum);}static int get_series_matrixname(char *usermtrxname, short *usermat,short *aa_xref,int usermatnum,int *matnum,PrompT mattext){ int ret=0; static Char filename[FILENAMELEN]; if (GetInputFileName(filename,FILENAMELEN,"","")) { if(user_mat_series(filename, usermat, aa_xref)) { strcpy(usermtrxname,filename); *matnum=usermatnum; SetTitle(mattext,usermtrxname); ret=1; } } return ret;}int get_user_matrixname(char *usermtrxname, short *usermat,short *aa_xref,int usermatnum,int *matnum,PrompT mattext){ int ret=0; static Char filename[FILENAMELEN]; if (GetInputFileName(filename,FILENAMELEN,"","")) { if(user_mat(filename, usermat, aa_xref)) { strcpy(usermtrxname,filename); *matnum=usermatnum; SetTitle(mattext,usermtrxname); ret=1; } } return ret;}void set_user_dnamatrix(ButtoN but){ if(get_user_matrixname(dnausermtrxname,userdnamat,dna_xref,3,&dnamatnum,dnamattext)) strcpy(dnamtrxname,dnausermtrxname); SetValue(dnamatrix_list,dnamatnum);}void set_pw_user_dnamatrix(ButtoN but){ if(get_user_matrixname(pw_dnausermtrxname,pw_userdnamat,pw_dna_xref,3,&pw_dnamatnum,pwdnamattext)) strcpy(pw_dnamtrxname,pw_dnausermtrxname); SetValue(pw_dnamatrix_list,pw_dnamatnum);}void set_pw_dnamatrix(GrouP g){ int tmp; tmp = GetValue(g); if (tmp>0 && tmp<dnamatrix_menu.noptions) { pw_dnamatnum = tmp; strcpy(pw_dnamtrxname,dnamatrix_menu.opt[tmp-1].string); } else if(pw_dnausermtrxname[0]=='\0') { if(get_user_matrixname(pw_dnausermtrxname,pw_userdnamat,pw_dna_xref,dnamatrix_menu.noptions,&pw_dnamatnum,pwdnamattext)) strcpy(pw_dnamtrxname,pw_dnausermtrxname); } else pw_dnamatnum=dnamatrix_menu.noptions; SetValue(pw_dnamatrix_list,pw_dnamatnum);}void set_dnamatrix(GrouP g){ int tmp; tmp = GetValue(g); if (tmp>0 && tmp<dnamatrix_menu.noptions) { dnamatnum = tmp; strcpy(dnamtrxname,dnamatrix_menu.opt[tmp-1].string); } else if(dnausermtrxname[0]=='\0') { if(get_user_matrixname(dnausermtrxname,userdnamat,dna_xref,dnamatrix_menu.noptions,&dnamatnum,dnamattext)) strcpy(dnamtrxname,dnausermtrxname); } else dnamatnum=dnamatrix_menu.noptions; SetValue(dnamatrix_list,dnamatnum);}FILE * open_input_file(char *file_name){ FILE * file_handle; if (*file_name == EOS) { error("Bad input file [%s]",file_name); return NULL; }#ifdef VMS if((file_handle=fopen(file_name,"r","rat=cr","rfm=var"))==NULL) {#else if((file_handle=fopen(file_name,"r"))==NULL) {#endif error("Cannot open input file [%s]",file_name); return NULL; } return file_handle;} void set_use_ss1(PopuP l){ set_toggle(l,&use_ss1); load_aln(prf_panel[0],0,profile1_nseqs-1,FALSE); load_aln(prf_panel[1],profile1_nseqs,nseqs-1,FALSE);}void set_use_ss2(PopuP l){ set_toggle(l,&use_ss2); load_aln(prf_panel[0],0,profile1_nseqs-1,FALSE); load_aln(prf_panel[1],profile1_nseqs,nseqs-1,FALSE);}void set_output_clustal(ButtoN l){ set_button(l,&output_clustal);}void set_output_gde(ButtoN l){ set_button(l,&output_gde);}void set_output_nexus(ButtoN l){ set_button(l,&output_nexus);}void set_output_fasta(ButtoN l){ set_button(l,&output_fasta);}void set_format(GrouP g){ int i; char path[FILENAMELEN]; get_path(seqname,path); GetTitle(savealntext, path,FILENAMELEN);/* remove the current extension */ for(i=strlen(path)-1;i>=0;i--) if(path[i]=='.') { path[i]='\0'; break; } i = GetValue(g); if (i==1) { save_format=CLUSTAL; strcat(path,".aln"); } else if (i==2) { save_format=PIR; strcat(path,".pir"); } else if (i==3) { save_format=MSF; strcat(path,".msf"); } else if (i==4) { save_format=PHYLIP; strcat(path,".phy"); } else if (i==5) { save_format=GDE; strcat(path,".gde"); } else if (i==6) { save_format=NEXUS; strcat(path,".nxs"); } else if (i==7) { save_format=FASTA; strcat(path,".fasta"); } SetTitle(savealntext, path);}void set_residue_exceptions(IteM i){ if (residue_exceptions==FALSE) residue_exceptions=TRUE; else residue_exceptions=FALSE; if (aln_mode==MULTIPLEM) DrawPanel(seq_panel.seqs); else { DrawPanel(prf_panel[0].seqs); DrawPanel(prf_panel[1].seqs); }} void set_fs_toggle(PopuP l){ set_toggle(l,&quick_pairalign); if (quick_pairalign) { Hide(slow_para); Show(fast_para); } else { Hide(fast_para); Show(slow_para); }}void set_font_size(PopuP g){ int tmp; char font[30]; tmp = GetValue(g); /* if ( tmp == 6 ) { printf("\n choosing differnt fonts %d\n ",tmp); VSeqMgrFontProc(); printf("\n choosing differnt fonts ( %s ) ",fontbuf); datafont=ParseFont(fontbuf); } else { printf("\n NOT......... choosing differnt fonts %d\n ",tmp); */ font_size=tmp-1; sprintf(font, "%s,%d,%c", "courier", av_font[font_size], 'm'); datafont=ParseFont(font); /* } */ if (aln_mode==MULTIPLEM) { DrawPanel(seq_panel.names); DrawPanel(seq_panel.seqs); } else { DrawPanel(prf_panel[0].names); DrawPanel(prf_panel[0].seqs); DrawPanel(prf_panel[1].names); DrawPanel(prf_panel[1].seqs); } correct_name_bars(FALSE); correct_seq_bars(FALSE);} void set_pscroll_mode(ButtoN l){ panel_data data; set_button(l,&fixed_prf_scroll); GetPanelExtra(prf_panel[0].seqs,&data); if(fixed_prf_scroll) data.lockoffset=data.firstvcol; else data.lockoffset=0; SetPanelExtra(prf_panel[0].seqs,&data); GetPanelExtra(prf_panel[1].seqs,&data); if(fixed_prf_scroll) data.lockoffset=data.firstvcol; else data.lockoffset=0; SetPanelExtra(prf_panel[1].seqs,&data); correct_seq_bars(FALSE);} void set_aln_mode(PopuP g){ int tmp; tmp = GetValue(g); if (tmp == 1) aln_mode = MULTIPLEM; else aln_mode = PROFILEM; switch_mode();} void set_show_segments(IteM l){ if (segment_exceptions==FALSE) segment_exceptions=TRUE; else segment_exceptions=FALSE; calc_seg_exceptions(); SetStatus(segment_item,segment_exceptions); show_segment_exceptions();} void shift(Handle a, int dx, int dy){ PoinT pt; GetNextPosition (a, &pt); pt.x+=dx; pt.y+=dy; SetNextPosition(a, pt);}void stripspace(char *str){ register int i,j,p; char *tstr; #ifndef UNIX return;#endif p = strlen(str) - 1; while ( isspace(str[p]) ) p--; str[p + 1] = EOS; tstr=(char *)ckalloc((p+2)*sizeof(char)); for(i=0,j=0;i<=p;i++) if(!isspace(str[i])) tstr[j++]=str[i]; tstr[j] = EOS; strcpy(str,tstr); ckfree(tstr);}/* extra code */static void VSeqMgrFontProc (){ Nlm_FontSpec font; FonT f; /* GetFontSpec(vsmp->font, &font); */ printf(" before getfontspec \n"); GetFontSpec(tmpFont, &font); printf(" done getfontspec \n"); if (ChooseFont(&font, CFF_READ_FSP, NULL)) { /*** f = GetPermanentFont(&font); ***/ f = CreateFont(&font); tmpFont = f; SelectFont(f); /* vsmp->lineheight = LineHeight(); vsmp->leading = Leading(); vsmp->charw = MaxCharWidth(); vsmp->update_all = TRUE; */ /* VSeqMgrShow(); */ FontSpecToStr(&font, fontbuf, 80); datafont = ParseFont(fontbuf); printf(" font info \n ( %s ) \n", fontbuf); } return ;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -