Example #1
0
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));
	}

}