avr: added text aligning in labels.

This commit is contained in:
Martin Preuss
2026-01-18 20:02:25 +01:00
parent fb308ba9fc
commit a11c5ac536
5 changed files with 270 additions and 87 deletions

View File

@@ -50,7 +50,7 @@ Label_OnDraw:
rcall labelWriteText
mov r16, r14
andi r16, (1<<WIDGETS_OPTSLO_BORDER_BIT)
andi r16, (1<<WIDGET_OPTSLO_BORDER_BIT)
breq Label_OnDraw_done
ldi r16, LOW(STYLE_BUTTON_COL_BORDER)
mov r2, r16
@@ -79,26 +79,30 @@ Label_OnDraw_ret:
; @clobbers any, !Z
labelWriteText:
clr r4
clr r5
clr r6
clr r7
mov r16, r14
andi r16, (1<<WIDGETS_OPTSLO_BORDER_BIT)
breq labelWriteText_draw
ldi r16, 2
clr r17
add r4, r16 ; x+=2
adc r5, r17
add r6, r16 ; y+=2
adc r7, r17
labelWriteText_draw:
push zl
push zh
adiw zh:zl, LABEL_OFFS_TEXT_LO
lpm r16, Z+
lpm zh, Z
mov zl, r16
or r16, zh
breq labelWriteText_noText
ldi r18, STYLE_WIN_FONT_WIDTH
rcall Widget_CalcStringWidthFLASH ; r13:r12=string width
pop zh
pop zl
rcall Widget_AlignPosXY ; (r8, r9, r10, r11, r12, r13, r14, r15, r16, r17, r18, r19)
adiw zh:zl, LABEL_OFFS_TEXT_LO
lpm r12, Z+
lpm r13, Z
sbiw zh:zl, LABEL_OFFS_TEXT_LO+1
bigcall Widget_DrawTextFlash
ret
labelWriteText_noText:
pop zh
pop zl
ret
; @end