X-Git-Url: https://git.rohieb.name/hackover2013-badge-firmware.git/blobdiff_plain/a7be12a4e68fcaaa92f81a394bc316a592ec6270..b5e1d01dc3ef67418901a4d43b5f78c879663a9d:/project/commands/drawing/cmd_rectangle.c?ds=sidebyside diff --git a/project/commands/drawing/cmd_rectangle.c b/project/commands/drawing/cmd_rectangle.c index ff27504..d35eafa 100644 --- a/project/commands/drawing/cmd_rectangle.c +++ b/project/commands/drawing/cmd_rectangle.c @@ -101,7 +101,8 @@ void cmd_rectangle(uint8_t argc, char **argv) /**************************************************************************/ void cmd_rectangleround(uint8_t argc, char **argv) { - int32_t x1, y1, x2, y2, c, radius, corners; + int32_t x1, y1, x2, y2, c, radius, corners, filled, border; + filled = 0; // Convert supplied parameters getNumber (argv[0], &x1); @@ -111,6 +112,19 @@ void cmd_rectangleround(uint8_t argc, char **argv) getNumber (argv[4], &c); getNumber (argv[5], &radius); getNumber (argv[6], &corners); + if (argc >= 8) + { + getNumber (argv[7], &filled); + } + if (argc == 9) + { + getNumber (argv[8], &border); + if (border < 0 || border > 0xFFFF) + { + printf("Invalid Border Color%s", CFG_PRINTF_NEWLINE); + return; + } + } // ToDo: Validate data! if (c < 0 || c > 0xFFFF) @@ -119,13 +133,15 @@ void cmd_rectangleround(uint8_t argc, char **argv) return; } - if ((radius == 0) || (corners == 0) || (corners > 5)) - { - drawRectangleFilled(x1, y1, x2, y2, (uint16_t)c); - } + if (filled) + drawRoundedRectangleFilled(x1, y1, x2, y2, (uint16_t)c, radius, corners); else + drawRoundedRectangle(x1, y1, x2, y2, (uint16_t)c, radius, corners); + + // Draw border if it's not the same color + if (argc == 9) { - drawRectangleRounded(x1, y1, x2, y2, (uint16_t)c, radius, corners); + drawRoundedRectangle(x1, y1, x2, y2, (uint16_t)border, radius, corners); } }