// callback for string static void onelab_string_input_choice_cb(Fl_Widget *w, void *data) { if(!data) return; std::string name((char*)data); std::vector<onelab::string> strings; OnelabDatabase::instance()->get(strings, name); if(strings.size()){ Fl_Input_Choice *o = (Fl_Input_Choice*)w; onelab::string old = strings[0]; strings[0].setValue(o->value()); std::string choices; for(int i = 0; i < o->menubutton()->menu()->size(); i++){ if(o->menubutton()->menu()[i].flags & FL_MENU_TOGGLE){ if(o->menubutton()->menu()[i].flags & FL_MENU_VALUE) choices += "1"; else choices += "0"; } } if(choices.size()) strings[0].setAttribute("MultipleSelection", choices); //setGmshOption(strings[0]); OnelabDatabase::instance()->set(strings[0], "localGUI"); autoCheck(old, strings[0]); } }
// callback for number static void onelab_number_input_range_cb(Fl_Widget *w, void *data) { if(!data) return; std::string name((char*)data); std::vector<onelab::number> numbers; OnelabDatabase::instance()->get(numbers, name); if(numbers.size()){ inputRange *o = (inputRange*)w; onelab::number old = numbers[0]; if(o->doCallbackOnValues()){ numbers[0].setValue(o->value()); numbers[0].setMin(o->minimum()); numbers[0].setMax(o->maximum()); numbers[0].setStep(o->step()); numbers[0].setChoices(o->choices()); } o->doCallbackOnValues(true); numbers[0].setAttribute("Loop", o->loop()); numbers[0].setAttribute("Graph", o->graph()); setGmshOption(numbers[0]); OnelabDatabase::instance()->set(numbers[0], std::string("localGUI")); updateGraphs(); autoCheck(old, numbers[0]); } }
static void onelab_number_check_button_cb(Fl_Widget *w, void *data) { if(!data) return; std::string name((char*)data); std::vector<onelab::number> numbers; OnelabDatabase::instance()->get(numbers, name); if(numbers.size()){ Fl_Check_Button *o = (Fl_Check_Button*)w; onelab::number old = numbers[0]; numbers[0].setValue(o->value()); setGmshOption(numbers[0]); OnelabDatabase::instance()->set(numbers[0], std::string("localGUI")); autoCheck(old, numbers[0]); } }
static void onelab_number_choice_cb(Fl_Widget *w, void *data) { if(!data) return; std::string name((char*)data); std::vector<onelab::number> numbers; OnelabDatabase::instance()->get(numbers, name); if(numbers.size()){ Fl_Choice *o = (Fl_Choice*)w; std::vector<double> choices = numbers[0].getChoices(); onelab::number old = numbers[0]; if(o->value() < (int)choices.size()) numbers[0].setValue(choices[o->value()]); setGmshOption(numbers[0]); OnelabDatabase::instance()->set(numbers[0], std::string("localGUI")); autoCheck(old, numbers[0]); } }
// ------------------------------------------------------------------------- // Strategy2005CL::waitStart // ------------------------------------------------------------------------- // Procedure de depart // Les leds du lcd: // led rouge = le robot se configure // led verte = le robot attend qu'on enleve la jack // led verte clignote = on est en match // led rouge clignote = le match est termine // ------------------------------------------------------------------------- bool Strategy2005CL::waitStart(InitMode mode) { matchIsFinished_ = false; Lcd->setLed(LCD_LED_RED, LCD_LED_ON); Lcd->setLed(LCD_LED_GREEN, LCD_LED_OFF); switch(mode) { case INIT_COMPLETE: autoCheck(); case INIT_FAST: waitJackout(); break; case INIT_NONE: // on demare tout de suite break; } Lcd->setLed(LCD_LED_RED, LCD_LED_OFF); Lcd->setLed(LCD_LED_GREEN, LCD_LED_BLINK); main_->startMatch(); return true; }