/************************************************************************ ** ** FILE : hawininst.c ** ** ZWECK : ** ** AUTOR : Michael C. Ancutici ** Universitaet Stuttgart, Fakultaet Informatik ** ** DATUM : 14.03.93 ** *************************************************************************/ #include "hawininst.h" #include "hawin.h" #include "halook.h" #include "hastemisc.h" #include "hatramisc.h" #include "hakasets.h" #include "hakasete.h" #include "hakasetz.h" #include "hakamisc.h" #include "netsize.h" #include "misc.h" #include "hadelmisc.h" #include "haneumisc.h" #include "diwin.h" #include "hamem.h" #include "stepspop.h" #include "hasetmisc.h" #include "hadatmisc.h" #include "hastepmisc.h" #include "habreakmisc.h" #include "hi.h" #include "hamove.h" #include "ihaste" #include "ihatra" #include "ihaka" #include "ihadel" #include "ihasave" #include "ihastep" #include "ihaunbreak" #include "ihamemi" #include "ihamemo" #include extern char *PNSResources[]; static Pixmap IHaStePixmap; static Pixmap IHaTraPixmap; static Pixmap IHaKaPixmap; static Pixmap IHaDelPixmap; static Pixmap IHaSavePixmap; static Pixmap IHaStepPixmap; static Pixmap IHaMemOPixmap; static Pixmap IHaMemIPixmap; static Pixmap IHaUnbreakPixmap; /************************************************************************* ** FUNKTION: HaRedrawPlane ** ZWECK: ** EINGABE: ** AUSGABE: ** RETURN: ** ANMERK: *************************************************************************/ static void HaRedrawPlane( w, event, params, num_params) Widget w; XEvent *event; String *params; Cardinal *num_params; { /* fprintf( stderr, "*** HaRedrawPlane: Refresh x=%d y=%d w=%d h=%d\n", ((XExposeEvent *)event)->x, ((XExposeEvent *)event)->y, ((XExposeEvent *)event)->width, ((XExposeEvent *)event)->height); */ XCopyArea( MyDisplay, HaGraphPixmap, XtWindow( HaGraphPlane), DefaultGCOfScreen( XtScreen( HaGraphPlane)), ((XExposeEvent *)event)->x, ((XExposeEvent *)event)->y, ((XExposeEvent *)event)->width, ((XExposeEvent *)event)->height, ((XExposeEvent *)event)->x, ((XExposeEvent *)event)->y); } /************************************************************************* ** FUNKTION: HaInstIconPixmaps ** ZWECK: ** EINGABE: ** AUSGABE: ** RETURN: ** ANMERK: *************************************************************************/ static void HaInstIconPixmaps() { IHaStePixmap = XCreateBitmapFromData( XtDisplay( HaShell), RootWindowOfScreen( XtScreen( HaShell)), ihaste_bits, ihaste_width, ihaste_height ); IHaTraPixmap = XCreateBitmapFromData( XtDisplay( HaShell), RootWindowOfScreen( XtScreen( HaShell)), ihatra_bits, ihatra_width, ihatra_height ); IHaKaPixmap = XCreateBitmapFromData( XtDisplay( HaShell), RootWindowOfScreen( XtScreen( HaShell)), ihaka_bits, ihaka_width, ihaka_height ); IHaSavePixmap = XCreateBitmapFromData( XtDisplay( HaShell), RootWindowOfScreen( XtScreen( HaShell)), ihasave_bits, ihasave_width, ihasave_height ); IHaStepPixmap = XCreateBitmapFromData( XtDisplay( HaShell), RootWindowOfScreen( XtScreen( HaShell)), ihastep_bits, ihastep_width, ihastep_height ); IHaMemIPixmap = XCreateBitmapFromData( XtDisplay( HaShell), RootWindowOfScreen( XtScreen( HaShell)), ihamemi_bits, ihamemi_width, ihamemi_height ); IHaMemOPixmap = XCreateBitmapFromData( XtDisplay( HaShell), RootWindowOfScreen( XtScreen( HaShell)), ihamemo_bits, ihamemo_width, ihamemo_height ); IHaUnbreakPixmap = XCreateBitmapFromData( XtDisplay( HaShell), RootWindowOfScreen( XtScreen( HaShell)), ihaunbreak_bits, ihaunbreak_width, ihaunbreak_height ); IHaDelPixmap = XCreateBitmapFromData( XtDisplay( HaShell), RootWindowOfScreen( XtScreen( HaShell)), ihadel_bits, ihadel_width, ihadel_height ); } /************************************************************************* ** FUNKTION: HaInstButtons ** ZWECK: ** EINGABE: ** AUSGABE: ** RETURN: ** ANMERK: *************************************************************************/ static void HaInstButtons() { HaSteToggle = XtVaCreateManagedWidget( "HaSteToggle", /* widget name */ toggleWidgetClass, /* widget class */ HaButtonPane, /* parent widget */ XtNbitmap, IHaStePixmap, XtNstate, FALSE, NULL); /* terminate argument list */ HaTraToggle = XtVaCreateManagedWidget( "HaTraToggle", /* widget name */ toggleWidgetClass, /* widget class */ HaButtonPane, /* parent widget */ XtNbitmap, IHaTraPixmap, XtNradioGroup, HaSteToggle, XtNstate, FALSE, NULL); /* terminate argument list */ HaKaToggle = XtVaCreateManagedWidget( "HaKaToggle", /* widget name */ toggleWidgetClass, /* widget class */ HaButtonPane, /* parent widget */ XtNbitmap, IHaKaPixmap, XtNradioGroup, HaSteToggle, XtNstate, FALSE, NULL); /* terminate argument list */ HaDelToggle = XtVaCreateManagedWidget( "HaDelToggle", /* widget name */ toggleWidgetClass, /* widget class */ HaButtonPane, /* parent widget */ XtNbitmap, IHaDelPixmap, XtNradioGroup, HaSteToggle, XtNstate, FALSE, NULL); /* terminate argument list */ HaSaveToggle = XtVaCreateManagedWidget( "HaSaveToggle", /* widget name */ commandWidgetClass, /* widget class */ HaButtonPane, /* parent widget */ XtNbitmap, IHaSavePixmap, NULL); /* terminate argument list */ HaMemICom = XtVaCreateManagedWidget( "HaMemICom", /* widget name */ commandWidgetClass, /* widget class */ HaButtonPane, /* parent widget */ XtNbitmap, IHaMemIPixmap, NULL); /* terminate argument list */ HaMemOCom = XtVaCreateManagedWidget( "HaMemICom", /* widget name */ commandWidgetClass, /* widget class */ HaButtonPane, /* parent widget */ XtNbitmap, IHaMemOPixmap, NULL); /* terminate argument list */ HaStepToggle = XtVaCreateManagedWidget( "HaStepToggle", /* widget name */ toggleWidgetClass, /* widget class */ HaButtonPane, /* parent widget */ XtNbitmap, IHaStepPixmap, XtNradioGroup, HaSteToggle, XtNstate, FALSE, NULL); /* terminate argument list */ HaUnbreakToggle = XtVaCreateManagedWidget( "HaUnbreakToggle", /* widget name */ toggleWidgetClass, /* widget class */ HaButtonPane, /* parent widget */ XtNbitmap, IHaUnbreakPixmap, XtNradioGroup, HaSteToggle, XtNstate, FALSE, XtNsensitive, FALSE, NULL); /* terminate argument list */ HaToggleOn = FALSE; } /************************************************************************* ** FUNKTION: HaWinInst ** ZWECK: Installiert HaShell ** INPUT: argc, argv wegen HaShell ** OUTPUT: argc, argv *************************************************************************/ void HaWinInst( argc, argv) int *argc; char **argv; { int i; static XtActionsRec window_actions[] = { {"HaRedrawPlane", HaRedrawPlane}, {"HaLook", HaLook}, {"HaStepGetT", HaStepGetT}, {"HaDelVictim", HaDelVictim}, {"StepsWinPopup", StepsWinPopup}, {"HaSetSte", HaSetSte}, {"HaMovSte", HaMovSte}, {"HaMovSteStart", HaMovSteStart}, {"HaMovSteStop", HaMovSteStop}, {"HaWinSayRun", HaWinSayRun}, {"HaWinSayMove", HaWinSayMove}, {"HaMoveSteSet", HaMoveSteSet}, {"HaMoveTraSet", HaMoveTraSet}, {"HaChangeTra", HaChangeTra}, {"HaSetTra", HaSetTra}, {"HaMovTra", HaMovTra}, {"HaMovTraStart", HaMovTraStart}, {"HaMovTraStop", HaMovTraStop}, {"HaKaSetStart", HaKaSetStart}, {"HaKaSetZiel", HaKaSetZiel}, {"HaKaSetEck", HaKaSetEck}, {"HaKaMov", HaKaMov}, {"HaKaLineOff", HaKaLineOff}, {"HaKaLineOn", HaKaLineOn}}; static String trans = ": \n\ : HaLook() \n\ : \n\ : \n\ : HaWinSayMove() \n\ : HaRedrawPlane() \n\ : \n\ :"; if ((*argc>1) && (argv[1][0]=='e')) { fprintf( stderr, "*** PNS: Use only extern resources (HaShell)\n"); HaShell = XtVaAppInitialize( &AppContext, "pns.shell", NULL, 0, argc, argv, NULL, NULL); } else { fprintf( stderr, "*** PNS: Use intern and extern resources\n"); HaShell = XtVaAppInitialize( &AppContext, "pns.shell", NULL, 0, argc, argv, PNSResources, NULL); } HaPane = XtVaCreateManagedWidget( "HaPane", panedWidgetClass, HaShell, NULL); HaTopPane = XtVaCreateManagedWidget( "HaTopPane", panedWidgetClass, HaPane, XtNorientation, XtEvertical, XtNmin, 16, XtNmax, 16, NULL); HaDateiInstMenu(); HaSetInstMenu(); HiInst(); HaTopNullLabel = XtVaCreateManagedWidget( "HaTopNullLabel", labelWidgetClass, HaTopPane, XtNlabel, " ", NULL); HaFileLabel = XtVaCreateManagedWidget( "HaFileLabel", labelWidgetClass, HaTopPane, XtNlabel, "?.net", XtNmax, 140, XtNmin, 140, NULL); HaMidPane = XtVaCreateManagedWidget( "HaMidPane", panedWidgetClass, HaPane, XtNorientation, XtEvertical, NULL); /**** BUTTON LEISTE SENKRECHT LINKS ***********************************/ HaButtonPane = XtVaCreateManagedWidget( "HaButtonPane", panedWidgetClass, HaMidPane, NULL); HaInstIconPixmaps(); HaInstButtons(); HaNullButLabel = XtVaCreateManagedWidget( "HaNullButLabel", labelWidgetClass, HaButtonPane, XtNlabel, " ", NULL); /**** GRAPHIK OUTPUT **************************************************/ HaGraphView = XtVaCreateManagedWidget( /* fuer File Liste */ "HaGraphView", /* widget name */ viewportWidgetClass, /* widget class */ HaMidPane, /* parent widget */ XtNallowVert, TRUE, /* argument list */ XtNallowHoriz, TRUE, /* argument list */ XtNuseRight, TRUE, /* argument list */ XtNuseBottom, TRUE, /* argument list */ XtNwidth, VIEW_WIDTH, XtNheight, VIEW_HEIGHT, NULL); /* terminate argument list */ HaGraphPlane = XtVaCreateManagedWidget( "HaGraphPlane", widgetClass, HaGraphView, XtNwidth, PLANE_WIDTH, XtNheight, PLANE_HEIGHT, NULL); XtOverrideTranslations( HaGraphPlane, XtParseTranslationTable( trans)); /**** FUSSZEILE ********************************************************/ HaSubPane = XtVaCreateManagedWidget( "HaSubPane", panedWidgetClass, HaPane, XtNorientation, XtEvertical, XtNmin, 18, XtNmax, 18, NULL); HaStatLabel = XtVaCreateManagedWidget( "HaStatLabel", labelWidgetClass, HaSubPane, XtNlabel, " ", NULL); HaAnzLabel = XtVaCreateManagedWidget( "HaAnzLabel", labelWidgetClass, HaSubPane, XtNlabel, "", XtNmin, 9, XtNmax, 9, NULL); /*****************************************%% HaMemLabel = XtVaCreateManagedWidget( "HaMemLabel", labelWidgetClass, HaSubPane, XtNlabel, "0", XtNmin, 40, XtNmax, 40, NULL); ******************************************/ HaMemLabel = XtVaCreateManagedWidget( "HaMemLabel", widgetClass, HaSubPane, XtNwidth, 50, XtNheight, 18, XtNmin, 50, XtNmax, 50, NULL); HaSimLabel = XtVaCreateManagedWidget( "HaSimLabel", labelWidgetClass, HaSubPane, XtNlabel, "Sim: PR", XtNmin, 50, XtNmax, 50, NULL); DiWinInit(); XtAppAddActions( AppContext, window_actions, XtNumber(window_actions)); XtAddCallback( HaMemICom, XtNcallback, HaWinSayMemI, 0); XtAddCallback( HaMemOCom, XtNcallback, HaWinSayMemO, 0); XtAddCallback( HaSteToggle, XtNcallback, HaWinSaySte, 0); XtAddCallback( HaTraToggle, XtNcallback, HaWinSayTra, 0); XtAddCallback( HaKaToggle, XtNcallback, HaWinSayKa, 0); XtAddCallback( HaDelToggle, XtNcallback, HaWinSayDel, 0); XtAddCallback( HaStepToggle, XtNcallback, HaWinSayStep, (XtPointer)1); XtAddCallback( HaUnbreakToggle, XtNcallback, HaWinSayBreak, 0); XtAddCallback( HaSaveToggle, XtNcallback, DiWinPopupC, (XtPointer) DI_WRITE); }