/*
- *
+ *
* This source code is part of
- *
+ *
* G R O M A C S
- *
+ *
* GROningen MAchine for Chemical Simulations
- *
+ *
* VERSION 3.2.0
* Written by David van der Spoel, Erik Lindahl, Berk Hess, and others.
* Copyright (c) 1991-2000, University of Groningen, The Netherlands.
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
- *
+ *
* If you want to redistribute modifications, please consider that
* scientific software is very special. Version control is crucial -
* bugs must be traceable. We will be happy to consider code for
* inclusion in the official distribution, but derived work must not
* be called official GROMACS. Details are found in the README & COPYING
* files - if they are missing, get the official version at www.gromacs.org.
- *
+ *
* To help us fund GROMACS development, we humbly ask that you cite
* the papers on the package - you can find them in the top README file.
- *
+ *
* For more info, check our website at http://www.gromacs.org
- *
+ *
* And Hey:
* Gyas ROwers Mature At Cryogenic Speed
*/
#include "tpxio.h"
/* Forward declarations: I Don't want all that init shit here */
-void init_gmx(t_x11 *x11,char *program,int nfile,t_filenm fnm[],
+void init_gmx(t_x11 *x11, char *program, int nfile, t_filenm fnm[],
const output_env_t oenv);
-static void dump_xw(char *dispname,Window w,char *fn)
+static void dump_xw(char *dispname, Window w, char *fn)
{
- char comm[256];
- int rc;
+ char comm[256];
+ int rc;
- sprintf(comm,"xwd -id %d -display %s > %s",(int)w,dispname,fn);
+ sprintf(comm, "xwd -id %d -display %s > %s", (int)w, dispname, fn);
#ifdef GMX_NO_SYSTEM
- printf("Warning-- No calls to system(3) supported on this platform.");
- printf("Warning-- Skipping execution of 'system(\"%s\")'.", buf);
+ printf("Warning-- No calls to system(3) supported on this platform.");
+ printf("Warning-- Skipping execution of 'system(\"%s\")'.", buf);
#else
- rc=system(comm);
+ rc = system(comm);
#endif
}
static void dump_it(t_manager *man)
{
- t_psdata ps;
-
- ps=ps_open("ngmx.ps",0,0,man->molw->wd.width,man->molw->wd.height);
- ps_draw_mol(ps,man);
- ps_close(ps);
+ t_psdata ps;
+
+ ps = ps_open("ngmx.ps", 0, 0, man->molw->wd.width, man->molw->wd.height);
+ ps_draw_mol(ps, man);
+ ps_close(ps);
}
-static void done_gmx(t_x11 *x11,t_gmx *gmx)
+static void done_gmx(t_x11 *x11, t_gmx *gmx)
{
- done_logo(x11,gmx->logo);
- done_pd(x11,gmx->pd);
- done_man(x11,gmx->man);
- done_dlgs(gmx);
- x11->UnRegisterCallback(x11,gmx->wd->self);
+ done_logo(x11, gmx->logo);
+ done_pd(x11, gmx->pd);
+ done_man(x11, gmx->man);
+ done_dlgs(gmx);
+ x11->UnRegisterCallback(x11, gmx->wd->self);
}
-static void move_gmx(t_x11 *x11,t_gmx *gmx,int width,int height,
- gmx_bool bSizePD)
+static void move_gmx(t_x11 *x11, t_gmx *gmx, int width, int height,
+ gmx_bool bSizePD)
{
- int y0,wl,hl;
+ int y0, wl, hl;
#ifdef DEBUG
- fprintf(stderr,"Move gmx %dx%d\n",width,height);
+ fprintf(stderr, "Move gmx %dx%d\n", width, height);
#endif
- y0=XTextHeight(x11->font);
- /* Resize PD-Menu */
- if (bSizePD)
- XResizeWindow(x11->disp,gmx->pd->wd.self,width,y0);
-
- XMoveWindow(x11->disp,gmx->man->wd.self,0,y0+1);
- XResizeWindow(x11->disp,gmx->man->wd.self,width,height-y0-1);
-
- wl=gmx->logo->wd.width;
- hl=gmx->logo->wd.height;
- XMoveWindow(x11->disp,gmx->logo->wd.self,(width-wl)/2,(height-y0-hl)/2);
+ y0 = XTextHeight(x11->font);
+ /* Resize PD-Menu */
+ if (bSizePD)
+ {
+ XResizeWindow(x11->disp, gmx->pd->wd.self, width, y0);
+ }
+
+ XMoveWindow(x11->disp, gmx->man->wd.self, 0, y0+1);
+ XResizeWindow(x11->disp, gmx->man->wd.self, width, height-y0-1);
+
+ wl = gmx->logo->wd.width;
+ hl = gmx->logo->wd.height;
+ XMoveWindow(x11->disp, gmx->logo->wd.self, (width-wl)/2, (height-y0-hl)/2);
}
-static gmx_bool HandleClient(t_x11 *x11,int ID,t_gmx *gmx)
+static gmx_bool HandleClient(t_x11 *x11, int ID, t_gmx *gmx)
{
- t_pulldown *pd;
-
- pd=gmx->pd;
-
- switch(ID) {
- /* File Menu */
- case IDDUMPWIN:
- write_gmx(x11,gmx,IDDODUMP);
- break;
- case IDDODUMP:
- if (gmx->man->bAnimate)
- hide_but(x11,gmx->man->vbox);
- dump_it(gmx->man);
- if (gmx->man->bAnimate)
- show_but(x11,gmx->man->vbox);
- break;
- case IDCLOSE:
- case IDIMPORT:
- case IDEXPORT:
- ShowDlg(gmx->dlgs[edExport]);
- break;
- case IDDOEXPORT:
- write_sto_conf(gmx->confout,*gmx->man->top.name,
- &(gmx->man->top.atoms),
- gmx->man->x,NULL,gmx->man->molw->ePBC,gmx->man->box);
- break;
- case IDQUIT:
- show_mb(gmx,emQuit);
- break;
- case IDTERM:
- done_gmx(x11,gmx);
- return TRUE;
-
- /* Edit Menu */
- case IDEDITTOP:
- edit_file("topol.gmx");
- break;
- case IDEDITCOORDS:
- edit_file("confin.gmx");
- break;
- case IDEDITPARAMS:
- edit_file("mdparin.gmx");
- break;
-
- /* Display Menu */
- case IDFILTER:
- if (gmx->filter)
- ShowDlg(gmx->dlgs[edFilter]);
- break;
- case IDDOFILTER:
- do_filter(x11,gmx->man,gmx->filter);
- break;
- case IDANIMATE:
- check_pd_item(pd,IDANIMATE,toggle_animate(x11,gmx->man));
- break;
- case IDLABELSOFF:
- no_labels(x11,gmx->man);
- break;
- case IDRESETVIEW:
- reset_view(gmx->man->view);
- ExposeWin(x11->disp,gmx->man->molw->wd.self);
- break;
- case IDPHOTO:
- show_mb(gmx,emNotImplemented);
- break;
- case IDBONDOPTS:
- ShowDlg(gmx->dlgs[edBonds]);
- break;
- case IDTHIN:
- set_bond_type(x11,gmx->man->molw,eBThin);
- break;
- case IDFAT:
- set_bond_type(x11,gmx->man->molw,eBFat);
- break;
- case IDVERYFAT:
- set_bond_type(x11,gmx->man->molw,eBVeryFat);
- break;
- case IDBALLS:
- set_bond_type(x11,gmx->man->molw,eBSpheres);
- break;
- case IDNOBOX:
- set_box_type(x11,gmx->man->molw,esbNone);
- break;
- case IDRECTBOX:
- set_box_type(x11,gmx->man->molw,esbRect);
- break;
- case IDTRIBOX:
- set_box_type(x11,gmx->man->molw,esbTri);
- break;
- case IDTOBOX:
- set_box_type(x11,gmx->man->molw,esbTrunc);
- break;
-
- /* Analysis Menu */
- case IDBOND:
- case IDANGLE:
- case IDDIH:
- case IDRMS:
- case IDRDF:
- case IDENERGIES:
- case IDCORR:
- show_mb(gmx,emNotImplemented);
- break;
-
- /* Help Menu */
- case IDHELP:
- show_mb(gmx,emHelp);
- break;
- case IDABOUT:
- show_logo(x11,gmx->logo);
- break;
-
- default:
- break;
- }
- return FALSE;
+ t_pulldown *pd;
+
+ pd = gmx->pd;
+
+ switch (ID)
+ {
+ /* File Menu */
+ case IDDUMPWIN:
+ write_gmx(x11, gmx, IDDODUMP);
+ break;
+ case IDDODUMP:
+ if (gmx->man->bAnimate)
+ {
+ hide_but(x11, gmx->man->vbox);
+ }
+ dump_it(gmx->man);
+ if (gmx->man->bAnimate)
+ {
+ show_but(x11, gmx->man->vbox);
+ }
+ break;
+ case IDCLOSE:
+ case IDIMPORT:
+ case IDEXPORT:
+ ShowDlg(gmx->dlgs[edExport]);
+ break;
+ case IDDOEXPORT:
+ write_sto_conf(gmx->confout, *gmx->man->top.name,
+ &(gmx->man->top.atoms),
+ gmx->man->x, NULL, gmx->man->molw->ePBC, gmx->man->box);
+ break;
+ case IDQUIT:
+ show_mb(gmx, emQuit);
+ break;
+ case IDTERM:
+ done_gmx(x11, gmx);
+ return TRUE;
+
+ /* Edit Menu */
+ case IDEDITTOP:
+ edit_file("topol.gmx");
+ break;
+ case IDEDITCOORDS:
+ edit_file("confin.gmx");
+ break;
+ case IDEDITPARAMS:
+ edit_file("mdparin.gmx");
+ break;
+
+ /* Display Menu */
+ case IDFILTER:
+ if (gmx->filter)
+ {
+ ShowDlg(gmx->dlgs[edFilter]);
+ }
+ break;
+ case IDDOFILTER:
+ do_filter(x11, gmx->man, gmx->filter);
+ break;
+ case IDANIMATE:
+ check_pd_item(pd, IDANIMATE, toggle_animate(x11, gmx->man));
+ break;
+ case IDLABELSOFF:
+ no_labels(x11, gmx->man);
+ break;
+ case IDRESETVIEW:
+ reset_view(gmx->man->view);
+ ExposeWin(x11->disp, gmx->man->molw->wd.self);
+ break;
+ case IDPHOTO:
+ show_mb(gmx, emNotImplemented);
+ break;
+ case IDBONDOPTS:
+ ShowDlg(gmx->dlgs[edBonds]);
+ break;
+ case IDTHIN:
+ set_bond_type(x11, gmx->man->molw, eBThin);
+ break;
+ case IDFAT:
+ set_bond_type(x11, gmx->man->molw, eBFat);
+ break;
+ case IDVERYFAT:
+ set_bond_type(x11, gmx->man->molw, eBVeryFat);
+ break;
+ case IDBALLS:
+ set_bond_type(x11, gmx->man->molw, eBSpheres);
+ break;
+ case IDNOBOX:
+ set_box_type(x11, gmx->man->molw, esbNone);
+ break;
+ case IDRECTBOX:
+ set_box_type(x11, gmx->man->molw, esbRect);
+ break;
+ case IDTRIBOX:
+ set_box_type(x11, gmx->man->molw, esbTri);
+ break;
+ case IDTOBOX:
+ set_box_type(x11, gmx->man->molw, esbTrunc);
+ break;
+
+ /* Analysis Menu */
+ case IDBOND:
+ case IDANGLE:
+ case IDDIH:
+ case IDRMS:
+ case IDRDF:
+ case IDENERGIES:
+ case IDCORR:
+ show_mb(gmx, emNotImplemented);
+ break;
+
+ /* Help Menu */
+ case IDHELP:
+ show_mb(gmx, emHelp);
+ break;
+ case IDABOUT:
+ show_logo(x11, gmx->logo);
+ break;
+
+ default:
+ break;
+ }
+ return FALSE;
}
-static gmx_bool MainCallBack(t_x11 *x11,XEvent *event, Window w, void *data)
+static gmx_bool MainCallBack(t_x11 *x11, XEvent *event, Window w, void *data)
{
- t_gmx *gmx;
- int nsel,width,height;
- gmx_bool result;
-
- result = FALSE;
- gmx=(t_gmx *)data;
- switch(event->type) {
- case ButtonRelease:
- hide_pd(x11,gmx->pd);
- break;
- case ConfigureNotify:
- width=event->xconfigure.width;
- height=event->xconfigure.height;
- if ((width!=gmx->wd->width) || (height!=gmx->wd->height))
- move_gmx(x11,gmx,width,height,TRUE);
- break;
- case ClientMessage:
- hide_pd(x11,gmx->pd);
- nsel=event->xclient.data.l[0];
- result = HandleClient(x11,nsel,gmx);
- break;
- default:
- break;
- }
- return result;
+ t_gmx *gmx;
+ int nsel, width, height;
+ gmx_bool result;
+
+ result = FALSE;
+ gmx = (t_gmx *)data;
+ switch (event->type)
+ {
+ case ButtonRelease:
+ hide_pd(x11, gmx->pd);
+ break;
+ case ConfigureNotify:
+ width = event->xconfigure.width;
+ height = event->xconfigure.height;
+ if ((width != gmx->wd->width) || (height != gmx->wd->height))
+ {
+ move_gmx(x11, gmx, width, height, TRUE);
+ }
+ break;
+ case ClientMessage:
+ hide_pd(x11, gmx->pd);
+ nsel = event->xclient.data.l[0];
+ result = HandleClient(x11, nsel, gmx);
+ break;
+ default:
+ break;
+ }
+ return result;
}
int main(int argc, char *argv[])
{
- const char *desc[] = {
- "[TT]ngmx[tt] is the GROMACS trajectory viewer. This program reads a",
- "trajectory file, a run input file and an index file and plots a",
- "3D structure of your molecule on your standard X Window",
- "screen. No need for a high end graphics workstation, it even",
- "works on Monochrome screens.[PAR]",
- "The following features have been implemented:",
- "3D view, rotation, translation and scaling of your molecule(s),",
- "labels on atoms, animation of trajectories,",
- "hardcopy in PostScript format, user defined atom-filters",
- "runs on MIT-X (real X), open windows and motif,",
- "user friendly menus, option to remove periodicity, option to",
- "show computational box.[PAR]",
- "Some of the more common X command line options can be used: ",
- "[TT]-bg[tt], [TT]-fg[tt] change colors, [TT]-font fontname[tt] changes the font."
- };
- const char *bugs[] = {
- "Balls option does not work",
- "Some times dumps core without a good reason"
- };
-
- output_env_t oenv;
- t_x11 *x11;
- t_filenm fnm[] = {
- { efTRX, "-f", NULL, ffREAD },
- { efTPX, NULL, NULL, ffREAD },
- { efNDX, NULL, NULL, ffOPTRD }
- };
+ const char *desc[] = {
+ "[TT]ngmx[tt] is the GROMACS trajectory viewer. This program reads a",
+ "trajectory file, a run input file and an index file and plots a",
+ "3D structure of your molecule on your standard X Window",
+ "screen. No need for a high end graphics workstation, it even",
+ "works on Monochrome screens.[PAR]",
+ "The following features have been implemented:",
+ "3D view, rotation, translation and scaling of your molecule(s),",
+ "labels on atoms, animation of trajectories,",
+ "hardcopy in PostScript format, user defined atom-filters",
+ "runs on MIT-X (real X), open windows and motif,",
+ "user friendly menus, option to remove periodicity, option to",
+ "show computational box.[PAR]",
+ "Some of the more common X command line options can be used: ",
+ "[TT]-bg[tt], [TT]-fg[tt] change colors, [TT]-font fontname[tt] changes the font."
+ };
+ const char *bugs[] = {
+ "Balls option does not work",
+ "Some times dumps core without a good reason"
+ };
+
+ output_env_t oenv;
+ t_x11 *x11;
+ t_filenm fnm[] = {
+ { efTRX, "-f", NULL, ffREAD },
+ { efTPX, NULL, NULL, ffREAD },
+ { efNDX, NULL, NULL, ffOPTRD }
+ };
#define NFILE asize(fnm)
-
- CopyRight(stderr,argv[0]);
- parse_common_args(&argc,argv,PCA_CAN_TIME,NFILE,fnm,
- 0,NULL,asize(desc),desc,asize(bugs),bugs,&oenv);
-
- if ((x11=GetX11(&argc,argv))==NULL) {
- fprintf(stderr,"Can't connect to X Server.\n"
- "Check your DISPLAY environment variable\n");
- exit(1);
- }
- init_gmx(x11,argv[0],NFILE,fnm,oenv);
-
- x11->MainLoop(x11);
- x11->CleanUp(x11);
-
- thanx(stderr);
-
- return 0;
+
+ CopyRight(stderr, argv[0]);
+ parse_common_args(&argc, argv, PCA_CAN_TIME, NFILE, fnm,
+ 0, NULL, asize(desc), desc, asize(bugs), bugs, &oenv);
+
+ if ((x11 = GetX11(&argc, argv)) == NULL)
+ {
+ fprintf(stderr, "Can't connect to X Server.\n"
+ "Check your DISPLAY environment variable\n");
+ exit(1);
+ }
+ init_gmx(x11, argv[0], NFILE, fnm, oenv);
+
+ x11->MainLoop(x11);
+ x11->CleanUp(x11);
+
+ thanx(stderr);
+
+ return 0;
}
-static t_mentry FileMenu[] = {
- { 0, IDEXPORT, FALSE, "Export..." },
- { 0, IDDUMPWIN, FALSE, "Print" },
- { 0, IDQUIT, FALSE, "Quit" }
+static t_mentry FileMenu[] = {
+ { 0, IDEXPORT, FALSE, "Export..." },
+ { 0, IDDUMPWIN, FALSE, "Print" },
+ { 0, IDQUIT, FALSE, "Quit" }
};
-static t_mentry DispMenu[] = {
- { 0, IDFILTER, FALSE, "Filter..." },
- { 0, IDANIMATE, FALSE, "Animate" },
- { 0, IDLABELSOFF, FALSE, "Labels Off"},
- { 0, IDRESETVIEW, FALSE, "Reset View"},
- { 0, IDBONDOPTS, FALSE, "Options..."}
+static t_mentry DispMenu[] = {
+ { 0, IDFILTER, FALSE, "Filter..." },
+ { 0, IDANIMATE, FALSE, "Animate" },
+ { 0, IDLABELSOFF, FALSE, "Labels Off"},
+ { 0, IDRESETVIEW, FALSE, "Reset View"},
+ { 0, IDBONDOPTS, FALSE, "Options..."}
};
-static t_mentry HelpMenu[] = {
- { 0, IDHELP, FALSE, "Help" },
- { 0, IDABOUT, FALSE, "About Gromacs..." }
+static t_mentry HelpMenu[] = {
+ { 0, IDHELP, FALSE, "Help" },
+ { 0, IDABOUT, FALSE, "About Gromacs..." }
};
static t_mentry *gmx_pd[] = { FileMenu, DispMenu, HelpMenu };
#define MSIZE asize(gmx_pd)
-static int gmx_pd_size[MSIZE] = {
- asize(FileMenu), asize(DispMenu), asize(HelpMenu)
+static int gmx_pd_size[MSIZE] = {
+ asize(FileMenu), asize(DispMenu), asize(HelpMenu)
};
static const char *MenuTitle[MSIZE] = {
- "File", "Display", "Help"
+ "File", "Display", "Help"
};
-void init_gmx(t_x11 *x11,char *program,int nfile,t_filenm fnm[],
+void init_gmx(t_x11 *x11, char *program, int nfile, t_filenm fnm[],
const output_env_t oenv)
{
- Pixmap pm;
- t_gmx *gmx;
- XSizeHints hints;
- int w0,h0;
- int natom,nre,natom_trx;
- t_topology top;
- int ePBC;
- matrix box;
- t_trxframe fr;
- t_trxstatus *status;
- char quote[256];
-
- snew(gmx,1);
- snew(gmx->wd,1);
-
- ePBC = read_tpx_top(ftp2fn(efTPX,nfile,fnm),
- NULL,box,&natom,NULL,NULL,NULL,&top);
-
- read_first_frame(oenv,&status,ftp2fn(efTRX,nfile,fnm),&fr,TRX_DONT_SKIP);
- close_trx(status);
- natom_trx = fr.natoms;
-
- /* Creates a simple window */
- w0=DisplayWidth(x11->disp,x11->screen)-132;
- h0=DisplayHeight(x11->disp,x11->screen)-140;
- bromacs(quote,255);
- InitWin(gmx->wd,0,0,w0,h0,3,quote);
- gmx->wd->self=XCreateSimpleWindow(x11->disp,x11->root,
- gmx->wd->x, gmx->wd->y,
- gmx->wd->width,gmx->wd->height,
- gmx->wd->bwidth,WHITE,BLACK);
- pm=XCreatePixmapFromBitmapData(x11->disp,x11->root,
- (char *)gromacs_bits,gromacs_width,
- gromacs_height,
- WHITE,BLACK,1);
- hints.flags=PMinSize;
- hints.min_width=2*EWIDTH+40;
- hints.min_height=EHEIGHT+LDHEIGHT+LEGHEIGHT+40;
- XSetStandardProperties(x11->disp,gmx->wd->self,gmx->wd->text,program,
- pm,NULL,0,&hints);
-
- x11->RegisterCallback(x11,gmx->wd->self,x11->root,MainCallBack,gmx);
- x11->SetInputMask(x11,gmx->wd->self,
- ButtonPressMask | ButtonReleaseMask |
- OwnerGrabButtonMask | ExposureMask |
- StructureNotifyMask);
-
- /* The order of creating windows is important here! */
- /* Manager */
- gmx->man = init_man(x11,gmx->wd->self,0,0,1,1,WHITE,BLACK,ePBC,box,oenv);
- gmx->logo = init_logo(x11,gmx->wd->self,FALSE);
-
- /* Now put all windows in the proper place */
- move_gmx(x11,gmx,w0,h0,FALSE);
-
- XMapWindow(x11->disp,gmx->wd->self);
- map_man(x11,gmx->man);
-
- /* Pull Down menu */
- gmx->pd=init_pd(x11,gmx->wd->self,gmx->wd->width,
- XTextHeight(x11->font),x11->fg,x11->bg,
- MSIZE,gmx_pd_size,gmx_pd,MenuTitle);
-
- /* Dialogs & Filters */
-
- gmx->filter=init_filter(&(top.atoms),ftp2fn_null(efNDX,nfile,fnm),
- natom_trx);
-
- init_dlgs(x11,gmx);
-
- /* Now do file shit */
- set_file(x11,gmx->man,ftp2fn(efTRX,nfile,fnm),ftp2fn(efTPX,nfile,fnm));
-
- /*show_logo(x11,gmx->logo);*/
-
- ShowDlg(gmx->dlgs[edFilter]);
+ Pixmap pm;
+ t_gmx *gmx;
+ XSizeHints hints;
+ int w0, h0;
+ int natom, nre, natom_trx;
+ t_topology top;
+ int ePBC;
+ matrix box;
+ t_trxframe fr;
+ t_trxstatus *status;
+ char quote[256];
+
+ snew(gmx, 1);
+ snew(gmx->wd, 1);
+
+ ePBC = read_tpx_top(ftp2fn(efTPX, nfile, fnm),
+ NULL, box, &natom, NULL, NULL, NULL, &top);
+
+ read_first_frame(oenv, &status, ftp2fn(efTRX, nfile, fnm), &fr, TRX_DONT_SKIP);
+ close_trx(status);
+ natom_trx = fr.natoms;
+
+ /* Creates a simple window */
+ w0 = DisplayWidth(x11->disp, x11->screen)-132;
+ h0 = DisplayHeight(x11->disp, x11->screen)-140;
+ bromacs(quote, 255);
+ InitWin(gmx->wd, 0, 0, w0, h0, 3, quote);
+ gmx->wd->self = XCreateSimpleWindow(x11->disp, x11->root,
+ gmx->wd->x, gmx->wd->y,
+ gmx->wd->width, gmx->wd->height,
+ gmx->wd->bwidth, WHITE, BLACK);
+ pm = XCreatePixmapFromBitmapData(x11->disp, x11->root,
+ (char *)gromacs_bits, gromacs_width,
+ gromacs_height,
+ WHITE, BLACK, 1);
+ hints.flags = PMinSize;
+ hints.min_width = 2*EWIDTH+40;
+ hints.min_height = EHEIGHT+LDHEIGHT+LEGHEIGHT+40;
+ XSetStandardProperties(x11->disp, gmx->wd->self, gmx->wd->text, program,
+ pm, NULL, 0, &hints);
+
+ x11->RegisterCallback(x11, gmx->wd->self, x11->root, MainCallBack, gmx);
+ x11->SetInputMask(x11, gmx->wd->self,
+ ButtonPressMask | ButtonReleaseMask |
+ OwnerGrabButtonMask | ExposureMask |
+ StructureNotifyMask);
+
+ /* The order of creating windows is important here! */
+ /* Manager */
+ gmx->man = init_man(x11, gmx->wd->self, 0, 0, 1, 1, WHITE, BLACK, ePBC, box, oenv);
+ gmx->logo = init_logo(x11, gmx->wd->self, FALSE);
+
+ /* Now put all windows in the proper place */
+ move_gmx(x11, gmx, w0, h0, FALSE);
+
+ XMapWindow(x11->disp, gmx->wd->self);
+ map_man(x11, gmx->man);
+
+ /* Pull Down menu */
+ gmx->pd = init_pd(x11, gmx->wd->self, gmx->wd->width,
+ XTextHeight(x11->font), x11->fg, x11->bg,
+ MSIZE, gmx_pd_size, gmx_pd, MenuTitle);
+
+ /* Dialogs & Filters */
+
+ gmx->filter = init_filter(&(top.atoms), ftp2fn_null(efNDX, nfile, fnm),
+ natom_trx);
+
+ init_dlgs(x11, gmx);
+
+ /* Now do file shit */
+ set_file(x11, gmx->man, ftp2fn(efTRX, nfile, fnm), ftp2fn(efTPX, nfile, fnm));
+
+ /*show_logo(x11,gmx->logo);*/
+
+ ShowDlg(gmx->dlgs[edFilter]);
}
-