I have to admit, my skill to pose a question is worthless... ![]()
This code:
class myclass
{
LiquidCrystal *lcd;
}
Is it supposed to be in the header of my Menu library, as a second class?
myclass:setLC(LiquidCrystal *_lcd) { lcd = _lcd; }
Should belong in the Menu.cpp file as a new constructor?
My current header:
#ifndef _Menu_h
#define _Menu_h
#include "Arduino.h"
class Menu
{
public:
Menu();
void all(String lB, String rB, String lO, String rO);
void linksBoven(String s); //leftAbove on lcd
void linksOnder(String s); //leftUnder on lcd
void rechtsBoven(String s); //rightAbove on lcd
void rechtsOnder(String s); //richtUnder on lcd
void printMenu();
private:
String _lO; //string links onder/ 'right under'
String _lB; // links boven 'right above'
String _rO; // rechts onder 'right under'
String _rB;// rechts boven 'right above'
};
#endif
And current .cpp:
#include "Menu.h"
#include <LiquidCrystal.h>
LiquidCrystal lcd1(22, 23, 24, 25, 26, 27);
Menu::Menu(){
Serial.println("Menu");
lcd1.begin(16, 2);
}
#pragma region update text
void Menu::all(String lB, String rB, String lO, String rO){
linksBoven(lB);
rechtsBoven(rB);
linksOnder(lO);
rechtsOnder(rO);
printMenu();
}
void Menu::linksBoven(String s){
_lB = s;
}
void Menu::linksOnder(String s){
_lO = s;
}
void Menu::rechtsBoven(String s){
_rB = s;
}
void Menu::rechtsOnder(String s){
_rO = s;
}
#pragma endregion
void Menu::printMenu(){
lcd1.clear();
lcd1.setCursor(0, 0);
Serial.println(_lB.length());
String s;
if (_lB.length()>0) lcd1.print(_lB);
if (_rB.length() > 0) {
int pos = 16 - _rB.length() - 1;
lcd1.setCursor(pos, 0);
lcd1.print(" " + _rB);
}
if (_lO.length()>0) lcd1.print(_lO);
if (_rO.length() > 0) {
int pos = 16 - _rO.length()-1;
lcd1.setCursor(pos, 1);
lcd1.print(" " + _rO);
}
}