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

📄 dna.cc

📁 unix或linux下的DNA分析软件源码 其功能如下 1. Edit up to 256 peptide or DNA sequences simultaneously. 2. Transla
💻 CC
📖 第 1 页 / 共 5 页
字号:
//--------------------------------------------------------------------//// dna.cc                                                             //// Latest revision: 05-06-2000                                        //// Copyright (C) 2000 by Thomas J. Nelson                             //// All rights reserved.                                               ////--------------------------------------------------------------------// #include "dna.h"Globals g;extern int ylabel[30];char lestif_filename[FILENAMELENGTH] = "nothing";////  Don't set `transient' resource in fallbacks.static String fallback_resources[] = {       "*.fontList: *helvetica-bold-r-normal--12*",   "*.shadowThickness: 1",   "*.DialogForm*shadowThickness: 1",   "*.background:gray",      "*.foreground:black",   "*.marginWidth:1",   "*.marginHeight:1",   "*.FileSelector*marginWidth: 1",   "*.FileSelector*marginHeight: 1",   "*.FileSelector*listVisibleItemCount: 25",   "*.FileSelector*borderWidth: 0",   "*.XmText*fontList: fixed",   "*DrawWidget*fontList: fixed",   "*List*fontList:*-courier-medium-r-normal--12-120-*",   "*List*XmPushButton*fontList:*helvetica-bold-r-normal--12*",   "*List*XmLabel*fontList:*helvetica-bold-r-normal--12*",   "*highlightThickness: 0",   NULL};   //--------------------------------------------------------------------//int main(int argc, char **argv){   XtAppContext app;    XtSetLanguageProc(NULL,NULL,NULL);   g.main_widget = XtVaAppInitialize(&app, "Xdata",                         NULL, 0, &argc, argv, fallback_resources,                          XmNdeleteResponse, XmDO_NOTHING,                        NULL);   initialize_globals();   init_xlib();    resize_main_widget(g.main_xsize, g.main_ysize);   makewidgets(g.main_widget);   if(g.sequence_mode != DNA) set_sequence_mode(PROTEIN);   xminitializemisc(g.main_widget);   create_main_icon();   initialize_data();   XtAppAddTimeOut(app,1000,timer_callback,NULL);   XtAppMainLoop(app);}//--------------------------------------------------------------------//// create_main_icon                                                   //// Set the icon in case user iconifies program. Need a bigger one.    ////--------------------------------------------------------------------//void create_main_icon(void){   Window win;   XIconSize *size;   int count, k, ok=0;   int alloc1=0, n;   Arg args[100];   Pixmap icon;   const uchar icon_data[] = {   0x54, 0x01, 0xa8, 0x02, 0x50, 0x05, 0xa0, 0x0a,    0x50, 0x15, 0xa8, 0x2a, 0x14, 0x55, 0x0a, 0xaa,    0x05, 0x55, 0x82, 0x2a, 0x45, 0x15, 0xaa, 0x0a,   0x54, 0x05, 0xa8, 0x02, 0x54, 0x01, 0xaa, 0x00,   0x54, 0x01, 0xa8, 0x02, 0x50, 0x05, 0xa0, 0x0a,    0x50, 0x15, 0xa8, 0x2a, 0x14, 0x55, 0x0a, 0xaa,    0x05, 0x55, 0x82, 0x2a, 0x45, 0x15, 0xaa, 0x0a,   0x54, 0x05, 0xa8, 0x02, 0x54, 0x01, 0xaa, 0x00,   0x54, 0x01, 0xa8, 0x02, 0x50, 0x05, 0xa0, 0x0a,    0x50, 0x15, 0xa8, 0x2a, 0x14, 0x55, 0x0a, 0xaa,    0x05, 0x55, 0x82, 0x2a, 0x45, 0x15, 0xaa, 0x0a,   0x54, 0x05, 0xa8, 0x02, 0x54, 0x01, 0xaa, 0x00,   0x54, 0x01, 0xa8, 0x02, 0x50, 0x05, 0xa0, 0x0a,    0x50, 0x15, 0xa8, 0x2a, 0x14, 0x55, 0x0a, 0xaa,    0x05, 0x55, 0x82, 0x2a, 0x45, 0x15, 0xaa, 0x0a,   0x54, 0x05, 0xa8, 0x02, 0x54, 0x01, 0xaa, 0x00,   };   win = RootWindow(g.display,DefaultScreen(g.display));   ////  Make sure it is ok to create a 32x32 icon. XGetIconSizes returns 0   ////  if preferred icon sizes are not set. Should ideally iterate through    ////  size[k].width_inc and size[k].height_inc.   if(XGetIconSizes(g.display, win, &size, &count))   {   alloc1=1;       for(k=0;k<count;k++)         {    if(between(32, size[k].min_width, size[k].max_width) &&               between(32, size[k].min_height, size[k].max_height)){ ok=1; break;}       }   }else ok=1;   if(ok)   {    icon = XCreateBitmapFromData(g.display, win, (char*)icon_data, 32, 32);        n=0;        if(icon != (Pixmap)None)        {    XtSetArg(args[n], XmNiconic, False); n++;             XtSetArg(args[n], XmNiconName, "Xdata"); n++;             XtSetArg(args[n], XmNiconPixmap, icon); n++;        }else fprintf(stderr, "Can't create icon\n");        XtSetValues(g.main_widget, args, n);   }else fprintf(stderr, "Not allowed to create a 32x32 icon!\n");   if(alloc1) XFree(size);}//--------------------------------------------------------------------//// Make widgets                                                       //// Call after set_motif_colors and before setup_colors.               //// Widgets that exist for the life of the application.                ////--------------------------------------------------------------------//void makewidgets(Widget parent){   int k,n;  Arg args[100];  Widget main_widget, main_bulletin_board;  Widget frame, frame2, frame3, xlabel_widget, ylabel_widget;  Widget xlabel_frame, ylabel_frame;  n=0;  XtSetArg(args[n], XmNmarginHeight, 0); n++;  XtSetArg(args[n], XmNmarginWidth, 0); n++;  XtSetArg(args[n], XmNx, 2); n++;  XtSetArg(args[n], XmNy, 2); n++;  XtSetArg(args[n], XmNwidth, g.main_xsize-4); n++;  XtSetArg(args[n], XmNheight, g.main_ysize-4); n++;  main_widget = XmCreateMainWindow(parent, "Main", args, n);  XtAddEventHandler(g.main_widget, StructureNotifyMask, False,        (XtEH)configurecb, (XtP)NULL);  n=0;  XtSetArg(args[n], XmNmarginHeight, 0); n++;  XtSetArg(args[n], XmNmarginWidth, 0); n++;  XtSetArg(args[n], XmNx, 146); n++;  XtSetArg(args[n], XmNy, 2); n++;  XtSetArg(args[n], XmNwidth, g.main_xsize-4); n++;  XtSetArg(args[n], XmNheight, g.main_ysize-4); n++;  main_bulletin_board = XmCreateBulletinBoard(main_widget, "MainBulletinBoard", args, n);  n=0;  XtSetArg(args[n], XmNmarginHeight, 0); n++;  XtSetArg(args[n], XmNmarginWidth, 0); n++;  XtSetArg(args[n], XmNx, 16+146); n++;  XtSetArg(args[n], XmNy, 16+2); n++;  XtSetArg(args[n], XmNwidth, -16+g.main_xsize-154); n++;  XtSetArg(args[n], XmNheight, -16+g.main_ysize-4); n++;  g.draw_widget = XmCreateDrawingArea(main_bulletin_board, "DrawWidget", args, n);  ////  Widgets for x and y labels  n=0;  XtSetArg(args[n], XmNshadowType, XmSHADOW_ETCHED_IN); n++;  XtSetArg(args[n], XmNx, 2+146); n++;  XtSetArg(args[n], XmNy, 2); n++;  XtSetArg(args[n], XmNwidth, g.main_xsize-154); n++;  XtSetArg(args[n], XmNheight, 16); n++;  xlabel_frame = XmCreateFrame(main_bulletin_board, "XlabelFrame", args, n);  XtManageChild(xlabel_frame);  n=0;  XtSetArg(args[n], XmNshadowType, XmSHADOW_ETCHED_IN); n++;  XtSetArg(args[n], XmNx, 2+146); n++;  XtSetArg(args[n], XmNy, 2); n++;  XtSetArg(args[n], XmNwidth, 14); n++;  XtSetArg(args[n], XmNheight, g.main_ysize-4); n++;  ylabel_frame = XmCreateFrame(main_bulletin_board, "YlabelFrame", args, n);  XtManageChild(ylabel_frame);  n=0;  XtSetArg(args[n], XmNmarginHeight, 0); n++;  XtSetArg(args[n], XmNmarginWidth, 0); n++;  XtSetArg(args[n], XmNx, 2); n++;  XtSetArg(args[n], XmNy, 2); n++;  XtSetArg(args[n], XmNwidth, g.main_xsize-154); n++;  XtSetArg(args[n], XmNheight, 16); n++;  xlabel_widget = XmCreateDrawingArea(xlabel_frame, "XlabelWidget", args, n);  n=0;  XtSetArg(args[n], XmNmarginHeight, 0); n++;  XtSetArg(args[n], XmNmarginWidth, 0); n++;  XtSetArg(args[n], XmNx, 2); n++;  XtSetArg(args[n], XmNy, 2); n++;  XtSetArg(args[n], XmNwidth, 16); n++;  XtSetArg(args[n], XmNheight, g.main_ysize-4); n++;  ylabel_widget = XmCreateDrawingArea(ylabel_frame, "YlabelWidget", args, n);  ////////  XtManageChild(xlabel_frame);  XtManageChild(ylabel_frame);  XtManageChild(xlabel_widget);  XtManageChild(ylabel_widget);  XtManageChild(main_widget);  XtManageChild(g.draw_widget);  XtManageChild(main_bulletin_board);  XtRealizeWidget(parent);  XtAddCallback(g.draw_widget, XmNexposeCallback, (XtCBP)drawcb, 0);  XtAddCallback(g.draw_widget, XmNinputCallback, (XtCBP)drawinputcb, 0);  XtAddEventHandler(g.draw_widget, StructureNotifyMask, False,        (XtEH)configurecb, (XtP)NULL);  g.draw_window = XtWindow(g.draw_widget);  g.xlabel_window = XtWindow(xlabel_widget);  g.ylabel_window = XtWindow(ylabel_widget);  ////  Create a graphics context    g.main_window=XtWindow(main_widget);  XtVaGetValues(g.main_widget,        XmNbackground, &g.bcolor,       XmNforeground, &g.fcolor,  NULL);           g.hcolor = g.fcolor;  g.gc = XCreateGC(g.display, g.main_window, 0L,(XGCValues*)NULL);  // This would force font to be helvetica  //  XSetFont(g.display, g.gc, g.fontstruct->fid);  XSetForeground(g.display, g.gc, g.fcolor);  XSetBackground(g.display, g.gc, g.bcolor);  //--------------------frame for buttons-----------------------------//  n=0;  XtSetArg(args[n], XmNshadowType, XmSHADOW_ETCHED_IN); n++;  XtSetArg(args[n], XmNx, 2); n++;  XtSetArg(args[n], XmNy, 2); n++;  XtSetArg(args[n], XmNwidth, 144); n++;  XtSetArg(args[n], XmNheight, g.main_ysize-106); n++;  frame = XmCreateFrame(main_widget, "frame", args, n);  XtManageChild(frame);  //--------------info area (inside frame)---------------------------//  n=0;  XtSetArg(args[n], XmNtitle, "ButtonArea"); n++;  XtSetArg(args[n], XmNresizePolicy, XmRESIZE_NONE); n++;  XtSetArg(args[n], XmNx, 0); n++;  XtSetArg(args[n], XmNwidth, 144); n++;  XtSetArg(args[n], XmNheight, 8+20*(g.nbuttons/2)); n++;  g.button_drawing_area = XmCreateDrawingArea(frame, "button_drawing_area", args, n);  XtManageChild(g.button_drawing_area);  for(k=0;k<g.nbuttons;k++)       g.button[k]->widget = add_mainbutton(g.button[k]->label, mainbuttoncb);  //--------------add a fancy pixmap --------------------------------//  int y = 20*(g.nbuttons/2);  n=0;  XtSetArg(args[n], XmNshadowType, XmSHADOW_ETCHED_IN); n++;  XtSetArg(args[n], XmNx, 4); n++;  XtSetArg(args[n], XmNy, 10+y); n++;  XtSetArg(args[n], XmNwidth, 138); n++;  XtSetArg(args[n], XmNheight, 360); n++;  g.helix_frame = XmCreateFrame(main_widget, "frame", args, n);  XtManageChild(g.helix_frame);  XtAddCallback(g.button_drawing_area, XmNexposeCallback, (XtCBP)helixcb, 0);  //--------------------frame for 'match'----------------------------//  n=0;  XtSetArg(args[n], XmNshadowType, XmSHADOW_ETCHED_IN); n++;  XtSetArg(args[n], XmNx, 2); n++;  XtSetArg(args[n], XmNy, g.main_ysize-90); n++;  XtSetArg(args[n], XmNwidth, 144); n++;  XtSetArg(args[n], XmNheight, 50); n++;  frame3 = XmCreateFrame(main_widget, "frame3", args, n);  XtManageChild(frame3);  //--------------info area for matches------------------------------//  n=0;  XtSetArg(args[n], XmNtitle, "MatchArea"); n++;  XtSetArg(args[n], XmNresizePolicy, XmRESIZE_NONE); n++;  XtSetArg(args[n], XmNx, 4); n++;  XtSetArg(args[n], XmNy, 0); n++;  XtSetArg(args[n], XmNwidth, 138); n++;  XtSetArg(args[n], XmNheight, 50); n++;  g.match_area = XmCreateDrawingArea(frame3, "match_area", args, n);  XtManageChild(g.match_area);  //--------------------frame for label------------------------------//  n=0;  XtSetArg(args[n], XmNshadowType, XmSHADOW_ETCHED_IN); n++;  XtSetArg(args[n], XmNx, 2); n++;  XtSetArg(args[n], XmNy, g.main_ysize-40); n++;  XtSetArg(args[n], XmNwidth, 144); n++;  XtSetArg(args[n], XmNheight, 36); n++;  frame2 = XmCreateFrame(main_widget, "frame2", args, n);  XtManageChild(frame2);  //--------------add a label----------------------------------------//  Widget label;  n=0;  label = XmCreateLabel(frame2, "DNA ver. 1.1\n(C) T.Nelson 2000", args, n);  XtManageChild(label);   }//--------------------------------------------------------------------////  helixcb                                                           ////--------------------------------------------------------------------//void helixcb(Widget widget, XtP client_data, XtP *call_data){  static int hit = 0;  static Pixmap helix, pmap;  static uint width, height;  XColor exactcolor, hdwrcolor;  // Can't make xcolors static  Window win;  win = XtWindow(g.helix_frame);  int xhot, yhot;  if(!hit)

⌨️ 快捷键说明

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