void InfoScreens::changeViewMode(ViewMode mode) { if (viewMode == mode) { return; } this->viewMode = mode; if(mode == ViewMode::INFO) { btn.setOnButtonEvent(ButtonActionDelegate(&InfoScreens::infoModeBtnClicked, this)); } else { btn.setOnButtonEvent(ButtonActionDelegate(&InfoScreens::editModeBtnClicked, this)); } }
void InfoScreens::initRotary(int btnPin, int encoderCLK, int encoderDT) { rotary = new Rotary(); rotary->init(encoderCLK, encoderDT); if (btn != NULL) { delete(btn); } btn = rotary->initBtn(btnPin, ButtonActionDelegate(&InfoScreens::infoModeBtnClicked, this), false); rotary->setOnWheelEvent(RotaryWheelActionDelegate(&InfoScreens::rotaryWheelMoved, this)); }
void InfoScreens::initMFButton(int btnPin) { if (btn) { delete(btn); } btn = new MultiFunctionButton(); btn->initBtn(btnPin); btn->enableClickAndHold(false); btn->setOnButtonEvent(ButtonActionDelegate(&InfoScreens::infoModeBtnClicked, this)); }
void InfoScreens::setViewMode(ViewMode mode) { if (viewMode == mode) { return; } this->viewMode = mode; if(mode == ViewMode::INFO) { btn->enableClickAndHold(false); btn->setOnButtonEvent(ButtonActionDelegate(&InfoScreens::infoModeBtnClicked, this)); } else if(mode == ViewMode::EDIT){ btn->enableClickAndHold(false); btn->setOnButtonEvent(ButtonActionDelegate(&InfoScreens::editModeBtnClicked, this)); showEditParam(); } else if(mode == ViewMode::EDIT_FIELD) { btn->enableClickAndHold(true); btn->setOnButtonEvent(ButtonActionDelegate(&InfoScreens::editFieldModeBtnClicked, this)); } }