diff --git a/Geo/Geo.cpp b/Geo/Geo.cpp index 2fbb78c353282bbd6de23252cfaeba59761f3cc3..29df7a2d25f13ae509525b59696c85690bc2d4a0 100644 --- a/Geo/Geo.cpp +++ b/Geo/Geo.cpp @@ -1,4 +1,4 @@ -/* $Id: Geo.cpp,v 1.10 2000-12-11 16:23:11 geuzaine Exp $ */ +/* $Id: Geo.cpp,v 1.11 2000-12-13 13:56:58 geuzaine Exp $ */ #include "Gmsh.h" #include "Const.h" @@ -17,8 +17,8 @@ char attrdec_text[100] = "2.0"; char px_text[100] = "0.0", py_text[100] = "0.0", pz_text[100] = "0.0" ; char angle_text[100] = "3.14159/2" ; char ax_text[100] = "0.0", ay_text[100] = "0.0", az_text[100] = "1.0"; -char dx_text[100] = "0.0", dy_text[100] = "0.0", dz_text[100] = "0.0"; -char df_text[100] = "1.0"; +char dx_text[100] = "0.0", dy_text[100] = "0.0", dz_text[100] = "0.0", df_text[100] = "1.0"; +char sa_text[100] = "0.0", sb_text[100] = "0.0", sc_text[100] = "0.0", sd_text[100] = "0.0"; char nb_pts[100] ="10", mode_value[100] = "1"; char trsf_pts_text[100] = "2", trsf_type_text[100] = "Power 1.0"; char trsf_vol_text[100] = "1"; @@ -527,6 +527,18 @@ void dilate(int add, int s, char *fich, char *quoi){ add_infile(text,fich); } +void symmetry(int add, int s, char *fich, char *quoi){ + char text[BUFFSIZE]; + + if(add) + sprintf(text,"Symmetry { %s,%s,%s,%s } {\n Duplicata { %s{%d}; }\n}", + sa_text,sb_text,sc_text,sd_text, quoi,s); + else + sprintf(text,"Symmetry { %s,%s,%s,%s } {\n %s{%d};\n }", + sa_text,sb_text,sc_text,sd_text, quoi,s); + add_infile(text,fich); + +} void protude(int s, char *fich, char *what){ char text[BUFFSIZE]; diff --git a/Geo/Geo.h b/Geo/Geo.h index 36d97bd7b0d0988a8901150062dafe192c602613..2e76dbccccb327f49fad7204928aa8fa567ec5d0 100644 --- a/Geo/Geo.h +++ b/Geo/Geo.h @@ -1,4 +1,4 @@ -/* $Id: Geo.h,v 1.4 2000-11-26 15:43:45 geuzaine Exp $ */ +/* $Id: Geo.h,v 1.5 2000-12-13 13:56:58 geuzaine Exp $ */ #ifndef _GEO_H_ #define _GEO_H_ @@ -108,6 +108,7 @@ void translate_surf(int add, int s, char *fich); void translate_pt(int add, int s, char *fich); void rotate(int add, int s, char *fich, char *quoi); void dilate(int add, int s, char *fich, char *quoi); +void symmetry(int add, int s, char *fich, char *quoi); void protude(int s, char *fich, char *what); #endif diff --git a/Unix/CbContext.cpp b/Unix/CbContext.cpp index b6fe7fa6320a27bd2224f654f6a6e9d106b2ba49..1c0f3a286dc75a43a07374ceea018545b8e7eb8a 100644 --- a/Unix/CbContext.cpp +++ b/Unix/CbContext.cpp @@ -1,4 +1,4 @@ -/* $Id: CbContext.cpp,v 1.7 2000-12-09 15:21:17 geuzaine Exp $ */ +/* $Id: CbContext.cpp,v 1.8 2000-12-13 13:57:00 geuzaine Exp $ */ #include "Gmsh.h" #include "GmshUI.h" @@ -376,6 +376,7 @@ void NextContextCb (Widget w, XtPointer client_data, XtPointer call_data){ ActualizeContextCb(w,(XtPointer)CONTEXT_GEOM_ELEM_ADD_DILATE,call_data); break; case 5: + XtManageChild(WID.GD.symmDialog); ActualizeContextCb(w,(XtPointer)CONTEXT_GEOM_ELEM_ADD_SYMMETRY,call_data); break; } @@ -419,12 +420,15 @@ void NextContextCb (Widget w, XtPointer client_data, XtPointer call_data){ case 1: geom_event_handler(GEOM_ELEM_ADD_DILATE_POINT); break ; case 2: geom_event_handler(GEOM_ELEM_ADD_DILATE_LINE); break ; case 3: geom_event_handler(GEOM_ELEM_ADD_DILATE_SURF); break ; - case 4: break ; } break; case CONTEXT_GEOM_ELEM_ADD_SYMMETRY : - Msg(WARNING, "Add Symmetry not done yet"); + switch((long int)client_data){ + case 1: geom_event_handler(GEOM_ELEM_ADD_SYMMETRY_POINT); break ; + case 2: geom_event_handler(GEOM_ELEM_ADD_SYMMETRY_LINE); break ; + case 3: geom_event_handler(GEOM_ELEM_ADD_SYMMETRY_SURF); break ; + } break; case CONTEXT_GEOM_ELEM_MOVE : @@ -442,6 +446,7 @@ void NextContextCb (Widget w, XtPointer client_data, XtPointer call_data){ ActualizeContextCb(w,(XtPointer)CONTEXT_GEOM_ELEM_MOVE_DILATE,call_data); break; case 4: + XtManageChild(WID.GD.symmDialog); ActualizeContextCb(w,(XtPointer)CONTEXT_GEOM_ELEM_MOVE_SYMMETRY,call_data); break; } @@ -468,12 +473,15 @@ void NextContextCb (Widget w, XtPointer client_data, XtPointer call_data){ case 1: geom_event_handler(GEOM_ELEM_MOVE_DILATE_POINT); break ; case 2: geom_event_handler(GEOM_ELEM_MOVE_DILATE_LINE); break ; case 3: geom_event_handler(GEOM_ELEM_MOVE_DILATE_SURF); break ; - case 4: break ; } break; case CONTEXT_GEOM_ELEM_MOVE_SYMMETRY : - Msg(WARNING, "Move Symmetry not done yet"); + switch((long int)client_data){ + case 1: geom_event_handler(GEOM_ELEM_MOVE_SYMMETRY_POINT); break ; + case 2: geom_event_handler(GEOM_ELEM_MOVE_SYMMETRY_LINE); break ; + case 3: geom_event_handler(GEOM_ELEM_MOVE_SYMMETRY_SURF); break ; + } break; case CONTEXT_GEOM_ELEM_EXTRUDE : @@ -491,6 +499,7 @@ void NextContextCb (Widget w, XtPointer client_data, XtPointer call_data){ ActualizeContextCb(w,(XtPointer)CONTEXT_GEOM_ELEM_EXTRUDE_DILATE,call_data); break; case 4: + XtManageChild(WID.GD.symmDialog); ActualizeContextCb(w,(XtPointer)CONTEXT_GEOM_ELEM_EXTRUDE_SYMMETRY,call_data); break; } @@ -513,11 +522,11 @@ void NextContextCb (Widget w, XtPointer client_data, XtPointer call_data){ break; case CONTEXT_GEOM_ELEM_EXTRUDE_DILATE : - Msg(WARNING, "Extrude Dilate not done yet!"); + Msg(WARNING, "Extrude Dilate is not implemented"); break; case CONTEXT_GEOM_ELEM_EXTRUDE_SYMMETRY : - Msg(WARNING, "Extrude Symmetry not done yet!"); + Msg(WARNING, "Extrude Symmetry is not implemented"); break; case CONTEXT_GEOM_ELEM_DELETE : diff --git a/Unix/CbGeom.cpp b/Unix/CbGeom.cpp index c5d01cadc1ee5e127be91213bb81050208bde093..9fc58a4870663e7d1f9808552cd88f35e3e231cb 100644 --- a/Unix/CbGeom.cpp +++ b/Unix/CbGeom.cpp @@ -1,4 +1,4 @@ -/* $Id: CbGeom.cpp,v 1.8 2000-12-13 13:18:49 geuzaine Exp $ */ +/* $Id: CbGeom.cpp,v 1.9 2000-12-13 13:57:00 geuzaine Exp $ */ #include "Gmsh.h" #include "GmshUI.h" @@ -15,16 +15,17 @@ extern Context_T CTX; extern Widgets_T WID; -extern Mesh M; -extern char TheFileName[256]; +extern Mesh M; +extern char TheFileName[256]; -extern char x_text[100], y_text[100], z_text[100], l_text[100]; -extern char tx_text[100], ty_text[100], tz_text[100]; -extern char px_text[100], py_text[100], pz_text[100], angle_text[100]; -extern char ax_text[100], ay_text[100], az_text[100], angle_text[100]; -extern char dx_text[100], dy_text[100], dz_text[100], df_text[100]; - -static char name_text[100], value_text[100]; +extern char x_text[100], y_text[100], z_text[100], l_text[100]; +extern char tx_text[100], ty_text[100], tz_text[100]; +extern char px_text[100], py_text[100], pz_text[100], angle_text[100]; +extern char ax_text[100], ay_text[100], az_text[100], angle_text[100]; +extern char dx_text[100], dy_text[100], dz_text[100], df_text[100]; +extern char sa_text[100], sb_text[100], sc_text[100], sd_text[100]; + +static char name_text[100], value_text[100]; int SelectContour (int type, int num, List_T *Liste1){ int k,ip,i; @@ -382,6 +383,8 @@ void geom_event_handler (int event) { case GEOM_ELEM_ADD_DILATE_POINT : case GEOM_ELEM_MOVE_DILATE_POINT : + case GEOM_ELEM_ADD_SYMMETRY_POINT : + case GEOM_ELEM_MOVE_SYMMETRY_POINT : while(1){ Msg(STATUS,"Select Point ('q'=quit)"); if(!SelectEntity(ENT_POINT, &v,&c,&s)){ @@ -389,13 +392,28 @@ void geom_event_handler (int event) { Replot(); break; } - dilate(event==GEOM_ELEM_ADD_DILATE_POINT?1:0,v->Num,TheFileName,"Point"); + switch(event){ + case GEOM_ELEM_ADD_DILATE_POINT : + dilate(1,v->Num,TheFileName,"Point"); + break; + case GEOM_ELEM_MOVE_DILATE_POINT : + dilate(0,v->Num,TheFileName,"Point"); + break; + case GEOM_ELEM_ADD_SYMMETRY_POINT : + symmetry(1,v->Num,TheFileName,"Point"); + break; + case GEOM_ELEM_MOVE_SYMMETRY_POINT : + symmetry(0,v->Num,TheFileName,"Point"); + break; + } ZeroHighlight(&M); Replot(); } break; case GEOM_ELEM_ADD_DILATE_LINE : case GEOM_ELEM_MOVE_DILATE_LINE : + case GEOM_ELEM_ADD_SYMMETRY_LINE : + case GEOM_ELEM_MOVE_SYMMETRY_LINE : while(1){ Msg(STATUS,"Select Line ('q'=quit)"); if(!SelectEntity(ENT_LINE, &v,&c,&s)){ @@ -403,13 +421,28 @@ void geom_event_handler (int event) { Replot(); break; } - dilate(event==GEOM_ELEM_ADD_DILATE_LINE?1:0,c->Num,TheFileName,"Line"); + switch(event){ + case GEOM_ELEM_ADD_DILATE_LINE : + dilate(1,c->Num,TheFileName,"Line"); + break; + case GEOM_ELEM_MOVE_DILATE_LINE : + dilate(0,c->Num,TheFileName,"Line"); + break; + case GEOM_ELEM_ADD_SYMMETRY_LINE : + symmetry(1,c->Num,TheFileName,"Line"); + break; + case GEOM_ELEM_MOVE_SYMMETRY_LINE : + symmetry(0,c->Num,TheFileName,"Line"); + break; + } ZeroHighlight(&M); Replot(); } break; case GEOM_ELEM_ADD_DILATE_SURF : case GEOM_ELEM_MOVE_DILATE_SURF : + case GEOM_ELEM_ADD_SYMMETRY_SURF : + case GEOM_ELEM_MOVE_SYMMETRY_SURF : while(1){ Msg(STATUS,"Select Surface ('q'=quit)"); if(!SelectEntity(ENT_SURFACE, &v,&c,&s)){ @@ -417,7 +450,20 @@ void geom_event_handler (int event) { Replot(); break; } - dilate(event==GEOM_ELEM_ADD_DILATE_SURF?1:0,s->Num,TheFileName,"Surface"); + switch(event){ + case GEOM_ELEM_ADD_DILATE_SURF : + dilate(1,s->Num,TheFileName,"Surface"); + break; + case GEOM_ELEM_MOVE_DILATE_SURF : + dilate(0,s->Num,TheFileName,"Surface"); + break; + case GEOM_ELEM_ADD_SYMMETRY_SURF : + symmetry(1,s->Num,TheFileName,"Surface"); + break; + case GEOM_ELEM_MOVE_SYMMETRY_SURF : + symmetry(0,s->Num,TheFileName,"Surface"); + break; + } ZeroHighlight(&M); Replot(); } @@ -566,7 +612,10 @@ void GeomCb (Widget w, XtPointer client_data, XtPointer call_data){ case GEOM_DILAT_Y : strcpy(dy_text,XmTextGetString(w)); break; case GEOM_DILAT_Z : strcpy(dz_text,XmTextGetString(w)); break; case GEOM_DILAT_F : strcpy(df_text,XmTextGetString(w)); break; - + case GEOM_SYMMETRY_A : strcpy(sa_text,XmTextGetString(w)); break; + case GEOM_SYMMETRY_B : strcpy(sb_text,XmTextGetString(w)); break; + case GEOM_SYMMETRY_C : strcpy(sc_text,XmTextGetString(w)); break; + case GEOM_SYMMETRY_D : strcpy(sd_text,XmTextGetString(w)); break; default : Msg(WARNING, "Unknown Value in GeomCb (%d)", (long int)client_data); break; diff --git a/Unix/CbGeom.h b/Unix/CbGeom.h index 890420ebab57e2741d1f74bdaa1112c0e7874f7b..20167497e55973449c1994df93b7a6d60064eef0 100644 --- a/Unix/CbGeom.h +++ b/Unix/CbGeom.h @@ -1,4 +1,4 @@ -/* $Id: CbGeom.h,v 1.2 2000-11-23 14:11:41 geuzaine Exp $ */ +/* $Id: CbGeom.h,v 1.3 2000-12-13 13:57:00 geuzaine Exp $ */ #ifndef _CB_GEOM_H_ #define _CB_GEOM_H_ @@ -25,34 +25,40 @@ #define GEOM_ELEM_ADD_DILATE_POINT 19 #define GEOM_ELEM_ADD_DILATE_LINE 20 #define GEOM_ELEM_ADD_DILATE_SURF 21 -#define GEOM_ELEM_MOVE_TRANSLATE_POINT 22 -#define GEOM_ELEM_MOVE_TRANSLATE_LINE 23 -#define GEOM_ELEM_MOVE_TRANSLATE_SURF 24 -#define GEOM_ELEM_MOVE_ROTATE_POINT 25 -#define GEOM_ELEM_MOVE_ROTATE_LINE 26 -#define GEOM_ELEM_MOVE_ROTATE_SURF 27 -#define GEOM_ELEM_MOVE_DILATE_POINT 28 -#define GEOM_ELEM_MOVE_DILATE_LINE 29 -#define GEOM_ELEM_MOVE_DILATE_SURF 30 -#define GEOM_ELEM_EXTRUDE_TRANSLATE_POINT 31 -#define GEOM_ELEM_EXTRUDE_TRANSLATE_LINE 32 -#define GEOM_ELEM_EXTRUDE_TRANSLATE_SURF 33 -#define GEOM_ELEM_EXTRUDE_ROTATE_POINT 34 -#define GEOM_ELEM_EXTRUDE_ROTATE_LINE 35 -#define GEOM_ELEM_EXTRUDE_ROTATE_SURF 36 -#define GEOM_ELEM_DELETE_POINT 37 -#define GEOM_ELEM_DELETE_LINE 38 -#define GEOM_ELEM_DELETE_SURF 39 -#define GEOM_ELEM_SKETCH 40 -#define GEOM_PHYS_ADD_POINT 41 -#define GEOM_PHYS_ADD_LINE 42 -#define GEOM_PHYS_ADD_SURF 43 -#define GEOM_PHYS_ADD_VOLUME 44 -#define GEOM_PHYS_DELETE_POINT 45 -#define GEOM_PHYS_DELETE_LINE 46 -#define GEOM_PHYS_DELETE_SURF 47 -#define GEOM_PHYS_DELETE_VOLUME 48 -#define GEOM_PARSE 49 +#define GEOM_ELEM_ADD_SYMMETRY_POINT 22 +#define GEOM_ELEM_ADD_SYMMETRY_LINE 23 +#define GEOM_ELEM_ADD_SYMMETRY_SURF 24 +#define GEOM_ELEM_MOVE_TRANSLATE_POINT 25 +#define GEOM_ELEM_MOVE_TRANSLATE_LINE 26 +#define GEOM_ELEM_MOVE_TRANSLATE_SURF 27 +#define GEOM_ELEM_MOVE_ROTATE_POINT 28 +#define GEOM_ELEM_MOVE_ROTATE_LINE 29 +#define GEOM_ELEM_MOVE_ROTATE_SURF 30 +#define GEOM_ELEM_MOVE_DILATE_POINT 31 +#define GEOM_ELEM_MOVE_DILATE_LINE 32 +#define GEOM_ELEM_MOVE_DILATE_SURF 33 +#define GEOM_ELEM_MOVE_SYMMETRY_POINT 34 +#define GEOM_ELEM_MOVE_SYMMETRY_LINE 35 +#define GEOM_ELEM_MOVE_SYMMETRY_SURF 36 +#define GEOM_ELEM_EXTRUDE_TRANSLATE_POINT 37 +#define GEOM_ELEM_EXTRUDE_TRANSLATE_LINE 38 +#define GEOM_ELEM_EXTRUDE_TRANSLATE_SURF 39 +#define GEOM_ELEM_EXTRUDE_ROTATE_POINT 40 +#define GEOM_ELEM_EXTRUDE_ROTATE_LINE 41 +#define GEOM_ELEM_EXTRUDE_ROTATE_SURF 42 +#define GEOM_ELEM_DELETE_POINT 43 +#define GEOM_ELEM_DELETE_LINE 44 +#define GEOM_ELEM_DELETE_SURF 45 +#define GEOM_ELEM_SKETCH 46 +#define GEOM_PHYS_ADD_POINT 47 +#define GEOM_PHYS_ADD_LINE 48 +#define GEOM_PHYS_ADD_SURF 49 +#define GEOM_PHYS_ADD_VOLUME 50 +#define GEOM_PHYS_DELETE_POINT 51 +#define GEOM_PHYS_DELETE_LINE 52 +#define GEOM_PHYS_DELETE_SURF 53 +#define GEOM_PHYS_DELETE_VOLUME 54 +#define GEOM_PARSE 55 /* GeomCb */ @@ -78,6 +84,10 @@ #define GEOM_DILAT_Y 20 #define GEOM_DILAT_Z 21 #define GEOM_DILAT_F 22 +#define GEOM_SYMMETRY_A 23 +#define GEOM_SYMMETRY_B 24 +#define GEOM_SYMMETRY_C 25 +#define GEOM_SYMMETRY_D 26 void geom_event_handler (int event); diff --git a/Unix/Geometry.cpp b/Unix/Geometry.cpp index 3bb6fb20b5f805c7ef44d8bb89e911fe6f14d016..73de7c330bc297289910e13a68750cc50986d51d 100644 --- a/Unix/Geometry.cpp +++ b/Unix/Geometry.cpp @@ -1,4 +1,4 @@ -/* $Id: Geometry.cpp,v 1.5 2000-12-08 11:16:55 geuzaine Exp $ */ +/* $Id: Geometry.cpp,v 1.6 2000-12-13 13:57:00 geuzaine Exp $ */ #include "Gmsh.h" #include "GmshUI.h" @@ -646,6 +646,21 @@ void ForceGeometry_GD (Widgets_T *w){ NULL); } + XtVaSetValues(w->GD.symmDialog, + XmNmarginHeight, DIALOG_H, + XmNmarginWidth, DIALOG_W, + NULL); + + XtVaSetValues(w->GD.symmFrame[0], + XmNshadowType, IN_FRAME_TYPE, + XmNshadowThickness, IN_FRAME_SHADOW, + NULL); + + XtVaSetValues(w->GD.symmFrame[1], + XmNchildHorizontalSpacing, TITLE_SPACE, + XmNchildVerticalAlignment, TITLE_ALIGN, + NULL); + } void ForceGeometry_MD (Widgets_T *w){ diff --git a/Unix/Register.cpp b/Unix/Register.cpp index c0d1645fb65713eb3e43da1fe89da1363656580c..4bc3d6b2fed0c31d78660645bc2033fc179bc616 100644 --- a/Unix/Register.cpp +++ b/Unix/Register.cpp @@ -1,4 +1,4 @@ -/* $Id: Register.cpp,v 1.12 2000-12-08 11:16:55 geuzaine Exp $ */ +/* $Id: Register.cpp,v 1.13 2000-12-13 13:57:00 geuzaine Exp $ */ #include "Gmsh.h" #include "GmshUI.h" @@ -292,6 +292,11 @@ void RegisterCallbacks_GD(Widgets_T *w){ register_valchg_cb (w->GD.dilatText[2], GeomCb, GEOM_DILAT_Z); register_valchg_cb (w->GD.dilatText[3], GeomCb, GEOM_DILAT_F); + register_cancel_cb (w->GD.symmDialog, ManageCb, w->GD.symmDialog); + register_valchg_cb (w->GD.symmText[0], GeomCb, GEOM_SYMMETRY_A); + register_valchg_cb (w->GD.symmText[1], GeomCb, GEOM_SYMMETRY_B); + register_valchg_cb (w->GD.symmText[2], GeomCb, GEOM_SYMMETRY_C); + register_valchg_cb (w->GD.symmText[3], GeomCb, GEOM_SYMMETRY_D); } void RegisterCallbacks_MD(Widgets_T *w){ diff --git a/Unix/Widgets.cpp b/Unix/Widgets.cpp index 950eb6897b05e8b0368cf10a596b367e92066195..29c99b66c69ad74c130b12f6888f80adcba5138e 100644 --- a/Unix/Widgets.cpp +++ b/Unix/Widgets.cpp @@ -1,4 +1,4 @@ -/* $Id: Widgets.cpp,v 1.17 2000-12-08 11:16:55 geuzaine Exp $ */ +/* $Id: Widgets.cpp,v 1.18 2000-12-13 13:57:00 geuzaine Exp $ */ #include "Gmsh.h" #include "GmshUI.h" @@ -1998,7 +1998,7 @@ void CreateWidgets_GD(Widgets_T *w){ /* Translation */ i=0; - XtSetArg(arg[i], XmNdialogTitle, XmStringCreateSimple("CurrentTranslation")); i++; + XtSetArg(arg[i], XmNdialogTitle, XmStringCreateSimple("Current Translation")); i++; XtSetArg(arg[i], XmNokLabelString, XmStringCreateSimple("Ok")); i++; XtSetArg(arg[i], XmNcancelLabelString, XmStringCreateSimple("Cancel")); i++; XtSetArg(arg[i], XmNautoUnmanage, False); i++; @@ -2082,7 +2082,7 @@ void CreateWidgets_GD(Widgets_T *w){ w->GD.dilatText[2] = XmCreateTextField(w->GD.dilatFrameRowCol[0], "GDdilatText2", arg, i); XtManageChild(w->GD.dilatText[2]); - /* dilat - char length */ + /* dilat - factor */ i=0; w->GD.dilatFrame[0][1] = XmCreateFrame(w->GD.dilatRowCol, "GDdilatFrame01", arg, i); @@ -2104,6 +2104,51 @@ void CreateWidgets_GD(Widgets_T *w){ w->GD.dilatText[3] = XmCreateTextField(w->GD.dilatFrameRowCol[1], "GDdilatText3", arg, i); XtManageChild(w->GD.dilatText[3]); + /* Symmetry */ + + i=0; + XtSetArg(arg[i], XmNdialogTitle, XmStringCreateSimple("Current Symmetry")); i++; + XtSetArg(arg[i], XmNokLabelString, XmStringCreateSimple("Ok")); i++; + XtSetArg(arg[i], XmNcancelLabelString, XmStringCreateSimple("Cancel")); i++; + XtSetArg(arg[i], XmNautoUnmanage, False); i++; + w->GD.symmDialog = XmCreateTemplateDialog(w->M.shell, "GDsymmDialog", arg, i); + XtUnmanageChild(w->GD.symmDialog); + + i=0; + w->GD.symmFrame[0] = XmCreateFrame(w->GD.symmDialog, "GDsymmFrame0", arg, i); + XtManageChild(w->GD.symmFrame[0]); + i=0; + XtSetArg(arg[i], XmNlabelString, XmStringCreateSimple("Plane")); i++; + XtSetArg(arg[i], XmNchildType, XmFRAME_TITLE_CHILD); i++; + w->GD.symmFrame[1] = XmCreateLabel(w->GD.symmFrame[0], "GDsymmFrame1", arg, i); + XtManageChild(w->GD.symmFrame[1]); + + i=0; + XtSetArg(arg[i], XmNorientation, XmHORIZONTAL); i++; + w->GD.symmFrameRowCol = XmCreateRowColumn(w->GD.symmFrame[0], "ODsymmFrameRowCol", arg, i); + XtManageChild(w->GD.symmFrameRowCol); + + i=0; + XtSetArg(arg[i], XmNvalue, ""); i++; + XtSetArg(arg[i], XmNcolumns, 10); i++; + w->GD.symmText[0] = XmCreateTextField(w->GD.symmFrameRowCol, "GDsymmText0", arg, i); + XtManageChild(w->GD.symmText[0]); + i=0; + XtSetArg(arg[i], XmNvalue, ""); i++; + XtSetArg(arg[i], XmNcolumns, 10); i++; + w->GD.symmText[1] = XmCreateTextField(w->GD.symmFrameRowCol, "GDsymmText1", arg, i); + XtManageChild(w->GD.symmText[1]); + i=0; + XtSetArg(arg[i], XmNvalue, ""); i++; + XtSetArg(arg[i], XmNcolumns, 10); i++; + w->GD.symmText[2] = XmCreateTextField(w->GD.symmFrameRowCol, "GDsymmText2", arg, i); + XtManageChild(w->GD.symmText[2]); + i=0; + XtSetArg(arg[i], XmNvalue, ""); i++; + XtSetArg(arg[i], XmNcolumns, 10); i++; + w->GD.symmText[3] = XmCreateTextField(w->GD.symmFrameRowCol, "GDsymmText3", arg, i); + XtManageChild(w->GD.symmText[3]); + } /* ------------------------------------------------------------------------ diff --git a/Unix/Widgets.h b/Unix/Widgets.h index 54106ae7893c13924fccd7169ee3a7e73f4e81fc..2611bb269f1fafe2c28bfaa3e42505bb74363ee7 100644 --- a/Unix/Widgets.h +++ b/Unix/Widgets.h @@ -1,4 +1,4 @@ -/* $Id: Widgets.h,v 1.8 2000-12-08 11:16:55 geuzaine Exp $ */ +/* $Id: Widgets.h,v 1.9 2000-12-13 13:57:00 geuzaine Exp $ */ #ifndef _WIDGETS_H_ #define _WIDGETS_H_ @@ -169,6 +169,9 @@ typedef struct { Widget dilatDialog, dilatRowCol ; Widget dilatFrame[2][2], dilatFrameRowCol[2], dilatText[4] ; + + Widget symmDialog, symmRowCol ; + Widget symmFrame[2], symmFrameRowCol, symmText[4] ; } GD; /* mesh dialogs */