From b05451f4c69f63cb25b7c5c29fb8efcc3120c13a Mon Sep 17 00:00:00 2001 From: Scott Allen Date: Thu, 25 Sep 2014 16:02:47 -0400 Subject: [PATCH] Use constructor initialisation lists for widget variables --- MicroView.cpp | 55 +++++++++++++++++++++++++++++---------------------- MicroView.h | 8 ++++---- 2 files changed, 35 insertions(+), 28 deletions(-) diff --git a/MicroView.cpp b/MicroView.cpp index aa52e68..5b90a98 100644 --- a/MicroView.cpp +++ b/MicroView.cpp @@ -1361,13 +1361,15 @@ int MicroView::readSerial(void) The MicroViewWidget class is the parent class for child widget like MicroViewSlider and MicroViewGauge. */ -MicroViewWidget::MicroViewWidget(uint8_t newx, uint8_t newy, int16_t min, int16_t max) { - posX=newx; - posY=newy; - value=min; +MicroViewWidget::MicroViewWidget(uint8_t newx, uint8_t newy, int16_t min, int16_t max): + posX(newx), + posY(newy), + minValue(min), + maxValue(max), + value(min), + needFirstDraw(true) +{ valLen=getInt16PrintLen(value); - minValue=min; - maxValue=max; setMaxValLen(); } @@ -1488,12 +1490,13 @@ void MicroViewWidget::setMaxValLen() { Initialise the MicroViewSlider widget with default style. */ -MicroViewSlider::MicroViewSlider(uint8_t newx, uint8_t newy, int16_t min, int16_t max):MicroViewWidget(newx, newy, min, max) { - style=0; - totalTicks=30; - noValDraw=false; - prevValue=minValue; - needFirstDraw=true; +MicroViewSlider::MicroViewSlider(uint8_t newx, uint8_t newy, int16_t min, int16_t max): + MicroViewWidget(newx, newy, min, max), + style(0), + totalTicks(30), + noValDraw(false), + prevValue(value) +{ drawFace(); draw(); } @@ -1503,7 +1506,10 @@ MicroViewSlider::MicroViewSlider(uint8_t newx, uint8_t newy, int16_t min, int16_ Initialise the MicroViewSlider widget with style WIDGETSTYLE0 or WIDGETSTYLE1 or WIDGETSTYLE2 (like 0, but vertical) or WIDGETSTYLE3 (like 1, but vertical). Add WIDGETNOVALUE to the style to suppress displaying the numeric value. E.g. WIDGETSTYLE0 + WIDGETNOVALUE */ -MicroViewSlider::MicroViewSlider(uint8_t newx, uint8_t newy, int16_t min, int16_t max, uint8_t sty):MicroViewWidget(newx, newy, min, max) { +MicroViewSlider::MicroViewSlider(uint8_t newx, uint8_t newy, int16_t min, int16_t max, uint8_t sty): + MicroViewWidget(newx, newy, min, max), + prevValue(value) +{ noValDraw = sty & WIDGETNOVALUE; // set "no value draw" flag as specified switch(sty & ~WIDGETNOVALUE) { @@ -1525,8 +1531,6 @@ MicroViewSlider::MicroViewSlider(uint8_t newx, uint8_t newy, int16_t min, int16_ break; } - prevValue=minValue; - needFirstDraw=true; drawFace(); draw(); } @@ -1630,12 +1634,13 @@ void MicroViewSlider::drawPointer() { Initialise the MicroViewGauge widget with default style. */ -MicroViewGauge::MicroViewGauge(uint8_t newx, uint8_t newy, int16_t min, int16_t max):MicroViewWidget(newx, newy, min, max) { - style=0; - radius=15; - noValDraw=false; - prevValue=minValue; - needFirstDraw=true; +MicroViewGauge::MicroViewGauge(uint8_t newx, uint8_t newy, int16_t min, int16_t max): + MicroViewWidget(newx, newy, min, max), + style(0), + radius(15), + noValDraw(false), + prevValue(value) +{ drawFace(); draw(); } @@ -1645,7 +1650,10 @@ MicroViewGauge::MicroViewGauge(uint8_t newx, uint8_t newy, int16_t min, int16_t Initialise the MicroViewGauge widget with style WIDGETSTYLE0 or WIDGETSTYLE1. Add WIDGETNOVALUE to the style to suppress displaying the numeric value. E.g. WIDGETSTYLE0 + WIDGETNOVALUE */ -MicroViewGauge::MicroViewGauge(uint8_t newx, uint8_t newy, int16_t min, int16_t max, uint8_t sty):MicroViewWidget(newx, newy, min, max) { +MicroViewGauge::MicroViewGauge(uint8_t newx, uint8_t newy, int16_t min, int16_t max, uint8_t sty): + MicroViewWidget(newx, newy, min, max), + prevValue(value) +{ noValDraw = sty & WIDGETNOVALUE; // set "no value draw" flag as specified if ((sty & ~WIDGETNOVALUE) == WIDGETSTYLE0) { @@ -1656,8 +1664,7 @@ MicroViewGauge::MicroViewGauge(uint8_t newx, uint8_t newy, int16_t min, int16_t style=1; radius=23; } - prevValue=minValue; - needFirstDraw=true; + drawFace(); draw(); } diff --git a/MicroView.h b/MicroView.h index 471de12..8147ae9 100644 --- a/MicroView.h +++ b/MicroView.h @@ -230,7 +230,6 @@ private: class MicroViewWidget { public: - bool needFirstDraw; MicroViewWidget(uint8_t newx, uint8_t newy, int16_t min, int16_t max); uint8_t getX(); uint8_t getY(); @@ -254,11 +253,12 @@ public: protected: uint8_t posX; uint8_t posY; - int16_t maxValue; int16_t minValue; + int16_t maxValue; int16_t value; uint8_t valLen; uint8_t maxValLen; + bool needFirstDraw; private: void setMaxValLen(); }; @@ -271,7 +271,7 @@ public: void drawFace(); private: void drawPointer(); - uint8_t totalTicks, style; + uint8_t style, totalTicks; bool noValDraw; int16_t prevValue; }; @@ -284,7 +284,7 @@ public: void drawFace(); private: void drawPointer(); - uint8_t radius, style; + uint8_t style, radius; bool noValDraw; int16_t prevValue; };