/************************************************************************ ** ** FILE : hatraname.c ** ** ZWECK : ** ** AUTOR : Michael C. Ancutici ** Universitaet Stuttgart, Fakultaet Informatik ** ** DATUM : 14.03.93 ** *************************************************************************/ #include "hatraname.h" #include "hawin.h" #include "hatra.h" #include "tra.h" #include "cellname.h" #include "harefreshx.h" /************************************************************************* ** FUNKTION: HaTranNDrawX ** ZWECK: zeichnet den Namen einer Trans in Pixmap ** EINGABE: ** AUSGABE: ** RETURN: ** ANMERK: *************************************************************************/ void HaTraNDrawX( TNr, ActualGC) int TNr; GC ActualGC; { int n; if ( (n = strlen(TraTrans[ TNr]->Name)) == 0) return; XDrawImageString( MyDisplay, HaGraphPixmap, ActualGC, TraTrans[ TNr]->PosName.x, TraTrans[ TNr]->PosName.y, TraTrans[ TNr]->Name, n); } /************************************************************************* ** FUNKTION: HaTraNDraw ** ZWECK: zeichnet den Namen einer Trans in Pixmap und Window ** EINGABE: ** AUSGABE: ** RETURN: ** ANMERK: *************************************************************************/ void HaTraNDraw( TNr, ActualGC) int TNr; GC ActualGC; { int n; int x, y; if ( (n = strlen(TraTrans[ TNr]->Name)) == 0) return; XDrawImageString( MyDisplay, HaGraphPixmap, ActualGC, (x = TraTrans[ TNr]->PosName.x), (y = TraTrans[ TNr]->PosName.y), TraTrans[ TNr]->Name, n); y -= 10; XCopyArea( MyDisplay, HaGraphPixmap, XtWindow( HaGraphPlane), DefaultGCOfScreen( XtScreen( HaGraphPlane)), x, y, 100, 20, x, y); } /************************************************************************* ** FUNKTION: HaTraNReplX ** ZWECK: ersetzt alten Namen der Trans durch neuen. ** In TraTrans und grapfisch in Pixmap. ** EINGABE: ** AUSGABE: ** RETURN: ** ANMERK: *************************************************************************/ void HaTraNReplX( TNr, Neu) int TNr; char *Neu; { char *Alt; int n; if ( (strcmp( (Alt = TraTrans[ TNr]->Name), Neu)) == 0) return; /**** ALTEN NAMEN LOESCHEN *********************************************/ if ( (n = strlen( Alt)) != 0) { XSetForeground( MyDisplay, TraGC, HaBackColor); CellTraNDel( TNr, XTextWidth( HaNameFont, Alt, n)); HaTraNDrawX( TNr, TraGC); XSetForeground( MyDisplay, TraGC, HaTraColor); HaRefreshXFromRL(); } /**** NEUEN NAMEN SETZEN *********************************************/ strcpy( Alt, Neu); if ( (n = strlen( Neu)) != 0) { CellTraNEin( TNr, XTextWidth( HaNameFont, Neu, n), &(TraTrans[ TNr]->PosName.x), &(TraTrans[ TNr]->PosName.y) ); HaTraNDrawX( TNr, TraGC); } } /************************************************************************* ** FUNKTION: HaTraNRepl ** ZWECK: ersetzt alten Namen der Trans durch neuen. ** In TraTrans und grapfisch in Pixmap und Window. ** EINGABE: ** AUSGABE: ** RETURN: ** ANMERK: *************************************************************************/ void HaTraNRepl( TNr, Neu) int TNr; char *Neu; { char *Alt; int n; if ( (strcmp( (Alt = TraTrans[ TNr]->Name), Neu)) == 0) return; /**** ALTEN NAMEN LOESCHEN *********************************************/ if ( (n = strlen( Alt)) != 0) { CellTraNDel( TNr, XTextWidth( HaNameFont, Alt, n)); HaRefreshXFromRL(); XSetForeground( MyDisplay, TraGC, HaBackColor); HaTraNDraw( TNr, TraGC); XSetForeground( MyDisplay, TraGC, HaTraColor); } /**** NEUEN NAMEN SETZEN *********************************************/ strcpy( Alt, Neu); if ( (n = strlen( Neu)) != 0) { CellTraNEin( TNr, XTextWidth( HaNameFont, Neu, n), &(TraTrans[ TNr]->PosName.x), &(TraTrans[ TNr]->PosName.y) ); HaTraNDraw( TNr, TraGC); } }