gui: improved style handling.
This commit is contained in:
@@ -12,8 +12,57 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
; title window style
|
||||||
|
.equ STYLE_TITLE_BGCOL = DISPLAY_COLOR_NAVY
|
||||||
|
.equ STYLE_TITLE_FGCOL = DISPLAY_COLOR_WHITE
|
||||||
|
.equ STYLE_TITLE_BORDERCOL = DISPLAY_COLOR_WHITE
|
||||||
|
.equ STYLE_TITLE_SHADOWCOL = DISPLAY_COLOR_DARKGREY
|
||||||
|
.equ STYLE_TITLE_FONT = ili9341Font12x16_1
|
||||||
|
.equ STYLE_TITLE_FONT_WIDTH = 12
|
||||||
|
.equ STYLE_TITLE_FONT_HEIGHT = 16
|
||||||
|
|
||||||
|
|
||||||
|
; window style
|
||||||
|
.equ STYLE_WIN_BGCOL_NORM = DISPLAY_COLOR_LIGHTGREY
|
||||||
|
.equ STYLE_WIN_FGCOL_NORM = DISPLAY_COLOR_BLACK
|
||||||
|
.equ STYLE_WIN_BORDERCOL_NORM = DISPLAY_COLOR_BLACK
|
||||||
|
.equ STYLE_WIN_SHADOWCOL_NORM = DISPLAY_COLOR_DARKGREY
|
||||||
|
|
||||||
|
.equ STYLE_WIN_BGCOL_ACTIVATED = DISPLAY_COLOR_NAVY
|
||||||
|
.equ STYLE_WIN_FGCOL_ACTIVATED = DISPLAY_COLOR_WHITE
|
||||||
|
.equ STYLE_WIN_BORDERCOL_ACTIVATED = DISPLAY_COLOR_WHITE
|
||||||
|
.equ STYLE_WIN_SHADOWCOL_ACTIVATED = DISPLAY_COLOR_DARKGREY
|
||||||
|
|
||||||
|
.equ STYLE_WIN_FONT = ili9341Font12x16_1
|
||||||
|
.equ STYLE_WIN_FONT_WIDTH = 12
|
||||||
|
.equ STYLE_WIN_FONT_HEIGHT = 16
|
||||||
|
|
||||||
|
|
||||||
|
; button style
|
||||||
|
.equ STYLE_BUTTON_BGCOL_NORM = DISPLAY_COLOR_WHITE
|
||||||
|
.equ STYLE_BUTTON_FGCOL_NORM = DISPLAY_COLOR_BLACK
|
||||||
|
.equ STYLE_BUTTON_BORDERCOL_NORM = DISPLAY_COLOR_BLACK
|
||||||
|
.equ STYLE_BUTTON_SHADOWCOL_NORM = DISPLAY_COLOR_DARKGREY
|
||||||
|
|
||||||
|
.equ STYLE_BUTTON_BGCOL_ACTIVATED = DISPLAY_COLOR_NAVY
|
||||||
|
.equ STYLE_BUTTON_FGCOL_ACTIVATED = DISPLAY_COLOR_WHITE
|
||||||
|
.equ STYLE_BUTTON_BORDERCOL_ACTIVATED = DISPLAY_COLOR_WHITE
|
||||||
|
.equ STYLE_BUTTON_SHADOWCOL_ACTIVATED = DISPLAY_COLOR_DARKGREY
|
||||||
|
|
||||||
|
.equ STYLE_BUTTON_FONT = ili9341Font12x16_1
|
||||||
|
.equ STYLE_BUTTON_FONT_WIDTH = 12
|
||||||
|
.equ STYLE_BUTTON_FONT_HEIGHT = 16
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.equ STYLE_WIN_TITLE_HEIGHT = (STYLE_TITLE_FONT_HEIGHT+4)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
; deprecated
|
||||||
.equ STYLE_WIN_TITLE_BACKGROUND = DISPLAY_COLOR_NAVY
|
.equ STYLE_WIN_TITLE_BACKGROUND = DISPLAY_COLOR_NAVY
|
||||||
.equ STYLE_WIN_TITLE_FOREGROUND = DISPLAY_COLOR_WHITE
|
.equ STYLE_WIN_TITLE_FOREGROUND = DISPLAY_COLOR_WHITE
|
||||||
|
|
||||||
.equ STYLE_BUTTON_COL_BORDER = DISPLAY_COLOR_BLACK
|
.equ STYLE_BUTTON_COL_BORDER = DISPLAY_COLOR_BLACK
|
||||||
.equ STYLE_BUTTON_COL_BG_NORM = DISPLAY_COLOR_WHITE
|
.equ STYLE_BUTTON_COL_BG_NORM = DISPLAY_COLOR_WHITE
|
||||||
.equ STYLE_BUTTON_COL_BG_PRESSED = DISPLAY_COLOR_NAVY
|
.equ STYLE_BUTTON_COL_BG_PRESSED = DISPLAY_COLOR_NAVY
|
||||||
@@ -22,11 +71,68 @@
|
|||||||
|
|
||||||
.equ STYLE_WIN_BACKGROUND = DISPLAY_COLOR_LIGHTGREY
|
.equ STYLE_WIN_BACKGROUND = DISPLAY_COLOR_LIGHTGREY
|
||||||
.equ STYLE_WIN_FOREGROUND = DISPLAY_COLOR_BLACK
|
.equ STYLE_WIN_FOREGROUND = DISPLAY_COLOR_BLACK
|
||||||
.equ STYLE_WIN_FONT = ili9341Font12x16_1
|
|
||||||
.equ STYLE_WIN_FONT_WIDTH = 12
|
|
||||||
.equ STYLE_WIN_FONT_HEIGHT = 16
|
|
||||||
|
|
||||||
.equ STYLE_WIN_TITLE_HEIGHT = (STYLE_WIN_FONT_HEIGHT+4)
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
; ***************************************************************************
|
||||||
|
; data in FLASH
|
||||||
|
|
||||||
|
.cseg
|
||||||
|
|
||||||
|
DefaultStyle_Window:
|
||||||
|
.dw STYLE_WIN_FGCOL_NORM ; frontCol_norm
|
||||||
|
.dw STYLE_WIN_BGCOL_NORM ; backCol_norm
|
||||||
|
.dw STYLE_WIN_BORDERCOL_NORM ; borderCol_norm
|
||||||
|
.dw STYLE_WIN_SHADOWCOL_NORM ; shadowCol_norm
|
||||||
|
|
||||||
|
.dw STYLE_WIN_FGCOL_ACTIVATED ; frontCol_activated
|
||||||
|
.dw STYLE_WIN_BGCOL_ACTIVATED ; backCol_activated
|
||||||
|
.dw STYLE_WIN_BORDERCOL_ACTIVATED ; borderCol_activated
|
||||||
|
.dw STYLE_WIN_SHADOWCOL_ACTIVATED ; shadowCol_activated
|
||||||
|
|
||||||
|
.db 2, 2 ; outerBorderSize, innerBorderSize
|
||||||
|
.dw (STYLE_WIN_FONT*2) ; font
|
||||||
|
.db STYLE_WIN_FONT_WIDTH, \
|
||||||
|
STYLE_WIN_FONT_HEIGHT ; charWidth, charHeight
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
DefaultStyle_Button:
|
||||||
|
.dw STYLE_BUTTON_FGCOL_NORM ; frontCol_norm
|
||||||
|
.dw STYLE_BUTTON_BGCOL_NORM ; backCol_norm
|
||||||
|
.dw STYLE_BUTTON_BORDERCOL_NORM ; borderCol_norm
|
||||||
|
.dw STYLE_BUTTON_SHADOWCOL_NORM ; shadowCol_norm
|
||||||
|
|
||||||
|
.dw STYLE_BUTTON_FGCOL_ACTIVATED ; frontCol_activated
|
||||||
|
.dw STYLE_BUTTON_BGCOL_ACTIVATED ; backCol_activated
|
||||||
|
.dw STYLE_BUTTON_BORDERCOL_ACTIVATED ; borderCol_activated
|
||||||
|
.dw STYLE_BUTTON_SHADOWCOL_ACTIVATED ; shadowCol_activated
|
||||||
|
|
||||||
|
.db 2, 2 ; outerBorderSize, innerBorderSize
|
||||||
|
.dw (STYLE_BUTTON_FONT*2) ; font
|
||||||
|
.db STYLE_BUTTON_FONT_WIDTH, \
|
||||||
|
STYLE_BUTTON_FONT_HEIGHT ; charWidth, charHeight
|
||||||
|
|
||||||
|
|
||||||
|
DefaultStyle_SpacyButton:
|
||||||
|
.dw STYLE_BUTTON_FGCOL_NORM ; frontCol_norm
|
||||||
|
.dw STYLE_BUTTON_BGCOL_NORM ; backCol_norm
|
||||||
|
.dw STYLE_BUTTON_BORDERCOL_NORM ; borderCol_norm
|
||||||
|
.dw STYLE_BUTTON_SHADOWCOL_NORM ; shadowCol_norm
|
||||||
|
|
||||||
|
.dw STYLE_BUTTON_FGCOL_ACTIVATED ; frontCol_activated
|
||||||
|
.dw STYLE_BUTTON_BGCOL_ACTIVATED ; backCol_activated
|
||||||
|
.dw STYLE_BUTTON_BORDERCOL_ACTIVATED ; borderCol_activated
|
||||||
|
.dw STYLE_BUTTON_SHADOWCOL_ACTIVATED ; shadowCol_activated
|
||||||
|
|
||||||
|
.db 8, 2 ; outerBorderSize, innerBorderSize
|
||||||
|
.dw (STYLE_BUTTON_FONT*2) ; font
|
||||||
|
.db STYLE_BUTTON_FONT_WIDTH, \
|
||||||
|
STYLE_BUTTON_FONT_HEIGHT ; charWidth, charHeight
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -104,6 +104,31 @@ Button_Init:
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
; ---------------------------------------------------------------------------
|
||||||
|
; @routine Button_OnSetValueStyle @global
|
||||||
|
;
|
||||||
|
; @param Y address of widget
|
||||||
|
; @param X=new style
|
||||||
|
|
||||||
|
Button_OnSetValueStyle:
|
||||||
|
std Y+WIDGET_OFFS_STYLE_LO, xl
|
||||||
|
std Y+WIDGET_OFFS_STYLE_HI, xh
|
||||||
|
bigcall OBJ_GetFirstChild
|
||||||
|
brcc Button_OnSetValueStyle_ret
|
||||||
|
push yl
|
||||||
|
push yh
|
||||||
|
mov yl, r18
|
||||||
|
mov yh, r19
|
||||||
|
bigcall Widget_SetStyle ; set style in child
|
||||||
|
pop yh
|
||||||
|
pop yl
|
||||||
|
Button_OnSetValueStyle_ret:
|
||||||
|
sec
|
||||||
|
ret
|
||||||
|
; @end
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
; ---------------------------------------------------------------------------
|
; ---------------------------------------------------------------------------
|
||||||
; @routine Button_OnTouchBegin @global
|
; @routine Button_OnTouchBegin @global
|
||||||
;
|
;
|
||||||
@@ -340,6 +365,7 @@ Button_DefaultSignalmap:
|
|||||||
.db 0, WIDGET_SIGNAL_LAYOUT, LOW(Button_OnLayout), HIGH(Button_OnLayout)
|
.db 0, WIDGET_SIGNAL_LAYOUT, LOW(Button_OnLayout), HIGH(Button_OnLayout)
|
||||||
.db WIDGET_VALUE_DEFAULT_WIDTH, WIDGET_SIGNAL_GETVALUE, LOW(Button_OnGetDefaultWidth), HIGH(Button_OnGetDefaultWidth)
|
.db WIDGET_VALUE_DEFAULT_WIDTH, WIDGET_SIGNAL_GETVALUE, LOW(Button_OnGetDefaultWidth), HIGH(Button_OnGetDefaultWidth)
|
||||||
.db WIDGET_VALUE_DEFAULT_HEIGHT, WIDGET_SIGNAL_GETVALUE, LOW(Button_OnGetDefaultHeight), HIGH(Button_OnGetDefaultHeight)
|
.db WIDGET_VALUE_DEFAULT_HEIGHT, WIDGET_SIGNAL_GETVALUE, LOW(Button_OnGetDefaultHeight), HIGH(Button_OnGetDefaultHeight)
|
||||||
|
.db WIDGET_VALUE_STYLE, WIDGET_SIGNAL_SETVALUE, LOW(Button_OnSetValueStyle), HIGH(Button_OnSetValueStyle)
|
||||||
|
|
||||||
.db 0, 0, 0, 0 ; end of table
|
.db 0, 0, 0, 0 ; end of table
|
||||||
|
|
||||||
|
|||||||
@@ -239,14 +239,17 @@ cWidgetMkChildWidget_typeOk:
|
|||||||
|
|
||||||
; set style (if any)
|
; set style (if any)
|
||||||
adiw zh:zl, CWIDGETCFG_OFFS_WIDGET_STYLE_LO
|
adiw zh:zl, CWIDGETCFG_OFFS_WIDGET_STYLE_LO
|
||||||
lpm r16, Z+
|
lpm xl, Z+
|
||||||
lpm r17, Z
|
lpm xh, Z
|
||||||
sbiw zh:zl, (CWIDGETCFG_OFFS_WIDGET_STYLE_LO+1)
|
sbiw zh:zl, (CWIDGETCFG_OFFS_WIDGET_STYLE_LO+1)
|
||||||
mov r18, r16
|
mov r18, xl
|
||||||
or r18, r17
|
or r18, xh
|
||||||
breq cWidgetMkChildWidget_setminmax
|
breq cWidgetMkChildWidget_setminmax
|
||||||
std Y+WIDGET_OFFS_STYLE_LO, r16
|
push zl
|
||||||
std Y+WIDGET_OFFS_STYLE_HI, r17
|
push zh
|
||||||
|
bigcall Widget_SetStyle
|
||||||
|
pop zh
|
||||||
|
pop zl
|
||||||
cWidgetMkChildWidget_setminmax:
|
cWidgetMkChildWidget_setminmax:
|
||||||
adiw zh:zl, CWIDGETCFG_OFFS_WIDGET_FLAGS
|
adiw zh:zl, CWIDGETCFG_OFFS_WIDGET_FLAGS
|
||||||
lpm r16, Z
|
lpm r16, Z
|
||||||
|
|||||||
@@ -239,9 +239,9 @@ mainWindowCreateContentWidget:
|
|||||||
bigcall VLayout_new
|
bigcall VLayout_new
|
||||||
brcc mainWindowCreateContentWidget_done
|
brcc mainWindowCreateContentWidget_done
|
||||||
; set style for title widget
|
; set style for title widget
|
||||||
ldi r16, LOW(MainWindow_ContentStyle*2)
|
ldi r16, LOW(DefaultStyle_Window*2)
|
||||||
std Y+WIDGET_OFFS_STYLE_LO, r16
|
std Y+WIDGET_OFFS_STYLE_LO, r16
|
||||||
ldi r16, HIGH(MainWindow_ContentStyle*2)
|
ldi r16, HIGH(DefaultStyle_Window*2)
|
||||||
std Y+WIDGET_OFFS_STYLE_HI, r16
|
std Y+WIDGET_OFFS_STYLE_HI, r16
|
||||||
mainWindowCreateContentWidget_done:
|
mainWindowCreateContentWidget_done:
|
||||||
pop yh
|
pop yh
|
||||||
@@ -269,57 +269,38 @@ MainWindow_DefaultSignalmap:
|
|||||||
|
|
||||||
|
|
||||||
MainWindow_DefaultStyle:
|
MainWindow_DefaultStyle:
|
||||||
.dw DISPLAY_COLOR_BLACK ; frontCol_norm
|
.dw STYLE_WIN_FGCOL_NORM ; frontCol_norm
|
||||||
.dw DISPLAY_COLOR_LIGHTGREY ; backCol_norm
|
.dw STYLE_WIN_BGCOL_NORM ; backCol_norm
|
||||||
.dw DISPLAY_COLOR_BLACK ; borderCol_norm
|
.dw STYLE_WIN_BORDERCOL_NORM ; borderCol_norm
|
||||||
.dw DISPLAY_COLOR_WHITE ; shadowCol_norm
|
.dw STYLE_WIN_SHADOWCOL_NORM ; shadowCol_norm
|
||||||
|
|
||||||
.dw DISPLAY_COLOR_WHITE ; frontCol_activated
|
.dw STYLE_WIN_FGCOL_ACTIVATED ; frontCol_activated
|
||||||
.dw DISPLAY_COLOR_NAVY ; backCol_activated
|
.dw STYLE_WIN_BGCOL_ACTIVATED ; backCol_activated
|
||||||
.dw DISPLAY_COLOR_BLACK ; borderCol_activated
|
.dw STYLE_WIN_BORDERCOL_ACTIVATED ; borderCol_activated
|
||||||
.dw DISPLAY_COLOR_WHITE ; shadowCol_activated
|
.dw STYLE_WIN_SHADOWCOL_ACTIVATED ; shadowCol_activated
|
||||||
|
|
||||||
.db 0, 0 ; outerBorderSize, innerBorderSize
|
.db 0, 0 ; outerBorderSize, innerBorderSize
|
||||||
.dw ili9341Font12x16_1*2 ; font
|
.dw (STYLE_WIN_FONT*2) ; font
|
||||||
.db 12, 16 ; charWidth, charHeight
|
.db STYLE_WIN_FONT_WIDTH, \
|
||||||
|
STYLE_WIN_FONT_HEIGHT ; charWidth, charHeight
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
MainWindow_TitleStyle:
|
MainWindow_TitleStyle:
|
||||||
.dw STYLE_WIN_TITLE_FOREGROUND ; frontCol_norm
|
.dw STYLE_TITLE_FGCOL ; frontCol_norm
|
||||||
.dw STYLE_WIN_TITLE_BACKGROUND ; backCol_norm
|
.dw STYLE_TITLE_BGCOL ; backCol_norm
|
||||||
.dw DISPLAY_COLOR_BLACK ; borderCol_norm
|
.dw STYLE_TITLE_BORDERCOL ; borderCol_norm
|
||||||
.dw DISPLAY_COLOR_WHITE ; shadowCol_norm
|
.dw STYLE_TITLE_SHADOWCOL ; shadowCol_norm
|
||||||
|
|
||||||
.dw DISPLAY_COLOR_WHITE ; frontCol_activated
|
.dw STYLE_TITLE_FGCOL ; frontCol_activated
|
||||||
.dw DISPLAY_COLOR_NAVY ; backCol_activated
|
.dw STYLE_TITLE_BGCOL ; backCol_activated
|
||||||
.dw DISPLAY_COLOR_BLACK ; borderCol_activated
|
.dw STYLE_TITLE_BORDERCOL ; borderCol_activated
|
||||||
.dw DISPLAY_COLOR_WHITE ; shadowCol_activated
|
.dw STYLE_TITLE_SHADOWCOL ; shadowCol_activated
|
||||||
|
|
||||||
.db 2, 1 ; outerBorderSize, innerBorderSize
|
.db 2, 1 ; outerBorderSize, innerBorderSize
|
||||||
.dw ili9341Font12x16_1*2 ; font
|
.dw (STYLE_TITLE_FONT*2) ; font
|
||||||
.db 12, 16 ; charWidth, charHeight
|
.db STYLE_TITLE_FONT_WIDTH, \
|
||||||
|
STYLE_TITLE_FONT_HEIGHT ; charWidth, charHeight
|
||||||
|
|
||||||
|
|
||||||
; this is the defining style for most windows because normally
|
|
||||||
; the style of the parent will be propagated to newly created child widgets.
|
|
||||||
|
|
||||||
MainWindow_ContentStyle:
|
|
||||||
.dw DISPLAY_COLOR_BLACK ; frontCol_norm
|
|
||||||
.dw DISPLAY_COLOR_LIGHTGREY ; backCol_norm
|
|
||||||
.dw DISPLAY_COLOR_BLACK ; borderCol_norm
|
|
||||||
.dw DISPLAY_COLOR_WHITE ; shadowCol_norm
|
|
||||||
|
|
||||||
.dw DISPLAY_COLOR_WHITE ; frontCol_activated
|
|
||||||
.dw DISPLAY_COLOR_NAVY ; backCol_activated
|
|
||||||
.dw DISPLAY_COLOR_BLACK ; borderCol_activated
|
|
||||||
.dw DISPLAY_COLOR_WHITE ; shadowCol_activated
|
|
||||||
|
|
||||||
.db 2, 1 ; outerBorderSize, innerBorderSize
|
|
||||||
.dw ili9341Font12x16_1*2 ; font
|
|
||||||
.db 12, 16 ; charWidth, charHeight
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user