ESPHome  2024.11.0
touchscreen_binary_sensor.h
Go to the documentation of this file.
1 #pragma once
2 
7 #include "esphome/core/helpers.h"
8 
9 #include <vector>
10 
11 namespace esphome {
12 namespace touchscreen {
13 
15  public Component,
16  public TouchListener,
17  public Parented<Touchscreen> {
18  public:
19  void setup() override;
20 
22  void set_area(int16_t x_min, int16_t x_max, int16_t y_min, int16_t y_max) {
23  this->x_min_ = x_min;
24  this->x_max_ = x_max;
25  this->y_min_ = y_min;
26  this->y_max_ = y_max;
27  }
28  int16_t get_x_min() { return this->x_min_; }
29  int16_t get_x_max() { return this->x_max_; }
30  int16_t get_y_min() { return this->y_min_; }
31  int16_t get_y_max() { return this->y_max_; }
32  int16_t get_width() { return this->x_max_ - this->x_min_; }
33  int16_t get_height() { return this->y_max_ - this->y_min_; }
34 
35  void add_page(display::DisplayPage *page) { this->pages_.push_back(page); }
36 
37  void touch(TouchPoint tp) override;
38  void release() override;
39 
40  protected:
41  int16_t x_min_, x_max_, y_min_, y_max_;
42  std::vector<display::DisplayPage *> pages_{};
43 };
44 
45 } // namespace touchscreen
46 } // namespace esphome
void set_area(int16_t x_min, int16_t x_max, int16_t y_min, int16_t y_max)
Set the touch screen area where the button will detect the touch.
std::vector< display::DisplayPage * > pages_
Implementation of SPI Controller mode.
Definition: a01nyub.cpp:7
Base class for all binary_sensor-type classes.
Definition: binary_sensor.h:37
Helper class to easily give an object a parent of type T.
Definition: helpers.h:522