/*********************************************************************** * * ***** *** *** * * * * * * * * *** *** * * * * * * * ***** *** *** * * 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. ***********************************************************************/ /*********************************************************************** * Z88O fuer X11 * 9.2.2004 Rieg ***********************************************************************/ /*********************************************************************** * Includes ***********************************************************************/ /*---------------------------------------------------------------------------- * UNIX *---------------------------------------------------------------------------*/ #ifdef FR_UNIX #include #include #include #include #include #include #include #include #endif /*********************************************************************** * globale Variable, speziell fuer X11 ***********************************************************************/ Widget hmain; /* das oberste Widget */ Widget hform; /* Form-Widget, Kind von hmain */ Widget hw[67]; /* alle anderen Widgets, Kinder von hform */ /*---------------------------------------------------------------------- * Definition der Widgets *---------------------------------------------------------------------*/ /*---------------------------------------------------------------------- * [0] WER [1] EXIT [2] AUTOS [3] ZOOM+ [4] ZOOM- * [17] ROT 0 [49] LOS [66] M/PB * [5] X+ [6] X- [7] Y+ [8] Y- [9] Z+ [10] Z- * [11] RX+ [12] RX- [13] RY+ [14] RY- [15] RZ+ [16] RZ- * * [24] Frame STRUKTUR * [25] Unverformt * [26] Verformt * [28] Radio STRUKTUR * * [29] Frame ANSICHT * [30] Licht * [31] Hidden * [32] Vergleichsspannungen Ecken * [33] Vergleichsspannungen Mittelwert * [18] Verschiebungen X * [19] Verschiebungen Y * [27] Verschiebungen Z * [34] Radio ANSICHT * * [35] Frame LABELS * [36] No Labels [37] Knoten [38] Elemente * [40] Radio LABELS * * [57] Frame FACXYZ * [58] RowCol FACXYZ * [41] Label FUX [42] Textf FUX * [43] Label FUY [44] Textf FUY * [45] Label FUZ [46] Textf FUZ * * [22] Frame FROMTO * [23] RowCol FROMTO * [61] Label from [62] Textf from * [63] Label to [64] Textf to * [59] Frame ZLIMIT * [60] RowCol ZLIMIT * [47] Label ZLIMIT [48] Textf ZLIMIT * * [50] PAINT * [65] Frame fuer PAINT * [51] Frame obere Ta [52] RowCol obere Ta * [53] Frame untere Ta [54] RowCol untere Ta * * [55] Frame STRUFILE * [56] RowCol STRUFILE * [20] Label STRUFILE [21] Textf STRUFILE * *---------------------------------------------------------------------*/ XVisualInfo *xvi; /* VisualInfo */ GLXContext GLC; /* Grafik- Context fuer OpenGL */ int IBELL; /* Wert XBell */ int IX_WINDOW,IY_WINDOW,IW_WINDOW,IH_WINDOW; /* das ganze Z88O */ int IX_UPBROW,IY_UPBROW,IW_UPBROW,IH_UPBROW; /* RC obere Tastenr. */ int IX_LPBROW,IY_LPBROW,IW_LPBROW,IH_LPBROW; /* RC untere Tastenr.*/ int IX_RBSTRUC,IY_RBSTRUC,IW_RBSTRUC,IH_RBSTRUC; /* Radio STRUKTUR */ int IX_RBVIEW,IY_RBVIEW,IW_RBVIEW,IH_RBVIEW; /* Radio ANSICHT */ int IX_RBLABEL,IY_RBLABEL,IW_RBLABEL,IH_RBLABEL; /* Radio LABELS */ int IX_RCSPLOT,IY_RCSPLOT,IW_RCSPLOT,IH_RCSPLOT,NC_RCSPLOT;/* RC Files*/ int IX_RCFXYZ,IY_RCFXYZ,IW_RCFXYZ,IH_RCFXYZ,NC_RCFXYZ; /* RC FACXXZ */ int IX_RCFRTO,IY_RCFRTO,IW_RCFRTO,IH_RCFRTO,NC_RCFRTO; /* RC from-to */ int IX_RCFXCOR,IY_RCFXCOR,IW_RCFXCOR,IH_RCFXCOR,NC_RCFXCOR;/* RC FXCOR*/ int IX_DRAWAR,IY_DRAWAR,IW_DRAWAR,IH_DRAWAR; /* Drawing Area */ char CF_BUTTONS[128],CF_ENTRIES[128],CF_GRAFICS[128]; /* Fonts Win+Gra*/ char CO_FOREGR[128],CO_BACKGR[128],CO_ENTRIES[128]; /* Farben Window*/ /*********************************************************************** * Functions, speziell fuer X11 ***********************************************************************/ void Z88O_WindowProc(void); void CB_WER (Widget hcallw, XtPointer data, XmPushButtonCallbackStruct *cbs); void CB_EXIT (Widget hcallw, XtPointer data, XmPushButtonCallbackStruct *cbs); void CB_YESSCALE (Widget hcallw, XtPointer data, XmPushButtonCallbackStruct *cbs); void CB_PRIOR (Widget hcallw, XtPointer data, XmPushButtonCallbackStruct *cbs); void CB_NEXT (Widget hcallw, XtPointer data, XmPushButtonCallbackStruct *cbs); void CB_RIGHT (Widget hcallw, XtPointer data, XmPushButtonCallbackStruct *cbs); void CB_LEFT (Widget hcallw, XtPointer data, XmPushButtonCallbackStruct *cbs); void CB_UP (Widget hcallw, XtPointer data, XmPushButtonCallbackStruct *cbs); void CB_DOWN (Widget hcallw, XtPointer data, XmPushButtonCallbackStruct *cbs); void CB_HOME (Widget hcallw, XtPointer data, XmPushButtonCallbackStruct *cbs); void CB_END (Widget hcallw, XtPointer data, XmPushButtonCallbackStruct *cbs); void CB_F3 (Widget hcallw, XtPointer data, XmPushButtonCallbackStruct *cbs); void CB_F2 (Widget hcallw, XtPointer data, XmPushButtonCallbackStruct *cbs); void CB_F5 (Widget hcallw, XtPointer data, XmPushButtonCallbackStruct *cbs); void CB_F4 (Widget hcallw, XtPointer data, XmPushButtonCallbackStruct *cbs); void CB_F7 (Widget hcallw, XtPointer data, XmPushButtonCallbackStruct *cbs); void CB_F6 (Widget hcallw, XtPointer data, XmPushButtonCallbackStruct *cbs); void CB_F8 (Widget hcallw, XtPointer data, XmPushButtonCallbackStruct *cbs); void CB_STRUKTUR (Widget hcallw, XtPointer data, XmToggleButtonCallbackStruct *cbs); void CB_3D (Widget hcallw, XtPointer data, XmToggleButtonCallbackStruct *cbs); void CB_LABELS (Widget hcallw, XtPointer data, XmToggleButtonCallbackStruct *cbs); void CB_STRUKTURFILE (Widget hcallw, XtPointer data, XmTextVerifyCallbackStruct *cbs); void CB_FROM (Widget hcallw, XtPointer data, XmTextVerifyCallbackStruct *cbs); void CB_TO (Widget hcallw, XtPointer data, XmTextVerifyCallbackStruct *cbs); void CB_FUX (Widget hcallw, XtPointer data, XmTextVerifyCallbackStruct *cbs); void CB_FUY (Widget hcallw, XtPointer data, XmTextVerifyCallbackStruct *cbs); void CB_FUZ (Widget hcallw, XtPointer data, XmTextVerifyCallbackStruct *cbs); void CB_ZLIMIT (Widget hcallw, XtPointer data, XmTextVerifyCallbackStruct *cbs); void CB_RUN (Widget hcallw, XtPointer data, XmPushButtonCallbackStruct *cbs); void CB_MAPB (Widget hcallw, XtPointer data, XmPushButtonCallbackStruct *cbs); void CB_INITG (Widget hcallw,Cardinal data, GLwDrawingAreaCallbackStruct *cbs); void EH_MATA1 (Widget hcallw, XtPointer data, XEvent *xevent); void EH_MATA2 (Widget hcallw, XtPointer data, XEvent *xevent); void EH_MATA3 (Widget hcallw, XtPointer data, XEvent *xevent); void CB_RESIZE (Widget hcallw,Cardinal data, GLwDrawingAreaCallbackStruct *cbs); void CB_PAINT (Widget hcallw,Cardinal data, GLwDrawingAreaCallbackStruct *cbs); /*********************************************************************** * Function-Declarationen ***********************************************************************/ int dyn88o(void); void ri1x88(void); int ro2x88(void); int ro8x88(void); int rcoo88(void); int wlog88o(FR_INT4,int); int ale88o(int); int lan88o(void); int vu3b88(void); int vv3b88(void); int vsca88(void); int vcur88(void); int stro88(void); int snow88(void); int fvx88(void); int fvy88(void); int fvz88(void); int tet188(void); int tet288(void); int tet388(void); int tet488(void); int tet588(void); int fsca88(void); int malk88(void); /*********************************************************************** * globale Variable ***********************************************************************/ FILE *fdyn,*fwlo,*fi1,*fo2,*fo8; /* ** fdyn= z88.dyn ** fwlo= z88o.log ** fo2= z88o2.txt ** fi1= z88i1.txt ** fo8= z88o8.txt */ FR_DOUBLEAY x; FR_DOUBLEAY y; FR_DOUBLEAY z; FR_DOUBLEAY ux; FR_DOUBLEAY uy; FR_DOUBLEAY uz; FR_DOUBLEAY xv; FR_DOUBLEAY yv; FR_DOUBLEAY zv; FR_DOUBLEAY sep; FR_DOUBLEAY sne; FR_INT4AY koi; FR_INT4AY ityp; FR_INT4AY koffs; FR_INT4AY iep; FR_INT4AY ifarbe; FR_INT4AY jfarbe; FR_DOUBLE xe[9]; FR_DOUBLE ye[9]; FR_DOUBLE ze[9]; FR_DOUBLE vx[13]; FR_DOUBLE vy[13]; FR_DOUBLE vz[13]; FR_DOUBLE fspa[10]; FR_INT4 kf[9]; GLfloat rot[9]; GLfloat gruen[9]; GLfloat blau[9]; GLfloat back_col[4]; GLfloat specula0[4]; GLfloat specula1[4]; GLfloat specula2[4]; GLfloat ambient0[4]; GLfloat ambient1[4]; GLfloat diffuse0[4]; GLfloat diffuse1[4]; GLfloat positio0[4]; GLfloat positio1[4]; GLfloat positio2[4]; GLfloat spec_mat[4]; GLfloat diff_mat[4]; GLfloat shine[1]; GLfloat hide_col[3]; GLfloat hide_off[2]; GLfloat node_col[3]; GLfloat elem_col[3]; FR_DOUBLE xx= 0., yy= 0.; FR_DOUBLE rx= 0., ry= 0., rz= 0., s= 1., tx= 0., ty= 0.; FR_DOUBLE xm= -100.0, xp= 100.0; FR_DOUBLE ym= -85.0, yp= 85.0; /* ausmessen ! */ FR_DOUBLE zm= -100.0, zp= 100.0; FR_DOUBLE xw= 100.; FR_DOUBLE fux= 100., fuy= 100., fuz= 100.; FR_DOUBLE facx= 1.,facy= 1.,facz= 1.; FR_DOUBLE cx= 0.,cy= 0.,cz= 0.; FR_DOUBLE rotx= 0.,roty= 0.,rotz= 0.; FR_DOUBLE xmin,xmax,ymin,ymax,zmin,zmax,fycor; FR_DOUBLE fzoom= 1.1; FR_DOUBLE sigmin,sigmax=0.,siginc; FR_DOUBLE snemin,snemax=0.,sneinc; FR_DOUBLE fxmin,fxmax=-1e-88,fxinc; FR_DOUBLE fymin,fymax=-1e-88,fyinc; FR_DOUBLE fzmin,fzmax=-1e-88,fzinc; FR_INT4 MAXKOI,MAXE,MAXK; FR_INT4 IDYNMEM,LANG; FR_INT4 ndim,nkp,ne,nfg,neg,iepanz,kflag,ibflag,ipflag; FR_INT4 i,j,idummy,jdummy,kofold; FR_INT4 izoom= 1; FR_INT4 jkvon= 0,jkbis= 0,jevon= 0,jebis= 0,jfrom=0,jto=0; int iflade= ID_NOTLOADSTRUC; int iflaver=ID_NOTLOADVERF; int iflspa= ID_NOTLOADSPANN; int ifkom= ID_FUNKEY; int ifmaus= IDM_ZOOM; int ifverf= IDM_UNVERFORMT; int if3d = IDM_LIGHT; int iflabe= IDM_NOLABELS; int ifscale=IDM_YESSCALE; int ifvcur; int iret,iplot; int IB,IH; int imatrix=1; size_t laenge; char cline[256]; char cdyn[8] = "z88.dyn"; char clog[12] = "z88o.log"; char cstrn[32] = "z88i1.txt"; char co2[10] = "z88o2.txt"; char co8[10] = "z88o8.txt"; char cfname[256]; char ctname[256]; /*-------------------------------------------------------------------------- * Char-Arrays *-------------------------------------------------------------------------*/ char cstore[256]; char cbcall[128]; char cbpref[128]; char cbhelp[512]; char cmess [256]; /*-------------------------------------------------------------------------- * Ladewerte *-------------------------------------------------------------------------*/ int II1_OK= 0; int IO2_OK= 0; int IO8_OK= 0; /*-------------------------------------------------------------------------- * Achtung *-------------------------------------------------------------------------*/ int IALERT= 0; /* 1: Gefahr,sperrt CB_PAINT,wird in CB_OK wieder zu 0 */ int IDEATH= 0; /* 1: STOP,wird in CB_OK(Callback von ale88o) geprueft */ /*-------------------------------------------------------------------------- * Vordergrund, Hintergrund fuer Buttons *-------------------------------------------------------------------------*/ Pixel fg,bg,eg; /*********************************************************************** * Hauptprogramm ***********************************************************************/ int main(int argc,char **argv) { extern Widget hmain,hform; XtAppContext app_context; /*---------------------------------------------------------------------- * Los geht's *---------------------------------------------------------------------*/ hmain= XtAppInitialize(&app_context, "z88o",NULL,0,&argc,argv,NULL,NULL,0); Z88O_WindowProc(); XtManageChild(hform); XtRealizeWidget(hmain); XtAppMainLoop(app_context); } /*********************************************************************** * Window- Procedure ***********************************************************************/ void Z88O_WindowProc(void) { extern Widget hform; extern Widget hw[]; extern FR_INT4 LANG; extern int IX_WINDOW,IY_WINDOW,IW_WINDOW,IH_WINDOW; extern int IX_UPBROW,IY_UPBROW,IW_UPBROW,IH_UPBROW; extern int IX_LPBROW,IY_LPBROW,IW_LPBROW,IH_LPBROW; extern int IX_RBSTRUC,IY_RBSTRUC,IW_RBSTRUC,IH_RBSTRUC; extern int IX_RBVIEW,IY_RBVIEW,IW_RBVIEW,IH_RBVIEW; extern int IX_RBLABEL,IY_RBLABEL,IW_RBLABEL,IH_RBLABEL; extern int IX_RCSPLOT,IY_RCSPLOT,IW_RCSPLOT,IH_RCSPLOT,NC_RCSPLOT; extern int IX_RCFXYZ,IY_RCFXYZ,IW_RCFXYZ,IH_RCFXYZ,NC_RCFXYZ; extern int IX_RCFXCOR,IY_RCFXCOR,IW_RCFXCOR,IH_RCFXCOR,NC_RCFXCOR; extern int IX_DRAWAR,IY_DRAWAR,IW_DRAWAR,IH_DRAWAR; extern int IALERT; extern char CF_BUTTONS[],CF_ENTRIES[]; extern char CO_FOREGR[],CO_BACKGR[],CO_ENTRIES[]; extern Pixel fg,bg,eg; XColor RGBColor, HwColor; Colormap cmap; Arg args[40]; Cardinal n; XmFontListEntry entry1,entry2; XmFontList fontlist; XmString cxstring = NULL; int iret; char cstring[256]; /*---------------------------------------------------------------------- * lan88o starten * Muss als erstes sein, weil hier Z88O.LOG geoeffnet wird *---------------------------------------------------------------------*/ iret= lan88o(); if(iret != 0) { fprintf(stderr,"File Z88O.LOG is invalid or wrong! STOP !\n"); exit(1); } /*---------------------------------------------------------------------- * Z88.FCD einlesen. rcoo88 nutzt intern wlog88o. * Muss vor Form- Widget gestartet werden, um Dimensionen zu erhalten *---------------------------------------------------------------------*/ iret= rcoo88(); if(iret != 0) { if(LANG == 1) fprintf(stderr,"Datei Z88.FCD is ungueltig oder falsch! STOP !\n"); if(LANG == 2) fprintf(stderr,"File Z88.FCD is invalid or wrong! STOP !\n"); exit(1); } ym*= fycor; yp*= fycor; /*---------------------------------------------------------------------- * Form-Widget, Basis fuer den Rest *---------------------------------------------------------------------*/ n = 0; XtSetArg(args[n], XmNx, IX_WINDOW); n++; XtSetArg(args[n], XmNy, IY_WINDOW); n++; XtSetArg(args[n], XmNwidth, IW_WINDOW); n++; XtSetArg(args[n], XmNheight, IH_WINDOW); n++; hform = XmCreateForm(hmain, "hform", args, n); XtManageChild(hform); /*---------------------------------------------------------------------- * Fonts laden * Hier wird folgender Effekt ausgenutzt: Fuer die Funktion * XmTextFieldSetString bei den Textfields kann kein Tag angegeben * werden, weil das keine Compound- Strings sind. Fuer das Widget * XmCreateTextField kann nur eine Fontlist angeben werden. Anscheinend * wird dann der erste Eintrag der Fontlist gezogen. Daher keine weitere * Verwendung von cf_entries *---------------------------------------------------------------------*/ entry1= XmFontListEntryLoad( XtDisplay(hmain),CF_ENTRIES,XmFONT_IS_FONT,"cf_entries"); if(entry1 == NULL) { wlog88o(0,LOG_NO_CF_ENTRIES); IALERT= 1; IDEATH= 1; ale88o(AL_NO_CF_ENTRIES); } entry2= XmFontListEntryLoad( XtDisplay(hmain),CF_BUTTONS,XmFONT_IS_FONT,"cf_buttons"); if(entry2 == NULL) { wlog88o(0,LOG_NO_CF_BUTTONS); IALERT= 1; IDEATH= 1; ale88o(AL_NO_CF_BUTTONS); } fontlist= XmFontListAppendEntry(NULL, entry1); fontlist= XmFontListAppendEntry(fontlist,entry2); XmFontListEntryFree(&entry1); XmFontListEntryFree(&entry2); /*---------------------------------------------------------------------- * Farben laden *---------------------------------------------------------------------*/ cmap= DefaultColormap(XtDisplay(hmain),DefaultScreen(XtDisplay(hmain))); if(XAllocNamedColor(XtDisplay(hmain),cmap,CO_BACKGR,&RGBColor,&HwColor)) bg= HwColor.pixel; else { wlog88o(0,LOG_NO_CO_BACKGR); IALERT= 1; IDEATH= 1; ale88o( AL_NO_CO_BACKGR); } if(XAllocNamedColor(XtDisplay(hmain),cmap,CO_FOREGR,&RGBColor,&HwColor)) fg= HwColor.pixel; else { wlog88o(0,LOG_NO_CO_FOREGR); IALERT= 1; IDEATH= 1; ale88o( AL_NO_CO_FOREGR); } if(XAllocNamedColor(XtDisplay(hmain),cmap,CO_ENTRIES,&RGBColor,&HwColor)) eg= HwColor.pixel; else { wlog88o(0,LOG_NO_CO_ENTRIES); IALERT= 1; IDEATH= 1; ale88o( AL_NO_CO_ENTRIES); } /*---------------------------------------------------------------------- * dyn88o starten *---------------------------------------------------------------------*/ iret= dyn88o(); if(iret != 0) { IALERT= 1; IDEATH= 1; ale88o(iret); } /*---------------------------------------------------------------------- * Obere PushButton- Reihe *---------------------------------------------------------------------*/ /*====================================================================== * Frame *=====================================================================*/ n = 0; XtSetArg(args[n], XmNleftAttachment, XmATTACH_SELF); n++; XtSetArg(args[n], XmNx, IX_UPBROW); n++; XtSetArg(args[n], XmNtopAttachment, XmATTACH_SELF); n++; XtSetArg(args[n], XmNy, IY_UPBROW); n++; XtSetArg(args[n], XmNrightAttachment, XmATTACH_SELF); n++; XtSetArg(args[n], XmNwidth, IW_UPBROW); n++; XtSetArg(args[n], XmNbottomAttachment, XmATTACH_SELF); n++; XtSetArg(args[n], XmNheight, IH_UPBROW); n++; XtSetArg(args[n], XmNshadowType, XmSHADOW_IN); n++; hw[51]= XmCreateFrame(hform, "hw[51]", args, n); XtManageChild(hw[51]); /*====================================================================== * RowColumn *=====================================================================*/ n=0; XtSetArg(args[n], XmNleftAttachment, XmATTACH_SELF); n++; XtSetArg(args[n], XmNx, IX_UPBROW); n++; XtSetArg(args[n], XmNtopAttachment, XmATTACH_SELF); n++; XtSetArg(args[n], XmNy, IY_UPBROW); n++; XtSetArg(args[n], XmNrightAttachment, XmATTACH_SELF); n++; XtSetArg(args[n], XmNwidth, IW_UPBROW); n++; XtSetArg(args[n], XmNbottomAttachment, XmATTACH_SELF); n++; XtSetArg(args[n], XmNheight, IH_UPBROW); n++; XtSetArg(args[n], XmNadjustLast, FALSE); n++; XtSetArg(args[n], XmNnumColumns,1); n++; XtSetArg(args[n], XmNorientation, XmHORIZONTAL); n++; XtSetArg(args[n], XmNpacking, XmPACK_COLUMN); n++; XtSetArg(args[n], XmNresizeHeight, FALSE ); n++; XtSetArg(args[n], XmNresizeWidth, FALSE); n++; /* XtSetArg(args[n], XmNbackground, bg); n++; geht, ist aber bloed */ hw[52] = XmCreateRowColumn(hw[51], "hw[52]", args, n); /*====================================================================== * Info PB_WER *=====================================================================*/ n = 0; cxstring = XmStringCreateLtoR(" Info", "cf_buttons"); XtSetArg(args[n], XmNlabelString, cxstring); n++; XtSetArg(args[n], XmNfontList, fontlist); n++; XtSetArg(args[n], XmNbackground, bg); n++; XtSetArg(args[n], XmNforeground, fg); n++; hw[0] = XmCreatePushButton(hw[52], "hw[0]", args, n); XtManageChild(hw[0]); XtAddCallback( hw[0],XmNactivateCallback,(XtCallbackProc) CB_WER,(XtPointer)NULL); /*====================================================================== * Ende PB_EXIT *=====================================================================*/ n = 0; if(LANG == 1) strcpy(cstring," Ende"); if(LANG == 2) strcpy(cstring," Exit"); cxstring = XmStringCreateLtoR(cstring, "cf_buttons"); XtSetArg(args[n], XmNlabelString, cxstring); n++; XtSetArg(args[n], XmNfontList, fontlist); n++; XtSetArg(args[n], XmNbackground, bg); n++; XtSetArg(args[n], XmNforeground, fg); n++; hw[1] = XmCreatePushButton(hw[52], "hw[1]", args, n); XtManageChild(hw[1]); XtAddCallback( hw[1],XmNactivateCallback,(XtCallbackProc) CB_EXIT,(XtPointer)NULL); /*====================================================================== * Autoscale PB_YESAUTOSCALE *=====================================================================*/ n = 0; cxstring = XmStringCreateLtoR("AutoS", "cf_buttons"); XtSetArg(args[n], XmNlabelString, cxstring); n++; XtSetArg(args[n], XmNfontList, fontlist); n++; XtSetArg(args[n], XmNbackground, bg); n++; XtSetArg(args[n], XmNforeground, fg); n++; hw[2] = XmCreatePushButton(hw[52], "hw[2]", args, n); XtManageChild(hw[2]); XtAddCallback( hw[2],XmNactivateCallback,(XtCallbackProc) CB_YESSCALE,(XtPointer)NULL); /*====================================================================== * Zoom + : PB_PRIOR *=====================================================================*/ n = 0; cxstring = XmStringCreateLtoR("+ Zoom", "cf_buttons"); XtSetArg(args[n], XmNlabelString, cxstring); n++; XtSetArg(args[n], XmNfontList, fontlist); n++; XtSetArg(args[n], XmNbackground, bg); n++; XtSetArg(args[n], XmNforeground, fg); n++; hw[3] = XmCreatePushButton(hw[52], "hw[3]", args, n); XtManageChild(hw[3]); XtAddCallback( hw[3],XmNactivateCallback,(XtCallbackProc) CB_PRIOR,(XtPointer)NULL); /*====================================================================== * Zoom - : PB_NEXT *=====================================================================*/ n = 0; cxstring = XmStringCreateLtoR("- Zoom", "cf_buttons"); XtSetArg(args[n], XmNlabelString, cxstring); n++; XtSetArg(args[n], XmNfontList, fontlist); n++; XtSetArg(args[n], XmNbackground, bg); n++; XtSetArg(args[n], XmNforeground, fg); n++; hw[4] = XmCreatePushButton(hw[52], "hw[4]", args, n); XtManageChild(hw[4]); XtAddCallback( hw[4],XmNactivateCallback,(XtCallbackProc) CB_NEXT,(XtPointer)NULL); /*====================================================================== * Rot 0 : PB_F8 *=====================================================================*/ n = 0; cxstring = XmStringCreateLtoR("Rot 0", "cf_buttons"); XtSetArg(args[n], XmNlabelString, cxstring); n++; XtSetArg(args[n], XmNfontList, fontlist); n++; XtSetArg(args[n], XmNbackground, bg); n++; XtSetArg(args[n], XmNforeground, fg); n++; hw[17] = XmCreatePushButton(hw[52], "hw[17]", args, n); XtManageChild(hw[17]); XtAddCallback( hw[17],XmNactivateCallback,(XtCallbackProc) CB_F8,(XtPointer)NULL); /*====================================================================== * Maus oder Pushbuttons zum Zoomen-Schieben-Rotieren : PB_MAPB *=====================================================================*/ n = 0; if(LANG == 1) strcpy(cstring,"Pushbu"); if(LANG == 2) strcpy(cstring,"Pushbu"); cxstring = XmStringCreateLtoR(cstring, "cf_buttons"); XtSetArg(args[n], XmNlabelString, cxstring); n++; XtSetArg(args[n], XmNfontList, fontlist); n++; XtSetArg(args[n], XmNbackground, bg); n++; XtSetArg(args[n], XmNforeground, fg); n++; hw[66] = XmCreatePushButton(hw[52], "hw[66]", args, n); XtManageChild(hw[66]); XtAddCallback(hw[66],XmNactivateCallback, (XtCallbackProc) CB_MAPB,(XtPointer)NULL); /*====================================================================== * Run : PB_RUN *=====================================================================*/ n = 0; if(LANG == 1) strcpy(cstring,""); if(LANG == 2) strcpy(cstring,""); cxstring = XmStringCreateLtoR(cstring, "cf_buttons"); XtSetArg(args[n], XmNlabelString, cxstring); n++; XtSetArg(args[n], XmNfontList, fontlist); n++; XtSetArg(args[n], XmNbackground, bg); n++; XtSetArg(args[n], XmNforeground, fg); n++; hw[49] = XmCreatePushButton(hw[52], "hw[49]", args, n); XtManageChild(hw[49]); XtAddCallback(hw[49],XmNactivateCallback, (XtCallbackProc) CB_RUN,(XtPointer)NULL); XtManageChild(hw[52]); /* das RowColumn obere Tastenreihe */ /*---------------------------------------------------------------------- * untere Tastenreihe *---------------------------------------------------------------------*/ /*====================================================================== * Frame *=====================================================================*/ n = 0; XtSetArg(args[n], XmNleftAttachment, XmATTACH_SELF); n++; XtSetArg(args[n], XmNx, IX_LPBROW); n++; XtSetArg(args[n], XmNtopAttachment, XmATTACH_SELF); n++; XtSetArg(args[n], XmNy, IY_LPBROW); n++; XtSetArg(args[n], XmNrightAttachment, XmATTACH_SELF); n++; XtSetArg(args[n], XmNwidth, IW_LPBROW); n++; XtSetArg(args[n], XmNbottomAttachment, XmATTACH_SELF); n++; XtSetArg(args[n], XmNheight, IH_LPBROW); n++; XtSetArg(args[n], XmNshadowType, XmSHADOW_IN); n++; hw[53]= XmCreateFrame(hform, "hw[53]", args, n); XtManageChild(hw[53]); /*====================================================================== * RowColumn *=====================================================================*/ n=0; XtSetArg(args[n], XmNleftAttachment, XmATTACH_SELF); n++; XtSetArg(args[n], XmNx, IX_LPBROW); n++; XtSetArg(args[n], XmNtopAttachment, XmATTACH_SELF); n++; XtSetArg(args[n], XmNy, IY_LPBROW); n++; XtSetArg(args[n], XmNrightAttachment, XmATTACH_SELF); n++; XtSetArg(args[n], XmNwidth, IW_LPBROW); n++; XtSetArg(args[n], XmNbottomAttachment, XmATTACH_SELF); n++; XtSetArg(args[n], XmNheight, IH_LPBROW); n++; XtSetArg(args[n], XmNadjustLast, FALSE); n++; XtSetArg(args[n], XmNnumColumns,1); n++; XtSetArg(args[n], XmNorientation, XmHORIZONTAL); n++; XtSetArg(args[n], XmNpacking, XmPACK_COLUMN); n++; XtSetArg(args[n], XmNresizeHeight, FALSE ); n++; XtSetArg(args[n], XmNresizeWidth, FALSE); n++; hw[54] = XmCreateRowColumn(hw[53], "hw[54]", args, n); /*====================================================================== * X + : PB_RIGHT *=====================================================================*/ n = 0; cxstring = XmStringCreateLtoR("X +", "cf_buttons"); XtSetArg(args[n], XmNlabelString, cxstring); n++; XtSetArg(args[n], XmNfontList, fontlist); n++; XtSetArg(args[n], XmNbackground, bg); n++; XtSetArg(args[n], XmNforeground, fg); n++; hw[5] = XmCreatePushButton(hw[54], "hw[5]", args, n); XtManageChild(hw[5]); XtAddCallback( hw[5],XmNactivateCallback,(XtCallbackProc) CB_RIGHT,(XtPointer)NULL); /*====================================================================== * X - : PB_LEFT *=====================================================================*/ n = 0; cxstring = XmStringCreateLtoR("X -", "cf_buttons"); XtSetArg(args[n], XmNlabelString, cxstring); n++; XtSetArg(args[n], XmNfontList, fontlist); n++; XtSetArg(args[n], XmNbackground, bg); n++; XtSetArg(args[n], XmNforeground, fg); n++; hw[6] = XmCreatePushButton(hw[54], "hw[6]", args, n); XtManageChild(hw[6]); XtAddCallback( hw[6],XmNactivateCallback,(XtCallbackProc) CB_LEFT,(XtPointer)NULL); /*====================================================================== * Y + : PB_UP *=====================================================================*/ n = 0; cxstring = XmStringCreateLtoR("Y +", "cf_buttons"); XtSetArg(args[n], XmNlabelString, cxstring); n++; XtSetArg(args[n], XmNfontList, fontlist); n++; XtSetArg(args[n], XmNbackground, bg); n++; XtSetArg(args[n], XmNforeground, fg); n++; hw[7] = XmCreatePushButton(hw[54], "hw[7]", args, n); XtManageChild(hw[7]); XtAddCallback( hw[7],XmNactivateCallback,(XtCallbackProc) CB_UP,(XtPointer)NULL); /*====================================================================== * Y - : PB_DOWN *=====================================================================*/ n = 0; cxstring = XmStringCreateLtoR("Y -", "cf_buttons"); XtSetArg(args[n], XmNlabelString, cxstring); n++; XtSetArg(args[n], XmNfontList, fontlist); n++; XtSetArg(args[n], XmNbackground, bg); n++; XtSetArg(args[n], XmNforeground, fg); n++; hw[8] = XmCreatePushButton(hw[54], "hw[8]", args, n); XtManageChild(hw[8]); XtAddCallback( hw[8],XmNactivateCallback,(XtCallbackProc) CB_DOWN,(XtPointer)NULL); /*====================================================================== * Z + : PB_HOME *=====================================================================*/ n = 0; cxstring = XmStringCreateLtoR("Z +", "cf_buttons"); XtSetArg(args[n], XmNlabelString, cxstring); n++; XtSetArg(args[n], XmNfontList, fontlist); n++; XtSetArg(args[n], XmNbackground, bg); n++; XtSetArg(args[n], XmNforeground, fg); n++; hw[9] = XmCreatePushButton(hw[54], "hw[9]", args, n); XtManageChild(hw[9]); XtAddCallback( hw[9],XmNactivateCallback,(XtCallbackProc) CB_HOME,(XtPointer)NULL); /*====================================================================== * Z - : PB_END *=====================================================================*/ n = 0; cxstring = XmStringCreateLtoR("Z -", "cf_buttons"); XtSetArg(args[n], XmNlabelString, cxstring); n++; XtSetArg(args[n], XmNfontList, fontlist); n++; XtSetArg(args[n], XmNbackground, bg); n++; XtSetArg(args[n], XmNforeground, fg); n++; hw[10] = XmCreatePushButton(hw[54], "hw[10]", args, n); XtManageChild(hw[10]); XtAddCallback( hw[10],XmNactivateCallback,(XtCallbackProc) CB_END,(XtPointer)NULL); /*====================================================================== * RX + : PB_F3 *=====================================================================*/ n = 0; cxstring = XmStringCreateLtoR("RX+", "cf_buttons"); XtSetArg(args[n], XmNlabelString, cxstring); n++; XtSetArg(args[n], XmNfontList, fontlist); n++; XtSetArg(args[n], XmNbackground, bg); n++; XtSetArg(args[n], XmNforeground, fg); n++; hw[11] = XmCreatePushButton(hw[54], "hw[11]", args, n); XtManageChild(hw[11]); XtAddCallback( hw[11],XmNactivateCallback,(XtCallbackProc) CB_F3,(XtPointer)NULL); /*====================================================================== * RX - : PB_F2 *=====================================================================*/ n = 0; cxstring = XmStringCreateLtoR("RX-", "cf_buttons"); XtSetArg(args[n], XmNlabelString, cxstring); n++; XtSetArg(args[n], XmNfontList, fontlist); n++; XtSetArg(args[n], XmNbackground, bg); n++; XtSetArg(args[n], XmNforeground, fg); n++; hw[12] = XmCreatePushButton(hw[54], "hw[12]", args, n); XtManageChild(hw[12]); XtAddCallback( hw[12],XmNactivateCallback,(XtCallbackProc) CB_F2,(XtPointer)NULL); /*====================================================================== * RY + : PB_F5 *=====================================================================*/ n = 0; cxstring = XmStringCreateLtoR("RY+", "cf_buttons"); XtSetArg(args[n], XmNlabelString, cxstring); n++; XtSetArg(args[n], XmNfontList, fontlist); n++; XtSetArg(args[n], XmNbackground, bg); n++; XtSetArg(args[n], XmNforeground, fg); n++; hw[13] = XmCreatePushButton(hw[54], "hw[13]", args, n); XtManageChild(hw[13]); XtAddCallback( hw[13],XmNactivateCallback,(XtCallbackProc) CB_F5,(XtPointer)NULL); /*====================================================================== * RY - : PB_F4 *=====================================================================*/ n = 0; cxstring = XmStringCreateLtoR("RY-", "cf_buttons"); XtSetArg(args[n], XmNlabelString, cxstring); n++; XtSetArg(args[n], XmNfontList, fontlist); n++; XtSetArg(args[n], XmNbackground, bg); n++; XtSetArg(args[n], XmNforeground, fg); n++; hw[14] = XmCreatePushButton(hw[54], "hw[14]", args, n); XtManageChild(hw[14]); XtAddCallback( hw[14],XmNactivateCallback,(XtCallbackProc) CB_F4,(XtPointer)NULL); /*====================================================================== * RZ + : PB_F7 *=====================================================================*/ n = 0; cxstring = XmStringCreateLtoR("RZ+", "cf_buttons"); XtSetArg(args[n], XmNlabelString, cxstring); n++; XtSetArg(args[n], XmNfontList, fontlist); n++; XtSetArg(args[n], XmNbackground, bg); n++; XtSetArg(args[n], XmNforeground, fg); n++; hw[15] = XmCreatePushButton(hw[54], "hw[15]", args, n); XtManageChild(hw[15]); XtAddCallback( hw[15],XmNactivateCallback,(XtCallbackProc) CB_F7,(XtPointer)NULL); /*====================================================================== * RZ - : PB_F6 *=====================================================================*/ n = 0; cxstring = XmStringCreateLtoR("RZ-", "cf_buttons"); XtSetArg(args[n], XmNlabelString, cxstring); n++; XtSetArg(args[n], XmNfontList, fontlist); n++; XtSetArg(args[n], XmNbackground, bg); n++; XtSetArg(args[n], XmNforeground, fg); n++; hw[16] = XmCreatePushButton(hw[54], "hw[16]", args, n); XtManageChild(hw[16]); XtAddCallback( hw[16],XmNactivateCallback,(XtCallbackProc) CB_F6,(XtPointer)NULL); XtManageChild(hw[54]); /* das RowColumn untere Tastenreihe */ /*---------------------------------------------------------------------- * Radiobox STRUKTUR *---------------------------------------------------------------------*/ /*====================================================================== * der Frame *=====================================================================*/ n = 0; XtSetArg(args[n], XmNleftAttachment, XmATTACH_SELF); n++; XtSetArg(args[n], XmNx, IX_RBSTRUC); n++; XtSetArg(args[n], XmNtopAttachment, XmATTACH_SELF); n++; XtSetArg(args[n], XmNy, IY_RBSTRUC); n++; XtSetArg(args[n], XmNrightAttachment, XmATTACH_SELF); n++; XtSetArg(args[n], XmNwidth, IW_RBSTRUC); n++; XtSetArg(args[n], XmNbottomAttachment, XmATTACH_SELF); n++; XtSetArg(args[n], XmNheight, IH_RBSTRUC); n++; XtSetArg(args[n], XmNshadowType, XmSHADOW_IN); n++; hw[24] = XmCreateFrame(hform,"hw[24]",args, n); XtManageChild(hw[24]); /*====================================================================== * die Radiobox *=====================================================================*/ n=0; XtSetArg(args[n], XmNleftAttachment, XmATTACH_SELF); n++; XtSetArg(args[n], XmNx, IX_RBSTRUC); n++; XtSetArg(args[n], XmNtopAttachment, XmATTACH_SELF); n++; XtSetArg(args[n], XmNy, IY_RBSTRUC); n++; XtSetArg(args[n], XmNrightAttachment, XmATTACH_SELF); n++; XtSetArg(args[n], XmNwidth, IW_RBSTRUC); n++; XtSetArg(args[n], XmNbottomAttachment, XmATTACH_SELF); n++; XtSetArg(args[n], XmNheight, IH_RBSTRUC); n++; XtSetArg(args[n], XmNorientation, XmVERTICAL); n++; XtSetArg(args[n], XmNpacking, XmPACK_COLUMN); n++; XtSetArg(args[n], XmNresizeWidth, FALSE); n++; XtSetArg(args[n], XmNresizeHeight, FALSE); n++; hw[28]= XmCreateRadioBox(hw[24],"hw[28]",args, n); /*====================================================================== * Toggle Unverformt *=====================================================================*/ n = 0; if(LANG == 1) strcpy(cstring,"Unverfo."); if(LANG == 2) strcpy(cstring,"Undefle."); cxstring = XmStringCreateLtoR(cstring, "cf_buttons"); XtSetArg(args[n], XmNlabelString, cxstring); n++; XtSetArg(args[n], XmNfontList, fontlist); n++; XtSetArg(args[n], XmNforeground, fg); n++; XtSetArg(args[n], XmNset, TRUE ); n++; XtSetArg(args[n], XmNrecomputeSize, TRUE ); n++; hw[25]= XmCreateToggleButton(hw[28],"hw[25]",args, n); XtManageChild(hw[25]); XtAddCallback(hw[25],XmNvalueChangedCallback, (XtCallbackProc) CB_STRUKTUR,(XtPointer)IDM_UNVERFORMT); /*====================================================================== * Toggle Verformt *=====================================================================*/ n = 0; if(LANG == 1) strcpy(cstring,"Verformt"); if(LANG == 2) strcpy(cstring,"Deflected"); cxstring = XmStringCreateLtoR(cstring, "cf_buttons"); XtSetArg(args[n], XmNlabelString, cxstring); n++; XtSetArg(args[n], XmNfontList, fontlist); n++; XtSetArg(args[n], XmNforeground, fg); n++; XtSetArg(args[n], XmNrecomputeSize, TRUE ); n++; hw[26] = XmCreateToggleButton(hw[28],"hw[26]",args, n); XtManageChild(hw[26]); XtAddCallback(hw[26],XmNvalueChangedCallback, (XtCallbackProc) CB_STRUKTUR,(XtPointer)IDM_VERFORMT); XtManageChild(hw[28]); /* die Radiobox */ /*---------------------------------------------------------------------- * Radiobox Licht- Hidden - Farbverlaeufe *---------------------------------------------------------------------*/ /*====================================================================== * der Frame *=====================================================================*/ n = 0; XtSetArg(args[n], XmNleftAttachment, XmATTACH_SELF); n++; XtSetArg(args[n], XmNx, IX_RBVIEW); n++; XtSetArg(args[n], XmNtopAttachment, XmATTACH_SELF); n++; XtSetArg(args[n], XmNy, IY_RBVIEW); n++; XtSetArg(args[n], XmNrightAttachment, XmATTACH_SELF); n++; XtSetArg(args[n], XmNwidth, IW_RBVIEW); n++; XtSetArg(args[n], XmNbottomAttachment, XmATTACH_SELF); n++; XtSetArg(args[n], XmNheight, IH_RBVIEW); n++; XtSetArg(args[n], XmNshadowType, XmSHADOW_IN); n++; hw[29] = XmCreateFrame(hform,"hw[29]",args,n); XtManageChild(hw[29]); /*====================================================================== * die Radiobox *=====================================================================*/ n=0; XtSetArg(args[n], XmNleftAttachment, XmATTACH_SELF); n++; XtSetArg(args[n], XmNx, IX_RBVIEW); n++; XtSetArg(args[n], XmNtopAttachment, XmATTACH_SELF); n++; XtSetArg(args[n], XmNy, IY_RBVIEW); n++; XtSetArg(args[n], XmNrightAttachment, XmATTACH_SELF); n++; XtSetArg(args[n], XmNwidth, IW_RBVIEW); n++; XtSetArg(args[n], XmNbottomAttachment, XmATTACH_SELF); n++; XtSetArg(args[n], XmNheight, IH_RBVIEW); n++; XtSetArg(args[n], XmNorientation, XmVERTICAL); n++; XtSetArg(args[n], XmNpacking, XmPACK_COLUMN); n++; XtSetArg(args[n], XmNresizeWidth, FALSE); n++; XtSetArg(args[n], XmNresizeHeight, FALSE); n++; hw[34] = XmCreateRadioBox(hw[29],"hw[34]",args, n); /*====================================================================== * Toggle Licht *=====================================================================*/ n = 0; if(LANG == 1) strcpy(cstring,"Licht"); if(LANG == 2) strcpy(cstring,"Light"); cxstring = XmStringCreateLtoR(cstring, "cf_buttons"); XtSetArg(args[n], XmNlabelString, cxstring); n++; XtSetArg(args[n], XmNfontList, fontlist); n++; XtSetArg(args[n], XmNforeground, fg); n++; if(if3d == IDM_LIGHT) { XtSetArg(args[n], XmNset, TRUE ); n++; } XtSetArg(args[n], XmNrecomputeSize, TRUE ); n++; hw[30] = XmCreateToggleButton(hw[34],"hw[30]",args, n); XtManageChild(hw[30]); XtAddCallback(hw[30],XmNvalueChangedCallback, (XtCallbackProc) CB_3D,(XtPointer)IDM_LIGHT); /*====================================================================== * Toggle Hidden *=====================================================================*/ n = 0; if(LANG == 1) strcpy(cstring,"Hide/Netz"); if(LANG == 2) strcpy(cstring,"Hide/Mesh"); cxstring = XmStringCreateLtoR(cstring, "cf_buttons"); XtSetArg(args[n], XmNlabelString, cxstring); n++; XtSetArg(args[n], XmNfontList, fontlist); n++; XtSetArg(args[n], XmNforeground, fg); n++; if(if3d == IDM_HIDDEN) { XtSetArg(args[n], XmNset, TRUE ); n++; } XtSetArg(args[n], XmNrecomputeSize, TRUE ); n++; hw[31] = XmCreateToggleButton(hw[34],"hw[31]",args, n); XtManageChild(hw[31]); XtAddCallback(hw[31],XmNvalueChangedCallback, (XtCallbackProc) CB_3D,(XtPointer)IDM_HIDDEN); /*====================================================================== * Toggle Spannung Eckknoten *=====================================================================*/ n = 0; if(LANG == 1) strcpy(cstring,"VerSpa E"); if(LANG == 2) strcpy(cstring,"Stress C"); cxstring = XmStringCreateLtoR(cstring, "cf_buttons"); XtSetArg(args[n], XmNlabelString, cxstring); n++; XtSetArg(args[n], XmNfontList, fontlist); n++; XtSetArg(args[n], XmNforeground, fg); n++; if(if3d == IDM_SHOWSPANN) { XtSetArg(args[n], XmNset, TRUE ); n++; } XtSetArg(args[n], XmNrecomputeSize, TRUE ); n++; hw[32] = XmCreateToggleButton(hw[34],"hw[32]",args, n); XtManageChild(hw[32]); XtAddCallback(hw[32],XmNvalueChangedCallback, (XtCallbackProc) CB_3D,(XtPointer)IDM_SHOWSPANN); /*====================================================================== * Toggle Spannungen Mittelwert *=====================================================================*/ n = 0; if(LANG == 1) strcpy(cstring,"VerSpa M"); if(LANG == 2) strcpy(cstring,"Stress M"); cxstring = XmStringCreateLtoR(cstring, "cf_buttons"); XtSetArg(args[n], XmNlabelString, cxstring); n++; XtSetArg(args[n], XmNfontList, fontlist); n++; XtSetArg(args[n], XmNforeground, fg); n++; if(if3d == IDM_SHOWGAUSS) { XtSetArg(args[n], XmNset, TRUE ); n++; } XtSetArg(args[n], XmNrecomputeSize, TRUE ); n++; hw[33] = XmCreateToggleButton(hw[34],"hw[33]",args, n); XtManageChild(hw[33]); XtAddCallback(hw[33],XmNvalueChangedCallback, (XtCallbackProc) CB_3D,(XtPointer)IDM_SHOWGAUSS); /*====================================================================== * Toggle Verschiebungen X *=====================================================================*/ n = 0; if(LANG == 1) strcpy(cstring,"X Verschi"); if(LANG == 2) strcpy(cstring,"X displac"); cxstring = XmStringCreateLtoR(cstring, "cf_buttons"); XtSetArg(args[n], XmNlabelString, cxstring); n++; XtSetArg(args[n], XmNfontList, fontlist); n++; XtSetArg(args[n], XmNforeground, fg); n++; if(if3d == IDM_SHOWVX) { XtSetArg(args[n], XmNset, TRUE ); n++; } XtSetArg(args[n], XmNrecomputeSize, TRUE ); n++; hw[18] = XmCreateToggleButton(hw[34],"hw[18]",args, n); XtManageChild(hw[18]); XtAddCallback(hw[18],XmNvalueChangedCallback, (XtCallbackProc) CB_3D,(XtPointer)IDM_SHOWVX); /*====================================================================== * Toggle Verschiebungen Y *=====================================================================*/ n = 0; if(LANG == 1) strcpy(cstring,"Y Verschi"); if(LANG == 2) strcpy(cstring,"Y displac"); cxstring = XmStringCreateLtoR(cstring, "cf_buttons"); XtSetArg(args[n], XmNlabelString, cxstring); n++; XtSetArg(args[n], XmNfontList, fontlist); n++; XtSetArg(args[n], XmNforeground, fg); n++; if(if3d == IDM_SHOWVY) { XtSetArg(args[n], XmNset, TRUE ); n++; } XtSetArg(args[n], XmNrecomputeSize, TRUE ); n++; hw[19] = XmCreateToggleButton(hw[34],"hw[19]",args, n); XtManageChild(hw[19]); XtAddCallback(hw[19],XmNvalueChangedCallback, (XtCallbackProc) CB_3D,(XtPointer)IDM_SHOWVY); /*====================================================================== * Toggle Verschiebungen Z *=====================================================================*/ n = 0; if(LANG == 1) strcpy(cstring,"Z Verschi"); if(LANG == 2) strcpy(cstring,"Z displac"); cxstring = XmStringCreateLtoR(cstring, "cf_buttons"); XtSetArg(args[n], XmNlabelString, cxstring); n++; XtSetArg(args[n], XmNfontList, fontlist); n++; XtSetArg(args[n], XmNforeground, fg); n++; if(if3d == IDM_SHOWVZ) { XtSetArg(args[n], XmNset, TRUE ); n++; } XtSetArg(args[n], XmNrecomputeSize, TRUE ); n++; hw[27] = XmCreateToggleButton(hw[34],"hw[27]",args, n); XtManageChild(hw[27]); XtAddCallback(hw[27],XmNvalueChangedCallback, (XtCallbackProc) CB_3D,(XtPointer)IDM_SHOWVZ); XtManageChild(hw[34]); /* Radiobox ANSICHT */ /*---------------------------------------------------------------------- * Radiobox LABELS *---------------------------------------------------------------------*/ /*====================================================================== * der Frame *=====================================================================*/ n = 0; XtSetArg(args[n], XmNleftAttachment, XmATTACH_SELF); n++; XtSetArg(args[n], XmNx, IX_RBLABEL); n++; XtSetArg(args[n], XmNtopAttachment, XmATTACH_SELF); n++; XtSetArg(args[n], XmNy, IY_RBLABEL); n++; XtSetArg(args[n], XmNrightAttachment, XmATTACH_SELF); n++; XtSetArg(args[n], XmNwidth, IW_RBLABEL); n++; XtSetArg(args[n], XmNbottomAttachment, XmATTACH_SELF); n++; XtSetArg(args[n], XmNheight, IH_RBLABEL); n++; XtSetArg(args[n], XmNshadowType, XmSHADOW_IN); n++; hw[35] = XmCreateFrame(hform,"hw[35]",args, n); XtManageChild(hw[35]); /*====================================================================== * die Radiobox *=====================================================================*/ n=0; XtSetArg(args[n], XmNleftAttachment, XmATTACH_SELF); n++; XtSetArg(args[n], XmNx, IX_RBLABEL); n++; XtSetArg(args[n], XmNtopAttachment, XmATTACH_SELF); n++; XtSetArg(args[n], XmNy, IY_RBLABEL); n++; XtSetArg(args[n], XmNrightAttachment, XmATTACH_SELF); n++; XtSetArg(args[n], XmNwidth, IW_RBLABEL); n++; XtSetArg(args[n], XmNbottomAttachment, XmATTACH_SELF); n++; XtSetArg(args[n], XmNheight, IH_RBLABEL); n++; XtSetArg(args[n], XmNorientation, XmVERTICAL); n++; XtSetArg(args[n], XmNpacking, XmPACK_COLUMN); n++; XtSetArg(args[n], XmNresizeWidth, FALSE); n++; XtSetArg(args[n], XmNresizeHeight, FALSE); n++; hw[40] = XmCreateRadioBox(hw[35],"hw[40]",args, n); /*====================================================================== * Toggle No Labels *=====================================================================*/ n = 0; cxstring = XmStringCreate("No Labels", "cf_buttons"); XtSetArg(args[n], XmNlabelString, cxstring); n++; XtSetArg(args[n], XmNfontList, fontlist); n++; XtSetArg(args[n], XmNforeground, fg); n++; if(iflabe == IDM_NOLABELS) { XtSetArg(args[n], XmNset, TRUE ); n++; } XtSetArg(args[n], XmNrecomputeSize, TRUE ); n++; hw[36] = XmCreateToggleButton(hw[40],"hw[36]",args, n); XtManageChild(hw[36]); XtAddCallback(hw[36],XmNvalueChangedCallback, (XtCallbackProc) CB_LABELS,(XtPointer)IDM_NOLABELS); /*====================================================================== * Toggle Knoten *=====================================================================*/ n = 0; if(LANG == 1) strcpy(cstring,"Knoten"); if(LANG == 2) strcpy(cstring,"Nodes"); cxstring = XmStringCreateLtoR(cstring, "cf_buttons"); XtSetArg(args[n], XmNlabelString, cxstring); n++; XtSetArg(args[n], XmNfontList, fontlist); n++; XtSetArg(args[n], XmNforeground, fg); n++; if(iflabe == IDM_KNOTEN) { XtSetArg(args[n], XmNset, TRUE ); n++; } XtSetArg(args[n], XmNrecomputeSize, TRUE ); n++; hw[37] = XmCreateToggleButton(hw[40],"hw[37]",args, n); XtManageChild(hw[37]); XtAddCallback(hw[37],XmNvalueChangedCallback, (XtCallbackProc) CB_LABELS,(XtPointer)IDM_KNOTEN); /*====================================================================== * Toggle Elemente *=====================================================================*/ n = 0; if(LANG == 1) strcpy(cstring,"Elemente"); if(LANG == 2) strcpy(cstring,"Elements"); cxstring = XmStringCreateLtoR(cstring, "cf_buttons"); XtSetArg(args[n], XmNlabelString, cxstring); n++; XtSetArg(args[n], XmNfontList, fontlist); n++; XtSetArg(args[n], XmNforeground, fg); n++; if(iflabe == IDM_ELEMENTE) { XtSetArg(args[n], XmNset, TRUE ); n++; } XtSetArg(args[n], XmNrecomputeSize, TRUE ); n++; hw[38] = XmCreateToggleButton(hw[40],"hw[38]",args, n); XtManageChild(hw[38]); XtAddCallback(hw[38],XmNvalueChangedCallback, (XtCallbackProc) CB_LABELS,(XtPointer)IDM_ELEMENTE); XtManageChild(hw[40]); /* Radiobox LABELS */ /*---------------------------------------------------------------------- * RowColumn Strukturfile *---------------------------------------------------------------------*/ /*====================================================================== * Frame *=====================================================================*/ n = 0; XtSetArg(args[n], XmNleftAttachment, XmATTACH_SELF); n++; XtSetArg(args[n], XmNx, IX_RCSPLOT); n++; XtSetArg(args[n], XmNtopAttachment, XmATTACH_SELF); n++; XtSetArg(args[n], XmNy, IY_RCSPLOT); n++; XtSetArg(args[n], XmNrightAttachment, XmATTACH_SELF); n++; XtSetArg(args[n], XmNwidth, IW_RCSPLOT); n++; XtSetArg(args[n], XmNbottomAttachment, XmATTACH_SELF); n++; XtSetArg(args[n], XmNheight, IH_RCSPLOT); n++; XtSetArg(args[n], XmNshadowType, XmSHADOW_IN); n++; hw[55]= XmCreateFrame(hform, "hw[55]", args, n); XtManageChild(hw[55]); /*====================================================================== * RowColumn *=====================================================================*/ n=0; XtSetArg(args[n], XmNleftAttachment, XmATTACH_SELF); n++; XtSetArg(args[n], XmNx, IX_RCSPLOT); n++; XtSetArg(args[n], XmNtopAttachment, XmATTACH_SELF); n++; XtSetArg(args[n], XmNy, IY_RCSPLOT); n++; XtSetArg(args[n], XmNrightAttachment, XmATTACH_SELF); n++; XtSetArg(args[n], XmNwidth, IW_RCSPLOT); n++; XtSetArg(args[n], XmNbottomAttachment, XmATTACH_SELF); n++; XtSetArg(args[n], XmNheight, IH_RCSPLOT); n++; XtSetArg(args[n], XmNadjustLast, FALSE); n++; XtSetArg(args[n], XmNnumColumns,2); n++; XtSetArg(args[n], XmNorientation, XmHORIZONTAL); n++; XtSetArg(args[n], XmNpacking, XmPACK_TIGHT); n++; XtSetArg(args[n], XmNresizeHeight, FALSE ); n++; XtSetArg(args[n], XmNresizeWidth, FALSE); n++; hw[56] = XmCreateRowColumn(hw[55], "hw[56]", args, n); /*====================================================================== * Label STRUKTURFILE *=====================================================================*/ n = 0; strcpy(cstring,"Stru."); cxstring = XmStringCreateLtoR(cstring, "cf_buttons"); XtSetArg(args[n], XmNlabelString, cxstring); n++; XtSetArg(args[n], XmNfontList, fontlist); n++; XtSetArg(args[n], XmNforeground, fg); n++; XtSetArg(args[n], XmNrecomputeSize, TRUE ); n++; XtSetArg(args[n], XmNalignment, 1 ); n++; hw[20] = XmCreateLabel(hw[56],"hw[20]",args, n); XtManageChild(hw[20]); /*====================================================================== * Textfield STRUKTURFILE *=====================================================================*/ n = 0; XtSetArg(args[n], XmNmaxLength, 64); n++; XtSetArg(args[n], XmNcolumns, NC_RCSPLOT); n++; XtSetArg(args[n], XmNforeground, eg); n++; XtSetArg(args[n], XmNfontList, fontlist); n++; hw[21] = XmCreateTextField(hw[56],"hw[21]",args, n); XmTextSetString(hw[21], cstrn); XtManageChild(hw[21]); XtAddCallback( hw[21],XmNactivateCallback,(XtCallbackProc) CB_STRUKTURFILE,(XtPointer)NULL); XtManageChild(hw[56]); /* das RowColumn */ /*---------------------------------------------------------------------- * RowColumn From - To *---------------------------------------------------------------------*/ /*====================================================================== * Frame *=====================================================================*/ n = 0; XtSetArg(args[n], XmNleftAttachment, XmATTACH_SELF); n++; XtSetArg(args[n], XmNx, IX_RCFRTO); n++; XtSetArg(args[n], XmNtopAttachment, XmATTACH_SELF); n++; XtSetArg(args[n], XmNy, IY_RCFRTO); n++; XtSetArg(args[n], XmNrightAttachment, XmATTACH_SELF); n++; XtSetArg(args[n], XmNwidth, IW_RCFRTO); n++; XtSetArg(args[n], XmNbottomAttachment, XmATTACH_SELF); n++; XtSetArg(args[n], XmNheight, IH_RCFRTO); n++; XtSetArg(args[n], XmNshadowType, XmSHADOW_IN); n++; hw[22]= XmCreateFrame(hform, "hw[22]", args, n); XtManageChild(hw[22]); /*====================================================================== * RowColumn *=====================================================================*/ n=0; XtSetArg(args[n], XmNleftAttachment, XmATTACH_SELF); n++; XtSetArg(args[n], XmNx, IX_RCFRTO); n++; XtSetArg(args[n], XmNtopAttachment, XmATTACH_SELF); n++; XtSetArg(args[n], XmNy, IY_RCFRTO); n++; XtSetArg(args[n], XmNrightAttachment, XmATTACH_SELF); n++; XtSetArg(args[n], XmNwidth, IW_RCFRTO); n++; XtSetArg(args[n], XmNbottomAttachment, XmATTACH_SELF); n++; XtSetArg(args[n], XmNheight, IH_RCFRTO); n++; XtSetArg(args[n], XmNadjustLast, FALSE); n++; XtSetArg(args[n], XmNnumColumns,2); n++; XtSetArg(args[n], XmNorientation, XmHORIZONTAL); n++; XtSetArg(args[n], XmNpacking, XmPACK_TIGHT); n++; XtSetArg(args[n], XmNresizeHeight, FALSE ); n++; XtSetArg(args[n], XmNresizeWidth, FALSE); n++; hw[23] = XmCreateRowColumn(hw[22], "hw[23]", args, n); /*====================================================================== * Label From *=====================================================================*/ n = 0; if(LANG == 1) strcpy(cstring,"von"); if(LANG == 2) strcpy(cstring,"from"); cxstring = XmStringCreateLtoR(cstring, "cf_buttons"); XtSetArg(args[n], XmNlabelString, cxstring); n++; XtSetArg(args[n], XmNfontList, fontlist); n++; XtSetArg(args[n], XmNforeground, fg); n++; XtSetArg(args[n], XmNrecomputeSize, TRUE ); n++; XtSetArg(args[n], XmNalignment, 1 ); n++; hw[61] = XmCreateLabel(hw[23],"hw[61]",args, n); XtManageChild(hw[61]); /*====================================================================== * Textfield From *=====================================================================*/ n = 0; XtSetArg(args[n], XmNmaxLength, 64); n++; XtSetArg(args[n], XmNcolumns, NC_RCFRTO); n++; XtSetArg(args[n], XmNforeground, eg); n++; XtSetArg(args[n], XmNfontList, fontlist); n++; hw[62] = XmCreateTextField(hw[23],"hw[62]",args, n); if(iflabe == IDM_NOLABELS) jfrom= 0; if(iflabe == IDM_KNOTEN ) jfrom= jkvon; if(iflabe == IDM_ELEMENTE) jfrom= jevon; sprintf(cstring,"%ld",jfrom); XmTextSetString(hw[62],cstring); XtManageChild(hw[62]); XtAddCallback( hw[62],XmNactivateCallback,(XtCallbackProc) CB_FROM,(XtPointer)NULL); /*====================================================================== * Label To *=====================================================================*/ n = 0; if(LANG == 1) strcpy(cstring,"bis"); if(LANG == 2) strcpy(cstring,"to "); cxstring = XmStringCreateLtoR(cstring, "cf_buttons"); XtSetArg(args[n], XmNlabelString, cxstring); n++; XtSetArg(args[n], XmNfontList, fontlist); n++; XtSetArg(args[n], XmNforeground, fg); n++; XtSetArg(args[n], XmNrecomputeSize, TRUE ); n++; XtSetArg(args[n], XmNalignment, 1 ); n++; hw[63] = XmCreateLabel(hw[23],"hw[63]",args, n); XtManageChild(hw[63]); /*====================================================================== * Textfield To *=====================================================================*/ n = 0; XtSetArg(args[n], XmNmaxLength, 64); n++; XtSetArg(args[n], XmNcolumns, NC_RCFRTO); n++; XtSetArg(args[n], XmNforeground, eg); n++; XtSetArg(args[n], XmNfontList, fontlist); n++; hw[64] = XmCreateTextField(hw[23],"hw[64]",args, n); if(iflabe == IDM_NOLABELS) jto= 0; if(iflabe == IDM_KNOTEN ) jto= jkbis; if(iflabe == IDM_ELEMENTE) jto= jebis; sprintf(cstring,"%ld",jto); XmTextSetString(hw[64],cstring); XtManageChild(hw[64]); XtAddCallback( hw[64],XmNactivateCallback,(XtCallbackProc) CB_TO,(XtPointer)NULL); XtManageChild(hw[23]); /* das RowColumn */ /*---------------------------------------------------------------------- * RowColumn FUX, FUY & FUZ *---------------------------------------------------------------------*/ /*====================================================================== * Frame *=====================================================================*/ n = 0; XtSetArg(args[n], XmNleftAttachment, XmATTACH_SELF); n++; XtSetArg(args[n], XmNx, IX_RCFXYZ); n++; XtSetArg(args[n], XmNtopAttachment, XmATTACH_SELF); n++; XtSetArg(args[n], XmNy, IY_RCFXYZ); n++; XtSetArg(args[n], XmNrightAttachment, XmATTACH_SELF); n++; XtSetArg(args[n], XmNwidth, IW_RCFXYZ); n++; XtSetArg(args[n], XmNbottomAttachment, XmATTACH_SELF); n++; XtSetArg(args[n], XmNheight, IH_RCFXYZ); n++; XtSetArg(args[n], XmNshadowType, XmSHADOW_IN); n++; hw[57]= XmCreateFrame(hform, "hw[57]", args, n); XtManageChild(hw[57]); /*====================================================================== * RowColumn *=====================================================================*/ n=0; XtSetArg(args[n], XmNleftAttachment, XmATTACH_SELF); n++; XtSetArg(args[n], XmNx, IX_RCFXYZ); n++; XtSetArg(args[n], XmNtopAttachment, XmATTACH_SELF); n++; XtSetArg(args[n], XmNy, IY_RCFXYZ); n++; XtSetArg(args[n], XmNrightAttachment, XmATTACH_SELF); n++; XtSetArg(args[n], XmNwidth, IW_RCFXYZ); n++; XtSetArg(args[n], XmNbottomAttachment, XmATTACH_SELF); n++; XtSetArg(args[n], XmNheight, IH_RCFXYZ); n++; XtSetArg(args[n], XmNadjustLast, FALSE); n++; XtSetArg(args[n], XmNnumColumns,1); n++; XtSetArg(args[n], XmNorientation, XmVERTICAL); n++; XtSetArg(args[n], XmNpacking, XmPACK_TIGHT); n++; XtSetArg(args[n], XmNresizeHeight, FALSE ); n++; XtSetArg(args[n], XmNresizeWidth, FALSE); n++; hw[58] = XmCreateRowColumn(hw[57], "hw[58]", args, n); /*====================================================================== * Label FUX, FUY & FUZ *=====================================================================*/ n = 0; cxstring = XmStringCreateLtoR("FUX,FUY,FUZ", "cf_buttons"); XtSetArg(args[n], XmNlabelString, cxstring); n++; XtSetArg(args[n], XmNfontList, fontlist); n++; XtSetArg(args[n], XmNforeground, fg); n++; XtSetArg(args[n], XmNrecomputeSize, TRUE ); n++; XtSetArg(args[n], XmNalignment, 1 ); n++; hw[41] = XmCreateLabel(hw[58],"hw[41]",args, n); XtManageChild(hw[41]); /*====================================================================== * Textfield FUX *=====================================================================*/ n = 0; XtSetArg(args[n], XmNmaxLength, 32); n++; XtSetArg(args[n], XmNcolumns, NC_RCFXYZ); n++; XtSetArg(args[n], XmNforeground, eg); n++; XtSetArg(args[n], XmNfontList, fontlist); n++; hw[42] = XmCreateTextField(hw[58],"hw[42]",args, n); sprintf(cstring,"%lf",fux); XmTextSetString(hw[42],cstring); XtManageChild(hw[42]); XtAddCallback(hw[42],XmNactivateCallback, (XtCallbackProc) CB_FUX,(XtPointer)NULL); /*====================================================================== * Textfield FUY *=====================================================================*/ n = 0; XtSetArg(args[n], XmNmaxLength, 32); n++; XtSetArg(args[n], XmNcolumns, NC_RCFXYZ); n++; XtSetArg(args[n], XmNforeground, eg); n++; XtSetArg(args[n], XmNfontList, fontlist); n++; hw[44] = XmCreateTextField(hw[58],"hw[44]",args, n); sprintf(cstring,"%lf",fuy); XmTextSetString(hw[44],cstring); XtManageChild(hw[44]); XtAddCallback(hw[44],XmNactivateCallback, (XtCallbackProc) CB_FUY,(XtPointer)NULL); /*====================================================================== * Textfield FUZ *=====================================================================*/ n = 0; XtSetArg(args[n], XmNmaxLength, 32); n++; XtSetArg(args[n], XmNcolumns, NC_RCFXYZ); n++; XtSetArg(args[n], XmNforeground, eg); n++; XtSetArg(args[n], XmNfontList, fontlist); n++; hw[46] = XmCreateTextField(hw[58],"hw[46]",args, n); sprintf(cstring,"%lf",fuz); XmTextSetString(hw[46],cstring); XtManageChild(hw[46]); XtAddCallback(hw[46],XmNactivateCallback, (XtCallbackProc) CB_FUZ,(XtPointer)NULL); XtManageChild(hw[58]); /* das RowColumn */ /*---------------------------------------------------------------------- * RowColumn ZLIMIT *---------------------------------------------------------------------*/ /*====================================================================== * Frame *=====================================================================*/ n = 0; XtSetArg(args[n], XmNleftAttachment, XmATTACH_SELF); n++; XtSetArg(args[n], XmNx, IX_RCFXCOR); n++; XtSetArg(args[n], XmNtopAttachment, XmATTACH_SELF); n++; XtSetArg(args[n], XmNy, IY_RCFXCOR); n++; XtSetArg(args[n], XmNrightAttachment, XmATTACH_SELF); n++; XtSetArg(args[n], XmNwidth, IW_RCFXCOR); n++; XtSetArg(args[n], XmNbottomAttachment, XmATTACH_SELF); n++; XtSetArg(args[n], XmNheight, IH_RCFXCOR); n++; XtSetArg(args[n], XmNshadowType, XmSHADOW_IN); n++; hw[59]= XmCreateFrame(hform, "hw[59]", args, n); XtManageChild(hw[59]); /*====================================================================== * RowColumn ZLIMIT *=====================================================================*/ n=0; XtSetArg(args[n], XmNleftAttachment, XmATTACH_SELF); n++; XtSetArg(args[n], XmNx, IX_RCFXCOR); n++; XtSetArg(args[n], XmNtopAttachment, XmATTACH_SELF); n++; XtSetArg(args[n], XmNy, IY_RCFXCOR); n++; XtSetArg(args[n], XmNrightAttachment, XmATTACH_SELF); n++; XtSetArg(args[n], XmNwidth, IW_RCFXCOR); n++; XtSetArg(args[n], XmNbottomAttachment, XmATTACH_SELF); n++; XtSetArg(args[n], XmNheight, IH_RCFXCOR); n++; XtSetArg(args[n], XmNadjustLast, FALSE); n++; XtSetArg(args[n], XmNnumColumns,1); n++; XtSetArg(args[n], XmNorientation, XmVERTICAL); n++; XtSetArg(args[n], XmNpacking, XmPACK_TIGHT); n++; XtSetArg(args[n], XmNresizeHeight, FALSE ); n++; XtSetArg(args[n], XmNresizeWidth, FALSE); n++; hw[60] = XmCreateRowColumn(hw[59], "hw[60]", args, n); /*====================================================================== * Label ZLIMIT *=====================================================================*/ n = 0; cxstring = XmStringCreateLtoR("Zlimit", "cf_buttons"); XtSetArg(args[n], XmNlabelString, cxstring); n++; XtSetArg(args[n], XmNfontList, fontlist); n++; XtSetArg(args[n], XmNforeground, fg); n++; XtSetArg(args[n], XmNrecomputeSize, TRUE ); n++; XtSetArg(args[n], XmNalignment, 1 ); n++; hw[47] = XmCreateLabel(hw[60],"hw[47]",args, n); XtManageChild(hw[47]); /*====================================================================== * Textfield ZLIMIT *=====================================================================*/ n = 0; XtSetArg(args[n], XmNmaxLength, 32); n++; XtSetArg(args[n], XmNcolumns, NC_RCFXCOR); n++; XtSetArg(args[n], XmNforeground, eg); n++; XtSetArg(args[n], XmNfontList, fontlist); n++; hw[48] = XmCreateTextField(hw[60],"hw[48]",args, n); sprintf(cstring,"%lf",zm); XmTextSetString(hw[48],cstring); XtManageChild(hw[48]); XtAddCallback(hw[48],XmNactivateCallback, (XtCallbackProc) CB_ZLIMIT,(XtPointer)NULL); XtManageChild(hw[60]);/* das RowColumn */ /*---------------------------------------------------------------------- * Die OpenGL- Zeichenflaeche *---------------------------------------------------------------------*/ /*====================================================================== * Frame fuer OpenGL *=====================================================================*/ n = 0; XtSetArg(args[n], XmNleftAttachment, XmATTACH_SELF); n++; XtSetArg(args[n], XmNx,IX_DRAWAR); n++; XtSetArg(args[n], XmNtopAttachment, XmATTACH_SELF); n++; XtSetArg(args[n], XmNy,IY_DRAWAR); n++; XtSetArg(args[n], XmNrightAttachment, XmATTACH_SELF); n++; XtSetArg(args[n], XmNwidth, IW_DRAWAR); n++; XtSetArg(args[n], XmNbottomAttachment, XmATTACH_SELF); n++; XtSetArg(args[n], XmNheight,IH_DRAWAR); n++; XtSetArg(args[n], XmNresizePolicy, XmRESIZE_NONE); n++; XtSetArg(args[n], XmNshadowType, XmSHADOW_IN); n++; hw[65]= XmCreateFrame(hform, "hw[65]", args, n); XtManageChild(hw[65]); /*====================================================================== * das OpenGL- DrawingArea- Widget kommen lassen *=====================================================================*/ n = 0; XtSetArg(args[n], GLwNrgba, True); n++; XtSetArg(args[n], GLwNdoublebuffer, True); n++; XtSetArg(args[n], GLwNdepthSize, 16); n++; hw[50]= GLwCreateMDrawingArea(hw[65] ,"hw[50]", args, n); XtManageChild(hw[50]); /*====================================================================== * die Callbacks Ginit, Expose und Resize registrieren + Eventhandler *=====================================================================*/ XtAddCallback(hw[50], GLwNginitCallback, (XtCallbackProc) CB_INITG,(XtPointer)NULL); XtAddCallback(hw[50], GLwNexposeCallback , (XtCallbackProc) CB_PAINT,(XtPointer)NULL); XtAddCallback(hw[50], GLwNresizeCallback, (XtCallbackProc) CB_RESIZE,(XtPointer)NULL); XtAddEventHandler(hw[50], Button1MotionMask, False, (XtEventHandler)EH_MATA1, NULL); XtAddEventHandler(hw[50], Button2MotionMask, False, (XtEventHandler)EH_MATA2, NULL); XtAddEventHandler(hw[50], Button3MotionMask, False, (XtEventHandler)EH_MATA3, NULL); /*---------------------------------------------------------------------- * String freigeben *---------------------------------------------------------------------*/ if(cxstring) XmStringFree(cxstring); /*---------------------------------------------------------------------- * Fontliste freigeben *---------------------------------------------------------------------*/ if(fontlist) XmFontListFree(fontlist); /*---------------------------------------------------------------------- * Ende WindowProcedure *---------------------------------------------------------------------*/ return; }