class HomeAutomationTile : public Container
{
public:
HomeAutomationTile();
virtual ~HomeAutomationTile();
virtual void handleTickEvent();
int16_t getWidth()
{
return Container::getWidth();
}
int16_t getHeight()
{
return Container::getHeight();
}
void gotoAssociatedScreen()
{
static_cast<FrontendApplication*>(Application::getInstance())->gotoHomeAutomationScreen();
}
void addRoom(RoomTemperatureInfo& room);
void initialize();
private:
enum States
{
ANIMATE_TEXT_OUT,
ANIMATE_TEXT_IN,
NO_ANIMATION
} currentState;
uint8_t animationCounter;
Box background;
Image hiddenBackground;
int currentRoomIndex;
TextArea roomName;
TextArea roomNameDropShadow;
TextAreaWithOneWildcard temperature;
TextAreaWithOneWildcard temperatureDropShadow;
Unicode::UnicodeChar temperatureBuffer[7];
int tickCounter;
int dropShadowOffsetX;
int dropShadowOffsetY;
TextArea tileId;
int numberOfRooms;
RoomTemperatureInfo rooms[10];
int roomNameY;
int temperatureY;
void animateTextOut();
void animateTextIn();
void setCurrentState(States newState);
void setRoom(TEXTS newRoom);
void setTemperature(int16_t newTemperature);
};