179 lines
3.9 KiB
C
179 lines
3.9 KiB
C
|
#include <stdio.h>
|
||
|
#include <xview/defaults.h>
|
||
|
#include <xview/xview.h>
|
||
|
#include <xview/panel.h>
|
||
|
#include <xview/window.h>
|
||
|
#include <xview/icon.h>
|
||
|
#include <pixrect/pixrect.h>
|
||
|
#include <malloc.h>
|
||
|
#include "menudefs.h"
|
||
|
#include "defines.h"
|
||
|
#include "globals.h"
|
||
|
|
||
|
/*
|
||
|
Main()
|
||
|
|
||
|
Copyright (c) 1989, University of Illinois board of trustees. All rights
|
||
|
reserved. Written by Steven Smith at the Center for Prokaryote Genome
|
||
|
Analysis. Design and implementation guidance by Dr. Gary Olsen and Dr.
|
||
|
Carl Woese.
|
||
|
|
||
|
|
||
|
Copyright (c) 1990,1991,1992 Steven Smith at the Harvard Genome Laboratory.
|
||
|
All rights reserved.
|
||
|
|
||
|
*/
|
||
|
|
||
|
Gmenu menu[100];
|
||
|
int num_menus = 0,repeat_cnt = 0;
|
||
|
Frame frame,pframe,infoframe;
|
||
|
Panel popup,infopanel;
|
||
|
Panel_item left_foot,right_foot;
|
||
|
Canvas EditCan,EditNameCan;
|
||
|
int DisplayType;
|
||
|
GmenuItem *current_item;
|
||
|
NA_Alignment *DataSet = NULL;
|
||
|
NA_Alignment *Clipboard = NULL;
|
||
|
char **TextClip;
|
||
|
int TextClipSize = 0,TextClipLength = 0;
|
||
|
|
||
|
/*
|
||
|
* Icon structure (pixmap dependent)
|
||
|
*/
|
||
|
|
||
|
|
||
|
static short GDEicon[258]={
|
||
|
#include "icon_gde"
|
||
|
};
|
||
|
|
||
|
mpr_static(iconpr,64,64,1,GDEicon);
|
||
|
|
||
|
main(argc,argv)
|
||
|
int argc;
|
||
|
char **argv;
|
||
|
{
|
||
|
|
||
|
Icon tool_icon; /* obvious */
|
||
|
extern char FileName[],current_dir[];
|
||
|
|
||
|
int type = GENBANK; /* default file type */
|
||
|
DataSet = NULL;
|
||
|
Clipboard = (NA_Alignment*)Calloc(1,sizeof(NA_Alignment));
|
||
|
DisplayType = NASEQ_ALIGN; /* default data type */
|
||
|
Clipboard->maxnumelements = 5;
|
||
|
Clipboard->element =(NA_Sequence*)Calloc(Clipboard->maxnumelements,
|
||
|
sizeof(NA_Sequence));
|
||
|
|
||
|
/*
|
||
|
* Connect to server, and set up initial XView data types
|
||
|
* that are common to ALL display types
|
||
|
*/
|
||
|
xv_init(XV_INIT_ARGC_PTR_ARGV, &argc,argv,0);
|
||
|
|
||
|
|
||
|
/*
|
||
|
* Main frame (primary window);
|
||
|
*/
|
||
|
|
||
|
frame = xv_create((int) NULL,FRAME,
|
||
|
FRAME_NO_CONFIRM,FALSE,
|
||
|
FRAME_LABEL, "Genetic Data Environment 2.2",
|
||
|
FRAME_INHERIT_COLORS,TRUE,
|
||
|
XV_WIDTH,700,
|
||
|
XV_HEIGHT,500,
|
||
|
FRAME_SHOW_FOOTER,TRUE,
|
||
|
0);
|
||
|
|
||
|
/*
|
||
|
* Popup frame (dialog box window), and default settings in
|
||
|
* the dialog box. These are changed to fit each individual
|
||
|
* command's needs in EventHandler().
|
||
|
*/
|
||
|
infoframe = xv_create(frame,FRAME_CMD,
|
||
|
FRAME_LABEL,"Messages",
|
||
|
WIN_DESIRED_HEIGHT,100,
|
||
|
WIN_DESIRED_WIDTH,300,
|
||
|
FRAME_SHOW_RESIZE_CORNER,TRUE,
|
||
|
FRAME_INHERIT_COLORS,TRUE,
|
||
|
FRAME_CLOSED,FALSE,
|
||
|
WIN_SHOW,FALSE,
|
||
|
0);
|
||
|
|
||
|
pframe = xv_create(frame,FRAME_CMD,
|
||
|
FRAME_CMD_PUSHPIN_IN,TRUE,
|
||
|
FRAME_DONE_PROC,FrameDone,
|
||
|
XV_HEIGHT,100,
|
||
|
XV_WIDTH,300,
|
||
|
FRAME_SHOW_RESIZE_CORNER,FALSE,
|
||
|
FRAME_CLOSED,FALSE,
|
||
|
XV_X,300,
|
||
|
XV_Y,150,
|
||
|
WIN_SHOW,FALSE,
|
||
|
0);
|
||
|
|
||
|
infopanel = xv_get(infoframe,FRAME_CMD_PANEL);
|
||
|
xv_set(infopanel, PANEL_LAYOUT,PANEL_VERTICAL,
|
||
|
XV_WIDTH,300,
|
||
|
XV_HEIGHT,50,
|
||
|
0);
|
||
|
|
||
|
left_foot = xv_create(infopanel,PANEL_MESSAGE,0);
|
||
|
right_foot = xv_create(infopanel,PANEL_MESSAGE,0);
|
||
|
|
||
|
window_fit(infoframe);
|
||
|
|
||
|
/*
|
||
|
popup = xv_create(pframe,PANEL,
|
||
|
PANEL_LAYOUT,PANEL_HORIZONTAL,
|
||
|
0);
|
||
|
*/
|
||
|
popup = xv_get(pframe,FRAME_CMD_PANEL);
|
||
|
|
||
|
xv_create(popup,PANEL_BUTTON,
|
||
|
PANEL_LABEL_STRING,"HELP",
|
||
|
PANEL_NOTIFY_PROC,HELP,
|
||
|
0);
|
||
|
|
||
|
xv_create(popup,PANEL_BUTTON,
|
||
|
PANEL_LABEL_STRING,"OK",
|
||
|
PANEL_NOTIFY_PROC,DO,
|
||
|
0);
|
||
|
|
||
|
xv_create(popup,PANEL_BUTTON,
|
||
|
PANEL_LABEL_STRING,"Cancel",
|
||
|
PANEL_NOTIFY_PROC,DONT,
|
||
|
0);
|
||
|
|
||
|
/*
|
||
|
* Keep original directory where program was started
|
||
|
*/
|
||
|
(void)getwd(current_dir);
|
||
|
|
||
|
ParseMenu();
|
||
|
GenMenu(type);
|
||
|
if(argc>1)
|
||
|
LoadData(argv[1]);
|
||
|
|
||
|
/*
|
||
|
* Set up the basics of the displays, and off to the main loop.
|
||
|
*/
|
||
|
BasicDisplay(DataSet);
|
||
|
|
||
|
if(DataSet != NULL)
|
||
|
((NA_Alignment*)DataSet)->na_ddata = (char*)SetNADData
|
||
|
((NA_Alignment*)DataSet,EditCan,EditNameCan);
|
||
|
|
||
|
tool_icon = xv_create((int) NULL,ICON,
|
||
|
ICON_IMAGE,&iconpr,
|
||
|
ICON_LABEL,strlen(FileName)>0?FileName:"GDE",
|
||
|
0);
|
||
|
|
||
|
xv_set(frame,
|
||
|
FRAME_ICON,tool_icon,
|
||
|
0);
|
||
|
|
||
|
window_main_loop(frame);
|
||
|
exit(0);
|
||
|
}
|
||
|
|