\ progdelete

needs ids
needs events
needs fields
needs datamgr
needs fieldutils
needs skins
needs listutil
needs listfill

: deleteit  ( -- flag )   
    \ display confirmation dialog
    5010 FrmAlert  ( 1=del|0=cancel )
    1 =
    if
        \ Delete tapped
        db db-close         \ close r/o access
        db db-open-rw  \ open r/w access
        1000 list-sel@    ( selection )
        db db-rec-remove
        true 
    else
        \ Cancel tapped
        false
    then ;

: do-del-buttons  ( -- flag )
    event >abs itemid
    case
    \ Delete pressed
    2000 of    deleteit    endof
    \  Cancel pressed
    2001 of    true     endof
    \ otherwise
    false swap
    endcase ;

\ Process events for Delete dialog
\ and return TRUE when it's time
\ for the dialog to close.
: do-del-event  ( ekey -- flag )
    ctlSelectEvent = if
        do-del-buttons
    else   false    then ;    

: do-del-msg-loop  ( -- )
        begin
            ekey do-del-event
        until ;

: deleteprogram  ( -- )
    db ['] db-open-ro catch if
        drop
        5080 FrmAlert drop
    else 
        db db-rec-count 0= if
            5080 FrmAlert drop
        else
            2520 PopupForm
            1000 list-fill
            ['] do-del-msg-loop catch drop
            current-form-id @
            FrmReturnToForm 
        then
        db db-close
    then ;
