diff --git a/avr/modules/lcd2/gui2/base/widget.asm b/avr/modules/lcd2/gui2/base/widget.asm index cbe686e..d6c4b7f 100644 --- a/avr/modules/lcd2/gui2/base/widget.asm +++ b/avr/modules/lcd2/gui2/base/widget.asm @@ -506,6 +506,35 @@ Widget_AddOuterStyleBorders: +; --------------------------------------------------------------------------- +; @routine Widget_GetBorderAndSpacing @global +; +; @param Y address of widget +; @return r23 border size +; @return r22 spacing +; @clobbers none + +Widget_GetBorderAndSpacing: + push zl + push zh + ldd zl, Y+WIDGET_OFFS_STYLE_LO + ldd zh, Y+WIDGET_OFFS_STYLE_HI + mov r22, zl + or r22, zh + brne Widget_GetBorderAndSpacing_read + clr r22 + clr r23 + rjmp Widget_GetBorderAndSpacing_done +Widget_GetBorderAndSpacing_read: + adiw zh:zl, WIDGET_STYLE_OFFS_OUTERBORDERSIZE + lpm r23, Z+ ; borders + lpm r22, Z ; spacing +Widget_GetBorderAndSpacing_done: + pop zh + pop zl + ret +; @end + ; ---------------------------------------------------------------------------