This class is designed to be compatible with Adafruit GFX Library .Virtual buttons can be placed on the screen for easy control.
Define and use LGFX_Button.
LGFX_Button button();
Example:
#include <Arduino.h>
#include <M5GFX.h>
#include <M5Unified.h>
static int32_t w;
static int32_t h;
LGFX_Button button;
void setup(void)
{
auto cfg = M5.config();
M5.begin(cfg);
w = M5.Lcd.width();
h = M5.Lcd.height();
button.initButton(&M5.Lcd, w / 2 , h / 2, 100, 50, TFT_RED, TFT_YELLOW, TFT_BLACK, "Btn" );
button.drawButton();
}
void loop(void)
{
M5.update();
if (M5.BtnA.isPressed()) {
button.press(true);
button.drawButton(true);
M5.Lcd.drawString("Button Pressed ", 0, 0, &fonts::lgfxJapanGothic_16);
Serial.println("Pressed");
} else {
button.press(false);
button.drawButton(false, "Test");
M5.Lcd.drawString("Button Released", 0, 0, &fonts::lgfxJapanGothic_16);
Serial.println("Released");
}
delay(50);
}
Determines if the specified coordinates are included in the button position. Used to determine if a button is pressed on the touch panel.
Syntax:
bool contains(int16_t x, int16_t y)
Parameter | Type | Description |
---|---|---|
x | int16_t | point x |
y | int16_t | point y |
Draws a button. If the inverted argument is set to true, the background color is inverted.
Syntax:
void drawButton(bool inverted = false, const char* long_name = nullptr)
Parameter | Type | Description |
---|---|---|
inverted | bool | Whether to invert the text and background colors of buttons. |
long_name | const char* | Change the label to the string set. |
Initialize the button.
void initButton(M5GFX *gfx, int16_t x, int16_t y, int16_t w, int16_t h, const T& outline, const T& fill, const T& textcolor, const char* label, float textsize_x = 1.0f, float textsize_y = 1.0f)
Parameter | Type | Description |
---|---|---|
gfx | M5GFX* | Panel or M5Canvas |
x | int16_t | Point x |
y | int16_t | Point y |
w | int16_t | Width |
h | int16_t | Height |
outline | const T& | Color of outline(*1) |
fill | const T& | Color of background(*1) |
textcolor | const T& | Color of text(*1) |
label | const char* | Label text |
textsize_x | float | Scale of text x |
textsize_y | float | Scale of text y |
*1. About ColorCode
Returns the value set by press() .
Determine if a button is pressed.
Syntax:
bool justPressed()
Determine if a button is released.
Syntax:
bool justReleased()
Set the button status.
Syntax:
void press(bool p)
Parameter | Type | Description |
---|---|---|
p | bool | Status of button |
Set the label datum.。
Syntax:
void setLabelDatum(int16_t x_delta, int16_t y_delta, textdatum_t datum = middle_center)
Parameter | Type | 説明 |
---|---|---|
x_delta | int16_t | Delta x |
y_delta | int16_t | Delta y |
datum | textdatum_t | Datum(*1) |
*1. About TextDatum