// Tabs.h - Dessin des onglets de l'interface
#pragma once
#include <TFT_eSPI.h>
#include "Theme.h"
// ─── Structures ──────────────────────────────────────────────────────────────
struct IndoorSensor {
char name[20];
float temperature;
int battery;
bool connected;
};
#include "WidgetUpdater.h"
#include "UpdatableWidgets.h"
#include "WeatherData.h"
// ─── Variables définies dans Tabs.cpp ────────────────────────────────────────
extern IndoorSensor gSensors[4];
extern int gSensorCount;
extern int gCurrentSensorPage;
extern char debugBuffer[2048];
extern int debugIndex;
// ─── BME280 — définies dans main.cpp ─────────────────────────────────────────
extern bool bmeInitialized;
extern float bmeTemperature;
extern float bmeHumidity;
extern float bmePressure;
// ─── Widgets — définis dans Tabs.cpp ─────────────────────────────────────────
extern WidgetManager weatherWidgetManager;
extern UpdatableMainTempWidget* mainTempWidget;
extern UpdatableForecastWidget* forecastWidget;
extern UpdatableChartWidget* chartWidget;
extern UpdatableSunWidget* sunWidget;
extern UpdatableAQIWidget* aqiWidget;
// ─── Fonctions des onglets ────────────────────────────────────────────────────
void initWeatherTab();
void drawWeatherTab(TFT_eSPI& tft);
void updateWeatherTab();
void drawDebugTab(TFT_eSPI& tft);
void updateDebugTab();
void drawIndoorTab(TFT_eSPI& tft);
void updateIndoorTab();
void drawStatsTab(TFT_eSPI& tft);
void updateStatsTab();
void drawTabBar(TFT_eSPI& tft, int currentTab);
void addDebugMessage(const char* format, ...);