📄 dna.h
字号:
/* RESET = unmanage a dialog */ clickboxinfo *c[DCOUNT]; /* clickboxinfo struct needed in callbacks */ /* The following are needed in case dialog */ /* stays on the screen */ Widget *widget; /* Array of widgets to delete */ Widget form; /* Form widget to delete */ int widgetcount; /* no. of widgets on form */ clickboxinfo *clickboxdata; /* Array of clickboxinfo structs */ /* Function to call when button is clicked */ void (*f1)(dialoginfo *a, int radio, int box, int boxbutton); XtCBP radiocb[10]; /* Callback for RADIOPUSHBUTTONs */ /* Labels for RADIOPUSHBUTTONs */ char radiopushbuttonlabel[10][100]; void *radiopushbuttonptr[10];/* Data to send to RADIOPUSHBUTTONs */ int list_editrow[DCOUNT]; /* Minimum list item that can be edited */ int list_editcol[DCOUNT]; /* Minimum column in list item one can edit*/ /* Max column in list item */ int list_maxstringsize[DCOUNT];} Dialog;typedef struct pushbuttoncbstruct{ int button; Widget widget; char string[100]; char command[100];};typedef struct ButtonStruct{ int button; int state; Widget widget; char *label; char *activate_cmd; char *deactivate_cmd;} buttonStruct;typedef struct DOCUMENT{ int row, col; // Cursor screen position int pos; // Cursor position from start of text int text_direction; int spacing; // Spacing in pixels between lines - is large // because sequences are interleaved. int touched; int charwidth; int charheight; int topline; int marked; int markstart; int markend; int linestodisplay; int n; // No. of bases (i.e. text length) int on; // Original no. of bases (for undo) int offset; // Bases offset for alignment int ncomments; // No. of comments found in file int type; // PROTEIN or DNA int otype; // Original type, PROTEIN or DNA int frame; // Current reading frame (0-2) char *text; // Sequence in display format (DNA or Protein) char *dtext; // Current DNA form of sequence // (MUST be kept in sync with 'text'). char *otext; // original DNA or Protein text for undo char **comment; // Comments found in file char *filename; XFontStruct *fontstruct;} Document;typedef struct Globals{ int nbuttons; // No. of user-defined buttons at left ButtonStruct **button; // User-defined buttons at left Display *display; // Connection to X display GC gc; // The graphics context for main uint mask; Widget main_widget; Widget dialogdone; Widget menu; Widget menubar; Widget helix_frame; Widget draw_widget; Widget drawing_area; Widget button_drawing_area; Widget match_area; Window root_window; Window main_window; Window draw_window; Window xlabel_window; Window ylabel_window; Visual *visual; Colormap colormap; XFontStruct *fontstruct; // Default font XmFontList fontlist; // Font list for Motif 1.2 and below int swap_temp; double fswap_temp; // Temporary double for swap macro double dswap_temp; // Temporary double for swap macro double rr, cc; // Column and row passed to expression evaluator char *appname; // Application's name char homedir[FILENAMELENGTH]; // $HOME/.xdata directory for xdata.ini char currentdir[FILENAMELENGTH]; // Current directory char filename[FILENAMELENGTH]; // Filename char *font; // Name of font char *macrotext; int printer_device; char printer_command[FILENAMELENGTH]; char printer_name[FILENAMELENGTH]; char printer_file[FILENAMELENGTH]; char startdir[FILENAMELENGTH]; // Start-up directory char version[100]; char nomemory[22]; int xres, yres; // Size of root window int main_xsize; // Size of entire window int main_ysize; int main_xpos; int main_ypos; int xsize; // Size of drawing window for sequences int ysize; int mouse_button; int bitsperpixel; uint udepth; int ximage_byte_order; int sparse_packing; // 1 = X windows sparse pseudo 24bpp mode int sparse; // 1 = force 32 bpp instead of 24 bpp int nosparse; // 1 = force 24 bpp instead of 32 bpp int bcolor; int hcolor; int cols; int fcolor; int getout; // Flag for 'cancel' int key_ascii; int key_alt; int key_ctrl; int key_shift; int rows; int screen; int signif; // Significant digits to display int state; // Program button-pressing state int want_messages; int xlib_cursor; int want_colormaps; int main_fcolor, main_bcolor; int graph_active; // 1=files still open in graph fifo int autoupdate; // 1=automatically update graph when spreadsheet refreshed int touched; // 1=data has been changed int editing; // 0=correlation plot 1=editor int off[64]; Document *doc; uchar **stringbufr; // Image buffer for strings uchar *stringbufr_1d; // 1d alias for stringbufr XImage *stringbufr_ximage; // XImage form of stringbufr for Xlib Pixmap spixmap; uchar **image; // Image buffer for plotting sequence data uchar *image_1d; // 1d alias for image XImage *image_ximage; // XImage form of image for Xlib int sequence_mode; int editmode; // 0=protein 1=dna int noofsequences; // No. of sequences being edited int cs; // Current sequence no. int alignsize; // Sequence size to maximize matches for. // (0 = use entire sequence) int save_format; // SCREEN or HIGHLIGHT int matrix_set1; int matrix_set2;}; //--------------Function Prototypes------------------//Widget addlabel(Widget parent, char *string, int position, double x1, double y1, double x2, double y2);Widget add_mainbutton(char *name, void *cb);Widget openwindow(listinfo *l, Widget *listwidget, Widget *w, int *count);XImage *createximage(int xsize, int ysize, int bpp, uchar *buf_1d);Pixmap createpixmap(int x, int y, Window win);uint **make_2d_alias(uint *b, int x, int y);uchar **make_2d_alias(uchar *b, int x, int y);double align(void);double alignment(char *s1, char *s2, int offset);double **make_2d_alias(double *b, int x, int y);double clickbox(char* title, double fstartval, double fminval, double fmaxval, void f(double answer), int helptopic);double molecular_weight(int cs);double peptide_frequency(int cs);char *basefilename(char* pathname);char *gcvt(double val, int signif, char *buf);char *getfilename(char *oldtitle);char **getfilenames(int *count);char *itoa(int value, char *str, int radix);char *ltoa(long int value, char *str, int radix);char *strupr(char *s);char *strlwr(char *s);uint pixelat(uchar* p, int bpp);int between(int a,int b,int c);int between(double a, double b, double c);int bits_per_pixel(void);int cant_overwrite_file(char* filename);int clickbox(char* title, int startval, int minval, int maxval, void f(int answer), int helptopic);int clickbox(char* title, int startval, int minval, int maxval, void f1(int answer), void f2(double answer), int decimalpoints, int type, int helptopic);int dna2protein(char *code);int drawmarkedline(int x, int y, char *s, int ms, int me, int w, int cw);int execute(char *command, int noofargs, char **arg);int filesize(char *filename);int handle_keypress(KeySym keysym, char *keystring);int **make_2d_alias(int *b, int x, int y);int matchable_base(int c, int mode);int message(char *heading);int message(char *heading, int mode);int message(char *heading, char *returnstring, int mode, int maxstringsize);int multiclickbox(char* title, int noofboxes, clickboxinfo* a, void f(int values[10]), int helptopic);int redrawscreen(int xx1, int yy1, int xx2, int yy2);int save_ok(int ino);int stringtohex(char* string);int totalspacing(void);int valid_base(int c, int mode);void abouttheprogram(void);void additemtolist(Widget w, Widget form, char *s, int showpos);void addstandardbuttons(Widget form, Widget buttons[3], int *data); void addOkCancelHelpButtons(Widget form, Widget button[3], char *s1, int x1, char *s2, int x2, char *s3, int x3, int *data);void analyze(void);void close(void);void closewindow(Widget form, Widget *widgetlist, int wc);void comments(void);void configure(void);void compare(void);void compare(char *s1, char *s2, int n1, int n2, uchar **image);void copyimage(int x1, int y1, int x2, int y2, int xoff, int yoff, int mode, XImage *ximage, Window win);void count_bases(int cs, int *count, int &n);void create_main_icon(void);void down(void);void dialogbox(dialoginfo &a);void edit(void);void error_message(char *s, int error);void event_loop(Widget w);void get_next_word(char *buffer, char *word, int maxlen, int &start);void help(int helptopic);void initialize_data(void);void initialize_globals(void);void init_editor(int k);void init_xlib(void);void left(void);void list(listinfo *l); void makewidgets(Widget parent);void move_cursor(int k, int lineno, int pos);void nextframe(void);void null(int a);void null(int a[10]);void null(double a);void null(void);void null(dialoginfo *a, int b, int c, int d);void parsecommand(char *cmd, char **arg, int &noofargs, int maxlen, int maxargs);void path(char *pathname, char *path);void prevframe(void);void print(char *string,int x, int y, uint fcol, uint bcol, Window win, int wantbkg, int vertical);void printcheck(dialoginfo *a, int radio, int box, int boxbutton);void printmatches(int matches, int mismatches);void printsequence(void);void printstatus(int state);void push_main_button(int k);void putpixelbytes(uchar *address, int color, int depth);void readsequence(void);void readsettings(void);void remove_trailing_junk(char *s);void reset_user_buttons(void);void resize_draw_widget(int xsize, int ysize);void resize_main_widget(int xsize, int ysize);void reverse(void);void right(void);void save(int needfilename=1);void save_screen_image(FILE *fp);void save_screen_text(FILE *fp);void savesettings(void);void search(char *searchstring);void select(void);void set_offset(int cs);void set_sequence_mode(int mode);void statistics(void);void toggle_sequence_mode(void);void text_size(char *s, int &xsize, int &ysize, int &ascent, int &descent);void translate(int wantcheck);void undo(void);void unpush_main_button(int k);void unpush_null_buttons(void);void up(void);void xminitializemisc(Widget parent);//----------------------Callbacks----------------------//void armboxcb(Widget w, XtP client_data, XmACB *call_data);void cancelcb(Widget w, XtPointer client_data, XmACB *call_data);void cancelmsgcb(Widget w, XtPointer client_data, XmACB *call_data);void clickboxcb(Widget w, XtPointer client_data, XmACB *call_data);void configurecb(Widget w, XtP client_data, XEvent *event);void dialogclickboxcb(Widget w, XtP client_data, XmACB *call_data);void dialogcursorcb(Widget w, XtP client_data, XmACB *call_data);void dialogdoubleclickboxcb(Widget w, XtPointer client_data, XmACB *call_data);void dialogfilenamecb(Widget w, XtP client_data, XmACB *call_data);void dialoglistcb(Widget w, XtP client_data, XmACB *call_data);void dialogmulticlickboxcb(Widget w, XtPointer client_data, XmACB *call_data);void dialogstringcb(Widget w, XtP client_data, XmACB *call_data);void drawcb(Widget widget, XtP client_data, XtP *call_data);void drawinputcb(Widget widget, XtP client_data, XtP *call_data);void entercb(Widget w, XtPointer client_data, XEvent *event);void disarmcb(Widget w, XtPointer client_data, XmACB *call_data);void executecb(Widget w, XtPointer client_data, XmACB *call_data);void filenamecb(Widget widget, XtPointer client_data, XmACB *call_data);void focuscb(Widget w, XtP client_data, XEvent *event);void fscancelcb(Widget w, XtPointer client_data, XmFSBCB *call_data);void fscdcb(Widget w, XtPointer client_data, XmFSBCB *call_data);void fsokcb(Widget w, XtPointer client_data, XmFSBCB *call_data);void fsseqnocb(Widget w, XtPointer client_data, XmFSBCB *call_data);void helixcb(Widget widget, XtP client_data, XtP *call_data);void helpcb(Widget w, XtPointer client_data, XmACB *call_data);void listcb(Widget w, XtPointer client_data, XmACB *call_data);void mainbuttoncb(Widget w, XtPointer client_data, XmACB *call_data);void maincancelcb(Widget w, XtPointer client_data, XmACB *call_data);void nomsgcb(Widget w, XtPointer client_data, XmACB *call_data);void okcb(Widget w, XtPointer client_data, XmACB *call_data);void okmsgcb(Widget w, XtPointer client_data, XmACB *call_data);void promptmsgcb(Widget w, XtPointer client_data, XmACB *call_data);void quitcb(Widget w, XtPointer client_data, XmACB *call_data);void raisecb(Widget w, XtP client_data, XEvent *event);void savecb(Widget w, XtPointer client_data, XmACB *call_data);void slidercb(Widget w, XtPointer client_data, XmACB *call_data);void timer_callback(XtPointer client_data, XtIntervalId *timer_id);void toggleboxcb(Widget w, XtP client_data, XmACB *call_data);void togglecb(Widget w, XtP client_data, XmACB *call_data);void warningmessagecb(String aaa);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -