Skip to content
Snippets Groups Projects
Commit 8019dde9 authored by Christophe Geuzaine's avatar Christophe Geuzaine
Browse files

first try at passing callback for gui update

parent 5c83b56a
No related branches found
No related tags found
No related merge requests found
...@@ -1336,6 +1336,11 @@ void solver_cb(Fl_Widget *w, void *data) ...@@ -1336,6 +1336,11 @@ void solver_cb(Fl_Widget *w, void *data)
onelab_cb(0, (void*)"check"); onelab_cb(0, (void*)"check");
} }
void flgui_wait_cb(double time)
{
FlGui::instance()->wait(time);
}
int metamodel_cb(const std::string &name, const std::string &action) int metamodel_cb(const std::string &name, const std::string &action)
{ {
#if defined(HAVE_ONELAB_METAMODEL) #if defined(HAVE_ONELAB_METAMODEL)
...@@ -1343,7 +1348,7 @@ int metamodel_cb(const std::string &name, const std::string &action) ...@@ -1343,7 +1348,7 @@ int metamodel_cb(const std::string &name, const std::string &action)
if(FlGui::instance()->onelab->isBusy()) if(FlGui::instance()->onelab->isBusy())
FlGui::instance()->onelab->show(); FlGui::instance()->onelab->show();
else{ else{
initializeMetamodel(Msg::GetOnelabClient()); initializeMetamodel(Msg::GetOnelabClient(), &flgui_wait_cb);
onelab::number n("IsMetamodel", 1.); onelab::number n("IsMetamodel", 1.);
n.setVisible(false); n.setVisible(false);
......
#include "OnelabClients.h" #include "OnelabClients.h"
#include "metamodel.h" #include "metamodel.h"
void initializeMetamodel(onelab::client *client) void (*my_gui_wait_fct)(double time) = 0;
void initializeMetamodel(onelab::client *client, void (*gui_wait_fct)(double time))
{ {
//called by "metamodel_cb" //called by "metamodel_cb"
//copies the Msg::_onelabClient to OLMsg::_onelabClient //copies the Msg::_onelabClient to OLMsg::_onelabClient
//This pointer refers to an object of class localGmsh() (cf GmshMessage.cpp) //This pointer refers to an object of class localGmsh() (cf GmshMessage.cpp)
//which is a onelab::client with sone Gmsh features (merge and messages). //which is a onelab::client with sone Gmsh features (merge and messages).
OLMsg::SetOnelabClient(client); OLMsg::SetOnelabClient(client);
my_gui_wait_fct = gui_wait_fct;
} }
int metamodel(const std::string &action){ int metamodel(const std::string &action){
......
...@@ -3,4 +3,4 @@ ...@@ -3,4 +3,4 @@
namespace onelab{ class client; } namespace onelab{ class client; }
int metamodel(const std::string &todo); int metamodel(const std::string &todo);
void initializeMetamodel(onelab::client *); void initializeMetamodel(onelab::client *, void (*wait)(double time));
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment