diff --git a/Common/Context.h b/Common/Context.h index 856a0557e8b71c74aacbe7acda1058c646db4f0b..d468499801a0aba3f6a3320f97d390994795b154 100644 --- a/Common/Context.h +++ b/Common/Context.h @@ -105,7 +105,7 @@ class CTX { int optPosition[2], visPosition[2], hotPosition[2], clipPosition[2], manipPosition[2]; int statPosition[2], ctxPosition[2], solverPosition[2], solverSize[2]; int pluginPosition[2], pluginSize[2], fieldPosition[2], fieldSize[2]; - int fileChooserPosition[2]; + int fileChooserPosition[2], extraPosition[2], extraSize[2]; // use the system menu bar on Mac OS X? int systemMenuBar; // batch mode (-4: lua session, -3: server daemon, -2: check coherence, -1: write diff --git a/Common/DefaultOptions.h b/Common/DefaultOptions.h index a42d1598a75bcc223c41cd417c58cd72163f04e1..e77f9987552a90952e511161665901d16b3975e8 100644 --- a/Common/DefaultOptions.h +++ b/Common/DefaultOptions.h @@ -360,6 +360,14 @@ StringXNumber GeneralOptions_Number[] = { { F|O, "ExpertMode" , opt_general_expert_mode, 0. , "Enable expert mode (to disable all the messages meant for inexperienced " "users)" }, + { F|S, "ExtraPositionX" , opt_general_extra_position0 , 650. , + "Horizontal position (in pixels) of the upper left corner of the generic extra window" }, + { F|S, "ExtraPositionY" , opt_general_extra_position1 , 350. , + "Vertical position (in pixels) of the upper left corner of the generic extra window" }, + { F|S, "ExtraHeight" , opt_general_extra_size1 , 100. , + "Height (in pixels) of the generic extra window" }, + { F|S, "ExtraWidth" , opt_general_extra_size0 , 100. , + "Width (in pixels) of the generic extra window" }, { F|O, "FastRedraw" , opt_general_fast_redraw, 0. , "Draw simplified model while rotating, panning and zooming" }, diff --git a/Common/Options.cpp b/Common/Options.cpp index 7cc0bbe45d76b8b40f6da91c007301a08b9c3f3d..65f8012fd6a312399eb93ddd733b6db56f223914 100644 --- a/Common/Options.cpp +++ b/Common/Options.cpp @@ -1920,6 +1920,34 @@ double opt_general_field_size1(OPT_ARGS_NUM) return CTX::instance()->fieldSize[1]; } +double opt_general_extra_position0(OPT_ARGS_NUM) +{ + if(action & GMSH_SET) + CTX::instance()->extraPosition[0] = (int)val; + return CTX::instance()->extraPosition[0]; +} + +double opt_general_extra_position1(OPT_ARGS_NUM) +{ + if(action & GMSH_SET) + CTX::instance()->extraPosition[1] = (int)val; + return CTX::instance()->extraPosition[1]; +} + +double opt_general_extra_size0(OPT_ARGS_NUM) +{ + if(action & GMSH_SET) + CTX::instance()->extraSize[0] = (int)val; + return CTX::instance()->extraSize[0]; +} + +double opt_general_extra_size1(OPT_ARGS_NUM) +{ + if(action & GMSH_SET) + CTX::instance()->extraSize[1] = (int)val; + return CTX::instance()->extraSize[1]; +} + double opt_general_statistics_position0(OPT_ARGS_NUM) { if(action & GMSH_SET) diff --git a/Common/Options.h b/Common/Options.h index 08861e9eaece09e4f6e72c429a69b2d966da4484..4c31caedef2b333fdbdf0d4779589fc7a2a29d71 100644 --- a/Common/Options.h +++ b/Common/Options.h @@ -127,6 +127,10 @@ double opt_general_field_position0(OPT_ARGS_NUM); double opt_general_field_position1(OPT_ARGS_NUM); double opt_general_field_size0(OPT_ARGS_NUM); double opt_general_field_size1(OPT_ARGS_NUM); +double opt_general_extra_position0(OPT_ARGS_NUM); +double opt_general_extra_position1(OPT_ARGS_NUM); +double opt_general_extra_size0(OPT_ARGS_NUM); +double opt_general_extra_size1(OPT_ARGS_NUM); double opt_general_statistics_position0(OPT_ARGS_NUM); double opt_general_statistics_position1(OPT_ARGS_NUM); double opt_general_visibility_position0(OPT_ARGS_NUM); diff --git a/Fltk/FlGui.cpp b/Fltk/FlGui.cpp index e7ed4cff924cb0e79ba28df7d2775e4a36ae5b76..755e0f8327359f7efeb380515409927b03715671 100644 --- a/Fltk/FlGui.cpp +++ b/Fltk/FlGui.cpp @@ -49,6 +49,9 @@ typedef unsigned long intptr_t; #include "StringUtils.h" #include "Generator.h" #include "gl2ps.h" +#if defined(HAVE_3M) +#include "3M.h" +#endif // check (now!) if there are any pending events, and process them void FlGui::check(){ Fl::check(); } @@ -860,6 +863,10 @@ void FlGui::storeCurrentWindowsInfo() CTX::instance()->solverSize[0] = onelab->w(); CTX::instance()->solverSize[1] = onelab->h(); #endif +#if defined(HAVE_3M) + storeWindowPosition3M(); +#endif + fileChooserGetPosition(&CTX::instance()->fileChooserPosition[0], &CTX::instance()->fileChooserPosition[1]); } diff --git a/Post/PViewData.h b/Post/PViewData.h index 16db8b15817160511400604b488c77957169c825..997306daa2d93577e95c7669c77c8f33f5d70bb2 100644 --- a/Post/PViewData.h +++ b/Post/PViewData.h @@ -225,6 +225,9 @@ class PViewData { virtual bool isRemote(){ return false; } virtual int fillRemoteVertexArrays(std::string &options){ return 0; } + // is the view a list-based dataset + virtual bool isListBased(){ return false; } + // get GModel (if view supports it) virtual GModel *getModel(int step); diff --git a/Post/PViewDataList.h b/Post/PViewDataList.h index a15b4dfe266d9796923e39d33d49beef3541e520..87f2db440a16592f1b8be4b6eb9baf9d729087ef 100644 --- a/Post/PViewDataList.h +++ b/Post/PViewDataList.h @@ -115,6 +115,7 @@ class PViewDataList : public PViewData { bool combineTime(nameData &nd); bool combineSpace(nameData &nd); void setXY(std::vector<double> &x, std::vector<double> &y); + bool isListBased(){ return true; } // specific to list-based data sets void setOrder2(int type);