|
|
|
|
@@ -1432,11 +1432,7 @@ 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). If this list gets any longer, it might be better as a switch/case statement.
|
|
|
|
|
*/
|
|
|
|
|
MicroViewSlider::MicroViewSlider(uint8_t newx, uint8_t newy, int16_t min, int16_t max, uint8_t sty):MicroViewWidget(newx, newy, min, max) {
|
|
|
|
|
if (sty==WIDGETSTYLE0) {
|
|
|
|
|
style=0;
|
|
|
|
|
totalTicks=30;
|
|
|
|
|
}
|
|
|
|
|
else if (sty==WIDGETSTYLE1) {
|
|
|
|
|
if (sty==WIDGETSTYLE1) {
|
|
|
|
|
style=1;
|
|
|
|
|
totalTicks=60;
|
|
|
|
|
}
|
|
|
|
|
@@ -1448,7 +1444,7 @@ MicroViewSlider::MicroViewSlider(uint8_t newx, uint8_t newy, int16_t min, int16_
|
|
|
|
|
style=3;
|
|
|
|
|
totalTicks=40;
|
|
|
|
|
}
|
|
|
|
|
else { //unrecognized style, so use default
|
|
|
|
|
else { // Use style 0 if specified or invalid
|
|
|
|
|
style=0;
|
|
|
|
|
totalTicks=30;
|
|
|
|
|
}
|
|
|
|
|
@@ -1468,14 +1464,14 @@ void MicroViewSlider::drawFace() {
|
|
|
|
|
offsetX=getX();
|
|
|
|
|
offsetY=getY();
|
|
|
|
|
|
|
|
|
|
if(style==0)
|
|
|
|
|
majorLine=4;
|
|
|
|
|
else if (style==1)
|
|
|
|
|
majorLine=7;
|
|
|
|
|
else if (style==2)
|
|
|
|
|
majorLine=3;
|
|
|
|
|
else if (style==3)
|
|
|
|
|
majorLine=5;
|
|
|
|
|
if (style==0)
|
|
|
|
|
majorLine=4;
|
|
|
|
|
else if (style==1)
|
|
|
|
|
majorLine=7;
|
|
|
|
|
else if (style==2)
|
|
|
|
|
majorLine=3;
|
|
|
|
|
else
|
|
|
|
|
majorLine=5;
|
|
|
|
|
|
|
|
|
|
//Horizontal styles, style 0 or 1
|
|
|
|
|
|
|
|
|
|
@@ -1545,12 +1541,13 @@ void MicroViewSlider::draw() {
|
|
|
|
|
offsetY=getY();
|
|
|
|
|
|
|
|
|
|
if (needFirstDraw) {
|
|
|
|
|
tickPosition= (((float)(prevValue-getMinValue())/(float)(getMaxValue()-getMinValue()))*totalTicks);
|
|
|
|
|
if (style==0 || style==1){ //Horizontal
|
|
|
|
|
tickPosition= (((float)(prevValue-getMinValue())/(float)(getMaxValue()-getMinValue()))*totalTicks);
|
|
|
|
|
uView.lineH(offsetX+tickPosition,offsetY, 3, WHITE, XOR);
|
|
|
|
|
uView.pixel(offsetX+1+tickPosition,offsetY+1, WHITE, XOR);
|
|
|
|
|
}
|
|
|
|
|
else { //Vertical
|
|
|
|
|
tickPosition= (((float)(getMaxValue()-prevValue)/(float)(getMaxValue()-getMinValue()))*totalTicks);
|
|
|
|
|
uView.lineV(offsetX+7, offsetY+tickPosition, 3, WHITE, XOR);
|
|
|
|
|
uView.pixel(offsetX+6, offsetY+1+tickPosition, WHITE, XOR);
|
|
|
|
|
}
|
|
|
|
|
@@ -1560,23 +1557,25 @@ void MicroViewSlider::draw() {
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
// Draw previous pointer in XOR mode to erase it
|
|
|
|
|
tickPosition= (((float)(prevValue-getMinValue())/(float)(getMaxValue()-getMinValue()))*totalTicks);
|
|
|
|
|
if (style==0 || style==1){ //Horizontal
|
|
|
|
|
tickPosition= (((float)(prevValue-getMinValue())/(float)(getMaxValue()-getMinValue()))*totalTicks);
|
|
|
|
|
uView.lineH(offsetX+tickPosition,offsetY, 3, WHITE, XOR);
|
|
|
|
|
uView.pixel(offsetX+1+tickPosition,offsetY+1, WHITE, XOR);
|
|
|
|
|
}
|
|
|
|
|
else { //Vertical
|
|
|
|
|
tickPosition= (((float)(getMaxValue()-prevValue)/(float)(getMaxValue()-getMinValue()))*totalTicks);
|
|
|
|
|
uView.lineV(offsetX+7, offsetY+tickPosition, 3, WHITE, XOR);
|
|
|
|
|
uView.pixel(offsetX+6, offsetY+1+tickPosition, WHITE, XOR);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Draw current pointer
|
|
|
|
|
tickPosition= (((float)(getValue()-getMinValue())/(float)(getMaxValue()-getMinValue()))*totalTicks);
|
|
|
|
|
if (style==0 || style==1){ //Horizontal
|
|
|
|
|
tickPosition= (((float)(getValue()-getMinValue())/(float)(getMaxValue()-getMinValue()))*totalTicks);
|
|
|
|
|
uView.lineH(offsetX+tickPosition,offsetY, 3, WHITE, XOR);
|
|
|
|
|
uView.pixel(offsetX+1+tickPosition,offsetY+1, WHITE, XOR);
|
|
|
|
|
}
|
|
|
|
|
else { //Vertical
|
|
|
|
|
tickPosition= (((float)(getMaxValue()-getValue())/(float)(getMaxValue()-getMinValue()))*totalTicks);
|
|
|
|
|
uView.lineV(offsetX+7, offsetY+tickPosition, 3, WHITE, XOR);
|
|
|
|
|
uView.pixel(offsetX+6, offsetY+1+tickPosition, WHITE, XOR);
|
|
|
|
|
}
|
|
|
|
|
|