diff --git a/Common/DefaultOptions.h b/Common/DefaultOptions.h index 07ee4658cfd1f70d86642aa2a8771dc886cd3a92..b90f60319baf914a9ec2c7a269d6b74976045316 100644 --- a/Common/DefaultOptions.h +++ b/Common/DefaultOptions.h @@ -167,7 +167,7 @@ StringXNumber GeneralOptions_Number[] = { "Use trackball rotation mode" }, { F|O, "ZoomFactor" , opt_general_zoom_factor , 1.1 , "'Speed' of the middle mouse button zoom" }, - { F|O, "DefaultPlugins" , opt_general_default_plugins , 0. , + { F|O, "DefaultPlugins" , opt_general_default_plugins , 1. , "Load default plugins on startup" }, { F, "Clip0" , opt_general_clip0 , 0. , "Enable clip plane 0" }, diff --git a/Fltk/GUI.cpp b/Fltk/GUI.cpp index 33bc09b9a9ecd3f50030805a7296b132bca6064c..0139f9094f5ade9d17f085636a353e7afc699044 100644 --- a/Fltk/GUI.cpp +++ b/Fltk/GUI.cpp @@ -1,4 +1,4 @@ -// $Id: GUI.cpp,v 1.96 2001-07-31 09:56:52 geuzaine Exp $ +// $Id: GUI.cpp,v 1.97 2001-07-31 11:13:16 geuzaine Exp $ // To make the interface as visually consistent as possible, please: // - use the BH, BW, WB, IW values for button heights/widths, window borders, etc. @@ -638,11 +638,11 @@ void GUI::create_menu_window(int argc, char **argv){ (Fl_Callback *)view_save_ascii_cb, (void*)i, 0) ; m_popup_butt[i]->add("Save as/Binary View...", 0, (Fl_Callback *)view_save_binary_cb, (void*)i, 0) ; + add_post_plugins ( m_popup_butt[i] , i); m_popup_butt[i]->add("Apply as Background Mesh", 0, (Fl_Callback *)view_applybgmesh_cb, (void*)i, FL_MENU_DIVIDER); m_popup_butt[i]->add("Options...", 0, (Fl_Callback *)view_options_cb, (void*)i, 0); - add_post_plugins ( m_popup_butt[i] , i); m_popup_butt[i]->textsize(CTX.fontsize); m_popup_butt[i]->hide(); } @@ -1691,50 +1691,81 @@ void GUI::set_statistics(){ PluginDialogBox * GUI::create_plugin_window(GMSH_Plugin *p, int iView){ char buffer[1024],namep[1024],copyright[256],author[256],help[1024]; + + // get plugin info - PluginDialogBox *pdb = new PluginDialogBox; int n = p->getNbOptions(); p->getName(namep); p->getInfos(author,copyright,help); + std::pair<int,GMSH_Plugin*> *pair = new std::pair<int,GMSH_Plugin*>(iView,p); + + // create window + int width = 20*CTX.fontsize; - int height = (n+2)*BH ; - Fl_Window *pl_window = new Fl_Window(width,height); - pdb->main_window = pl_window; - pl_window->box(WINDOW_BOX); + int height = (n+2)*BH + 5*WB; + + PluginDialogBox *pdb = new PluginDialogBox; + pdb->main_window = new Fl_Window(width,height); + pdb->main_window->box(WINDOW_BOX); sprintf(buffer,"%s Plugin",namep); char *nbuffer = new char[strlen(buffer)+1]; strcpy(nbuffer,buffer); - pl_window->label(nbuffer); + pdb->main_window->label(nbuffer); - if(n > 20)Msg(GERROR,"Plugin has too much parameters"); + { + Fl_Tabs *o = new Fl_Tabs(WB, WB, width-2*WB, height-3*WB-1*BH); + { + Fl_Group *g = new Fl_Group(WB, WB+BH, width-2*WB, height-3*WB-2*BH, "Options"); + g->labelsize(CTX.fontsize); - for(int i=0;i<n;i++) - { - StringXNumber *sxn; - sxn = p->GetOption(i); - pdb->view_value[i] = new Fl_Value_Input(2*WB, 2*WB+(i)*BH, IW, BH, sxn->str); - pdb->view_value[i]->labelsize(CTX.fontsize); - pdb->view_value[i]->textsize(CTX.fontsize); - pdb->view_value[i]->type(FL_HORIZONTAL); - pdb->view_value[i]->align(FL_ALIGN_RIGHT); - pdb->view_value[i]->value(sxn->def); + if(n > 20)Msg(GERROR, "Plugin has too many parameters"); + + for(int i=0;i<n;i++){ + StringXNumber *sxn; + sxn = p->GetOption(i); + pdb->view_value[i] = new Fl_Value_Input(2*WB, 2*WB+(i+1)*BH, IW, BH, sxn->str); + pdb->view_value[i]->labelsize(CTX.fontsize); + pdb->view_value[i]->textsize(CTX.fontsize); + pdb->view_value[i]->type(FL_HORIZONTAL); + pdb->view_value[i]->align(FL_ALIGN_RIGHT); + pdb->view_value[i]->value(sxn->def); + } + + g->end(); } + { + Fl_Group *g = new Fl_Group(WB, WB+BH, width-2*WB, height-3*WB-2*BH, "About"); + g->labelsize(CTX.fontsize); + + Fl_Browser *o = new Fl_Browser(2*WB, 2*WB+1*BH, width-4*WB, height-5*WB-2*BH); + o->add(""); + o->add(namep); + o->add(""); + o->add(help); + o->add(""); + o->add(author); + o->add(copyright); + o->textsize(CTX.fontsize); + + g->end(); + } + o->end(); + } + + Fl_Button* cancel = new Fl_Button(width-BB-WB, height-BH-WB, BB, BH, "Close"); + cancel->labelsize(CTX.fontsize); + cancel->callback(cancel_cb, (void*)pdb->main_window); - Fl_Button* cancel = new Fl_Button(width-BB-WB, height-BH-WB, BB, BH, "Close"); Fl_Button* ok = new Fl_Return_Button(width-2*BB-2*WB, height-BH-WB, BB, BH, "Run"); ok->labelsize(CTX.fontsize); - std::pair<int,GMSH_Plugin*> *pair = - new std::pair<int,GMSH_Plugin*>(iView,p); ok->callback(view_plugin_cb, (void*)pair); - cancel->labelsize(CTX.fontsize); - cancel->callback(cancel_cb, (void*)pl_window); if(CTX.center_windows) - pl_window->position(m_window->x()+m_window->w()/2-width/2, - m_window->y()+9*BH-height/2); + pdb->main_window->position(m_window->x()+m_window->w()/2-width/2, + m_window->y()+9*BH-height/2); + + pdb->main_window->end(); - pl_window->end(); - return pdb; } diff --git a/Plugin/CutMap.cpp b/Plugin/CutMap.cpp index b0d9039906fd4c65f12e2152524ac704c70c61ba..c9dc37c13be3b0faf02b5d96a4f01970dcd87374 100644 --- a/Plugin/CutMap.cpp +++ b/Plugin/CutMap.cpp @@ -1,4 +1,4 @@ -// $Id: CutMap.cpp,v 1.10 2001-07-31 10:28:50 geuzaine Exp $ +// $Id: CutMap.cpp,v 1.11 2001-07-31 11:13:16 geuzaine Exp $ #include "CutMap.h" #include "List.h" @@ -30,10 +30,9 @@ void GMSH_CutMapPlugin::getName(char *name) const void GMSH_CutMapPlugin::getInfos(char *author, char *copyright, char *help_text) const { - strcpy(author,"J.-F. Remacle (remacle@scorec.rpi.edu)"); - strcpy(copyright,"DGR (www.multiphysics.com)"); - strcpy(help_text, - "This Plugins extracts the isovalue surface of value 'Value'\n"); + strcpy(author, "J.-F. Remacle (remacle@scorec.rpi.edu)"); + strcpy(copyright, "DGR (www.multiphysics.com)"); + strcpy(help_text, "This Plugins extracts the isovalue surface of value 'Value'"); } int GMSH_CutMapPlugin::getNbOptions() const diff --git a/Plugin/CutPlane.cpp b/Plugin/CutPlane.cpp index 3c1020ea241d394624f54270ad4ab5047630e6c8..b91222a3deeef4096b59448fccfd180e5f1c9735 100644 --- a/Plugin/CutPlane.cpp +++ b/Plugin/CutPlane.cpp @@ -1,4 +1,4 @@ -// $Id: CutPlane.cpp,v 1.8 2001-07-31 10:24:56 geuzaine Exp $ +// $Id: CutPlane.cpp,v 1.9 2001-07-31 11:13:16 geuzaine Exp $ #include "CutPlane.h" #include "List.h" @@ -37,7 +37,7 @@ void GMSH_CutPlanePlugin::getInfos(char *author, char *copyright, char *help_tex { strcpy(author,"J.-F. Remacle (remacle@scorec.rpi.edu)"); strcpy(copyright,"DGR (www.multiphysics.com)"); - strcpy(help_text,"This Plugins cuts a view \n with a plane a x + b y + c z + d = 0\n"); + strcpy(help_text,"This Plugins cuts a view with a plane a x + b y + c z + d = 0"); } int GMSH_CutPlanePlugin::getNbOptions() const diff --git a/Plugin/CutSphere.cpp b/Plugin/CutSphere.cpp index f0c2bf16dc0085d2a910acc21c8f495161e8d5fb..4a52991f8adf284ac7630c241998f9c87439b519 100644 --- a/Plugin/CutSphere.cpp +++ b/Plugin/CutSphere.cpp @@ -1,4 +1,4 @@ -// $Id: CutSphere.cpp,v 1.7 2001-07-31 10:24:56 geuzaine Exp $ +// $Id: CutSphere.cpp,v 1.8 2001-07-31 11:13:16 geuzaine Exp $ #include <string.h> #include "CutSphere.h" @@ -38,9 +38,8 @@ void GMSH_CutSpherePlugin::getInfos(char *author, char *copyright, char *help_te { strcpy(author,"J.-F. Remacle (remacle@scorec.rpi.edu)"); strcpy(copyright,"DGR (www.multiphysics.com)"); - strcpy(help_text, - "This Plugins cuts a view\n" - "with the sphere (x-xc)^2 + (y-yc)^2 + (z-zc)^2 = r^20\n"); + strcpy(help_text, "This Plugins cuts a view with the sphere " + " (x-xc)^2 + (y-yc)^2 + (z-zc)^2 = r^20"); } int GMSH_CutSpherePlugin::getNbOptions() const diff --git a/doc/VERSIONS b/doc/VERSIONS index d8e5360f72f0cfc6ff368f16067a197762b861e7..b9e42edcc46732414e8995a9d0364da618ac17db 100644 --- a/doc/VERSIONS +++ b/doc/VERSIONS @@ -1,9 +1,10 @@ -$Id: VERSIONS,v 1.37 2001-07-31 08:01:25 geuzaine Exp $ +$Id: VERSIONS,v 1.38 2001-07-31 11:13:16 geuzaine Exp $ New in 1.22: Fixed (yet another) bug for 2D mesh in the mean plane; fixed surface coherence bug in extruded meshes; new double logarithmic post-processing scale, saturate value and smoothed normals option for -post-processing views; +post-processing views; plugins are now enabled by default on Windows, +Linux, SGI and DEC; New in 1.21: Fixed more memory leaks; added -opt command line option to parse definitions directly from the command line; fixed missing