/************************************************************************ ** ** FILE : hamove.c ** ** ZWECK : ** ** AUTOR : Michael C. Ancutici ** Universitaet Stuttgart, Fakultaet Informatik ** ** DATUM : 14.03.93 ** *************************************************************************/ #include "hamove.h" #include "hasteio.h" #include "hawin.h" #include "hastemisc.h" #include "netsize.h" #include "cellkaget.h" #include "hamess.h" #include "haste.h" #include "celltype.h" #include "hatra.h" #include "hatramisc.h" #include "hatraio.h" #include "tra.h" static int MoveNr; /************************************************************************* ** FUNKTION: MoveSteSet ** ZWECK: ** EINGABE: ** AUSGABE: ** RETURN: ** ANMERK: *************************************************************************/ void HaMoveSteSet( w, event, params, num_params) Widget w; XEvent *event; String *params; Cardinal *num_params; { static String Off = ": \n\ : HaLook() \n\ : \n\ : \n\ : HaWinSayMove() \n\ : \n\ :"; XtOverrideTranslations( HaGraphPlane, XtParseTranslationTable( Off)); HaInversSte( HaAlt.x, HaAlt.y); HaSteChangePlace( MoveNr, ((XMotionEvent *)event)->x, ((XMotionEvent *)event)->y); } /************************************************************************* ** FUNKTION: MoveSte ** ZWECK: Einschalter fuer HaSteMove-Funktion *************************************************************************/ void MoveSte( x, y) int x, y; { static String On = ": HaMoveSteSet() \n\ : HaMovSte() "; XtOverrideTranslations( HaGraphPlane, XtParseTranslationTable( On)); HaInversSte( (HaAlt.x = x), (HaAlt.y = y) ); } /************************************************************************* ** FUNKTION: MoveTraSet ** ZWECK: ** EINGABE: ** AUSGABE: ** RETURN: ** ANMERK: *************************************************************************/ void HaMoveTraSet( w, event, params, num_params) Widget w; XEvent *event; String *params; Cardinal *num_params; { static String Off = ": \n\ : HaLook() \n\ : \n\ : \n\ : HaWinSayMove() \n\ : \n\ : \n\ :"; XtOverrideTranslations( HaGraphPlane, XtParseTranslationTable( Off)); HaInversTra( HaAlt.x, HaAlt.y); HaTraChangePlace( MoveNr, ((XMotionEvent *)event)->x, ((XMotionEvent *)event)->y, HaTraDarst); } /************************************************************************* ** FUNKTION: MoveTra ** ZWECK: Einschalter fuer HaSteMove-Funktion *************************************************************************/ void MoveTra( x, y) int x, y; { static String On = ": HaChangeTra() \n\ : HaMoveTraSet() \n\ : HaMovTra() "; XtOverrideTranslations( HaGraphPlane, XtParseTranslationTable( On)); HaTraSetDarst( TraTrans[ MoveNr]->Darstellung); HaInversTra( (HaAlt.x = x), (HaAlt.y = y) ); } /************************************************************************* ** FUNKTION: HaWinSayMove ** ZWECK: ** EINGABE: ** AUSGABE: ** RETURN: ** ANMERK: *************************************************************************/ void HaWinSayMove( w, event, params, num_params) Widget w; XEvent *event; String *params; Cardinal *num_params; { char typ; int x = ((XButtonEvent *)event)->x; int y = ((XButtonEvent *)event)->y; if (!CellKaGetStart( x, y, &typ, &MoveNr) ) { HaMessage( HA_NO_START_FOUND); return; } HaMessage( HA_CLEAR); if (typ == CE_STELLE) MoveSte( x, y); else MoveTra( x, y); }