Menu design problem ( temperature page + menu)

please find the sketch below :slight_smile:

int upButton = 32;
int downButton = 33;
int selectButton = 25;
int menu = 0;
;
int buttonState3 = 0;  // button state for select buttom
int lastbuttonState3 = 0;

void loop() {
  BlynkEdgent.run ();
  timer.run();

  buttonState3 = digitalRead (selectButton);

  if ( buttonState3 != lastbuttonState3) {
    if (buttonState3 == HIGH) {
      buttonaction();                              //if pressed select button , start buttonaction function          
                                                             //and checking the button action> page select
    }

  } else {
    sensorpage();   //if button not pressed, go to sensorpage( temp page)
  }


  lastbuttonState3 = buttonState3;

}

void buttonaction() {                          //detect button action ,updating menu number and                  
                                                             //shown related page
  if (!digitalRead(downButton)) {
    menu++;
    delay(100);
    updateMenu();
    delay(100);
    while (!digitalRead(downButton));
  }
  if (!digitalRead(upButton)) {
    menu--;
    delay(100);
    updateMenu();
    delay(100);
    while (!digitalRead(upButton));
  }
  if (!digitalRead(selectButton)) {
    executeAction();
    delay(100);
    updateMenu();
    delay(100);
    while (!digitalRead(selectButton));
  }
}

void updateMenu()                      //menu display
{

  display.setFont(&FreeSans9pt7b);
  display.setTextSize(1);


  switch (menu) {
    case -3:
      menu = 0;
      break;

    case -2:
      display.clearDisplay() ;
      display.display();


    case -1:
      menu = 0;
      break;

    case 0:
      sensorpage();
      break;



    case 1:
      display.clearDisplay();
      display.setTextColor(WHITE);
      display.setCursor(0, y);
      display.println("> Start Logging");
      display.setCursor(0, y2);
      display.println(" MenuItem2");
      display.display();
      break;
    case 2:
      display.clearDisplay();
      display.setTextColor(WHITE);
      display.setCursor(0, y);
      display.println("Start Logging");
      display.setCursor(0, y2);
      display.println("> MenuItem2");
      display.display();
      break;
    case 3:
      display.clearDisplay();
      display.setTextColor(WHITE);
      display.setCursor(0, y);
      display.println("> Display off");
      display.setCursor(0, y2);
      display.println(" Back");
      display.display();
      break;
    case 4:
      display.clearDisplay();
      display.setTextColor(WHITE);
      display.setCursor(0, y);
      display.println("Display off");
      display.setCursor(0, y2);
      display.println("> Back");
      display.display();
      break;
    case 5:
      menu = 4;
      break;
  }
}


void sensorpage()     //temperature display page
{

  display.clearDisplay();
  display.setFont(&FreeSans9pt7b);

  display.drawLine ( 0, 20, 128, 20, WHITE);

  // DIsplay temp at bottom

  int x1 = 45;
  int x2 = 105;

  int y1 = 40;
  int y2 = 60;


  display.setTextSize(1);
  display.setTextColor(WHITE);
  display.setCursor(0, y1);
  display.print("T1:");
  display.setTextSize(1);
  display.setCursor(x1, y1);
  display.print(thermocouple.readCelsius());
  display.setCursor(x2, y1);
  display.cp437(true);
  display.write(167);
  display.print("C");

  display.setCursor(0, y2);
  display.print("T2:");
  display.setCursor(x1, y2);
  // display.print(rtc.getTemperature());
  display.setCursor(x2, y2);
  display.cp437(true);
  display.write(167);
  display.print("C");
  display.display();


}

////////////////////////

//menu action

void action1() {
  display.clearDisplay();
  display.setCursor(0, y2);
  display.print(">Executing #1");
  display.display();
  delay(1500);
}
void action2() {
  display.clearDisplay();
  display.setCursor(0, y2);
  display.print(">Executing #2");
  display.display();
  delay(1500);
}
void action3() {
  menu = -2;
}
void action4() {
  menu = 0;
}