diff --git a/src/eez/flow.cpp b/src/eez/flow.cpp index 300c3d782..bb183da9a 100644 --- a/src/eez/flow.cpp +++ b/src/eez/flow.cpp @@ -575,8 +575,8 @@ static FlowState *initFlowState(Assets *assets, int flowIndex) { } for (unsigned i = 0; i < flow->localVariables.count; i++) { - auto &value = *flow->localVariables.item(assets, i); - flowState->values[flow->nInputValues + i] = value; + auto value = flow->localVariables.item(assets, i); + flowState->values[flow->nInputValues + i] = *value; } return flowState; diff --git a/src/eez/gui/assets.h b/src/eez/gui/assets.h index f7f6ef68e..d653e9515 100644 --- a/src/eez/gui/assets.h +++ b/src/eez/gui/assets.h @@ -100,7 +100,7 @@ struct Widget { int16_t y; int16_t w; int16_t h; - uint16_t style; + int16_t style; }; struct ContainerWidget : public Widget { diff --git a/src/eez/gui/draw.cpp b/src/eez/gui/draw.cpp index df213d9fb..13fb2f91d 100644 --- a/src/eez/gui/draw.cpp +++ b/src/eez/gui/draw.cpp @@ -1077,6 +1077,13 @@ void drawArcBar(int xCenter, int yCenter, int radius, float fromAngleDeg, float } void fillArcBar(int xCenter, int yCenter, int radius, float fromAngleDeg, float toAngleDeg, int width) { + if (isNaN(fromAngleDeg) || fromAngleDeg < 0) { + fromAngleDeg = 0; + } + if (isNaN(toAngleDeg) || toAngleDeg > 360.0f) { + toAngleDeg = 360.0f; + } + static const size_t N = 200; int16_t vx[N + 8]; int16_t vy[N + 8]; diff --git a/src/eez/gui/widgets/bar_graph.cpp b/src/eez/gui/widgets/bar_graph.cpp index 53b430b35..19342d158 100644 --- a/src/eez/gui/widgets/bar_graph.cpp +++ b/src/eez/gui/widgets/bar_graph.cpp @@ -39,11 +39,11 @@ namespace gui { #define BAR_GRAPH_DO_NOT_DISPLAY_VALUE (1 << 4) struct BarGraphWidget : public Widget { - uint16_t textStyle; + int16_t textStyle; int16_t line1Data; - uint16_t line1Style; + int16_t line1Style; int16_t line2Data; - uint16_t line2Style; + int16_t line2Style; uint8_t orientation; // BAR_GRAPH_ORIENTATION_... }; diff --git a/src/eez/gui/widgets/button.h b/src/eez/gui/widgets/button.h index 29264fca0..b716ef5ee 100644 --- a/src/eez/gui/widgets/button.h +++ b/src/eez/gui/widgets/button.h @@ -24,7 +24,7 @@ namespace gui { struct ButtonWidget : public Widget { AssetsPtr text; int16_t enabled; - uint16_t disabledStyle; + int16_t disabledStyle; }; } // namespace gui diff --git a/src/eez/gui/widgets/button_group.cpp b/src/eez/gui/widgets/button_group.cpp index c01a5f543..ccb4241ae 100644 --- a/src/eez/gui/widgets/button_group.cpp +++ b/src/eez/gui/widgets/button_group.cpp @@ -29,7 +29,7 @@ namespace eez { namespace gui { struct ButtonGroupWidget : public Widget { - uint16_t selectedStyle; + int16_t selectedStyle; }; EnumFunctionType BUTTON_GROUP_enum = nullptr; diff --git a/src/eez/gui/widgets/gauge.cpp b/src/eez/gui/widgets/gauge.cpp index e0c25bf8e..8795e241a 100644 --- a/src/eez/gui/widgets/gauge.cpp +++ b/src/eez/gui/widgets/gauge.cpp @@ -32,8 +32,8 @@ struct GaugeWidget : public Widget { int16_t min; int16_t max; int16_t threashold; - uint16_t barStyle; - uint16_t thresholdStyle; + int16_t barStyle; + int16_t thresholdStyle; }; EnumFunctionType GAUGE_enum = nullptr; @@ -55,8 +55,8 @@ DrawFunctionType GAUGE_draw = [](const WidgetCursor &widgetCursor) { static const int BORDER_WIDTH = 32; static const int BAR_WIDTH = 16; - float min = 0.0f; - float max = 40.0f; + float min = get(widgetCursor, widget->min).toFloat(); + float max = get(widgetCursor, widget->max).toFloat(); const Style* barStyle = getStyle(widget->barStyle); mcu::display::setColor(barStyle->color); diff --git a/src/eez/gui/widgets/list_graph.cpp b/src/eez/gui/widgets/list_graph.cpp index c83d1b146..7aa770c0a 100644 --- a/src/eez/gui/widgets/list_graph.cpp +++ b/src/eez/gui/widgets/list_graph.cpp @@ -33,11 +33,11 @@ namespace gui { struct ListGraphWidget : public Widget { int16_t dwellData; int16_t y1Data; - uint16_t y1Style; + int16_t y1Style; int16_t y2Data; - uint16_t y2Style; + int16_t y2Style; int16_t cursorData; - uint16_t cursorStyle; + int16_t cursorStyle; }; struct ListGraphWidgetState { diff --git a/src/eez/gui/widgets/scroll_bar.cpp b/src/eez/gui/widgets/scroll_bar.cpp index 8d794f12f..de46e024a 100644 --- a/src/eez/gui/widgets/scroll_bar.cpp +++ b/src/eez/gui/widgets/scroll_bar.cpp @@ -34,8 +34,8 @@ namespace eez { namespace gui { struct ScrollBarWidget : public Widget { - uint16_t thumbStyle; - uint16_t buttonsStyle; + int16_t thumbStyle; + int16_t buttonsStyle; AssetsPtr leftButtonText; AssetsPtr rightButtonText; }; diff --git a/src/eez/gui/widgets/up_down.cpp b/src/eez/gui/widgets/up_down.cpp index f1f041c45..91314a40d 100644 --- a/src/eez/gui/widgets/up_down.cpp +++ b/src/eez/gui/widgets/up_down.cpp @@ -30,7 +30,7 @@ namespace gui { struct UpDownWidget : public Widget { AssetsPtr downButtonText; AssetsPtr upButtonText; - uint16_t buttonsStyle; + int16_t buttonsStyle; }; EnumFunctionType UP_DOWN_enum = nullptr;