avr: more work on c03 and gui.

This commit is contained in:
Martin Preuss
2026-04-27 23:30:49 +02:00
parent 3b7317bb0f
commit 8b17a63fa1
7 changed files with 126 additions and 44 deletions

View File

@@ -18,7 +18,8 @@
.equ VLABEL_OFFS_VALUE_LO = VLABEL_OFFS_BEGIN+0
.equ VLABEL_OFFS_VALUE_HI = VLABEL_OFFS_BEGIN+1
.equ VLABEL_OFFS_POSTKOMMADIGITS = VLABEL_OFFS_BEGIN+2
.equ VLABEL_SIZE = VLABEL_OFFS_BEGIN+3
.equ VLABEL_OFFS_TOTALDIGITS = VLABEL_OFFS_BEGIN+3
.equ VLABEL_SIZE = VLABEL_OFFS_BEGIN+4
.equ VLABEL_VALUE = WIDGET_VALUE_NEXTFREE+0
@@ -42,13 +43,16 @@
; @param r16 value for OBJECT_OFFS_OPTS
; @param r17 value for WIDGET_OFFS_PACK
; @param r20 number of postkomma digits
; @param r21 total number of digits (0=variable)
; @clobbers any
ValueLabel_new:
push r20
ldi r24, LOW(VLABEL_SIZE)
ldi r25, HIGH(VLABEL_SIZE)
bigcall Object_Alloc ; (!r16, !r17, !X)
push r21
ldi r24, LOW(VLABEL_SIZE)
ldi r25, HIGH(VLABEL_SIZE)
bigcall Object_Alloc ; (!r16, !r17, !X)
pop r21
pop r20
brcc ValueLabel_new_ret
rcall ValueLabel_Init ; (r16, r17, X)
@@ -67,16 +71,20 @@ ValueLabel_new_ret:
; @param r16 value for OBJECT_OFFS_OPTS
; @param r17 value for WIDGET_OFFS_PACK
; @param r20 number of postkomma digits
; @param r21 total number of digits (0=variable)
; @clobbers r16, r17, X
ValueLabel_Init:
push r20
; call base class
bigcall Widget_Init ; (r16, r17, X)
push r21
; call base class
bigcall Widget_Init ; (r16, r17, X)
pop r21
pop r20
; setup valueLabel data
std Y+VLABEL_OFFS_POSTKOMMADIGITS, r20
std Y+VLABEL_OFFS_TOTALDIGITS, r21
; set default signal map
ldi r16, LOW(ValueLabel_DefaultSignalmap*2)
@@ -168,7 +176,14 @@ ValueLabel_OnDraw_ret:
; @clobbers any, !Y
ValueLabel_OnGetDefaultWidth:
ldd r17, Y+VLABEL_OFFS_TOTALDIGITS
tst r17
breq ValueLabel_OnGetDefaultWidth_calcRealSize
bigcall Widget_CalcFixedStringWidth
rjmp ValueLabel_OnGetDefaultWidth_done
ValueLabel_OnGetDefaultWidth_calcRealSize:
rcall valueLabelCalcTextWidth
ValueLabel_OnGetDefaultWidth_done:
mov r18, r12
mov r19, r13
bigcall Widget_AddOuterStyleBorders ; (r20, r21)