InfiniTime/src/displayapp/screens/Twos.h
Joaquim 1d3742e14f Big UI and navigation Rewrite
new navigation
add some color to the apps
redesign menus
new settings menu
new quick settings
code clean up
size reduction by converting navigation images to font
and more...
2021-04-04 03:08:51 +01:00

41 lines
1 KiB
C++

#pragma once
#include <lvgl/src/lv_core/lv_obj.h>
#include "Screen.h"
namespace Pinetime {
namespace Applications {
struct Tile {
bool merged = false;
unsigned int value = 0;
};
namespace Screens {
class Twos : public Screen {
public:
Twos(DisplayApp* app);
~Twos() override;
bool Refresh() override;
bool OnTouchEvent(TouchEvents event) override;
private:
lv_style_t style_cell1;
lv_style_t style_cell2;
lv_style_t style_cell3;
lv_style_t style_cell4;
lv_style_t style_cell5;
lv_obj_t *scoreText;
lv_obj_t *gridDisplay;
Tile grid[4][4];
unsigned int score = 0;
void updateGridDisplay(Tile grid[][4]);
bool tryMerge(Tile grid[][4], int &newRow, int &newCol, int oldRow, int oldCol);
bool tryMove(Tile grid[][4], int newRow, int newCol, int oldRow, int oldCol);
bool placeNewTile();
};
}
}
}