Easy menu on OLED display

So im making my own project where i now tried to make myself a menu with 4 options , so far i made it work, im switching up and down between points with rotary encoder, but when i tried to implement pushing button on any of menus options, i cant make it do something. Can anyone help me how to implement the button selection?

#include <Arduino.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>

#define SCREEN_WIDTH 128 // Šířka displeje v pixelech
#define SCREEN_HEIGHT 64 // Výška displeje v pixelech
#define BUTTON 32 // Tlačítko
#define UP 35
#define DOWN 34
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire);

int menuCounter = 0;

int pozice1 = 0; // pozice v menu
int pozice2 = 0;
int pozice3 = 0;
int pozice4 = 0;
bool pozice1_vybrano = false;
bool pozice2_vybrano = false;
bool pozice3_vybrano = false;
bool pozice4_vybrano = false;
bool ButtonPress = false;
//statusy 
int CLKNow;
int CLKPrevious;
int DTNow;
int DTPreviouse;
bool refresh = true; //refreshne hodnoty
bool refreshselection = false; //refreshne výběr (>/X)

void PrintOCD();
void rotate();
void PushBUTTON();
void UpdateCursorPosition();


void setup() 
{
  Serial.begin(115200);       // Nastaveni rychlosti 

  pinMode(BUTTON,INPUT_PULLUP);// Nastavení pinnů 
  pinMode(UP,INPUT_PULLUP);
  pinMode(DOWN,INPUT_PULLUP);

  // Inicializace displeje 
  if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) 
  {
    Serial.println(F("SSD1306 inicializace selhala"));
    for(;;);
  }

 
  display.clearDisplay();

  
  display.setTextSize(1);

 
  display.setTextColor(WHITE);


  //Ukládání pozice enkoderu
  CLKPrevious = digitalRead(DOWN);
  DTPreviouse = digitalRead(UP);

  attachInterrupt(digitalPinToInterrupt(DOWN), rotate , CHANGE);
  attachInterrupt(digitalPinToInterrupt(BUTTON), PushBUTTON , FALLING);
}

void loop() 
{
  
  if(refresh == true)
  {
    //UpdateCursorPosition();
    if(pozice1_vybrano == true || pozice2_vybrano == true || pozice3_vybrano == true || pozice4_vybrano == true)
    {
       // nic (tak to má být)
    }
    else
    {
      UpdateCursorPosition();
      
    }
    refresh = false;
  }
  if(refreshselection == true)
  {
    
    refreshselection = false;
  }

}

void rotate()
{
  //pozice1 
  if(pozice1_vybrano == true)
  {
    CLKNow = digitalRead(DOWN);// přečte stav DOWN pinu
    if(CLKNow != CLKPrevious && CLKNow == 1)
    {
      if(digitalRead(UP) !=CLKNow)
      {
        if(pozice1 < 100)
        {
          pozice1++;
        }
        else
        {
          pozice1 = 0;
        }
      }
      else
      {
        if(pozice1 < 1)
        {
          pozice1 = 100;
        }
        else
        {
          pozice1--;
        }
      }
    }
    CLKPrevious = CLKNow;
  }
  //pozice2
  if(pozice2_vybrano == true)
  {
    CLKNow = digitalRead(DOWN);// přečte stav DOWN pinu
    if(CLKNow != CLKPrevious && CLKNow == 1)
    {
      if(digitalRead(UP) !=CLKNow)
      {
        if(pozice2 < 100)
        {
          pozice2++;
        }
        else
        {
          pozice2 = 0;
        }
      }
      else
      {
        if(pozice2 < 1)
        {
          pozice2 = 100;
        }
        else
        {
          pozice2--;
        }
      }
    }
    CLKPrevious = CLKNow;
  }
  //pozice 3
  if(pozice3_vybrano == true)
  {
    CLKNow = digitalRead(DOWN);// přečte stav DOWN pinu
    if(CLKNow != CLKPrevious && CLKNow == 1)
    {
      if(digitalRead(UP) !=CLKNow)
      {
        if(pozice3 < 100)
        {
          pozice3++;
        }
        else
        {
          pozice3 = 0;
        }
      }
      else
      {
        if(pozice3 < 1)
        {
          pozice3 = 100;
        }
        else
        {
          pozice3--;
        }
      }
    }
    CLKPrevious = CLKNow;
  }
  //pozice4
  if(pozice4_vybrano == true)
  {
    CLKNow = digitalRead(DOWN);// přečte stav DOWN pinu
    if(CLKNow != CLKPrevious && CLKNow == 1 )
    {
      if(digitalRead(UP) !=CLKNow)
      {
        if(pozice4 < 100)
        {
          pozice4++;
        }
        else
        {
          pozice4 = 0;
        }
      }
      else
      {
        if(pozice4 < 1)
        {
          pozice4 = 100;
        }
        else
        {
          pozice4--;
        }
      }
    }
    CLKPrevious = CLKNow;
  }
  else //pozice counter
  {
   CLKNow = digitalRead(DOWN);// přečte stav DOWN pinu
    if(CLKNow != CLKPrevious && CLKNow == 1)
    {
      if(digitalRead(UP) !=CLKNow)
      {
        if(menuCounter < 3)
        {
          menuCounter++;
        }
        else
        {
          menuCounter = 0;
        }
      }
      else
      {
        if(menuCounter < 1)
        {
          menuCounter = 3;
        }
        else
        {
          menuCounter--;
        }
      }
    }
    CLKPrevious = CLKNow;
  }
  refresh = true;
}

void PushBUTTON()
{
  switch(menuCounter)
  {
  case 0:
  pozice1_vybrano = !pozice1_vybrano;
  break;
  case 1:
  pozice2_vybrano = !pozice2_vybrano;
  break;
  case 3:
  pozice3_vybrano = !pozice3_vybrano;
  break;
  case 4:
  pozice4_vybrano = !pozice4_vybrano;
  break;
  }
  refresh = true;
 refreshselection = true;
}

void PrintOCD()
{
  display.setCursor(0,0);
  display.print(F("Reakce na LED"));
  display.setCursor(0,10);
  display.print(F("Reakce na Zvuk"));
  display.setCursor(0,20);
  display.print(F("Reakce na kombinaci"));
  display.setCursor(0,30);
  display.print(F("Test4 Saimon says"));
}

void UpdateCursorPosition()
{
    

  switch(menuCounter)
  {
    case 0:
    display.clearDisplay();

    display.setCursor(110,0);
    display.print("<");

    PrintOCD();
    display.display();
    break;
    case 1:
    display.clearDisplay();

    display.setCursor(110,10);
    display.print("<");

    PrintOCD();
    display.display();
   
    break;
    case 2:
    display.clearDisplay();

    display.setCursor(110,20);
    display.print("<");

    PrintOCD();
    display.display();
   
    break;
    case 3:
    display.clearDisplay();

    display.setCursor(110,30);
    display.print("<");

    PrintOCD();
    display.display();
    
    break;
  }

}