From 82f3863036bed656eef7c271a76482d134ba30af Mon Sep 17 00:00:00 2001 From: Scott Allen Date: Wed, 25 Mar 2015 17:51:42 -0400 Subject: [PATCH] Overloaded the widget setValue() function to add a boolean variable which controls whether the display buffer is updated. Also changed bool declarations to boolean, for consistency. --- MicroView.cpp | 18 ++++++++++++++---- MicroView.h | 5 +++-- 2 files changed, 17 insertions(+), 6 deletions(-) diff --git a/MicroView.cpp b/MicroView.cpp index 47c8a02..89ac043 100644 --- a/MicroView.cpp +++ b/MicroView.cpp @@ -1441,19 +1441,29 @@ void MicroViewWidget::setMaxValue(int16_t max) { */ uint8_t MicroViewWidget::getMaxValLen() { return maxValLen; } -/** \brief Set current value. +/** \brief Set current value and update widget. - The current value of the widget is set to the variable passed in. + The current value of the widget is set to the variable passed in and the widget is drawn with the new value. */ void MicroViewWidget::setValue(int16_t val) { + setValue(val, true); +} + +/** \brief Set current value with optional update. + + The current value of the widget is set to the variable passed in. The widget is drawn with the new value if the doDraw argument is true. +*/ +void MicroViewWidget::setValue(int16_t val, boolean doDraw) { if ((val<=maxValue) && (val>=minValue)) { value = val; valLen = getInt16PrintLen(val); - this->draw(); + if (doDraw) { + this->draw(); + } } } -/** \brief Get the print length of the value +/** \brief Get the print length of the value. Return the number of characters that would be printed using uView.print(value) for the current value. */ diff --git a/MicroView.h b/MicroView.h index bd29b57..70d9fc1 100644 --- a/MicroView.h +++ b/MicroView.h @@ -241,6 +241,7 @@ public: void setMinValue(int16_t min); void setMaxValue(int16_t max); void setValue(int16_t val); + void setValue(int16_t val, boolean doDraw); uint8_t getValLen(); uint8_t getMaxValLen(); /** \brief Draw widget value overridden by child class. */ @@ -273,7 +274,7 @@ public: private: void drawPointer(); uint8_t style, totalTicks; - bool noValDraw; + boolean noValDraw; int16_t prevValue; }; @@ -286,7 +287,7 @@ public: private: void drawPointer(); uint8_t style, radius; - bool noValDraw; + boolean noValDraw; int16_t prevValue; };