\ skinelf2


needs ids
needs mombutton
needs skinstructs
needs skins

decimal

\ Button ids run from 1000 to 1015.
1000 constant first-button-id

\ Map form ctlEvents to chars:
: item>nibble  ( id -- nibble )
    first-button-id - ;

: do-elf2-buttons  ( ekey -- )
    ctlSelectEvent = if
        event >abs itemid
        item>nibble input-nibble
    then ;

Momentary: elf2v-ikey
1416 elf2v-ikey mom.upbmp-id !
1516 elf2v-ikey mom.downbmp-id !
1016 elf2v-ikey mom.gadget-id !

View: elf2v
104 143 elf2v view.pos-q 2!
119 150 elf2v view.pos-lodigit 2!
119 142 elf2v view.pos-hidigit 2!
2001 elf2v view.id-form !
1300 elf2v view.id-qoff !
1301 elf2v view.id-qon !
1360 elf2v view.id-digit0 !

: elf2v-init  ( -- )
    ['] noop elf2v view.v-init !
    \ store ptr to momentary button
    \ struct in the elf2v view
    elf2v-ikey elf2v view.mom-ikey !
    \ store handler for hex keypad
    \ buttons
    ['] do-elf2-buttons 
    elf2v view.v-event ! ;

Momentary: elf2n-ikey
1417 elf2n-ikey mom.upbmp-id !
1517 elf2n-ikey mom.downbmp-id !
1016 elf2n-ikey mom.gadget-id !

View: elf2n
9 118 elf2n view.pos-q 2!
8 83 elf2n view.pos-lodigit 2!
8 60 elf2n view.pos-hidigit 2!
2000 elf2n view.id-form !
1300 elf2n view.id-qoff !
1301 elf2n view.id-qon !
1460 elf2n view.id-digit0 !

: elf2n-init  ( -- )
    ['] noop elf2n view.v-init !
    \ store ptr to momentary button
    \ struct in the elf2n view
    elf2n-ikey elf2n view.mom-ikey !
    \ store handler for hex keypad
    \ buttons
    ['] do-elf2-buttons 
    elf2n view.v-event ! ;

: elf2-skin-init  ( -- )
    elf2n-init   elf2v-init ;

Skin: elf2
elf2n elf2 skin>normal !
elf2v elf2 skin>video !

