/*********************************************************************** * * ***** *** *** * * * * * * * * *** *** * * * * * * * ***** *** *** * * A FREE Finite Elements Analysis Program in ANSI C for the UNIX OS. * * Composed and edited and copyright by * Professor Dr.-Ing. Frank Rieg, University of Bayreuth, Germany * * eMail: * frank.rieg@uni-bayreuth.de * dr.frank.rieg@t-online.de * * V11.0 December 12, 2003 * * Z88 should compile and run under any UNIX OS and Motif 2.0. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; see the file COPYING. If not, write to * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. ***********************************************************************/ /***************************************************************************** * Callbacks fuer z88p * 9.2.2004 Rieg *****************************************************************************/ /***************************************************************************** * Includes *****************************************************************************/ /*---------------------------------------------------------------------------- * UNIX *---------------------------------------------------------------------------*/ #ifdef FR_UNIX #include #include #include #include #include /* FR_POW,FR_FABS */ #include #endif /***************************************************************************** * Functions *****************************************************************************/ int setc88(Widget widget,int igc,int ifbg); int wsto88(void); int ro5x88(void); int ro2x88(void); int ri1x88(void); int vu2b88(void); int vu3b88(void); int vv2b88(void); int vv3b88(void); int vp88 (Widget widget); int vsca88(void); int vcur88(void); int vu2s88(void); int vu3s88(void); int vgpp88(Widget widget); int pu2b88(void); int pu3b88(void); int pv2b88(void); int pv3b88(void); int pp88 (void); int pu2s88(void); int pu3s88(void); int pgpp88(void); int wlog88p(FR_INT4,int); int ale88p(int); void ivar88(void); /*---------------------------------------------------------------------------- * CB_WER *---------------------------------------------------------------------------*/ void CB_WER(Widget hcallw,XtPointer data, XmPushButtonCallbackStruct *cbs) { extern FR_INT4 LANG; extern int IBELL; Widget hInfo; Arg args[10]; Cardinal n; XmString cxstring = NULL; char cstring[256]; /*============================================================================ * Los geht's *===========================================================================*/ XBell(XtDisplay(hcallw),IBELL); n = 0; XtSetArg(args[n], XmNautoUnmanage, TRUE); n++; XtSetArg(args[n], XmNdialogStyle, XmDIALOG_MODELESS); n++; XtSetArg(args[n], XmNdialogType, XmDIALOG_INFORMATION); n++; if(LANG==1) strcpy (cstring, "Z88P V11.0 fuer UNIX\n\ von Univ.Prof.Dr.-Ing. Frank Rieg 2004\n\ Universitaet Bayreuth\n\ frank.rieg@uni-bayreuth.de\n\ dr.frank.rieg@t-online.de"); if(LANG==2) strcpy (cstring, "Z88P V11.0 for UNIX\n\ by Prof.Dr. Frank Rieg 2004\n\ University of Bayreuth, Germany\n\ frank.rieg@uni-bayreuth.de\n\ dr.frank.rieg@t-online.de"); cxstring = XmStringCreateLtoR(cstring, XmFONTLIST_DEFAULT_TAG); XtSetArg(args[n], XmNmessageString, cxstring); n++; hInfo = XmCreateInformationDialog(hcallw, "z88p", args, n); XtUnmanageChild(XmMessageBoxGetChild(hInfo,XmDIALOG_HELP_BUTTON)); XtUnmanageChild(XmMessageBoxGetChild(hInfo,XmDIALOG_CANCEL_BUTTON)); XtManageChild(hInfo); if(cxstring) XmStringFree(cxstring); } /*---------------------------------------------------------------------------- * CB_PAINT *---------------------------------------------------------------------------*/ void CB_PAINT(Widget hcallw,Cardinal data, XmDrawingAreaCallbackStruct *cbs) { /*---------------------------------------------------------------------------- * Variable *---------------------------------------------------------------------------*/ extern GC hgc[]; extern FILE *f2,*f3,*f4,*f6; extern FR_INT4 ndim; extern int IX_DRAWAR,IY_DRAWAR,IW_DRAWAR,IH_DRAWAR; extern int ifverf,ifscale,iztogg,ifdevi,ifansi,ifstala,iflade,iflaver,iflspa; extern int IALERT, IDEATH; extern int II1_OK, IO2_OK, IO5_OK; extern char cstrn[],cintfn[],co2[],co5[]; extern char CF_GRAFICS[],CO_FARBE[],CO_DRAWAR[]; extern char CO_NORMAL[],CO_DEFLECTED[],CO_ELEMENTS[],CO_NODES[]; extern char CO_STRESS0[],CO_STRESS1[],CO_STRESS2[],CO_STRESS3[]; extern char CO_STRESS4[],CO_STRESS5[],CO_STRESS6[],CO_STRESS7[]; extern char CO_STRESS8[],CO_STRESS9[]; Font font; XRectangle rechteck[1]; int ialert,i,icount= 0; /*---------------------------------------------------------------------------- * Wenn IALERT auf 1 steht, wieder retour *---------------------------------------------------------------------------*/ if(IALERT == 1) return; /*---------------------------------------------------------------------------- * Clipping *---------------------------------------------------------------------------*/ rechteck[0].x = IX_DRAWAR; rechteck[0].y = IY_DRAWAR; rechteck[0].width = IW_DRAWAR; rechteck[0].height= IH_DRAWAR; /*---------------------------------------------------------------------------- * Grafikkontexte kommen lassen *---------------------------------------------------------------------------*/ for(i = 0; i <= 14; i++) { hgc[i] = XCreateGC(XtDisplay(hcallw), cbs->window, 0, NULL); if(hgc[i] == NULL) { wlog88p(0,LOG_NO_GC); IALERT= 1; IDEATH= 1; ale88p(AL_NO_GC); return; } XSetClipRectangles(XtDisplay(hcallw),hgc[i],0,0,rechteck,1,Unsorted); } /*---------------------------------------------------------------------------- * Font kommen lassen *---------------------------------------------------------------------------*/ if((XListFonts(XtDisplay(hcallw),CF_GRAFICS,1,&icount)) != NULL) font= XLoadFont(XtDisplay(hcallw),CF_GRAFICS); else { wlog88p(0,LOG_NO_CF_GRAFICS); IALERT= 1; IDEATH= 1; ale88p(AL_NO_CF_GRAFICS); return; } /*---------------------------------------------------------------------------- * die Farben setzen *---------------------------------------------------------------------------*/ strcpy(CO_FARBE,CO_NORMAL); if((setc88(hcallw,0,1)) == 1) return; strcpy(CO_FARBE,CO_DEFLECTED); if((setc88(hcallw,1,1)) == 1) return; strcpy(CO_FARBE,CO_NODES); if((setc88(hcallw,2,1)) == 1) return; strcpy(CO_FARBE,CO_ELEMENTS); if((setc88(hcallw,3,1)) == 1) return; strcpy(CO_FARBE,CO_STRESS0); if((setc88(hcallw,4,1)) == 1) return; strcpy(CO_FARBE,CO_STRESS1); if((setc88(hcallw,5,1)) == 1) return; strcpy(CO_FARBE,CO_STRESS2); if((setc88(hcallw,6,1)) == 1) return; strcpy(CO_FARBE,CO_STRESS3); if((setc88(hcallw,7,1)) == 1) return; strcpy(CO_FARBE,CO_STRESS4); if((setc88(hcallw,8,1)) == 1) return; strcpy(CO_FARBE,CO_STRESS5); if((setc88(hcallw,9,1)) == 1) return; strcpy(CO_FARBE,CO_STRESS6); if((setc88(hcallw,10,1)) == 1) return; strcpy(CO_FARBE,CO_STRESS7); if((setc88(hcallw,11,1)) == 1) return; strcpy(CO_FARBE,CO_STRESS8); if((setc88(hcallw,12,1)) == 1) return; strcpy(CO_FARBE,CO_STRESS9); if((setc88(hcallw,13,1)) == 1) return; strcpy(CO_FARBE,CO_DRAWAR); if((setc88(hcallw,14,1)) == 1) return; /*---------------------------------------------------------------------------- * alte Grafik loeschen *---------------------------------------------------------------------------*/ XFillRectangle(XtDisplay(hcallw),XtWindow(hcallw), hgc[14],IX_DRAWAR,IY_DRAWAR,IW_DRAWAR,IH_DRAWAR); /*---------------------------------------------------------------------------- * los geht's *---------------------------------------------------------------------------*/ /*====================================================================== * Laden der Files Z88I1.TXT, Z88O2.TXT & Z88O5.TXT *=====================================================================*/ if(iflade== ID_NOTLOADSTRUC) /* Z88I1 */ { f4= fopen(cstrn,"r"); if(f4== NULL) { ale88p(AL_NOSTRFI); wlog88p(0,LOG_NOSTRFI); II1_OK= 0 ; /* Z88I1.TXT fehlt */ } else { II1_OK= 1; /* Z88I1.TXT vorhanden */ ialert= ri1x88(); /* Lesen Z88I1.TXT */ if(ialert != 0) { ale88p(ialert); exit(1); } } iflade= ID_LOADSTRUC; if( ifscale == IDM_YESSCALE && ndim == 3) ifansi= IDM_3DIM; if( ifscale == IDM_YESSCALE && ndim == 2) ifansi= IDM_XY; if(f4) fclose(f4); } if(iflaver== ID_NOTLOADVERF && (ifverf== IDM_VERFORMT || ifverf== IDM_UNUNDVERFORMT)) /* Z88I2 */ { f3= fopen(co2,"r"); if(f3== NULL) { ale88p(AL_NOO2); wlog88p(0,LOG_NOO2); IO2_OK= 0 ; /* Z88O2.TXT fehlt */ } else { IO2_OK= 1; /* Z88O2.TXT vorhanden */ ro2x88(); } iflaver= ID_LOADVERF; if(f3) fclose(f3); } if(iflspa== ID_NOTLOADSPANN && iztogg== IDM_SHOWSPANN) /* Z88O5 */ { f6= fopen(co5,"r"); if(f6== NULL) { ale88p(AL_NOO5); wlog88p(0,LOG_NOO5); IO5_OK= 0 ; /* Z88O5.TXT fehlt */ } else { IO5_OK= 1; /* Z88O5.TXT vorhanden */ ialert= ro5x88(); if(ialert != 0) { ale88p(ialert); } } iflspa= ID_LOADSPANN; if(f6) fclose(f6); } /*====================================================================== * ggf. oeffnen des plotterfiles *=====================================================================*/ if(ifdevi== IDM_PLOTTER) { f2= fopen(cintfn,"w+"); if(f2== NULL) { ale88p(AL_NOPLOF); wlog88p(0,LOG_NOPLOF); } } /*====================================================================== * autoscale: wenn kein Z88P.STO oder StrucDiaProc gelaufen *=====================================================================*/ if( ifscale == IDM_YESSCALE && II1_OK == 1) vsca88(); /*====================================================================== * zeichnen *=====================================================================*/ /*--------- unverformt, crt -----------------------------------------*/ if(ifverf== IDM_UNVERFORMT && ifdevi== IDM_CRT && II1_OK== 1) { if(ifansi != IDM_3DIM) vu2b88(); else vu3b88(); vp88(hcallw); if(iztogg== IDM_SHOWSPANN && IO5_OK== 1) { if(ifansi != IDM_3DIM) vu2s88(); else vu3s88(); vgpp88(hcallw); } } /*--------- unverformt, plotter -------------------------------------*/ if(ifverf== IDM_UNVERFORMT && ifdevi== IDM_PLOTTER && II1_OK== 1) { if(ifansi != IDM_3DIM) pu2b88(); else pu3b88(); pp88(); if(iztogg== IDM_SHOWSPANN && IO5_OK== 1) { if(ifansi != IDM_3DIM) pu2s88(); else pu3s88(); pgpp88(); } if(f2) fclose(f2); ale88p(INF_GENPLOT); ifdevi= IDM_CRT; /* InvalidateRect(hWnd,NULL,TRUE); */ } /*--------- verformt, crt -------------------------------------------*/ if(ifverf== IDM_VERFORMT && ifdevi== IDM_CRT && II1_OK== 1 && IO2_OK== 1) { if(ifansi != IDM_3DIM) vv2b88(); else vv3b88(); vp88(hcallw); } /*--------- verformt, plotter ---------------------------------------*/ if(ifverf== IDM_VERFORMT && ifdevi== IDM_PLOTTER && II1_OK== 1 && IO2_OK==1) { if(ifansi != IDM_3DIM) pv2b88(); else pv3b88(); pp88(); if(f2) fclose(f2); ale88p(INF_GENPLOT); ifdevi= IDM_CRT; /* InvalidateRect(hWnd,NULL,TRUE); */ } /*--------- un- und verformt, crt -----------------------------------*/ if(ifverf== IDM_UNUNDVERFORMT && ifdevi== IDM_CRT && II1_OK== 1 && IO2_OK== 1) { ifstala=ID_ENABLELABELS ; ifverf= IDM_UNVERFORMT; if(ifansi != IDM_3DIM) vu2b88(); else vu3b88(); vp88(hcallw); ifstala=ID_DISABLELABELS ; ifverf= IDM_VERFORMT; if(ifansi != IDM_3DIM) vv2b88(); else vv3b88(); vp88(hcallw); ifstala=ID_ENABLELABELS ; ifverf= IDM_UNUNDVERFORMT; } /*--------- un- und verformt, plotter --------------------------------*/ if(ifverf== IDM_UNUNDVERFORMT && ifdevi== IDM_PLOTTER && II1_OK== 1 && IO2_OK== 1) { ifstala=ID_ENABLELABELS ; ifverf= IDM_UNVERFORMT; if(ifansi != IDM_3DIM) pu2b88(); else pu3b88(); pp88(); ifstala=ID_DISABLELABELS ; ifverf= IDM_VERFORMT; if(ifansi != IDM_3DIM) pv2b88(); else pv3b88(); pp88(); ifstala=ID_ENABLELABELS ; ifverf= IDM_UNUNDVERFORMT; if(f2) fclose(f2); ale88p(INF_GENPLOT); ifdevi= IDM_CRT; /* InvalidateRect(hWnd,NULL,TRUE); */ } /*---------------------------------------------------------------------------- * Grafikkontexte freigeben *---------------------------------------------------------------------------*/ for(i = 0;i <= 13;i++) XFreeGC(XtDisplay(hcallw),hgc[i]); /*---------------------------------------------------------------------------- * Font freigeben *---------------------------------------------------------------------------*/ XUnloadFont(XtDisplay(hcallw),font); } /*---------------------------------------------------------------------------- * CB_EXIT *---------------------------------------------------------------------------*/ void CB_EXIT(Widget hcallw,XtPointer data, XmPushButtonCallbackStruct *cbs) { wsto88(); exit(0); } /*---------------------------------------------------------------------------- * CB_YESSCALE *---------------------------------------------------------------------------*/ void CB_YESSCALE(Widget hcallw,XtPointer data, XmPushButtonCallbackStruct *cbs) { extern FR_INT4 izoom; extern int ifscale; ifscale= IDM_YESSCALE; izoom= 1; ivar88(); } /*---------------------------------------------------------------------------- * CB_PRIOR *---------------------------------------------------------------------------*/ void CB_PRIOR(Widget hcallw,XtPointer data, XmPushButtonCallbackStruct *cbs) { extern FR_DOUBLE facx,facy,facz,fzoom; extern FR_INT4 izoom; facx *= fzoom; facy *= fzoom; facz *= fzoom; izoom++; ivar88(); } /*---------------------------------------------------------------------------- * CB_NEXT *---------------------------------------------------------------------------*/ void CB_NEXT(Widget hcallw,XtPointer data, XmPushButtonCallbackStruct *cbs) { extern FR_DOUBLE facx,facy,facz,fzoom; extern FR_INT4 izoom; facx /= fzoom; facy /= fzoom; facz /= fzoom; izoom--; ivar88(); } /*---------------------------------------------------------------------------- * CB_RIGHT *---------------------------------------------------------------------------*/ void CB_RIGHT(Widget hcallw,XtPointer data, XmPushButtonCallbackStruct *cbs) { extern FR_DOUBLE cx,xmax,xmin,fzoom; extern FR_INT4 izoom; extern int ifvcur; if(ifvcur == 0) vcur88(); cx= cx - 0.05*(FR_FABS(xmax) + FR_FABS(xmin))/FR_POW(fzoom,(FR_DOUBLE)izoom); ivar88(); } /*---------------------------------------------------------------------------- * CB_LEFT *---------------------------------------------------------------------------*/ void CB_LEFT(Widget hcallw,XtPointer data, XmPushButtonCallbackStruct *cbs) { extern FR_DOUBLE cx,xmax,xmin,fzoom; extern FR_INT4 izoom; extern int ifvcur; if(ifvcur == 0) vcur88(); cx= cx + 0.05*(FR_FABS(xmax) + FR_FABS(xmin))/FR_POW(fzoom,(FR_DOUBLE)izoom); ivar88(); } /*---------------------------------------------------------------------------- * CB_UP *---------------------------------------------------------------------------*/ void CB_UP(Widget hcallw,XtPointer data, XmPushButtonCallbackStruct *cbs) { extern FR_DOUBLE cy,ymax,ymin,fzoom; extern FR_INT4 izoom; extern int ifvcur; if(ifvcur == 0) vcur88(); cy= cy - 0.05*(FR_FABS(ymax) + FR_FABS(ymin))/FR_POW(fzoom,(FR_DOUBLE)izoom); ivar88(); } /*---------------------------------------------------------------------------- * CB_DOWN *---------------------------------------------------------------------------*/ void CB_DOWN(Widget hcallw,XtPointer data, XmPushButtonCallbackStruct *cbs) { extern FR_DOUBLE cy,ymax,ymin,fzoom; extern FR_INT4 izoom; extern int ifvcur; if(ifvcur == 0) vcur88(); cy= cy + 0.05*(FR_FABS(ymax) + FR_FABS(ymin))/FR_POW(fzoom,(FR_DOUBLE)izoom); ivar88(); } /*---------------------------------------------------------------------------- * CB_HOME *---------------------------------------------------------------------------*/ void CB_HOME(Widget hcallw,XtPointer data, XmPushButtonCallbackStruct *cbs) { extern FR_DOUBLE cz,zmax,zmin,fzoom; extern FR_INT4 izoom; extern int ifvcur; if(ifvcur == 0) vcur88(); cz= cz - 0.05*(FR_FABS(zmax) + FR_FABS(zmin))/FR_POW(fzoom,(FR_DOUBLE)izoom); ivar88(); } /*---------------------------------------------------------------------------- * CB_END *---------------------------------------------------------------------------*/ void CB_END(Widget hcallw,XtPointer data, XmPushButtonCallbackStruct *cbs) { extern FR_DOUBLE cz,zmax,zmin,fzoom; extern FR_INT4 izoom; extern int ifvcur; if(ifvcur == 0) vcur88(); cz= cz + 0.05*(FR_FABS(zmax) + FR_FABS(zmin))/FR_POW(fzoom,(FR_DOUBLE)izoom); ivar88(); } /*---------------------------------------------------------------------------- * CB_F3 *---------------------------------------------------------------------------*/ void CB_F3(Widget hcallw,XtPointer data, XmPushButtonCallbackStruct *cbs) { extern FR_DOUBLE rotx; rotx += 10.; if ((int)rotx == 360) rotx= 0.; ivar88(); } /*---------------------------------------------------------------------------- * CB_F2 *---------------------------------------------------------------------------*/ void CB_F2(Widget hcallw,XtPointer data, XmPushButtonCallbackStruct *cbs) { extern FR_DOUBLE rotx; rotx -= 10.; if ((int)rotx == -10) rotx= 350.; ivar88(); } /*---------------------------------------------------------------------------- * CB_F5 *---------------------------------------------------------------------------*/ void CB_F5(Widget hcallw,XtPointer data, XmPushButtonCallbackStruct *cbs) { extern FR_DOUBLE roty; roty += 10.; if ((int)roty == 360) roty= 0.; ivar88(); } /*---------------------------------------------------------------------------- * CB_F4 *---------------------------------------------------------------------------*/ void CB_F4(Widget hcallw,XtPointer data, XmPushButtonCallbackStruct *cbs) { extern FR_DOUBLE roty; roty -= 10.; if ((int)roty == -10) roty= 350.; ivar88(); } /*---------------------------------------------------------------------------- * CB_F7 *---------------------------------------------------------------------------*/ void CB_F7(Widget hcallw,XtPointer data, XmPushButtonCallbackStruct *cbs) { extern FR_DOUBLE rotz; rotz += 10.; if ((int)rotz == 360) rotz= 0.; ivar88(); } /*---------------------------------------------------------------------------- * CB_F6 *---------------------------------------------------------------------------*/ void CB_F6(Widget hcallw,XtPointer data, XmPushButtonCallbackStruct *cbs) { extern FR_DOUBLE rotz; rotz -= 10.; if ((int)rotz == -10) rotz= 350.; ivar88(); } /*---------------------------------------------------------------------------- * CB_F8 *---------------------------------------------------------------------------*/ void CB_F8(Widget hcallw,XtPointer data, XmPushButtonCallbackStruct *cbs) { extern FR_DOUBLE rotx,roty,rotz; rotx= 0.; roty= 0.; rotz= 0.; ivar88(); } /*---------------------------------------------------------------------------- * CB_SHOWSPANN *---------------------------------------------------------------------------*/ void CB_SHOWSPANN(Widget hcallw,XtPointer data, XmPushButtonCallbackStruct *cbs) { extern int iztogg; extern int iflspa; extern int IO5_OK; if(iztogg == IDM_NOSHOWSPANN) iztogg= IDM_SHOWSPANN; else iztogg= IDM_NOSHOWSPANN; if(iztogg== IDM_SHOWSPANN && iflspa== ID_LOADSPANN && IO5_OK== 0) { iztogg= IDM_NOSHOWSPANN; ale88p(AL_NOO5); wlog88p(0,LOG_NOO5); } ivar88(); } /*---------------------------------------------------------------------------- * CB_PLOTTER *---------------------------------------------------------------------------*/ void CB_PLOTTER(Widget hcallw,XtPointer data, XmPushButtonCallbackStruct *cbs) { extern int ifdevi; ifdevi= IDM_PLOTTER; ivar88(); } /*---------------------------------------------------------------------------- * CB_STRUKTUR *---------------------------------------------------------------------------*/ void CB_STRUKTUR(Widget hcallw,XtPointer data, XmToggleButtonCallbackStruct *cbs) { extern int ifverf; extern int iflaver; extern int IO2_OK; extern int ITRADIO; if(cbs->set) ifverf= (int)data; if(ITRADIO== 0) ITRADIO= 1; /* Damit Fehlermeldung nicht 2x kommt */ else ITRADIO= 0; /* Radiobox laeuft 2x pro Umschaltung */ if((ifverf== IDM_VERFORMT || ifverf== IDM_UNUNDVERFORMT) && iflaver== ID_LOADVERF && IO2_OK== 0 && ITRADIO== 1) { ale88p(AL_NOO2); wlog88p(0,LOG_NOO2); } ivar88(); } /*---------------------------------------------------------------------------- * CB_ANSICHT *---------------------------------------------------------------------------*/ void CB_ANSICHT(Widget hcallw,XtPointer data, XmToggleButtonCallbackStruct *cbs) { extern int ifansi; if(cbs->set) ifansi= (int)data; ivar88(); } /*---------------------------------------------------------------------------- * CB_LABELS *---------------------------------------------------------------------------*/ void CB_LABELS(Widget hcallw,XtPointer data, XmToggleButtonCallbackStruct *cbs) { extern int iflabe; if(cbs->set) iflabe= (int)data; ivar88(); } /*---------------------------------------------------------------------------- * CB_STRUKTURFILE *---------------------------------------------------------------------------*/ void CB_STRUKTURFILE(Widget hcallw,XtPointer data, XmTextVerifyCallbackStruct *cbs) { extern Widget hw[]; extern int iflade,iflaver,iflspa,ifscale; extern char cstrn[]; char *cdummy1; cdummy1= XmTextFieldGetString(hw[21]); strcpy(cstrn,cdummy1); XtFree(cdummy1); iflade = ID_NOTLOADSTRUC; iflaver= ID_NOTLOADVERF; iflspa = ID_NOTLOADSPANN; ifscale= IDM_YESSCALE; ivar88(); } /*---------------------------------------------------------------------------- * CB_INTERFACE *---------------------------------------------------------------------------*/ void CB_INTERFACE(Widget hcallw,XtPointer data, XmTextVerifyCallbackStruct *cbs) { extern Widget hw[]; extern char cintfn[]; char *cdummy2; cdummy2= XmTextFieldGetString(hw[23]); strcpy(cintfn,cdummy2); XtFree(cdummy2); ivar88(); } /*---------------------------------------------------------------------------- * CB_FUX *---------------------------------------------------------------------------*/ void CB_FUX(Widget hcallw,XtPointer data, XmTextVerifyCallbackStruct *cbs) { extern FR_DOUBLE fux; char *cfux; cfux= XmTextFieldGetString(hcallw); fux= (FR_DOUBLE)atof(cfux); XtFree(cfux); ivar88(); } /*---------------------------------------------------------------------------- * CB_FUY *---------------------------------------------------------------------------*/ void CB_FUY(Widget hcallw,XtPointer data, XmTextVerifyCallbackStruct *cbs) { extern FR_DOUBLE fuy; char *cfuy; cfuy= XmTextFieldGetString(hcallw); fuy= (FR_DOUBLE)atof(cfuy); XtFree(cfuy); ivar88(); } /*---------------------------------------------------------------------------- * CB_FUZ *---------------------------------------------------------------------------*/ void CB_FUZ(Widget hcallw,XtPointer data, XmTextVerifyCallbackStruct *cbs) { extern FR_DOUBLE fuz; char *cfuz; cfuz= XmTextFieldGetString(hcallw); fuz= (FR_DOUBLE)atof(cfuz); XtFree(cfuz); ivar88(); } /*---------------------------------------------------------------------------- * CB_FXCOR *---------------------------------------------------------------------------*/ void CB_FXCOR(Widget hcallw,XtPointer data, XmTextVerifyCallbackStruct *cbs) { extern FR_DOUBLE fxcor; char *cfxcor; cfxcor= XmTextFieldGetString(hcallw); fxcor= (FR_DOUBLE)atof(cfxcor); XtFree(cfxcor); ivar88(); } /*---------------------------------------------------------------------------- * CB_REGEN *---------------------------------------------------------------------------*/ void CB_REGEN(Widget hcallw,XtPointer data, XmPushButtonCallbackStruct *cbs) { extern Widget hw[]; extern FR_DOUBLE fux,fuy,fuz,fxcor; extern FR_INT4 izoom; extern int iflade,iflaver,iflspa,ifscale; extern char cstrn[],cintfn[]; char *cdummy1,*cdummy2,*cfux,*cfuy,*cfuz,*cfxcor; cdummy1= XmTextFieldGetString(hw[21]); strcpy(cstrn,cdummy1); cdummy2= XmTextFieldGetString(hw[23]); strcpy(cintfn,cdummy2); cfux= XmTextFieldGetString(hw[42]); fux= (FR_DOUBLE)atof(cfux); cfuy= XmTextFieldGetString(hw[44]); fuy= (FR_DOUBLE)atof(cfuy); cfuz= XmTextFieldGetString(hw[46]); fuz= (FR_DOUBLE)atof(cfuz); cfxcor= XmTextFieldGetString(hw[48]); fxcor= (FR_DOUBLE)atof(cfxcor); XtFree(cdummy1); XtFree(cdummy2); XtFree(cfux); XtFree(cfuy); XtFree(cfuz); XtFree(cfxcor); iflade = ID_NOTLOADSTRUC; iflaver= ID_NOTLOADVERF; iflspa = ID_NOTLOADSPANN; ifscale= IDM_YESSCALE; izoom= 1; ivar88(); } /*---------------------------------------------------------------------------- * CB_OK *---------------------------------------------------------------------------*/ void CB_OK(Widget hcallw,XtPointer data, XmPushButtonCallbackStruct *cbs) { extern int IALERT, IDEATH; if(IDEATH == 1) exit(1); /* Das war Ihr Leben */ IALERT= 0; }