ESPHome  2025.3.3
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  void set_use_raw(bool use_raw) { this->use_raw_ = use_raw; }
29  int16_t get_x_min() { return this->x_min_; }
30  int16_t get_x_max() { return this->x_max_; }
31  int16_t get_y_min() { return this->y_min_; }
32  int16_t get_y_max() { return this->y_max_; }
33  int16_t get_width() { return this->x_max_ - this->x_min_; }
34  int16_t get_height() { return this->y_max_ - this->y_min_; }
35 
36  void add_page(display::DisplayPage *page) { this->pages_.push_back(page); }
37 
38  void touch(TouchPoint tp) override;
39  void release() override;
40 
41  protected:
42  int16_t x_min_{}, x_max_{}, y_min_{}, y_max_{};
43  bool use_raw_{};
44  std::vector<display::DisplayPage *> pages_{};
45 };
46 
47 } // namespace touchscreen
48 } // 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:538