( forms DAY 08.04.2001 )

needs ekey os_events
needs frmOpenEvent events

api: FrmGotoForm
: ShowForm ( id )
  >r r@ FrmGotoForm
  begin
   ekey frmOpenEvent =
   event 8 + w@ r@ = and
  until rdrop
;

api: FrmGetActiveForm
api: FrmGetObjectIndex
api: FrmGetObjectPtr

: FormObjectPtr ( rsrcID -- ptr )
    FrmGetActiveForm
    dup rot FrmGetObjectIndex
    FrmGetObjectPtr
;

api: FrmGetFocus
: FocusedObjectPtr ( -- ptr )
    FrmGetActiveForm
    dup FrmGetFocus
    dup 0= if nip exit then
    FrmGetObjectPtr
;

api: FrmDoDialog
api: FrmDeleteForm

: ShowDialog ( rscID -- buttonID )
   FrmInitForm DUP
   FrmDoDialog SWAP
   FrmDeleteForm
;
