Skip to content
This repository was archived by the owner on Dec 20, 2021. It is now read-only.

changeLabelEnabled()

Mammad900 edited this page Aug 30, 2020 · 1 revision

changeLabelEnabled(page, index, value)

Summary

Enables or disables a label

Parameters

  1. Page (int) : The number of the page which contains the label
  2. Index (int) : Index of the label relative to it's containing page.
  3. Value (bool) : If true, the label will become enabled; if false, the label will become disabled.

Returns

Nothing

Example

void setup(){
    Serial.begin(9600);
    delay(1000); // Give time for serial communication to start.
    int waitLabel = addlabel(PAGE_FIRST, 0, 10, F("Open serial monitor on your computer first."),
                                  TFT_WHITE, &FreeSans9pt7b, 1, 1, true, !Serial); // Only shown if serial communication is inactive.
    int helpLabel = addlabel(PAGE_FIRST, 0, 100, F("Enter any number to show it's cube root here."),
                                  TFT_WHITE, &FreeSans9pt7b, 1, 1, Serial); // If serial communication is active, Serial evaluates to true and the label is enabled. If it is inactive, the label is disabled.
    int resultLabel= addlabel(PAGE_FIRST, 0, 260, "", TFT_WHITE, &FreeBigFont);
    if(!Serial){
        while(!Serial);
        changeLabelVisible(PAGE_MAIN,waitLabel,false); // Hide 'Open serial monitor on your computer first.'
        changeLabelEnabled(PAGE_MAIN,helpLabel,true); // Enable the label
    }
}
void loop(){
    if(Serial.available()>0){
        delay(100); // Wait for the message to receive
        int number = Serial.parseInt(); // Read the message from serial buffer
        float cubeRoot = cbrt(number); // Calculate cube root
        changeLabelText(PAGE_MAIN,resultLabel,String(cubeRoot));
    }
}

Output

In startup, the labels are disabled and a message is shown until serial monitor is opened. Then displays the cube root of any number entered in serial monitor.

Source

void changeLabelEnabled(int page, int i, bool val) {
    if (label_enabled[page][i] != val) {
        HCT
        label_enabled[page][i] = val;
        if (CurrentPage == page)
            drawlabel(page, i);
    }
}

Note: HCT is a macro for making the rest of the library aware that something has changed.

Clone this wiki locally