avr: added text aligning in labels.
This commit is contained in:
@@ -15,17 +15,17 @@
|
||||
; defines
|
||||
|
||||
; IMGVIEW in flash
|
||||
.equ VLABEL_OFFS_VLABEL = WIDGET_SIZE
|
||||
.equ VLABEL_OFFS_POSTKOMMADIGITS = VLABEL_OFFS_VLABEL+0
|
||||
.equ VLABEL_OFFS_RESERVED = VLABEL_OFFS_VLABEL+1
|
||||
.equ VLABEL_SIZE = VLABEL_OFFS_VLABEL+2
|
||||
.equ VLABEL_OFFS_VLABEL = WIDGET_SIZE
|
||||
.equ VLABEL_OFFS_POSTKOMMADIGITS = VLABEL_OFFS_VLABEL+0
|
||||
.equ VLABEL_OFFS_RESERVED = VLABEL_OFFS_VLABEL+1
|
||||
.equ VLABEL_SIZE = VLABEL_OFFS_VLABEL+2
|
||||
|
||||
|
||||
; SDRAM data for IMGVIEW
|
||||
.equ VLABEL_SD_OFFS_VLABEL = WIDGET_SD_SIZE
|
||||
.equ VLABEL_SD_OFFS_VALUE_LO = VLABEL_SD_OFFS_VLABEL+0
|
||||
.equ VLABEL_SD_OFFS_VALUE_HI = VLABEL_SD_OFFS_VLABEL+1
|
||||
.equ VLABEL_SD_SIZE = VLABEL_SD_OFFS_VLABEL+2
|
||||
.equ VLABEL_SD_OFFS_VLABEL = WIDGET_SD_SIZE
|
||||
.equ VLABEL_SD_OFFS_VALUE_LO = VLABEL_SD_OFFS_VLABEL+0
|
||||
.equ VLABEL_SD_OFFS_VALUE_HI = VLABEL_SD_OFFS_VLABEL+1
|
||||
.equ VLABEL_SD_SIZE = VLABEL_SD_OFFS_VLABEL+2
|
||||
|
||||
|
||||
; signals
|
||||
@@ -102,16 +102,18 @@ ValueLabel_OnDraw:
|
||||
andi r16, (1<<WIDGET_FLAGS_DIRTY_BIT)
|
||||
breq ValueLabel_OnDraw_ret
|
||||
|
||||
bigcall Widget_Clear
|
||||
|
||||
adiw zh:zl, WIDGET_OFFS_OPTS_LO ; get OPTS low
|
||||
lpm r14, Z
|
||||
sbiw zh:zl, WIDGET_OFFS_OPTS_LO
|
||||
|
||||
bigcall Widget_Clear
|
||||
rcall valueLabelWriteValue
|
||||
push r14
|
||||
rcall valueLabelWriteValue
|
||||
pop r14
|
||||
|
||||
mov r16, r14
|
||||
andi r16, (1<<WIDGETS_OPTSLO_BORDER_BIT)
|
||||
breq ValueLabel_OnDraw_done
|
||||
sbrs r14, WIDGET_OPTSLO_BORDER_BIT
|
||||
rjmp ValueLabel_OnDraw_done
|
||||
ldi r16, LOW(STYLE_BUTTON_COL_BORDER)
|
||||
mov r2, r16
|
||||
ldi r16, HIGH(STYLE_BUTTON_COL_BORDER)
|
||||
@@ -142,26 +144,17 @@ valueLabelWriteValue:
|
||||
push zl
|
||||
push zh
|
||||
bigcall Widget_GetSdramPtr ; (none)
|
||||
; convert value to string
|
||||
ldd r20, Y+VLABEL_SD_OFFS_VALUE_LO
|
||||
ldd r21, Y+VLABEL_SD_OFFS_VALUE_HI
|
||||
adiw zh:zl, VLABEL_OFFS_POSTKOMMADIGITS
|
||||
lpm r24, Z
|
||||
sbiw zh:zl, VLABEL_OFFS_POSTKOMMADIGITS
|
||||
rcall IntToAscii ; X=pointer to text
|
||||
clr r4 ; X
|
||||
clr r5
|
||||
clr r6 ; Y
|
||||
clr r7
|
||||
mov r16, r14
|
||||
andi r16, (1<<WIDGETS_OPTSLO_BORDER_BIT)
|
||||
breq valueLabelWriteValue_draw
|
||||
ldi r16, 2
|
||||
clr r17
|
||||
add r4, r16 ; x+=2
|
||||
adc r5, r17
|
||||
add r6, r16 ; y+=2
|
||||
adc r7, r17
|
||||
valueLabelWriteValue_draw:
|
||||
; align according to string size
|
||||
ldi r18, STYLE_WIN_FONT_WIDTH
|
||||
rcall Widget_CalcStringWidthSDRAM ; r13:r12=string width
|
||||
rcall Widget_AlignPosXY ; (r8, r9, r10, r11, r12, r13, r14, r15, r16, r17, r18, r19)
|
||||
bigcall Widget_DrawTextSDRAM
|
||||
pop zh
|
||||
pop zl
|
||||
@@ -172,6 +165,5 @@ valueLabelWriteValue_draw:
|
||||
|
||||
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
Reference in New Issue
Block a user