ImageView: handle PRESSED flag.
needed when used as button.
This commit is contained in:
@@ -104,6 +104,10 @@ ImageView_OnDraw:
|
||||
|
||||
; rcall Widget_Clear
|
||||
|
||||
adiw zh:zl, WIDGET_OFFS_OPTS_LO
|
||||
lpm r14, Z
|
||||
sbiw zh:zl, WIDGET_OFFS_OPTS_LO
|
||||
|
||||
push zl
|
||||
push zh
|
||||
; get ressource id
|
||||
@@ -122,17 +126,39 @@ ImageView_OnDraw:
|
||||
brcc ImageView_OnDraw_done
|
||||
|
||||
; get background color
|
||||
ldd r16, Y+WIDGET_SD_OFFS_FLAGS
|
||||
andi r16, (1<<WIDGET_FLAGS_PRESSED_BIT)
|
||||
breq ImageView_OnDraw_useStoredBgCol
|
||||
ldi r16, LOW(STYLE_BUTTON_COL_BG_PRESSED)
|
||||
mov r0, r16
|
||||
ldi r16, HIGH(STYLE_BUTTON_COL_BG_PRESSED)
|
||||
mov r1, r16
|
||||
rjmp ImageView_OnDraw_getPos
|
||||
|
||||
ImageView_OnDraw_useStoredBgCol:
|
||||
ldd r0, Y+IMGVIEW_SD_OFFS_BGCOL_LO
|
||||
ldd r1, Y+IMGVIEW_SD_OFFS_BGCOL_HI
|
||||
|
||||
ImageView_OnDraw_getPos:
|
||||
; draw at 0/0
|
||||
clr r4 ; X
|
||||
clr r5
|
||||
clr r6 ; Y
|
||||
clr r7
|
||||
sbrs r14, WIDGET_OPTSLO_BORDER_BIT
|
||||
rjmp ImageView_OnDraw_draw
|
||||
ldi r16, 2
|
||||
clr r17
|
||||
add r4, r16
|
||||
adc r5, r17
|
||||
add r6, r16
|
||||
adc r7, r17
|
||||
|
||||
ImageView_OnDraw_draw:
|
||||
bigcall Widget_DrawImage
|
||||
|
||||
sbrs r14, WIDGET_OPTSLO_BORDER_BIT
|
||||
rjmp ImageView_OnDraw_done
|
||||
bigcall Widget_DrawBorder
|
||||
ImageView_OnDraw_done:
|
||||
bigcall Widget_GetSdramPtr ; (none)
|
||||
ldd r16, Y+WIDGET_SD_OFFS_FLAGS
|
||||
|
||||
Reference in New Issue
Block a user