[BACK]Return to xdeb.c CVS log [TXT][DIR] Up to [local] / OpenXM_contrib2 / asir2000 / parse

Annotation of OpenXM_contrib2/asir2000/parse/xdeb.c, Revision 1.1.1.1

1.1       noro        1: /* $OpenXM: OpenXM/src/asir99/parse/xdeb.c,v 1.1.1.1 1999/11/10 08:12:34 noro Exp $ */
                      2: #if defined(VISUAL)
                      3: #if defined(VISUAL_LIB)
                      4: #include <stdio.h>
                      5: #include <stdlib.h>
                      6: #include <windows.h>
                      7: #include <signal.h>
                      8: #include <process.h>
                      9:
                     10: #define FROMASIR_EXIT 0
                     11: #define FROMASIR_TEXT 1
                     12: #define FROMASIR_HEAPSIZE 2
                     13: #define FROMASIR_SHOW 3
                     14: #define FROMASIR_HIDE 4
                     15:
                     16: void show_debug_window(int);
                     17: int create_debug_gui();
                     18: void set_debug_handles(int);
                     19: void get_rootdir(char *,int);
                     20:
                     21: void show_debug_window(int on)
                     22: {
                     23:        static int debug_gui_invoked = 0;
                     24:
                     25:        /* debug_gui_invoked < 0 : failed to invoke debug GUI */
                     26:        if ( debug_gui_invoked < 0 )
                     27:                return;
                     28:        if ( !debug_gui_invoked ) {
                     29:                if ( !on )
                     30:                        return;
                     31:                else if ( create_debug_gui() < 0 ) {
                     32:                        debug_gui_invoked = -1;
                     33:                        return;
                     34:                }
                     35:                debug_gui_invoked = 1;
                     36:        }
                     37:        set_debug_handles(on);
                     38: }
                     39:
                     40: #else /* VISUAL_LIB */
                     41: void show_debug_window(int on)
                     42: {}
                     43: #endif
                     44: #else /* VISUAL */
                     45: /*
                     46:  *     xdeb.c --- Asir Debug interface.
                     47:  *
                     48:  *             akashi@sy.ssl.fujitsu.co.jp
                     49:  */
                     50: #include <X11/Intrinsic.h>
                     51: #include <X11/StringDefs.h>
                     52: #include <X11/Shell.h>
                     53: #include <X11/Xaw/Dialog.h>
                     54: #include       <stdio.h>
                     55:
                     56: static XrmOptionDescRec options[] = {
                     57:        {"-reverse","*reverse",XrmoptionNoArg,"on"},
                     58:        {"-fg","*foreground",XrmoptionSepArg,NULL},
                     59:        {"-bg","*background",XrmoptionSepArg,NULL},
                     60: };
                     61:
                     62: static String fallback[] = {
                     63:        "*Dialog*baseTranslations:#override <Key>Return: done()",
                     64:        NULL
                     65: };
                     66:
                     67: static void Done();
                     68: static void SetSelected();
                     69:
                     70: static XtActionsRec actions_table[] = {
                     71:        {"done",Done},
                     72: };
                     73:
                     74: char debug_cmd[BUFSIZ];
                     75:
                     76: static Widget          toplevel, mainwin, cmdwin;
                     77: static XtAppContext    app_con;
                     78: static int done;
                     79: static Display *display;
                     80:
                     81: void get_cmd();
                     82:
                     83: static void Done(w,e,p,n)
                     84: Widget w;
                     85: XEvent *e;
                     86: String *p;
                     87: Cardinal *n;
                     88: {
                     89:        SetSelected(w,0,0);
                     90: }
                     91:
                     92: static void SetSelected(w,cld,cad)
                     93: Widget w;
                     94: XtPointer cld,cad;
                     95: {
                     96:        Arg             arg[5];
                     97:        char *cmd;
                     98:
                     99:        done = 1;
                    100:        cmd = XawDialogGetValueString(cmdwin);
                    101:        strcpy(debug_cmd,cmd);
                    102:        XtSetArg(arg[0], XtNvalue, "");
                    103:        XtSetValues(cmdwin, arg, 1);
                    104: }
                    105:
                    106: init_cmdwin()
                    107: {
                    108:        Arg             arg[5];
                    109:        int argc=0;
                    110:        char *argv[1];
                    111:        int n;
                    112:        char *d;
                    113:        extern char displayname[];
                    114:        extern int do_server_in_X11;
                    115:
                    116:        if ( !displayname[0] ) {
                    117:                d = (char *)getenv("DISPLAY");
                    118:                if ( d )
                    119:                        strcpy(displayname,d);
                    120:                else
                    121:                        do_server_in_X11 = 0;
                    122:        }
                    123:        if ( displayname[0] ) {
                    124:                argv[0] = 0;
                    125:                XtToolkitInitialize();
                    126:                app_con = XtCreateApplicationContext();
                    127:                XtAppAddActions(app_con,actions_table, XtNumber(actions_table));
                    128:                XtAppSetFallbackResources(app_con,fallback);
                    129:                display = XtOpenDisplay(app_con,displayname,"ox_asir_debug_window","ox_asir_debug_window",
                    130:                        options,XtNumber(options),&argc,argv);
                    131:                toplevel = XtAppCreateShell(0,"ox_asir_debug_window",applicationShellWidgetClass,
                    132:                        display,0,0);
                    133:                XtSetArg(arg[0],XtNiconName,"ox_asir_debug_window");
                    134:                mainwin = XtCreatePopupShell("shell",topLevelShellWidgetClass,
                    135:                        toplevel,arg,1);
                    136:        /*
                    137:         *      Command line
                    138:         */
                    139:                cmdwin = XtCreateManagedWidget("cmdwin", dialogWidgetClass,
                    140:                        mainwin, NULL, 0);
                    141:                XawDialogAddButton(cmdwin,"OK",SetSelected,"OK");
                    142:                n = 0;
                    143:                XtSetArg(arg[n], XtNlabel, "Command : "); n++;
                    144:                XtSetArg(arg[n], XtNvalue, ""); n++;
                    145:                XtSetValues(cmdwin, arg, n);
                    146:                XtRealizeWidget(mainwin);
                    147:        }
                    148: }
                    149:
                    150: show_debug_window(on)
                    151: int on;
                    152: {
                    153:        XEvent ev;
                    154:
                    155:        if ( mainwin ) {
                    156:                if ( on )
                    157:                        XtPopup(mainwin,XtGrabNone);
                    158:                else
                    159:                        XtPopdown(mainwin);
                    160:                XFlush(display);
                    161:                while ( XtAppPending(app_con) ) {
                    162:                        XtAppNextEvent(app_con,&ev);
                    163:                        XtDispatchEvent(&ev);
                    164:                }
                    165:        }
                    166: }
                    167:
                    168: get_line(buf)
                    169: char *buf;
                    170: {
                    171:        XEvent ev;
                    172:
                    173:        done = 0;
                    174:        while ( !done ) {
                    175:                XtAppNextEvent(app_con,&ev);
                    176:                XtDispatchEvent(&ev);
                    177:        }
                    178:        strcpy(buf,debug_cmd);
                    179: }
                    180: #endif /* VISUAL */

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>