From bedc4689430e9037c582d6d987d8d3bb965a35e1 Mon Sep 17 00:00:00 2001 From: Thilo Graf Date: Sat, 15 Jun 2013 21:56:47 +0200 Subject: [PATCH] CProgressBar: add member paintShapes() paintShapes() replaces paintBoxRel() TODO: paint v-lines with CComponents Origin commit data ------------------ Commit: https://github.com/neutrino-images/ni-neutrino/commit/44759766af3585b0393e65cc7d402f9b970e6da8 Author: Thilo Graf Date: 2013-06-15 (Sat, 15 Jun 2013) --- src/gui/components/cc_item_progressbar.cpp | 45 +++++++++++++++------- src/gui/components/cc_item_progressbar.h | 2 + 2 files changed, 34 insertions(+), 13 deletions(-) diff --git a/src/gui/components/cc_item_progressbar.cpp b/src/gui/components/cc_item_progressbar.cpp index f74f630da..d2b77720e 100644 --- a/src/gui/components/cc_item_progressbar.cpp +++ b/src/gui/components/cc_item_progressbar.cpp @@ -31,7 +31,7 @@ #include #include "cc_item_progressbar.h" - +#include "cc_item_shapes.h" #define ITEMW 4 #define POINT 2 @@ -137,16 +137,23 @@ void CProgressBar::initDimensions() col_frame = pb_active_col; } +void CProgressBar::paintShapes(int &shx, int ­, int &shw, int &shh, fb_pixel_t &col) +{ + CComponentsShapeSquare shape(shx, shy, shw, shh, false); + shape.setColorBody(col); + shape.paint(false); +} + void CProgressBar::paintSimple() { // progress value - if (pb_active_width != pb_last_width){ //TODO: use shape cc-item - frameBuffer->paintBoxRel(pb_x, pb_y, pb_active_width, pb_height, pb_active_col); // active bar - frameBuffer->paintBoxRel(pb_start_x_passive, pb_y, pb_passive_width, pb_height, pb_passive_col); // passive bar + if (pb_active_width != pb_last_width){ + paintShapes(pb_x, pb_y, pb_active_width, pb_height, pb_active_col); // active bar + paintShapes(pb_start_x_passive, pb_y, pb_passive_width, pb_height, pb_passive_col); // passive bar } - if (pb_paint_zero && pb_value == 0) //TODO: use shape cc-item + if (pb_paint_zero && pb_value == 0) //TODO: use shape cc-item, not available for lines yet frameBuffer->paintLine(pb_x , pb_y, pb_x+width-3, pb_y+height-3, pb_active_col); // zero line } @@ -203,8 +210,11 @@ void CProgressBar::paintAdvanced() else rgb = RED + (diff << 8); // adding green color = make16color(rgb); - for (j = 0; j < hcnt; j++) //TODO: use shape cc-item - frameBuffer->paintBoxRel(pb_x + i * itemw, py + j * itemh, pointx, pointy, color); + for (j = 0; j < hcnt; j++) { + int sh_x = pb_x + i * itemw; + int sh_y = py + j * itemh; + paintShapes(sh_x, sh_y, pointx, pointy, color); + } } step = yw - rd - 1; if (step < 1) @@ -216,8 +226,11 @@ void CProgressBar::paintAdvanced() else rgb = YELLOW - (diff << 16); // removing red color = make16color(rgb); - for (j = 0; j < hcnt; j++) //TODO: use shape cc-item - frameBuffer->paintBoxRel(pb_x + i * itemw, py + j * itemh, pointx, pointy, color); + for (j = 0; j < hcnt; j++) { + int sh_x = pb_x + i * itemw; + int sh_y = py + j * itemh; + paintShapes(sh_x, sh_y, pointx, pointy, color); + } } off = diff; b = 0; @@ -231,13 +244,19 @@ void CProgressBar::paintAdvanced() else rgb = YELLOW - (diff << 16); // removing red color = make16color(rgb); - for (j = 0; j < hcnt; j++) //TODO: use shape cc-item - frameBuffer->paintBoxRel(pb_x + i * itemw, py + j * itemh, pointx, pointy, color); + for (j = 0; j < hcnt; j++) { + int sh_x = pb_x + i * itemw; + int sh_y = py + j * itemh; + paintShapes(sh_x, sh_y, pointx, pointy, color); + } } } for(i = maxi; i < total; i++) { - for (j = 0; j < hcnt; j++) //TODO: use shape cc-item - frameBuffer->paintBoxRel(pb_x + i * itemw, py + j * itemh, pointx, pointy, pb_passive_col); //fill passive + for (j = 0; j < hcnt; j++) {//TODO: use shape cc-item + int sh_x = pb_x + i * itemw; + int sh_y = py + j * itemh; + paintShapes(sh_x, sh_y, pointx, pointy, pb_passive_col); //fill passive + } } } } diff --git a/src/gui/components/cc_item_progressbar.h b/src/gui/components/cc_item_progressbar.h index 36bb4d26c..ad8e6d274 100644 --- a/src/gui/components/cc_item_progressbar.h +++ b/src/gui/components/cc_item_progressbar.h @@ -91,6 +91,8 @@ class CProgressBar : public CComponentsItem void paintSimple(); ///paint version of progressbar with color and advanced display modifications void paintAdvanced(); + ///painting of activ/passive bars via shape object + void paintShapes(int &shx, int ­, int &shw, int &shh, fb_pixel_t &col); void initDimensions();