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