handling nodes almoast works
This commit is contained in:
@@ -14,8 +14,18 @@
|
||||
Adafruit_NeoPixel pixels(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);
|
||||
|
||||
TextNode text_nodes[MAX_TEXT_NODES_COUNT];
|
||||
|
||||
Cursor cursor;
|
||||
unsigned short ever_created_text_nodes = 0;
|
||||
|
||||
unsigned short getTextNodeY2(TextNode *node)
|
||||
{
|
||||
return node.pos_y + node.characterSize.height - 1;
|
||||
}
|
||||
|
||||
unsigned short getTextNodeX2(TextNode *node)
|
||||
{
|
||||
return node.pos_x + node.characterSize.width * node.character_count + node.character_count - 1;
|
||||
}
|
||||
|
||||
void addNewTextNode
|
||||
(
|
||||
@@ -31,14 +41,24 @@ void addNewTextNode
|
||||
{
|
||||
strncpy(text_nodes[i].content, text, TEXT_MAX_LENGTH);
|
||||
text_nodes[i].color = color;
|
||||
text_nodes[i].pos_x = (pos_x == 65535) ? PANEL_MAX_X + 1 : pos_x;
|
||||
|
||||
text_nodes[i].pos_x = pos_x;
|
||||
text_nodes[i].pos_y = pos_y;
|
||||
|
||||
const unsigned short = getTextNodeX2(&(text_nodes)[i]);
|
||||
|
||||
if (pos_x2 > PANEL_MAX_X)
|
||||
{
|
||||
text_node[i].pos_x -= pos_x2 - PANEL_MAX_X;
|
||||
}
|
||||
|
||||
text_nodes[i].characterSize.height = is_small ? SMALL_TEXT_HEIGHT : MEDIUM_TEXT_HEIGHT;
|
||||
text_nodes[i].characterSize.width = is_small ? SMALL_TEXT_WIDTH : MEDIUM_TEXT_WIDTH;
|
||||
text_nodes[i].character_count = text_length;
|
||||
text_nodes[i].scroll_slowness = scroll_slowness;
|
||||
text_nodes[i].is_scrolling = is_scrolling;
|
||||
text_nodes[i].is_deleted = false;
|
||||
ever_created_text_nodes++;
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -71,7 +91,7 @@ void drawTextNodes(bool reset_cursor = true)
|
||||
}
|
||||
}
|
||||
|
||||
void scrollAllScrollableTexts(split_scroll_mode = false)
|
||||
void scrollAllScrollableTexts(bool split_scroll_mode = false)
|
||||
{
|
||||
for (unsigned char i = 0; i < MAX_TEXT_NODES_COUNT; i++)
|
||||
{
|
||||
@@ -79,11 +99,11 @@ void scrollAllScrollableTexts(split_scroll_mode = false)
|
||||
{
|
||||
short x1 = text_nodes[i].pos_x;
|
||||
short y1 = text_nodes[i].pos_y;
|
||||
short x2 = text_nodes[i].pos_x + text_nodes[i].characterSize.width * text_nodes[i].character_count + text_nodes[i].character_count - 1;
|
||||
short y2 = text_nodes[i].pos_y + text_nodes[i].characterSize.height - 1;
|
||||
short x2 = getTextNodeX2(&text_nodes[i]);
|
||||
short y2 = getTextNodeY2(&text_nodes[i]);
|
||||
if (split_scroll_mode || text_nodes[i].pos_y < 7)
|
||||
{
|
||||
if (x2 < 0)
|
||||
if (x2 == 0)
|
||||
{
|
||||
text_nodes[i].is_deleted = true;
|
||||
continue;
|
||||
@@ -108,6 +128,7 @@ void scrollAllScrollableTexts(split_scroll_mode = false)
|
||||
void setup()
|
||||
{
|
||||
Serial.begin(115200);
|
||||
Serial.println("----------------------------------------------------");
|
||||
|
||||
pixels.begin();
|
||||
pixels.clear();
|
||||
@@ -125,4 +146,9 @@ void loop()
|
||||
scrollAllScrollableTexts();
|
||||
pixels.show();
|
||||
handle_server();
|
||||
if (text_nodes[0].is_deleted && text_nodes[1].is_deleted)
|
||||
{
|
||||
addNewTextNode("test", 0xFF121212);
|
||||
drawTextNodes();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user