gui2: mlayout works now (in column mode)!
This commit is contained in:
@@ -301,7 +301,7 @@ mLayoutCallbackGridX:
|
||||
|
||||
|
||||
; ---------------------------------------------------------------------------
|
||||
; @routine mLayoutCallbackGridX
|
||||
; @routine mLayoutCallbackPackX
|
||||
;
|
||||
; @param Y widget
|
||||
; @param r22 spacing between widgets
|
||||
@@ -328,6 +328,60 @@ mLayoutCallbackPackX:
|
||||
|
||||
|
||||
|
||||
; ---------------------------------------------------------------------------
|
||||
; @routine mLayoutCallbackGridY
|
||||
;
|
||||
; @param Y widget
|
||||
; @param r22 spacing between widgets
|
||||
; @param X current Y pos
|
||||
; @clobbers r10-r13, r16-r21
|
||||
|
||||
mLayoutCallbackGridY:
|
||||
ldd r20, Y+WIDGET_OFFS_TMP_LO
|
||||
ldd r21, Y+WIDGET_OFFS_TMP_HI
|
||||
std Y+WIDGET_OFFS_Y_LO, xl ; set new Y
|
||||
std Y+WIDGET_OFFS_Y_HI, xh
|
||||
add xl, r20 ; add cell width
|
||||
adc xh, r21
|
||||
add xl, r22 ; add spacing
|
||||
adc xh, r22
|
||||
sub xh, r22
|
||||
clc
|
||||
ret
|
||||
; @end
|
||||
|
||||
|
||||
|
||||
; ---------------------------------------------------------------------------
|
||||
; @routine mLayoutCallbackPackY
|
||||
;
|
||||
; @param Y widget
|
||||
; @param r22 spacing between widgets
|
||||
; @clobbers r10-r13, r16-r21, X
|
||||
|
||||
mLayoutCallbackPackY:
|
||||
ldd r10, Y+WIDGET_OFFS_TMP_LO ; calculated cell width
|
||||
ldd r11, Y+WIDGET_OFFS_TMP_HI
|
||||
ldd r12, Y+WIDGET_OFFS_HEIGHT_LO ; default width
|
||||
ldd r13, Y+WIDGET_OFFS_HEIGHT_HI
|
||||
ldd r17, Y+WIDGET_OFFS_PACK
|
||||
lsr r17 ; WIDGET_PACK_VSELF0_BIT = 2 -> shift 2 times right
|
||||
lsr r17
|
||||
andi r17, 3
|
||||
rcall mLayoutPackCell ; R21:R20=relative pos, R19:R18=new size (r16, r17, r18, r19)
|
||||
ldd xl, Y+WIDGET_OFFS_Y_LO
|
||||
ldd xh, Y+WIDGET_OFFS_Y_HI
|
||||
add xl, r20
|
||||
adc xh, r21
|
||||
std Y+WIDGET_OFFS_Y_LO, xl
|
||||
std Y+WIDGET_OFFS_Y_HI, xh
|
||||
std Y+WIDGET_OFFS_HEIGHT_LO, r18
|
||||
std Y+WIDGET_OFFS_HEIGHT_HI, r19
|
||||
ret
|
||||
; @end
|
||||
|
||||
|
||||
|
||||
|
||||
; ---------------------------------------------------------------------------
|
||||
; @routine mLayoutCallbackPositionY
|
||||
@@ -347,37 +401,6 @@ add xl, r20
|
||||
adc xh, r21
|
||||
clc
|
||||
ret
|
||||
|
||||
ldd r16, Y+OBJECT_OFFS_FLAGS
|
||||
sbrs r16, WIDGET_FLAGS_VISIBLE_BIT
|
||||
rjmp mLayoutCallbackPositionY_ret
|
||||
ldd r10, Y+WIDGET_OFFS_TMP_LO ; calculated cell width
|
||||
ldd r11, Y+WIDGET_OFFS_TMP_HI
|
||||
ldd r12, Y+WIDGET_OFFS_HEIGHT_LO ; default height
|
||||
ldd r13, Y+WIDGET_OFFS_HEIGHT_HI
|
||||
ldd r17, Y+WIDGET_OFFS_PACK
|
||||
lsr r17 ; WIDGET_PACK_VSELF0_BIT = 2 -> shift 2 times right
|
||||
lsr r17
|
||||
andi r17, 3
|
||||
push r18
|
||||
push r19
|
||||
rcall mLayoutPackCell ; R21:R20=relative pos (r16, r17, r18, r19)
|
||||
pop r19
|
||||
pop r18
|
||||
add r20, xl
|
||||
adc r21, xh
|
||||
std Y+WIDGET_OFFS_Y_LO, r20 ; set new Y
|
||||
std Y+WIDGET_OFFS_Y_HI, r21
|
||||
; std Y+WIDGET_OFFS_HEIGHT_LO, r12 ; set new height
|
||||
; std Y+WIDGET_OFFS_HEIGHT_HI, r13
|
||||
add xl, r18 ; advance Y
|
||||
adc xh, r19
|
||||
add xl, r22 ; add spacing
|
||||
adc xh, r22
|
||||
sub xh, r22
|
||||
mLayoutCallbackPositionY_ret:
|
||||
clc
|
||||
ret
|
||||
; @end
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user