int GUIManager::Init(const char* argv0, const char* name /* = "" */) { SofaGUI::SetProgramName(argv0); sofa::component::init(); sofa::simulation::xml::initXml(); GUICreator* creator; if (currentGUI) return 0; // already initialized if (guiCreators.empty()) { std::cerr << "ERROR(SofaGUI): No GUI registered."<<std::endl; return 1; } if( strcmp(name,"") == 0 || name == NULL){ name = GetValidGUIName(); // get the default gui name } creator = GetGUICreator(name); if(!creator){ return 1; } valid_guiname = name; // at this point we must have a valid name for the gui. if (creator->init) return (*creator->init)(valid_guiname, guiOptions); else return 0; }
GUIManager::GUICreator* GUIManager::GetGUICreator(const char* name) { if (!name) name = GetValidGUIName(); std::list<GUICreator>::iterator it =guiCreators.begin(); std::list<GUICreator>::iterator itend =guiCreators.end(); while (it != itend && strcmp(name, it->name)) ++it; if (it == itend) { std::cerr << "ERROR(GUIManager): GUI "<<name<<" creation failed."<<std::endl; std::cerr << "Available GUIs:" << ListSupportedGUI(' ') << std::endl; return NULL; } else return &(*it); }
GUIManager::GUICreator* GUIManager::GetGUICreator(const char* name) { if (!name) name = GetValidGUIName(); std::list<GUICreator>::iterator it =guiCreators.begin(); std::list<GUICreator>::iterator itend =guiCreators.end(); while (it != itend && strcmp(name, it->name)) ++it; if (it == itend) { msg_error("GUIManager") << "GUI '"<<name<<"' creation failed."<< msgendl << "Available GUIs: {" << ListSupportedGUI(' ') << "}"; return nullptr; } else return &(*it); }
int GUIManager::Init(const char* argv0, const char* name) { BaseGUI::SetProgramName(argv0); BaseGUI::SetArgumentParser(currentArgumentParser); sofa::simulation::common::init(); static bool first = true; if (first) { sofa::component::initComponentBase(); sofa::component::initComponentCommon(); sofa::component::initComponentGeneral(); sofa::component::initComponentAdvanced(); sofa::component::initComponentMisc(); first = false; } if (currentGUI) return 0; // already initialized if (guiCreators.empty()) { msg_error("GUIManager") << "No GUI registered."; return 1; } if( name == NULL || strcmp(name,"") == 0 ) { name = GetValidGUIName(); // get the default gui name } GUICreator *creator = GetGUICreator(name); if(!creator) { return 1; } valid_guiname = name; // at this point we must have a valid name for the gui. return 0; }