home *** CD-ROM | disk | FTP | other *** search
- /*
- * Copyright 1992, 1993, 1994, Silicon Graphics, Inc.
- * All Rights Reserved.
- *
- * This is UNPUBLISHED PROPRIETARY SOURCE CODE of Silicon Graphics, Inc.;
- * the contents of this file may not be disclosed to third parties, copied or
- * duplicated in any form, in whole or in part, without the prior written
- * permission of Silicon Graphics, Inc.
- *
- * RESTRICTED RIGHTS LEGEND:
- * Use, duplication or disclosure by the Government is subject to restrictions
- * as set forth in subdivision (c)(1)(ii) of the Rights in Technical Data
- * and Computer Software clause at DFARS 252.227-7013, and/or in similar or
- * successor clauses in the FAR, DOD or NASA FAR Supplement. Unpublished -
- * rights reserved under the Copyright Laws of the United States.
- */
- /*
- *
- */
-
- #include <stdio.h>
- #include <X11/Intrinsic.h>
- #include <X11/StringDefs.h>
- #include <X11/keysym.h>
- #include <Xm/MainW.h>
- #include <Xm/RowColumn.h>
- #include <Xm/PushB.h>
- #include <Xm/CascadeB.h>
- #include <Xm/Frame.h>
- #include <Xm/FileSB.h>
- #include <X11/Xirisw/GlxMDraw.h>
- #include <gl/gl.h>
-
- /* Callbacks */
- static void okCB(), cancelCB(), openCB();
- extern void cutCB(), copyCB(), pasteCB(), quitCB();
- static Widget createMenuBar();
-
- static unsigned long background;
- extern unsigned long WidgetBackgroundToGlRgb();
- extern Widget create_mol_widget();
-
- Widget molw;
-
- XtAppContext app_context;
- static String fallback_resources[] = {
- "*frame*shadowType: SHADOW_IN",
- "*mol*width: 400",
- "*mol*height: 400",
- NULL
- };
-
- Matrix objmat = {
- {1.0, 0.0, 0.0, 0.0},
- {0.0, 1.0, 0.0, 0.0},
- {0.0, 0.0, 1.0, 0.0},
- {0.0, 0.0, 0.0, 1.0},
- };
-
- Matrix idmat = {
- {1.0, 0.0, 0.0, 0.0},
- {0.0, 1.0, 0.0, 0.0},
- {0.0, 0.0, 1.0, 0.0},
- {0.0, 0.0, 0.0, 1.0},
- };
-
-
- /* Modes the program can be in */
- #define NOTHING 0
- #define ORIENT 1
- #define SPIN 2
-
- int mode = 0;
- int omx, mx, omy, my; /* old and new mouse position */
-
- static void
- openCB(Widget parent, caddr_t client_data, caddr_t call_data)
- {
- Widget fsb;
- Widget ok;
- Widget button;
- Arg args[20];
- int n;
-
- n=0;
- XtSetArg (args[n], XmNdirMask,
- XmStringCreate("*.mol",XmSTRING_DEFAULT_CHARSET)); n++;
- fsb = XmCreateFileSelectionDialog(parent, "fsb", args, n);
- XtSetValues (fsb, args, n);
-
-
-
- /* buttons are OK, FILTER, CANCEL */
- button = XmFileSelectionBoxGetChild(fsb, XmDIALOG_CANCEL_BUTTON);
- XtAddCallback(button, XmNactivateCallback, cancelCB, 0);
-
- ok = XmFileSelectionBoxGetChild(fsb, XmDIALOG_OK_BUTTON);
- XtAddCallback(ok, XmNactivateCallback, okCB, 0);
-
- button = XmFileSelectionBoxGetChild(fsb, XmDIALOG_HELP_BUTTON);
- XtUnmanageChild(button);
-
- XtManageChild(fsb);
- }
-
- static void
- okCB(Widget w, caddr_t client_data, caddr_t call_data)
- {
- Widget message_box = XtParent (w);
- Widget shell = XtParent (message_box);
-
- char *XmTextGetString();
- Widget textwidget =
- XmFileSelectionBoxGetChild(message_box, XmDIALOG_TEXT);
- char *filename = XmTextGetString(textwidget);
-
- fprintf(stderr,"file: %s\n",filename);
-
- openFile(filename);
- exposeCB(molw, 0, 0);
-
- if (filename)
- XtFree(filename);
-
- XtUnmanageChild (message_box);
- XtDestroyWidget(shell);
- }
-
- static void
- cancelCB(Widget w, caddr_t client_data, caddr_t call_data)
- {
- Widget message_box = XtParent (w);
- Widget shell = XtParent (message_box);
-
- XtUnmanageChild (message_box);
- XtDestroyWidget(shell);
-
- }
-
-
- main(argc, argv)
- unsigned int argc;
- char **argv;
- {
-
-
- Arg args[20];
- int n;
- Widget glw, toplevel, mainw, frame, menu_bar;
-
- toplevel = XtAppInitialize(&app_context, "cutp",
- (XrmOptionDescList)NULL , 0,
- (Cardinal*)&argc,
- (String*)argv,
- fallback_resources,
- (ArgList)NULL, 0);
-
- n = 0;
- mainw = XmCreateMainWindow(toplevel, "mainw", args, n);
- XtManageChild(mainw);
-
- menu_bar = createMenuBar(mainw);
- n = 0;
- frame = XmCreateFrame (mainw, "frame", args, n);
- XtManageChild (frame);
-
- molw = create_mol_widget(frame);
-
- XmMainWindowSetAreas( mainw, menu_bar, NULL, NULL, NULL, frame);
-
- XtRealizeWidget(toplevel);
-
- /*
- installColormap(toplevel,glw);
- */
-
- XtAppMainLoop(app_context);
- }
-
- static Widget
- createMenuBar(parent)
- Widget parent;
- {
- Widget menu_bar;
- Widget cascade;
- Widget menu_pane;
- Widget button;
- Arg args[10];
- register int n;
-
- n = 0;
- menu_bar = XmCreateMenuBar(parent, "menu_bar", args, n);
- XtManageChild (menu_bar);
-
- n = 0;
- menu_pane = XmCreatePulldownMenu (menu_bar, "menu_pane", args, n);
-
- n = 0;
- button = XmCreatePushButton (menu_pane, "Open", args, n);
- XtManageChild (button);
- XtAddCallback (button, XmNactivateCallback, openCB, NULL);
-
- n = 0;
- button = XmCreatePushButton (menu_pane, "Quit", args, n);
- XtManageChild (button);
- XtAddCallback (button, XmNactivateCallback, quitCB, NULL);
-
- n = 0;
- XtSetArg (args[n], XmNsubMenuId, menu_pane); n++;
- cascade = XmCreateCascadeButton (menu_bar, "File", args, n);
- XtManageChild (cascade);
-
- n = 0;
- menu_pane = XmCreatePulldownMenu (menu_bar, "menu_pane", args, n);
-
- n = 0;
- button = XmCreatePushButton (menu_pane, "Cut", args, n);
- XtManageChild (button);
- XtAddCallback (button, XmNactivateCallback, cutCB, NULL);
-
- n = 0;
- button = XmCreatePushButton (menu_pane, "Copy", args, n);
- XtManageChild (button);
- XtAddCallback (button, XmNactivateCallback, copyCB, NULL);
-
- n = 0;
- button = XmCreatePushButton (menu_pane, "Paste", args, n);
- XtManageChild (button);
- XtAddCallback (button, XmNactivateCallback, pasteCB, NULL);
-
- n = 0;
- XtSetArg (args[n], XmNsubMenuId, menu_pane); n++;
- cascade = XmCreateCascadeButton (menu_bar, "Edit", args, n);
- XtManageChild (cascade);
-
- return (menu_bar);
- }
-
-