{ ========================================================
   Standalone Dialog Example - Mike Ghan 1/3/2002 6:56PM
   Re-using SF's Toolbar & Menu
========================================================= }

Function: DrawMenuBar ( hWnd -- res )

DIALOG DLG-TMPL
[MODAL " Test Dialog" 20 20 300 70
 (CLASS SFDLG) (FONT 8, MS Sans Serif)
 (+STYLE WS_SYSMENU DS_CENTER) ]
 [DEFPUSHBUTTON  " OK"           IDOK     4   40  40  14 ]
 [PUSHBUTTON     " Cancel"       IDCANCEL 94  40  40  14 ]
 [RTEXT          " # of Widgets" 101      4   20  64  10 ]
 [EDITTEXT                       102      72  20  36  10 ]
END-DIALOG

CONSOLE-WINDOW +ORDER \ So we can access SF's toolbar

GENERICDIALOG SUBCLASS TEST-DIALOG

   : TEMPLATE ( -- addr )   DLG-TMPL ;

   : INIT-MENU  ( -- )
      HWND MAIN-MENU :: LoadMenuIndirect :: SetMenu DROP
      HWND :: DrawMenuBar DROP ;

   WM_INITDIALOG MESSAGE: ( -- res )
      INIT-MENU
      CREATE-SF-TOOLBAR
      RESIZE-SF-TOOLBAR
      TRUE ( Windows sets focus ) ;

   IDOK COMMAND:  ( -- )
      ;

   IDCANCEL COMMAND:
   \  0 CLOSE-DIALOG    \ Uncomment to test from console
      'ONSYSEXIT CALLS  \ Execute System Exit Chain
      0 :: ExitProcess ;

END-CLASS

CONSOLE-WINDOW -ORDER \ Done w SF's toolbar

TEST-DIALOG BUILDS MY-DLG

: TESTER
   GetDesktopWindow MY-DLG MODELESS ( hWnd )
   DUP SW_NORMAL ShowWindow DROP  ( hWnd ) UpdateWindow DROP ;

: WINMAIN
   TESTER
   DISPATCHER ( The classic Windows Message Loop ) ;

\ Save App
' WINMAIN 'MAIN !
-1 THRESHOLD  \ No Xref file
PROGRAM SAMPLE.EXE

BYE