You can subscribe to this list here.
2004 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(70) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2005 |
Jan
(38) |
Feb
(4) |
Mar
(11) |
Apr
(49) |
May
(81) |
Jun
(65) |
Jul
(36) |
Aug
(57) |
Sep
(63) |
Oct
(57) |
Nov
(49) |
Dec
(41) |
2006 |
Jan
(75) |
Feb
(80) |
Mar
(10) |
Apr
(13) |
May
(100) |
Jun
(100) |
Jul
(77) |
Aug
(87) |
Sep
(80) |
Oct
(124) |
Nov
(39) |
Dec
(41) |
2007 |
Jan
(20) |
Feb
(32) |
Mar
(32) |
Apr
(43) |
May
(146) |
Jun
(40) |
Jul
(49) |
Aug
(33) |
Sep
(25) |
Oct
(19) |
Nov
(11) |
Dec
(8) |
2008 |
Jan
(4) |
Feb
(11) |
Mar
(31) |
Apr
(40) |
May
(34) |
Jun
(24) |
Jul
(39) |
Aug
(104) |
Sep
(27) |
Oct
(35) |
Nov
(34) |
Dec
(97) |
2009 |
Jan
(75) |
Feb
(29) |
Mar
(45) |
Apr
(76) |
May
(121) |
Jun
(103) |
Jul
(67) |
Aug
(28) |
Sep
(22) |
Oct
(39) |
Nov
(9) |
Dec
(15) |
2010 |
Jan
(7) |
Feb
(39) |
Mar
(40) |
Apr
(57) |
May
(67) |
Jun
(69) |
Jul
(49) |
Aug
(68) |
Sep
(22) |
Oct
(7) |
Nov
(2) |
Dec
(10) |
2011 |
Jan
|
Feb
|
Mar
(10) |
Apr
(4) |
May
(6) |
Jun
(10) |
Jul
(16) |
Aug
(23) |
Sep
(9) |
Oct
|
Nov
(28) |
Dec
(3) |
2012 |
Jan
(11) |
Feb
(10) |
Mar
(1) |
Apr
|
May
(4) |
Jun
(3) |
Jul
(3) |
Aug
(4) |
Sep
(2) |
Oct
|
Nov
|
Dec
(1) |
2013 |
Jan
|
Feb
(7) |
Mar
(30) |
Apr
(4) |
May
(4) |
Jun
(8) |
Jul
(10) |
Aug
(4) |
Sep
|
Oct
(2) |
Nov
(24) |
Dec
(13) |
2014 |
Jan
(7) |
Feb
(2) |
Mar
|
Apr
(1) |
May
(9) |
Jun
|
Jul
(3) |
Aug
(9) |
Sep
|
Oct
(2) |
Nov
|
Dec
(3) |
2015 |
Jan
(4) |
Feb
(2) |
Mar
|
Apr
|
May
|
Jun
(1) |
Jul
|
Aug
(5) |
Sep
(1) |
Oct
(4) |
Nov
(7) |
Dec
(39) |
2016 |
Jan
(17) |
Feb
(2) |
Mar
(2) |
Apr
|
May
(1) |
Jun
(1) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(1) |
Dec
(2) |
2017 |
Jan
|
Feb
(3) |
Mar
|
Apr
|
May
(1) |
Jun
(2) |
Jul
|
Aug
(3) |
Sep
|
Oct
|
Nov
|
Dec
(2) |
2018 |
Jan
|
Feb
|
Mar
(2) |
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2019 |
Jan
|
Feb
|
Mar
(1) |
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2022 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(1) |
Jun
|
Jul
|
Aug
|
Sep
(1) |
Oct
(2) |
Nov
(1) |
Dec
(1) |
2023 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
(1) |
Sep
|
Oct
(1) |
Nov
|
Dec
|
2025 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
(1) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: Dirk B. <db...@us...> - 2006-01-15 11:07:03
|
Update of /cvsroot/win32forth/win32forth-extsrc/extsrc/installer In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv13865/extsrc/installer Modified Files: Files.nsi Uninstall.nsi Win32Forth.nsi temp.nsi Log Message: Update to match Win32Forth release 6.11.08 Index: Files.nsi =================================================================== RCS file: /cvsroot/win32forth/win32forth-extsrc/extsrc/installer/Files.nsi,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** Files.nsi 12 Nov 2005 10:50:09 -0000 1.1 --- Files.nsi 15 Jan 2006 11:06:36 -0000 1.2 *************** *** 1,2 **** --- 1,3 ---- + ; Set Section Files and Shortcuts SetOutPath "$INSTDIR\" File "..\..\..\win32forth\fkernel.exe" *************** *** 19,23 **** --- 20,26 ---- File "..\..\..\win32forth\apps\Chess\Bounce3d.f" File "..\..\..\win32forth\apps\Chess\FCP-BOOK.F" + File "..\..\..\win32forth\apps\Chess\FCP.F" File "..\..\..\win32forth\apps\Chess\FCP111.F" + File "..\..\..\win32forth\apps\Chess\FCP131.F" File "..\..\..\win32forth\apps\Chess\fcp3d.f" File "..\..\..\win32forth\apps\Chess\fcp3D.htm" *************** *** 104,108 **** File "..\..\..\win32forth\apps\Player4\Pl_Toolset.f" File "..\..\..\win32forth\apps\Player4\Pl_Version.f" - File "..\..\..\win32forth\apps\Player4\TrayWindow.f" File "..\..\..\win32forth\apps\Player4\View.f" File "..\..\..\win32forth\apps\Player4\view.ff" --- 107,110 ---- *************** *** 365,369 **** File "..\..\..\win32forth\doc\ONWEB.gif" File "..\..\..\win32forth\doc\p-486asm.htm" ! File "..\..\..\win32forth\doc\p-advanced.htm" File "..\..\..\win32forth\doc\p-ansi.htm" File "..\..\..\win32forth\doc\p-arch1.htm" --- 367,371 ---- File "..\..\..\win32forth\doc\ONWEB.gif" File "..\..\..\win32forth\doc\p-486asm.htm" ! File "..\..\..\win32forth\doc\p-AcceleratorTables.htm" File "..\..\..\win32forth\doc\p-ansi.htm" File "..\..\..\win32forth\doc\p-arch1.htm" *************** *** 373,377 **** --- 375,382 ---- File "..\..\..\win32forth\doc\p-architecture.htm" File "..\..\..\win32forth\doc\p-chains.htm" + File "..\..\..\win32forth\doc\p-classdbg.htm" + File "..\..\..\win32forth\doc\p-classes.htm" File "..\..\..\win32forth\doc\p-debugging.htm" + File "..\..\..\win32forth\doc\p-dexh.htm" File "..\..\..\win32forth\doc\p-faq.htm" File "..\..\..\win32forth\doc\p-gethelp.htm" *************** *** 382,385 **** --- 387,391 ---- File "..\..\..\win32forth\doc\p-locals-stack.gif" File "..\..\..\win32forth\doc\p-locals.htm" + File "..\..\..\win32forth\doc\p-module.htm" File "..\..\..\win32forth\doc\p-numconv.htm" File "..\..\..\win32forth\doc\p-objects.htm" *************** *** 393,396 **** --- 399,403 ---- File "..\..\..\win32forth\doc\p-structures.htm" File "..\..\..\win32forth\doc\p-switch.htm" + File "..\..\..\win32forth\doc\p-task.htm" File "..\..\..\win32forth\doc\p-using-if.htm" File "..\..\..\win32forth\doc\p-windlls.htm" *************** *** 407,410 **** --- 414,440 ---- File "..\..\..\win32forth\doc\WIN32FOR.jpg" File "..\..\..\win32forth\doc\WINED1.jpg" + SetOutPath "$INSTDIR\doc\classes\" + File "..\..\..\win32forth\doc\classes\AXControl.htm" + File "..\..\..\win32forth\doc\classes\Childwnd.htm" + File "..\..\..\win32forth\doc\classes\Control.htm" + File "..\..\..\win32forth\doc\classes\Controls.htm" + File "..\..\..\win32forth\doc\classes\Dialog.htm" + File "..\..\..\win32forth\doc\classes\File.htm" + File "..\..\..\win32forth\doc\classes\gdiBase.htm" + File "..\..\..\win32forth\doc\classes\gdiBitmap.htm" + File "..\..\..\win32forth\doc\classes\gdiBrush.htm" + File "..\..\..\win32forth\doc\classes\gdiDC.htm" + File "..\..\..\win32forth\doc\classes\gdiFont.htm" + File "..\..\..\win32forth\doc\classes\gdiMetafile.htm" + File "..\..\..\win32forth\doc\classes\gdiMetafileDC.htm" + File "..\..\..\win32forth\doc\classes\gdiPen.htm" + File "..\..\..\win32forth\doc\classes\gdiStruct.htm" + File "..\..\..\win32forth\doc\classes\gdiWindowDc.htm" + File "..\..\..\win32forth\doc\classes\Generic.htm" + File "..\..\..\win32forth\doc\classes\HTMLcontrol.htm" + File "..\..\..\win32forth\doc\classes\mdi.htm" + File "..\..\..\win32forth\doc\classes\MdiDialog.htm" + File "..\..\..\win32forth\doc\classes\TrayWindow.htm" + File "..\..\..\win32forth\doc\classes\Window.htm" SetOutPath "$INSTDIR\doc\dpans\" File "..\..\..\win32forth\doc\dpans\A0001.HTM" *************** *** 612,615 **** --- 642,646 ---- File "..\..\..\win32forth\src\gdi\gdiPen.f" File "..\..\..\win32forth\src\gdi\gdiStruct.f" + File "..\..\..\win32forth\src\gdi\gdiTools.f" File "..\..\..\win32forth\src\gdi\gdiWindowDc.f" SetOutPath "$INSTDIR\src\kernel\" *************** *** 663,666 **** --- 694,698 ---- File "..\..\..\win32forth\src\lib\ScintillaLexer.f" File "..\..\..\win32forth\src\lib\sendmessage.f" + File "..\..\..\win32forth\src\lib\SoundVolume.f" File "..\..\..\win32forth\src\lib\StatusBarClass.f" File "..\..\..\win32forth\src\lib\STRUCT.F" *************** *** 669,672 **** --- 701,705 ---- File "..\..\..\win32forth\src\lib\task.f" File "..\..\..\win32forth\src\lib\toolbar.f" + File "..\..\..\win32forth\src\lib\TrayWindow.f" File "..\..\..\win32forth\src\lib\treeview.f" File "..\..\..\win32forth\src\lib\Volinfo.f" *************** *** 715,718 **** --- 748,754 ---- File "..\..\..\win32forth\src\tools\ClassBrowser.f" File "..\..\..\win32forth\src\tools\Config.f" + File "..\..\..\win32forth\src\tools\DexH-CreateDocs.f" + File "..\..\..\win32forth\src\tools\DexH-Glossary.f" + File "..\..\..\win32forth\src\tools\DexH.f" File "..\..\..\win32forth\src\tools\dfc.F" File "..\..\..\win32forth\src\tools\dump.f" *************** *** 722,725 **** File "..\..\..\win32forth\src\tools\TESTANSI.F" File "..\..\..\win32forth\src\tools\tools.f" File "..\..\..\win32forth\src\tools\xref.f" - \ No newline at end of file --- 758,761 ---- File "..\..\..\win32forth\src\tools\TESTANSI.F" File "..\..\..\win32forth\src\tools\tools.f" + File "..\..\..\win32forth\src\tools\W32fdexh.f" File "..\..\..\win32forth\src\tools\xref.f" Index: temp.nsi =================================================================== RCS file: /cvsroot/win32forth/win32forth-extsrc/extsrc/installer/temp.nsi,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** temp.nsi 12 Nov 2005 10:50:09 -0000 1.1 --- temp.nsi 15 Jan 2006 11:06:36 -0000 1.2 *************** *** 40,768 **** SetOverwrite on - ; Set Section Files and Shortcuts - SetOutPath "$INSTDIR\" - File "..\..\..\win32forth\fkernel.exe" - File "..\..\..\win32forth\FORTHFORM.CFG" - File "..\..\..\win32forth\Help.cfg" - File "..\..\..\win32forth\Hyper.cfg" - File "..\..\..\win32forth\setup.exe" - File "..\..\..\win32forth\w32fConsole.dll" [...1342 lines suppressed...] ; Remove remaining directories RMDir "$SMPROGRAMS\w32f" RMDir "$INSTDIR\src\tools\" RMDir "$INSTDIR\src\res\" *************** *** 1981,1985 **** RMDir "$INSTDIR\src\" RMDir "$INSTDIR\proj\" - RMDir "$INSTDIR\installer\" RMDir "$INSTDIR\doc\SciEdit\" RMDir "$INSTDIR\doc\ProMgr\" --- 813,816 ---- *************** *** 1987,1990 **** --- 818,822 ---- RMDir "$INSTDIR\doc\ForthForm\" RMDir "$INSTDIR\doc\dpans\" + RMDir "$INSTDIR\doc\classes\" RMDir "$INSTDIR\doc\" RMDir "$INSTDIR\demos\GdiDemo\" Index: Uninstall.nsi =================================================================== RCS file: /cvsroot/win32forth/win32forth-extsrc/extsrc/installer/Uninstall.nsi,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** Uninstall.nsi 12 Nov 2005 10:50:09 -0000 1.1 --- Uninstall.nsi 15 Jan 2006 11:06:36 -0000 1.2 *************** *** 1,2 **** --- 1,3 ---- + ; Clean up w32f Delete "$INSTDIR\fkernel.exe" Delete "$INSTDIR\FORTHFORM.CFG" *************** *** 17,21 **** --- 18,24 ---- Delete "$INSTDIR\apps\Chess\Bounce3d.f" Delete "$INSTDIR\apps\Chess\FCP-BOOK.F" + Delete "$INSTDIR\apps\Chess\FCP.F" Delete "$INSTDIR\apps\Chess\FCP111.F" + Delete "$INSTDIR\apps\Chess\FCP131.F" Delete "$INSTDIR\apps\Chess\fcp3d.f" Delete "$INSTDIR\apps\Chess\fcp3D.htm" *************** *** 99,103 **** Delete "$INSTDIR\apps\Player4\Pl_Toolset.f" Delete "$INSTDIR\apps\Player4\Pl_Version.f" - Delete "$INSTDIR\apps\Player4\TrayWindow.f" Delete "$INSTDIR\apps\Player4\View.f" Delete "$INSTDIR\apps\Player4\view.ff" --- 102,105 ---- *************** *** 343,347 **** Delete "$INSTDIR\doc\ONWEB.gif" Delete "$INSTDIR\doc\p-486asm.htm" ! Delete "$INSTDIR\doc\p-advanced.htm" Delete "$INSTDIR\doc\p-ansi.htm" Delete "$INSTDIR\doc\p-arch1.htm" --- 345,349 ---- Delete "$INSTDIR\doc\ONWEB.gif" Delete "$INSTDIR\doc\p-486asm.htm" ! Delete "$INSTDIR\doc\p-AcceleratorTables.htm" Delete "$INSTDIR\doc\p-ansi.htm" Delete "$INSTDIR\doc\p-arch1.htm" *************** *** 351,355 **** --- 353,360 ---- Delete "$INSTDIR\doc\p-architecture.htm" Delete "$INSTDIR\doc\p-chains.htm" + Delete "$INSTDIR\doc\p-classdbg.htm" + Delete "$INSTDIR\doc\p-classes.htm" Delete "$INSTDIR\doc\p-debugging.htm" + Delete "$INSTDIR\doc\p-dexh.htm" Delete "$INSTDIR\doc\p-faq.htm" Delete "$INSTDIR\doc\p-gethelp.htm" *************** *** 360,363 **** --- 365,369 ---- Delete "$INSTDIR\doc\p-locals-stack.gif" Delete "$INSTDIR\doc\p-locals.htm" + Delete "$INSTDIR\doc\p-module.htm" Delete "$INSTDIR\doc\p-numconv.htm" Delete "$INSTDIR\doc\p-objects.htm" *************** *** 371,374 **** --- 377,381 ---- Delete "$INSTDIR\doc\p-structures.htm" Delete "$INSTDIR\doc\p-switch.htm" + Delete "$INSTDIR\doc\p-task.htm" Delete "$INSTDIR\doc\p-using-if.htm" Delete "$INSTDIR\doc\p-windlls.htm" *************** *** 385,388 **** --- 392,417 ---- Delete "$INSTDIR\doc\WIN32FOR.jpg" Delete "$INSTDIR\doc\WINED1.jpg" + Delete "$INSTDIR\doc\classes\AXControl.htm" + Delete "$INSTDIR\doc\classes\Childwnd.htm" + Delete "$INSTDIR\doc\classes\Control.htm" + Delete "$INSTDIR\doc\classes\Controls.htm" + Delete "$INSTDIR\doc\classes\Dialog.htm" + Delete "$INSTDIR\doc\classes\File.htm" + Delete "$INSTDIR\doc\classes\gdiBase.htm" + Delete "$INSTDIR\doc\classes\gdiBitmap.htm" + Delete "$INSTDIR\doc\classes\gdiBrush.htm" + Delete "$INSTDIR\doc\classes\gdiDC.htm" + Delete "$INSTDIR\doc\classes\gdiFont.htm" + Delete "$INSTDIR\doc\classes\gdiMetafile.htm" + Delete "$INSTDIR\doc\classes\gdiMetafileDC.htm" + Delete "$INSTDIR\doc\classes\gdiPen.htm" + Delete "$INSTDIR\doc\classes\gdiStruct.htm" + Delete "$INSTDIR\doc\classes\gdiWindowDc.htm" + Delete "$INSTDIR\doc\classes\Generic.htm" + Delete "$INSTDIR\doc\classes\HTMLcontrol.htm" + Delete "$INSTDIR\doc\classes\mdi.htm" + Delete "$INSTDIR\doc\classes\MdiDialog.htm" + Delete "$INSTDIR\doc\classes\TrayWindow.htm" + Delete "$INSTDIR\doc\classes\Window.htm" Delete "$INSTDIR\doc\dpans\A0001.HTM" Delete "$INSTDIR\doc\dpans\A0002.HTM" *************** *** 581,584 **** --- 610,614 ---- Delete "$INSTDIR\src\gdi\gdiPen.f" Delete "$INSTDIR\src\gdi\gdiStruct.f" + Delete "$INSTDIR\src\gdi\gdiTools.f" Delete "$INSTDIR\src\gdi\gdiWindowDc.f" Delete "$INSTDIR\src\kernel\fkernel.f" *************** *** 630,633 **** --- 660,664 ---- Delete "$INSTDIR\src\lib\ScintillaLexer.f" Delete "$INSTDIR\src\lib\sendmessage.f" + Delete "$INSTDIR\src\lib\SoundVolume.f" Delete "$INSTDIR\src\lib\StatusBarClass.f" Delete "$INSTDIR\src\lib\STRUCT.F" *************** *** 636,639 **** --- 667,671 ---- Delete "$INSTDIR\src\lib\task.f" Delete "$INSTDIR\src\lib\toolbar.f" + Delete "$INSTDIR\src\lib\TrayWindow.f" Delete "$INSTDIR\src\lib\treeview.f" Delete "$INSTDIR\src\lib\Volinfo.f" *************** *** 678,681 **** --- 710,716 ---- Delete "$INSTDIR\src\tools\ClassBrowser.f" Delete "$INSTDIR\src\tools\Config.f" + Delete "$INSTDIR\src\tools\DexH-CreateDocs.f" + Delete "$INSTDIR\src\tools\DexH-Glossary.f" + Delete "$INSTDIR\src\tools\DexH.f" Delete "$INSTDIR\src\tools\dfc.F" Delete "$INSTDIR\src\tools\dump.f" *************** *** 685,690 **** --- 720,727 ---- Delete "$INSTDIR\src\tools\TESTANSI.F" Delete "$INSTDIR\src\tools\tools.f" + Delete "$INSTDIR\src\tools\W32fdexh.f" Delete "$INSTDIR\src\tools\xref.f" + ; remove ExtSrc Delete "$INSTDIR\extsrc\installer\ExtFiles.nsi" Delete "$INSTDIR\extsrc\installer\Files.nsi" *************** *** 887,892 **** Delete "$INSTDIR\extsrc\wincon\winconcpp\UNIX.C" RMDir "$SMPROGRAMS\w32f" ! RMDir "$INSTDIR\extsrc\wincon\winconcpp\" RMDir "$INSTDIR\extsrc\wincon\" RMDir "$INSTDIR\extsrc\w32fScintilla\win32\" --- 924,931 ---- Delete "$INSTDIR\extsrc\wincon\winconcpp\UNIX.C" + ; Remove remaining directories RMDir "$SMPROGRAMS\w32f" ! ! RMDir "$INSTDIR\extsrc\wincon\winconcpp\" RMDir "$INSTDIR\extsrc\wincon\" RMDir "$INSTDIR\extsrc\w32fScintilla\win32\" *************** *** 900,903 **** --- 939,943 ---- RMDir "$INSTDIR\extsrc\installer\" RMDir "$INSTDIR\extsrc\" + RMDir "$INSTDIR\src\tools\" RMDir "$INSTDIR\src\res\" *************** *** 915,918 **** --- 955,959 ---- RMDir "$INSTDIR\doc\ForthForm\" RMDir "$INSTDIR\doc\dpans\" + RMDir "$INSTDIR\doc\classes\" RMDir "$INSTDIR\doc\" RMDir "$INSTDIR\demos\GdiDemo\" *************** *** 938,940 **** RMDir "$INSTDIR\apps\" RMDir "$INSTDIR\" - \ No newline at end of file --- 979,980 ---- Index: Win32Forth.nsi =================================================================== RCS file: /cvsroot/win32forth/win32forth-extsrc/extsrc/installer/Win32Forth.nsi,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** Win32Forth.nsi 12 Nov 2005 10:50:09 -0000 1.5 --- Win32Forth.nsi 15 Jan 2006 11:06:36 -0000 1.6 *************** *** 8,14 **** !define VER_MAJOR 6 !define VER_MINOR 11 ! !define VER_REVISION 7 ! !define VER_DISPLAY "6.11.07" ! !define VER_FILE "61107" ; Define your application name --- 8,14 ---- !define VER_MAJOR 6 !define VER_MINOR 11 ! !define VER_REVISION 8 ! !define VER_DISPLAY "6.11.08" ! !define VER_FILE "61108" ; Define your application name |
From: Dirk B. <db...@us...> - 2006-01-15 09:30:24
|
Update of /cvsroot/win32forth/win32forth/apps/Player4 In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv799/apps/Player4 Modified Files: PLAYER4.F Log Message: Some minor cleanup. Index: PLAYER4.F =================================================================== RCS file: /cvsroot/win32forth/win32forth/apps/Player4/PLAYER4.F,v retrieving revision 1.34 retrieving revision 1.35 diff -C2 -d -r1.34 -r1.35 *** PLAYER4.F 31 Dec 2005 20:48:13 -0000 1.34 --- PLAYER4.F 15 Jan 2006 09:30:14 -0000 1.35 *************** *** 6,10 **** \ \ Created: Donnerstag, März 31 2005 - dbu ! \ Updated: Sonntag, April 24 2005 - dbu \ \ A simple Audio- and Videoplayer using the MciVideoWindow class. --- 6,10 ---- \ \ Created: Donnerstag, März 31 2005 - dbu ! \ Updated: Sonntag, Januar 15 2006 - dbu \ \ A simple Audio- and Videoplayer using the MciVideoWindow class. *************** *** 20,26 **** decimal ! true value turnkey? ! true to turnkey? ! true value MciDebug? defer PLAYER ' noop is PLAYER --- 20,25 ---- decimal ! true value turnkey? ! true value MciDebug? defer PLAYER ' noop is PLAYER *************** *** 326,329 **** --- 325,330 ---- unload-chain chain-add-before uninit-player4 + \ ----------------------------------------------------------------------------- + \ ----------------------------------------------------------------------------- :noname ( -- ) \ search the catalog catalog-exist? *************** *** 336,341 **** then ; is RandomizeCatalog - - :noname ( -- ) \ search the catalog catalog-exist? --- 337,340 ---- *************** *** 370,376 **** :noname ( -- ) catalog-exist? ! if Refresh: Catalog ! then ! ; is RefreshCatalog :noname ( -- ) --- 369,374 ---- :noname ( -- ) catalog-exist? ! if Refresh: Catalog ! then ; is RefreshCatalog :noname ( -- ) *************** *** 387,392 **** if last-selected-rec delete-record RefreshCatalog -1 to last-selected-rec ! then ! ; is DeleteItem :noname ( -- ) --- 385,389 ---- if last-selected-rec delete-record RefreshCatalog -1 to last-selected-rec ! then ; is DeleteItem :noname ( -- ) *************** *** 394,399 **** if delete-collection RefreshCatalog -1 to last-selected-rec ! then ! ; is DeleteCollection :noname ( -- ) --- 391,395 ---- if delete-collection RefreshCatalog -1 to last-selected-rec ! then ; is DeleteCollection :noname ( -- ) *************** *** 401,406 **** if last-selected-rec undelete-record RefreshCatalog -1 to last-selected-rec ! then ! ; is Undelete :noname ( -- ) --- 397,401 ---- if last-selected-rec undelete-record RefreshCatalog -1 to last-selected-rec ! then ; is Undelete :noname ( -- ) *************** *** 408,413 **** if undelete-all RefreshCatalog -1 to last-selected-rec ! then ! ; is UndeleteAll \ ----------------------------------------------------------------------------- --- 403,407 ---- if undelete-all RefreshCatalog -1 to last-selected-rec ! then ; is UndeleteAll \ ----------------------------------------------------------------------------- *************** *** 441,446 **** if PlayFolder: Player4W else bPlayList ! if PlayList: Player4W ! else PlayFile: Player4W then then --- 435,440 ---- if PlayFolder: Player4W else bPlayList ! if PlayList: Player4W ! else PlayFile: Player4W then then *************** *** 456,460 **** : PauseVideo ( -- ) Playing?: Player4W ! if Video?: Player4W if Pause: Player4W then --- 450,454 ---- : PauseVideo ( -- ) Playing?: Player4W ! if Video?: Player4W if Pause: Player4W then *************** *** 463,467 **** : ResumeVideo ( -- ) Playing?: Player4W ! if Video?: Player4W if Resume: Player4W then --- 457,461 ---- : ResumeVideo ( -- ) Playing?: Player4W ! if Video?: Player4W if Resume: Player4W then *************** *** 532,549 **** PLAYER-LOOP ; - \ : volume! ( left-sound-volume right-sound-volume -- ) - \ depth 2 >= - \ if 0max 99 min 65535 100 */ 65536 * swap - \ 0max 99 min 65535 100 */ + - \ 0 Call waveOutSetVolume drop - \ else cr ." No enough parameters !!! " - \ then ; - \ - \ 100 100 volume! - \ Resize the configuration file when needed. ! DatFile$ count file-exist? [IF] ! DatFile$ count r/o open-file throw dup file-size throw d>s pad ! close-file throw ! pad @ sizeof ConfigDef = check-config unmap-configuration [THEN] --- 526,533 ---- PLAYER-LOOP ; \ Resize the configuration file when needed. ! DatFile$ count file-exist? [IF] ! DatFile$ count r/o open-file throw dup file-size throw d>s pad ! close-file throw ! pad @ sizeof ConfigDef = check-config unmap-configuration [THEN] *************** *** 551,556 **** \ build an application on disk or run Player \ ----------------------------------------------------------------------------- - - turnkey? [if] ' QuitPlayer is StopPlayer --- 535,538 ---- |
From: Dirk B. <db...@us...> - 2006-01-15 09:29:26
|
Update of /cvsroot/win32forth/win32forth/apps/PlayVirginRadio In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv578/apps/PlayVirginRadio Modified Files: PlayVirginRadio.f Log Message: Made the popup menu work, added an 'About' dialog, and some clean up of the code. Index: PlayVirginRadio.f =================================================================== RCS file: /cvsroot/win32forth/win32forth/apps/PlayVirginRadio/PlayVirginRadio.f,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** PlayVirginRadio.f 11 Jan 2006 17:45:19 -0000 1.7 --- PlayVirginRadio.f 15 Jan 2006 09:29:14 -0000 1.8 *************** *** 4,22 **** \ \ Created: Montag, Mai 16 2005 - dbu ! \ Updated: Samstag, Juni 04 2005 - dbu \ ! \ Simple application that play's "Virgin Radio" from the net ! \ The w32fHtmlDisplay.dll is nedded. ! cr .( Loading Player 4th...) anew -PlayVirginRadio.f ! needs apps\Player4\TrayWindow.f needs HtmlControl.f needs Resources.f true value turnkey? - \ false value turnkey? \ ----------------------------------------------------------------------------- --- 4,24 ---- \ \ Created: Montag, Mai 16 2005 - dbu ! \ Updated: Sonntag, Januar 15 2006 - dbu \ ! \ Simple application that plays the "Virgin Radio Classic Rock" ! \ Radio statio over the internet. ! \ ! \ It also shows how to use the 'TrayWindow' and 'HtmlControl' classes. ! cr .( Loading Play Virgin Radio...) anew -PlayVirginRadio.f ! needs TrayWindow.f needs HtmlControl.f + needs SoundVolume.f needs Resources.f true value turnkey? \ ----------------------------------------------------------------------------- *************** *** 31,35 **** :M WindowStyle: ( -- n ) ! [ WS_OVERLAPPED WS_CAPTION or WS_SYSMENU or WS_MINIMIZEBOX or WS_MINIMIZEBOX or ] literal ;M --- 33,37 ---- :M WindowStyle: ( -- n ) ! [ WS_OVERLAPPED WS_CAPTION or WS_SYSMENU or WS_MINIMIZEBOX or ] literal ;M *************** *** 43,46 **** --- 45,49 ---- :M WM_CLOSE ( h m w l -- res ) + SoundOff Stop: Player DestroyWindow: Player *************** *** 49,62 **** bye 0 ;M - :M ShowWindow: ( -- ) - IsVisible?: self 0= - if ShowWindow: super - then ;M - - :M HideWindow: ( -- ) - IsVisible?: self - if HideWindow: super - then ;M - :M GetTooltip: ( -- addr len ) WindowTitle: self zcount ;M --- 52,55 ---- *************** *** 66,142 **** SetURL: Player ;M - :M Pause: ( -- ) - Stop: Player ;M - - :M Resume: ( -- ) - Refresh: Player ;M - :M On_Init: ( -- ) On_Init: super - 1001 SetId: Player self Start: Player ;M ! :M DefaultIcon: ( -- hIcon ) \ return the default icon handle for window LoadAppIcon ;M ;Object ! \ ----------------------------------------------------------------------------- ! \ Turn the sound on and off ! \ ----------------------------------------------------------------------------- ! WinLibrary winmm.dll ! : (volume!) ( left-sound-volume right-sound-volume -- ) ! depth 2 >= ! if 0max 99 min 65535 100 */ 65536 * swap ! 0max 99 min 65535 100 */ + ! 0 Call waveOutSetVolume drop ! else cr ." No enough parameters !!! " ! then ; ! : volume! ( sound-volume -- ) ! dup (volume!) ; ! 100 value volume ! : SoundOn ( -- ) ! 100 dup to volume volume! ; ! : SoundOff ( -- ) ! 0 dup to volume volume! ; ! : SoundOnOff ( -- ) ! volume 0= ! if SoundOn ! else SoundOff ! then ; \ ----------------------------------------------------------------------------- \ Define the Popup bar \ ----------------------------------------------------------------------------- ! \ POPUPBAR player-popup-bar ! \ POPUP " " ! \ MENUITEM "&Sound on/off" SoundOnOff ; ! \ MENUSEPARATOR ! \ MENUITEM "&Exit\tAlt+F4" DestroyWindow: MainWindow ; ! \ ENDBAR \ ----------------------------------------------------------------------------- \ ----------------------------------------------------------------------------- ! : uninit-player ( -- ) DestroyWindow: MainWindow ! \ SoundOn ; ! unload-chain chain-add-before uninit-player \ ----------------------------------------------------------------------------- \ ----------------------------------------------------------------------------- ! : InitPlayer ( -- ) Start: MainWindow Play: MainWindow \ start playing radio... HideWindow: MainWindow \ hide the window in the traybar ! \ player-popup-bar SetPopupBar: MainWindow ; --- 59,143 ---- SetURL: Player ;M :M On_Init: ( -- ) On_Init: super self Start: Player ;M ! :M DefaultIcon: ( -- hIcon ) LoadAppIcon ;M ;Object + \ ------------------------------------------------------------------------------ + \ Define the "About" dialog + \ ------------------------------------------------------------------------------ ! :Object AboutDialog <SUPER dialog ! IDD_ABOUT_FORTH forthdlg find-dialog-id constant template ! create about-head ! z," Play Virgin Radio" ! create about-msg1 ! z," Written in 2005/2006 by:\n" ! +z," Dirk Busch - di...@wi...\n" ! create about-msg2 ! z," This Application plays the 'Virgin Radio Classic Rock'\n" ! +z," Radio statio over the internet." ! create about-msg3 ! z," This application was build with Win32Forth\n" ! +z," Version " -null, version# ((version)) +z", ! +z," . See www.win32forth.org for\n" ! +z," more information about Win32Forth." ! :M On_Init: ( hWnd-focus -- f ) ! about-head zcount IDD_ABOUT_HEAD SetDlgItemText: self ! about-msg1 zcount IDD_ABOUT_TEXT SetDlgItemText: self ! about-msg2 zcount IDD_ABOUT_TEXT2 SetDlgItemText: self ! about-msg3 zcount IDD_ABOUT_TEXT3 SetDlgItemText: self ! 1 ;M ! ! :M On_Command: ( hCtrl code ID -- f1 ) ! CASE ! IDCANCEL OF 0 end-dialog ENDOF ! false swap ( default result ) ! ENDCASE ;M ! ! :M Start: ( -- f ) ! Addr: MainWindow template run-dialog ;M ! ! ;Object \ ----------------------------------------------------------------------------- \ Define the Popup bar \ ----------------------------------------------------------------------------- ! popupbar player-popup-bar ! popup " " ! menuitem "&Turn sound on/off" SoundOnOff ; ! menuseparator ! menuitem "&Close Virgin Radio Player" DestroyWindow: MainWindow ; ! menuseparator ! menuitem "&About Virgin Radio Player" Start: AboutDialog ; ! endbar \ ----------------------------------------------------------------------------- \ ----------------------------------------------------------------------------- ! : UnloadPlayer ( -- ) DestroyWindow: MainWindow ! SoundOn \ turn the sound on ; ! unload-chain chain-add-before UnloadPlayer \ ----------------------------------------------------------------------------- \ ----------------------------------------------------------------------------- ! : StartPlayer ( -- ) Start: MainWindow Play: MainWindow \ start playing radio... + SoundOn \ turn the sound on HideWindow: MainWindow \ hide the window in the traybar ! player-popup-bar SetPopupBar: MainWindow ; *************** *** 162,167 **** \ \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ! : go ( -- ) ! InitPlayer Turnkeyed? IF MessageLoop bye --- 163,168 ---- \ \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ! : Main ( -- ) ! StartPlayer Turnkeyed? IF MessageLoop bye *************** *** 171,183 **** \ Tell Imageman that we don't need the w32fconsole.dll if possible ! \ (in older w32f versions you have to modify ! \ Imageman.f to do this). ! \+ VIMAGE also VIMAGE \+ CONSOLE-DLL? false to CONSOLE-DLL? \ Create the exe-file ! ' go turnkey PlayVirginRadio.exe ! \ add the Application Icon s" apps\PlayVirginRadio\Virgin.ico" s" PlayVirginRadio.exe" AddAppIcon --- 172,183 ---- \ Tell Imageman that we don't need the w32fconsole.dll if possible ! \ (in older w32f versions you have to modify Imageman.f to do this). ! \+ VIMAGE also VIMAGE \+ CONSOLE-DLL? false to CONSOLE-DLL? \ Create the exe-file ! ' Main turnkey PlayVirginRadio.exe ! \ add the Application icon to the EXE file s" apps\PlayVirginRadio\Virgin.ico" s" PlayVirginRadio.exe" AddAppIcon *************** *** 185,188 **** [else] s" apps\PlayVirginRadio\Virgin.ico" s" PlayVirginRadio.exe" AddAppIcon ! go [then] --- 185,188 ---- [else] s" apps\PlayVirginRadio\Virgin.ico" s" PlayVirginRadio.exe" AddAppIcon ! Main [then] |
From: Dirk B. <db...@us...> - 2006-01-15 09:27:54
|
Update of /cvsroot/win32forth/win32forth/src/lib In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv435/src/lib Added Files: SoundVolume.f Log Message: File SoundVolume.f added (moved the code out of PlayVirginRadio.f). It contains words to turn on/of the sound. --- NEW FILE: SoundVolume.f --- \ SoundVolume.f \ \ Written: by Dirk Busch \ Licence: Public Domain anew -SoundVolume.f WinLibrary winmm.dll internal external \ ----------------------------------------------------------------------------- \ Turn the sound on and off \ ----------------------------------------------------------------------------- : volume! ( left-sound-volume right-sound-volume -- ) \ W32F sound \ *G Set the volume level of the waveform-audio output device. depth 2 >= if 0max 99 min 65535 100 */ 65536 * swap 0max 99 min 65535 100 */ + 0 Call waveOutSetVolume drop else cr ." No enough parameters !!! " then ; : volume@ ( -- left-sound-volume right-sound-volume ) \ W32F sound \ *G Retrieves the current volume level of the waveform-audio output device. { \ sound-volume -- } &OF sound-volume 0 call waveOutGetVolume MMSYSERR_NOERROR = if sound-volume word-split else 0 0 then ; : Sound? ( -- f ) \ W32F sound \ *G Check if sound is on. volume@ 0> swap 0> or ; internal 0 value volume-left 0 value volume-right external : SoundOn ( -- ) \ W32F sound \ *G Turn the sound back on after turning it off. Sound? 0= if volume-left volume-right volume! 0 to volume-right 0 to volume-left then ; : SoundOff ( -- ) \ W32F sound \ *G Turn sound off. Sound? if volume@ to volume-right to volume-left 0 0 volume! then ; : SoundOnOff ( -- ) \ W32F sound \ *G Toggle sound Sound? 0= if SoundOn else SoundOff then ; module \ *Z |
From: Dirk B. <db...@us...> - 2006-01-15 09:26:07
|
Update of /cvsroot/win32forth/win32forth/apps/Player4 In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv32623/apps/Player4 Removed Files: TrayWindow.f Log Message: Moved TrayWindow.f into the src\lib folder and added docu. about the TrayWindow class. Changed the TrayWindow class to open a popup menu when the user clicks with the right mouse button on the tray icon. --- TrayWindow.f DELETED --- |
From: Dirk B. <db...@us...> - 2006-01-15 09:26:07
|
Update of /cvsroot/win32forth/win32forth/src/tools In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv32623/src/tools Modified Files: DexH-CreateDocs.f W32fdexh.f Log Message: Moved TrayWindow.f into the src\lib folder and added docu. about the TrayWindow class. Changed the TrayWindow class to open a popup menu when the user clicks with the right mouse button on the tray icon. Index: DexH-CreateDocs.f =================================================================== RCS file: /cvsroot/win32forth/win32forth/src/tools/DexH-CreateDocs.f,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** DexH-CreateDocs.f 14 Jan 2006 12:28:22 -0000 1.7 --- DexH-CreateDocs.f 15 Jan 2006 09:25:50 -0000 1.8 *************** *** 4,11 **** internal - - : create-doc ( addr len -- ) - Prepend<home>\ (dex) ; - external --- 4,7 ---- *************** *** 20,23 **** --- 16,20 ---- s" src\generic.f" create-doc s" src\window.f" create-doc + s" src\lib\TrayWindow.f" create-doc s" src\childwnd.f" create-doc s" src\dialog.f" create-doc Index: W32fdexh.f =================================================================== RCS file: /cvsroot/win32forth/win32forth/src/tools/W32fdexh.f,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** W32fdexh.f 14 Jan 2006 12:28:22 -0000 1.2 --- W32fdexh.f 15 Jan 2006 09:25:50 -0000 1.3 *************** *** 89,92 **** --- 89,97 ---- then ; + : create-doc ( addr len -- ) + \ *G Create the document for a file. To find the file the forth + \ ** search path is used. + Prepend<home>\ (dex) ; + cr .( DexH -- Document Extractor loaded ) cr |
From: Dirk B. <db...@us...> - 2006-01-15 09:26:07
|
Update of /cvsroot/win32forth/win32forth/src/lib In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv32623/src/lib Added Files: TrayWindow.f Log Message: Moved TrayWindow.f into the src\lib folder and added docu. about the TrayWindow class. Changed the TrayWindow class to open a popup menu when the user clicks with the right mouse button on the tray icon. --- NEW FILE: TrayWindow.f --- \ File: TrayWindow.f \ \ Author: Dirk Busch (dbu) \ Email: dir...@wi... \ \ Created: Sonntag, April 24 2005 - dbu \ Updated: Sonntag, Januar 15 2006 - dbu \ \ *D doc\classes\ \ *! TrayWindow \ *T TrayWindow class \ *P Windows that are created with this class will hide themself \ ** in the windows traybar when they are minimized. cr .( Loading TrayWindow class...) anew -TrayWindow.f internal #define NIM_ADD 0x00000000 #define NIM_MODIFY 0x00000001 #define NIM_DELETE 0x00000002 #define NIF_MESSAGE 0x00000001 #define NIF_ICON 0x00000002 #define NIF_TIP 0x00000004 2 proc Shell_NotifyIconA as Shell_NotifyIcon external \ *W <a name="TrayWindow"></a> \ *S Glossary :class TrayWindow <super window \ *G TrayWindow class Record: &NOTIFYICONDATA int nid_cbSize int nid_hWnd int nid_uID int nid_uFlags int nid_uCallbackMessage int nid_hIcon 64 bytes nid_szTip ;RecordSize: sizeof(NOTIFYICONDATA) :M DefaultIcon: ( -- hIcon ) \ *G Get the handle of the icon whitch should be added to the traybar. DefaultIcon: super ;M :M GetTooltip: ( -- addr len ) \ *G Get the tooltip text for the traybar icon. s" Tooltip text" ;M :M GetID: ( -- uID ) 1 ;M :M GetFlags: ( -- uFlags ) [ NIF_ICON NIF_MESSAGE NIF_TIP or or ] literal ;M WM_APP 1+ constant WM_CALLBACK_MESSAGE : ShellNotifyIcon ( n -- ) &NOTIFYICONDATA swap call Shell_NotifyIcon drop ; :M AddIcon: ( -- ) \ *G Add our icon to the traybar NIM_ADD ShellNotifyIcon ;M :M DeleteIcon: ( -- ) \ *G Remove our icon from the traybar NIM_DELETE ShellNotifyIcon ;M :M On_Init: ( -- ) On_Init: super sizeof(NOTIFYICONDATA) to nid_cbSize GetHandle: self to nid_hWnd GetID: [ self ] to nid_uID GetFlags: [ self ] to nid_uFlags WM_CALLBACK_MESSAGE to nid_uCallbackMessage DefaultIcon: [ self ] to nid_hIcon GetTooltip: [ self ] nid_szTip swap 64 min cmove ;M :M On_Done: ( -- ) DeleteIcon: self On_Done: super ;M :M IsVisible?: ( -- f ) \ *G Check if the window is visible or not. GetHandle: self call IsWindowVisible ;M :M ShowWindow: ( -- ) \ *G Show the window and remove the icon from the traybar. IsVisible?: self 0= if DeleteIcon: self SW_RESTORE Show: self Update: self then ;M :M HideWindow: ( -- ) \ *G Hide the window and add the icon to the traybar. IsVisible?: self if SW_HIDE Show: self Update: self AddIcon: self then ;M :M WM_SIZE ( hWnd uMsg wParam lParam -- res ) \ *G Handle the WM_SIZE message. If the window is minimized \ ** it will be hidden and the icon will be added to the traybar. over SIZE_MINIMIZED = if HideWindow: [ self ] then WM_SIZE WM: super ;M :M WM_SYSCOMMAND ( hWnd uMsg wParam lParam -- res ) \ *G Handle the WM_SYSCOMMAND message. If the window is minimized \ ** it will be hidden and the icon will be added to the traybar. over SC_MINIMIZE = if HideWindow: [ self ] 0 else hWnd WM_SYSCOMMAND 2swap DefWindowProc: self then ;M : TrackPopup ( -- ) \ Open the popup menu of the window. CurrentPopup if get-mouse-xy GetHandle: self Track: CurrentPopup then ; :M On_IconNotify: ( hWnd uMsg wParam lParam -- res ) \ *G Handle the messages from the traybar icon. \ *P The default handler removes the icon for the traybar and shows the window, \ ** when the user click's with the left mouse button on the tray icon. \ *P If the right mouse button is used the popup menu of the window is shown. \ ** Use the \b SetPopupBar: \d method to assign a popup menu to the window. case WM_LBUTTONUP of ShowWindow: [ self ] endof WM_RBUTTONUP of TrackPopup endof endcase 0 ;M :M WM_CALLBACK_MESSAGE ( hWnd uMsg wParam lParam -- res ) On_IconNotify: [ self ] ;M ;class \ *G End of TrayWindow class module \s \ ---------------------------------------------------------------------------- \ *S Example \ ----------------------------------------------------------------------------- \ *+ \ Create a tray window :object TestWindow <super TrayWindow :M GetTooltip: ( -- addr len ) s" TrayWindow Test" ;M ;object Start: TestWindow \ open the window SW_MINIMIZE Show: TestWindow \ minimize it to hide it in the TrayBar \ *- \ *Z |
From: Dirk B. <db...@us...> - 2006-01-15 09:26:07
|
Update of /cvsroot/win32forth/win32forth/doc/classes In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv32623/doc/classes Added Files: TrayWindow.htm Log Message: Moved TrayWindow.f into the src\lib folder and added docu. about the TrayWindow class. Changed the TrayWindow class to open a popup menu when the user clicks with the right mouse button on the tray icon. --- NEW FILE: TrayWindow.htm --- <html> <head> <meta http-equiv="Content-Language" content="en-gb"> <meta name="GENERATOR" content="dexh00"> <meta name="ProgId" content="FrontPage.Editor.Document"> <meta http-equiv="Content-Type" content="text/html; charset=windows-1252"> <title> </title><style><!-- h1 { font-family: Tahoma; font-size: 24pt; font-weight: bold } h2 { font-family: Tahoma; font-size: 18pt; font-weight: bold } --> </style> </head> <body><h1 align="center"> <a href="mailto:win...@ya...?subject=DOC:Doc error in $Id: TrayWindow.htm,v 1.1 2006/01/15 09:25:50 dbu_de Exp $"> <img border="0" src="../TELLUS.gif" align="left" width="32" height="32"></a> <img border="0" src="../FORTHPRO.gif" width="32" height="32"> Win32Forth</h1> <hr /><h1>TrayWindow class </h1><hr /><p>Windows that are created with this class will hide themself in the windows traybar when they are minimized. </p><a name="TrayWindow"></a> <h2>Glossary </h2><pre><b><a name="0">:class TrayWindow <super window </a></b></pre><p>TrayWindow class </p><pre><b><a name="0">:M DefaultIcon: ( -- hIcon ) </a></b></pre><p>Get the handle of the icon whitch should be added to the traybar. </p><pre><b><a name="0">:M GetTooltip: ( -- addr len ) </a></b></pre><p>Get the tooltip text for the traybar icon. </p><pre><b><a name="0">:M AddIcon: ( -- ) </a></b></pre><p>Add our icon to the traybar </p><pre><b><a name="0">:M DeleteIcon: ( -- ) </a></b></pre><p>Remove our icon from the traybar </p><pre><b><a name="0">:M IsVisible?: ( -- f ) </a></b></pre><p>Check if the window is visible or not. </p><pre><b><a name="0">:M ShowWindow: ( -- ) </a></b></pre><p>Show the window and remove the icon from the traybar. </p><pre><b><a name="0">:M HideWindow: ( -- ) </a></b></pre><p>Hide the window and add the icon to the traybar. </p><pre><b><a name="0">:M WM_SIZE ( hWnd uMsg wParam lParam -- res ) </a></b></pre><p>Handle the WM_SIZE message. If the window is minimized it will be hidden and the icon will be added to the traybar. </p><pre><b><a name="0">:M WM_SYSCOMMAND ( hWnd uMsg wParam lParam -- res ) </a></b></pre><p>Handle the WM_SYSCOMMAND message. If the window is minimized it will be hidden and the icon will be added to the traybar. </p><pre><b><a name="0">:M On_IconNotify: ( hWnd uMsg wParam lParam -- res ) </a></b></pre><p>Handle the messages from the traybar icon. </p><p>The default handler removes the icon for the traybar and shows the window, when the user click's with the left mouse button on the tray icon. </p><p>If the right mouse button is used the popup menu of the window is shown. Use the <b> SetPopupBar: </b> method to assign a popup menu to the window. </p><pre><b><a name="0">;class </a></b></pre><p>End of TrayWindow class </p><h2>Example </h2><pre> \ Create a tray window :object TestWindow <super TrayWindow :M GetTooltip: ( -- addr len ) s" TrayWindow Test" ;M ;object Start: TestWindow \ open the window SW_MINIMIZE Show: TestWindow \ minimize it to hide it in the TrayBar </pre><hr><p>Document $Id: TrayWindow.htm,v 1.1 2006/01/15 09:25:50 dbu_de Exp $</p> </body></html> |
From: Dirk B. <db...@us...> - 2006-01-15 09:26:01
|
Update of /cvsroot/win32forth/win32forth/doc In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv32623/doc Modified Files: p-classes.htm p-index.htm Log Message: Moved TrayWindow.f into the src\lib folder and added docu. about the TrayWindow class. Changed the TrayWindow class to open a popup menu when the user clicks with the right mouse button on the tray icon. Index: p-index.htm =================================================================== RCS file: /cvsroot/win32forth/win32forth/doc/p-index.htm,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** p-index.htm 13 Jan 2006 17:50:32 -0000 1.9 --- p-index.htm 15 Jan 2006 09:25:49 -0000 1.10 *************** *** 90,94 **** <li><a href="ForthForm/ForthForm.htm">ForthForm</a> (Win32Forth Dialog-Editor)</li> <li><a href="ProMgr/ProjectManager.htm">ForthProject</a> (Win32Forth Project Manager)</li> ! <li><a href="p-dexh.htm">Dex</a>Document Extractor</li> </ul> --- 90,94 ---- <li><a href="ForthForm/ForthForm.htm">ForthForm</a> (Win32Forth Dialog-Editor)</li> <li><a href="ProMgr/ProjectManager.htm">ForthProject</a> (Win32Forth Project Manager)</li> ! <li><a href="p-dexh.htm">Dex</a> Document Extractor</li> </ul> Index: p-classes.htm =================================================================== RCS file: /cvsroot/win32forth/win32forth/doc/p-classes.htm,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** p-classes.htm 14 Jan 2006 12:28:21 -0000 1.8 --- p-classes.htm 15 Jan 2006 09:25:49 -0000 1.9 *************** *** 31,34 **** --- 31,36 ---- <li><a href="./classes/Window.htm">Window</a> Class for window objects.</li> <li><a href="./classes/Childwnd.htm">Child-Window</a> Class for child window objects.</li> + <li><a href="./classes/TrayWindow.htm">TrayWindow</a> Class for windows that hide themself in the TrayBar when + they are minimized.</li> <li><a href="./classes/Controls.htm#DialogWindow">DialogWindow</a> Class for windows that contain controls.</li> <li><a href="./classes/mdi.htm#MDIClientWindow">MDIClientWindow</a> MDI client control class.</li> |
From: Dirk B. <db...@us...> - 2006-01-14 18:17:12
|
Update of /cvsroot/win32forth/win32forth/doc/classes In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv29645/doc/classes Added Files: mdi.htm Log Message: Docs for the MDI classes added. --- NEW FILE: mdi.htm --- <html> <head> <meta http-equiv="Content-Language" content="en-gb"> <meta name="GENERATOR" content="dexh00"> <meta name="ProgId" content="FrontPage.Editor.Document"> <meta http-equiv="Content-Type" content="text/html; charset=windows-1252"> <title> </title><style><!-- h1 { font-family: Tahoma; font-size: 24pt; font-weight: bold } h2 { font-family: Tahoma; font-size: 18pt; font-weight: bold } --> </style> </head> <body><h1 align="center"> <a href="mailto:win...@ya...?subject=DOC:Doc error in $Id: mdi.htm,v 1.1 2006/01/14 18:17:04 dbu_de Exp $"> <img border="0" src="../TELLUS.gif" align="left" width="32" height="32"></a> <img border="0" src="../FORTHPRO.gif" width="32" height="32"> Win32Forth</h1> <hr /><h1>Multiple Document Interface (MDI) classes </h1><hr /><p>MDI.f contains classes that form the basis for writing MDI aplications (like MS Word and MS Excel). Each document in an MDI application is displayed in a separate child window within the client area of the application's main window. </p><a name="MDIClientWindow"></a> <h2>MDI Client Window class </h2><pre><b><a name="0">:Class MDIClientWindow <super Control </a></b></pre><p>MDI client control class </p><pre><b><a name="0">:M Start: ( hWindowMenu Parent -- ) </a></b></pre><p>Start the control. </p><pre><b><a name="0">:M CreateStruct: ( -- CreateStrucPointer ) </a></b></pre><p>Get the address of CLIENTCREATESTRUCT structure. It contains information about the menu and first multiple document interface (MDI) child window of an MDI client window. An application passes a pointer to this structure as the lpvParam parameter of the CreateWindow function when creating an MDI client window. </p><pre><b><a name="0">;Class </a></b></pre><p>End of MDIClientWindow class </p><a name="MDIFrameWindow"></a> <h2>MDI Frame Window class </h2><pre><b><a name="0">:Class MDIFrameWindow <super Window </a></b></pre><p>All MDI child windows are displayed within the client area of this window. </p><pre><b><a name="0">:M WindowMenuNo: ( -- n ) 1 ;M </a></b></pre><p>Override this method to set the menu number in whitch all child windows should be displayed. </p><pre><b><a name="0">:M WindowTitle: ( -- z" ) </a></b></pre><p>Get the title text for the frame window. </p><pre><b><a name="0">:M SetRedraw: ( f -- ) </a></b></pre><p>Set the redraw state of the window. </p><p><i> f </i> Specifies the redraw state. If this parameter is TRUE, the content can be redrawn after a change. If this parameter is FALSE, the content cannot be redrawn after a change. </p><pre><b><a name="0">:M Tile: ( f -- ) </a></b></pre><p>Arrange all child windows in a tile format. </p><p><i> f </i> can be one of the following values optionally combined with MDITILE_SKIPDISABLED to prevent disabled MDI child windows from being tiled. </p><table border="1"><tr><td>MDITILE_HORIZONTAL </td> <td>Tiles windows horizontally. </td> </tr> <tr><td>MDITILE_VERTICAL </td> <td>Tiles windows vertically. </td> </tr> </table><pre><b><a name="0">:M Arrange: ( -- ) </a></b></pre><p>Arrange all minimized child windows. It does not affect child windows that are not minimized. </p><pre><b><a name="0">:M Cascade: ( -- ) </a></b></pre><p>Arrange all child windows in a cascade format. </p><pre><b><a name="0">:M RefreshMenu: ( -- ) </a></b></pre><p>Refresh the window menu of the MDI frame window. </p><pre><b><a name="0">:M MDISetMenu: ( hmenuWindow hmenuFrame -- ) </a></b></pre><p>Replace the entire menu of an MDI frame window, replace the window menu </p><p>of the frame window, or both. </p><pre><b><a name="0">:M DrawMenuBar: ( -- ) </a></b></pre><p>Redraws the menu bar of the window. If the menu bar changes after the system has created the window, this function must be called to draw the changed menu bar. </p><pre><b><a name="0">:M Restore: ( hWnd -- ) </a></b></pre><p>Restore an MDI child window from maximized or minimized size. </p><pre><b><a name="0">:M Maximize: ( hWnd -- ) </a></b></pre><p>M maximize an MDI child window. The system resizes the child window to make its client area fill the client window. The system places the child window's window menu icon in the rightmost position of the frame window's menu bar, and places the child window's restore icon in the leftmost position. The system also appends the title bar text of the child window to that of the frame window. </p><pre><b><a name="0">:M GetActive: ( -- Maximized handle ) </a></b></pre><p>Retrieve the handle to the active MDI child window. </p><pre><b><a name="0">:M Activate: ( hWnd -- ) </a></b></pre><p>Activate a MDI child window. </p><pre><b><a name="0">:M Next: ( f hWnd -- ) </a></b></pre><p>Activate the next or previous child window. </p><pre><b><a name="0">:M Destroy: ( hWnd -- ) </a></b></pre><p>Destroy an MDI child window. </p><pre><b><a name="0">:M CloseChild: ( hWnd -- ) </a></b></pre><p>Close an MDI child window. </p><pre><b><a name="0">:M EnumChildWindows: ( lparam pCallBack -- f ) </a></b></pre><p>Enumerate the MDI child windows </p><pre><b><a name="0">:M CloseAll: ( -- ) </a></b></pre><p>Close all MDI child windows. </p><pre><b><a name="0">:M GetFirstChild: ( -- hWndChild ) </a></b></pre><p>Get handle of the first child window </p><pre><b><a name="0">:M GetNextChild: ( -- hWndChild ) </a></b></pre><p>Get handle of the next child window. <br /> NOTE: you must call GetFirstChild: first. </p><pre><b><a name="0">:M SendMessageToAllChildren: { wParam lParam msg -- } </a></b></pre><p>Send a message to all child windows </p><pre><b><a name="0">:M PostMessageToAllChildren: { wParam lParam msg -- } </a></b></pre><p>Post a message to all child windows </p><pre><b><a name="0">;Class </a></b></pre><p>End of MDIFrameWindow class </p><a name="MDIChildWindow"></a> <h2>MDI Child Window class </h2><pre><b><a name="0">:Class MDIChildWindow <super Window </a></b></pre><p>This is the base class for all windows that should be displayed within the client area of a MDIFrameWindow. </p><pre><b><a name="0">:M DefaultIcon: ( -- hIcon ) </a></b></pre><p>Return the handle of the Icon whitch should be displayed in the upper left corner of the MDi child window. </p><pre><b><a name="0">:M ParentWindow: ( -- hParent ) </a></b></pre><p>Teturn the handle of parent, 0 = no parent </p><pre><b><a name="0">:M Start: ( Parent -- ) </a></b></pre><p>Create a new MDI child window object </p><pre><b><a name="0">:M WindowTitle: ( -- z" ) </a></b></pre><p>Get the title text for the MDI child window. </p><pre><b><a name="0">:M On_QueryEnd: ( -- f ) </a></b></pre><p>This method is called when the user chooses to end the session or when an application calls the ExitWindows function. If any application returns zero, the session is not ended. </p><p>The default method returns TRUE, so that the session will be ended. </p><pre><b><a name="0">:M On_Close: ( -- f ) </a></b></pre><p>This method is called when the user chooses to close the MDI child window. If it returns FALSE the window will not be closed. </p><p>Override the method to check if the document within the child window need's to be saved. </p><p>The default method returns TRUE, so that the window will be closed. </p><pre><b><a name="0">:M On_ChildActivate: ( -- ) </a></b></pre><p>Handle the WM_CHILDACTIVATE message. This message is sent to a child window when the user clicks the window's title bar or when the window is activated, moved, or sized. </p><pre><b><a name="0">:M On_GetMinMaxInfo: ( pMinMaxInfo -- pMinMaxInfo ) </a></b></pre><p>Handle the WM_GETMINMAXINFO message. This message is sent to a window when the size or position of the window is about to change. An application can use this message to override the window's default maximized size and position, or its default minimum or maximum tracking size. </p><p><i> pMinMaxInfo </i> Pointer to a MINMAXINFO structure that contains the default maximized position and dimensions, and the default minimum and maximum tracking sizes. An application can override the defaults by setting the members of this structure. </p><pre><b><a name="0">:M On_MenuChar: ( w l -- w l ) </a></b></pre><p>Handle the WM_MENUCHAR message. This message is sent when a menu is active and the user presses a key that does not correspond to any mnemonic or accelerator key. This message is sent to the window that owns the menu. </p><pre><b><a name="0">:M On_Move: ( l -- l ) </a></b></pre><p>Handle the WM_MOVE message. This message is sent after a window has been moved. </p><pre><b><a name="0">:M On_SysCommand: ( h m w l -- h m w l f ) </a></b></pre><p>Handle the WM_SYSCOMMAND message. A window receives this message when the user chooses a command from the window menu or when the user chooses the maximize button, minimize button, restore button, or close button. </p><pre><b><a name="0">:M On_Command: ( h m w l -- h m w l f ) </a></b></pre><p>Handle the WM_COMMAND message. This message is sent when the user selects a command item from a menu, when a control sends a notification message to its parent window, or when an accelerator keystroke is translated. </p><pre><b><a name="0">;Class </a></b></pre><p>End of MDIChildWindow class </p><h2>Example (demos\MdiExample.f) </h2><pre> Needs MDI 0 value CurrentWindow 0 value ActiveChild Create CurrentFile 256 allot \ \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ \ Messages and Dialogs \ \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ : ?SaveMessage ( -- n ) \ IDYES, IDNO or IDCANCEL s" Do you want to save " pad place CurrentFile count "to-pathend" pad +place s" ?" pad +place pad +NULL pad 1+ z" MDI Example" [ MB_ICONEXCLAMATION MB_YESNOCANCEL or ] literal NULL MessageBox ; \ \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ \ Simple TextBox to place on child windows \ \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ :Class TextBox <Super Control :M Start: ( Parent -- ) to Parent z" EDIT" Create-Control ;M :M WindowStyle: ( -- style ) [ WS_VISIBLE WS_CHILD or ES_MULTILINE or WS_VSCROLL or WS_HSCROLL or ] literal ;M ;Class \ \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ \ Define application menu \ \ The frame window of an MDI application should include \ a menu bar with a Window menu. The Window menu should \ include command items that arrange the child windows \ within the client window or that close all child windows. \ \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ 200 value (NewID) : NewID ( <name> -- ) defined IF drop ELSE count "header (NewID) dup 1+ to (NewID) DOCON , , THEN ; NewID IDM_NEW NewID IDM_CLOSE NewID IDM_EXIT NewID IDM_TILE NewID IDM_ARRANGE NewID IDM_CASCADE NewID IDM_CLOSE_ALL NewID IDM_OPEN_FILE Create MenuTable (NewID) 200 - 4 * allot : DoMenu ( ID -- ) 200 - 4 * MenuTable + @ ?dup IF execute THEN ; : SetMenu ( ID -- ) last @ name> swap 200 - 4 * MenuTable + ! ; MENUBAR MDIMenu POPUP "&File" MENUITEM "&New... \tCtrl+N" IDM_NEW DoMenu ; MENUITEM "C&lose" IDM_CLOSE DoMenu ; \ 9 RECENTFILES RecentFiles IDM_OPEN_FILE DoMenu ; MENUSEPARATOR MENUITEM "E&xit \tAlt-F4" IDM_EXIT DoMenu ; POPUP "&Window" MENUITEM "&Tile" IDM_TILE DoMenu ; MENUITEM "&Arrange" IDM_ARRANGE DoMenu ; MENUITEM "Ca&scade" IDM_CASCADE DoMenu ; MENUITEM "&Close all" IDM_CLOSE_ALL DoMenu ; ENDBAR \ \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ \ Define application window \ \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ :Object Frame <Super MDIFrameWindow :M Classinit: ( -- ) ClassInit: super MDIMenu to CurrentMenu ;M :M WindowMenuNo: ( -- n ) 1 ;M \ the Window menu where the child window titles will be placed :M WindowStyle: ( -- style ) WindowStyle: SUPER WS_CLIPCHILDREN or ;M :M ExWindowStyle: ( -- exstyle ) WS_EX_ACCEPTFILES ;M :M WM_DROPFILES { hndl message wParam lParam \ drop$ -- res } SetForegroundWindow: self MAXSTRING LocalAlloc: drop$ 0 0 -1 wParam Call DragQueryFile 0 DO MAXCOUNTED drop$ 1+ i wParam Call DragQueryFile drop$ c! drop$ IDM_OPEN_FILE DoMenu LOOP wParam Call DragFinish ;M :M MinSize: ( -- width height ) 106 0 ;M :M WindowTitle: ( -- z" ) z" MDI Example" ;M :M On_Size: ( h m w -- ) 0 0 Width Height Move: MDIClient ;M (( This is equivalent to :M WM_SIZE ( h m w l -- f ) DefFrameProc ;M but if space for a Toolbar or StatusBar is needed MDIClient needs to be smaller )) :M On_Init: ( -- ) On_Init: super 100 appinst Call LoadIcon \ Win32For.ico GCL_HICON hWnd Call SetClassLong drop ;M :M OnWmCommand: ( hwnd msg wparam lparam -- hwnd msg wparam lparam ) OnWmCommand: Super over LOWORD ( Menu ID ) dup 200 (NewID) within \ intercept Menu commands IF DoMenu ELSE drop THEN ;M :M WM_CLOSE ( h m w l -- res ) CloseAll: self NotCancelled \ if we don't cancel the close IF WM_CLOSE WM: super \ then just terminate the program ELSE 1 \ else abort program termination THEN ;M :M On_Done: ( -- ) Turnkeyed? IF 0 call PostQuitMessage drop THEN On_Done: Super ;M ;Object \ \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ \ Define Child Window class \ \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ :Class MDIChild <Super MDIChildWindow int EditWindow 256 bytes FileName int Modified :M WindowTitle: ( -- z" ) CurrentFile count FileName place FileName +null FileName 1+ ;M :M WindowStyle: ( -- style ) WindowStyle: super WS_CLIPCHILDREN or GetActive: Frame 0= or IF WS_MAXIMIZE or THEN \ start new child maximised unless ;M \ the active child is not maximised :M DefaultIcon: ( -- hIcon ) 101 appInst Call LoadIcon \ App_icon.ico ;M :M Start: ( parent -- ) New> TextBox to EditWindow Start: super self start: EditWindow 0 0 Width Height Move: EditWindow SetFocus: EditWindow True to Modified ;M :M On_SetFocus: ( -- ) \ A child window can be selected by clicking on it, SetFocus: EditWindow \ selecting it from the Window menu or using CTRL+F6 EditWindow to CurrentWindow self to ActiveChild FileName count CurrentFile place CurrentFile +null ;M :M On_Size: ( h m w l -- h m w l ) 0 0 Width Height Move: EditWindow \ make TextBox fit child window ;M :M On_Close: ( -- f ) \ True = close, False = cancel close Modified IF ?SaveMessage Case IDCANCEL Of FALSE Endof IDYES Of TRUE Endof ( otherwise IDNO ) TRUE swap EndCase ELSE TRUE THEN dup dup to NotCancelled IF \ if we don't cancel the close GetHandle: self Destroy: Frame \ close child window first EditWindow dispose \ so we can safely dispose self dispose \ of both the EditControl THEN \ and the child window ;M ;Class \ \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ \ Activate Menu \ \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ 0 value New# : New ( -- ) 1 +to New# s" File " currentfile place New# (.) currentfile +place New> MDIChild to ActiveChild MDIClientWindow: Frame Start: ActiveChild ; IDM_NEW SetMenu : Close ( -- ) GetHandle: ActiveChild CloseChild: Frame ; IDM_CLOSE SetMenu : ExitApp ( -- ) bye ; IDM_EXIT SetMenu : Tile ( -- ) 0 Tile: Frame ; IDM_TILE SetMenu : Arrange ( -- ) Arrange: Frame ; IDM_ARRANGE SetMenu : Cascade ( -- ) Cascade: Frame ; IDM_CASCADE SetMenu : CloseAll ( -- ) CloseAll: Frame ; IDM_CLOSE_ALL SetMenu : OpenFile ( File$ -- ) count currentfile place New> MDIChild to ActiveChild ( File opening stuff ) MDIClientWindow: Frame Start: ActiveChild ; IDM_OPEN_FILE SetMenu </pre>******* many menu items not implemented here ********** <pre> \ \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ \ Handle MDI Accelerators: ALT+ - (minus), CTRL+ F4, CTRL+ F6 \ \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ : DoMDIMsg ( pMsg f -- pMsg f ) dup MDIClient: Frame 0<> and IF drop dup MDIClient: Frame Call TranslateMDISysAccel 0= THEN ; msg-chain chain-add DoMDIMsg \ \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ \ The word to start the application \ \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ : go ( -- ) zeromenu: mdimenu start: Frame 0 to New# New Cascade Turnkeyed? IF Begin key drop again THEN ; </pre><hr><p>Document $Id: mdi.htm,v 1.1 2006/01/14 18:17:04 dbu_de Exp $</p> </body></html> |
From: George H. <geo...@us...> - 2006-01-14 14:03:44
|
Update of /cvsroot/win32forth/win32forth/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv6923/win32forth/src Modified Files: Class.f Log Message: gah: minor bug fix Index: Class.f =================================================================== RCS file: /cvsroot/win32forth/win32forth/src/Class.f,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** Class.f 14 Jan 2006 13:00:10 -0000 1.11 --- Class.f 14 Jan 2006 14:03:32 -0000 1.12 *************** *** 1298,1302 **** then to obj-save m0cfa ; ! : [GetMethod] ( compiling:- -<method: object>- -- ) ( runtime:- -- m0cfa ) / W32F Class \ *G Compile the xt of the method as a literal into the current definition. Compile only. state @ >r postpone [ --- 1298,1302 ---- then to obj-save m0cfa ; ! : [GetMethod] ( compiling:- -<method: object>- -- ) ( runtime:- -- m0cfa ) \ W32F Class \ *G Compile the xt of the method as a literal into the current definition. Compile only. state @ >r postpone [ |
From: George H. <geo...@us...> - 2006-01-14 13:00:18
|
Update of /cvsroot/win32forth/win32forth/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv24357/win32forth/src Modified Files: Class.f Log Message: gah: Fixed bugs in methods in class object and some dex commemts (work in progress) Index: Class.f =================================================================== RCS file: /cvsroot/win32forth/win32forth/src/Class.f,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** Class.f 13 Jan 2006 12:05:01 -0000 1.10 --- Class.f 14 Jan 2006 13:00:10 -0000 1.11 *************** *** 395,399 **** \ The following definition is executed at compile time so as long as its run-time (heapobj) is \ in application space it can go in system space ! : Heap> ( -- addr ) ' dup ?isClass not abort" Use: New> classname " >body --- 395,402 ---- \ The following definition is executed at compile time so as long as its run-time (heapobj) is \ in application space it can go in system space ! ! : Heap> ( -<class>- -- addr ) \ W32F Class ! \ *G Allocate memory for an object of -<class>- on the heap, initialise the object ! \ ** and return the object address. ' dup ?isClass not abort" Use: New> classname " >body *************** *** 404,408 **** THEN ; IMMEDIATE ! synonym New> Heap> \ See " Dispose " later for releasing dynamic objects --- 407,413 ---- THEN ; IMMEDIATE ! synonym New> Heap> ( -<class>- -- addr ) \ W32F Class ! \ *G Allocate memory for an object of -<class>- on the heap, initialise the object ! \ ** and return the object address. \ See " Dispose " later for releasing dynamic objects *************** *** 954,959 **** 0 value BeginningOfRecordAddress ! : Record: ( -- ) \ define a word that returns the starting address of ! \ a group of data fields that need be contiguous -1 to contiguous-data? header --- 959,966 ---- 0 value BeginningOfRecordAddress ! : Record: ( -- ) \ W32F Class ! \ *G Define a word that returns the starting address of a group of data fields that ! \ ** need to be contiguous. Object IVARS have their class pointer suppressed if used ! \ ** in a Record: so only objects that don't use late binding can be used. -1 to contiguous-data? header *************** *** 963,970 **** (iv+!) , ; \ add integer to first cell of array ?? ! : ;Record ( -- ) \ end a group of data fields that need to contiguous 0 to contiguous-data? ; ! : ;RecordSize: ( -<name>- ) \ create a name with the size of the record 0 to contiguous-data? ^Class DFA @ BeginningOfRecordAddress - CONSTANT ; --- 970,980 ---- (iv+!) , ; \ add integer to first cell of array ?? ! : ;Record ( -- ) \ W32F Class ! \ *G End a group of data fields that need to contiguous. 0 to contiguous-data? ; ! : ;RecordSize: ( -<name>- ) \ W32F Class ! \ *G End a group of data fields that need to contiguous and create a name with the ! \ ** size of the record. 0 to contiguous-data? ^Class DFA @ BeginningOfRecordAddress - CONSTANT ; *************** *** 985,989 **** :noname 0 bytes ; is ivar-name ! : byte ( -<name>- ) \ byte (8bit) instance variable header (ivc@) , --- 995,1000 ---- :noname 0 bytes ; is ivar-name ! : byte ( -<name>- ) \ W32F Class ! \ *G Byte (8bit) size instance variable. header (ivc@) , *************** *** 1036,1040 **** nbits class-bitallot ; ! : short ( -<name>- ) \ word integer (16bit) instance variable header (ivw@) , --- 1047,1053 ---- nbits class-bitallot ; ! : short ( -<name>- ) \ W32F Class ! \ *G Word integer (16bit) instance variable. When -<name>- is executed the value of -<name>- ! \ ** is zero-extended before pushing onto the stack. header (ivw@) , *************** *** 1045,1049 **** 2 class-allot ; ! : int ( -<name>- ) \ long integer (32bit) instance variable header (iv@) , --- 1058,1064 ---- 2 class-allot ; ! : int ( -<name>- ) \ W32F Class ! \ *G Long integer (32bit) instance variable. When used as an object variable has the same ! \ ** behaviour as VALUEs. header (iv@) , *************** *** 1054,1058 **** cell class-allot ; ! : dint ( -<name>- ) \ double (64bit) instance variable header (ivd@) , --- 1069,1074 ---- cell class-allot ; ! : dint ( -<name>- ) \ W32F Class ! \ *G Double (64bit) instance variable. header (ivd@) , *************** *** 1088,1105 **** \ Revised by -rbs July 9th, 2002 ! \ Since ClassRoot inherits from the pseodo class consisting of the classes ! \ Vocabulary plus the five added vectors MFA IFA DFA XFA and SFA ( see primhash.f ! \ for more details ) DO NOT add any more definitions to CLASSES from here on. ! ! \ Generic Classes ( those that are created SOLELY for other classes to inherit ! \ from and therefore have no instances ) can have the info compiled by :CLASS ! \ and <SUPER ( or <CLASS <OBJECT or INHERIT ) placed IN-SYSTEM. All Method and ! \ IVARs must be placed IN-APPLICATION. Ordinary definitions can go into either ! \ space according to whether or not they are needed in a TURNKEYed application in-system :Class ClassRoot ' classes >Class classes inherit in-application --- 1104,1125 ---- \ Revised by -rbs July 9th, 2002 ! \ *P Since ClassRoot inherits from the pseodo class consisting of the classes ! \ ** Vocabulary plus the five added vectors MFA IFA DFA XFA and SFA ( see primhash.f ! \ ** for more details ) DO NOT add any more definitions to CLASSES from here on. ! \ *P Generic Classes ( those that are created SOLELY for other classes to inherit ! \ ** from and therefore have no instances ) can have the info compiled by :CLASS ! \ ** and <SUPER ( or <CLASS <OBJECT or INHERIT ) placed IN-SYSTEM. All Method and ! \ ** IVARs must be placed IN-APPLICATION. Ordinary definitions can go into either ! \ ** space according to whether or not they are needed in a TURNKEYed application in-system :Class ClassRoot ' classes >Class classes inherit + \ *G Use this class if you have no ivars in your class. + \ ** It will trap undefined methods that might slip through otherwise. + \ ** Note: Class String SHOULD use this as its Super. Not changed + \ ** at this time. There are only (expected default) methods defined + \ ** here. in-application *************** *** 1107,1120 **** \ -rbs Adding a true Base Class that has no default methods for record types. ! \ Use this class if you have no ivars in your class. ! \ It will trap undefined methods that might slip through otherwise. ! \ Note: Class String SHOULD use this as its Super. Not changed ! \ at this time. There are only (expected default) methods defined ! \ here. :M ClassInit: ;M ! :M ~: ;M \ the default destructor method :M Addr: ( -- addr ) ^base ;M :M Print: ( -- ) ." Object@" ^base . ;M ;Class --- 1127,1147 ---- \ -rbs Adding a true Base Class that has no default methods for record types. ! :M ClassInit: ;M ! \ *G Initialise the object. This method is called implicitly when an object is created, ! \ ** either at compile time (for objects in the dictionary) or at run-time (for dynamically ! \ ** created objects). Ivars are initialised when the object containing them is initialised. ! \ ** Default does nothing. ! :M ~: ;M ! \ *G De-initialise the object. This method is called implicitly when a dynamic object is ! \ ** disposed of, before the memory is freed. Ivars are not implicitly de-initialised so ! \ ** objects and classes that have ivars that need de-initialising should explicitly send ! \ ** this message to them. :M Addr: ( -- addr ) ^base ;M + \ *G Return the address of the object. Since executing the object returns the address anyway + \ ** this method is obsolescent. Versions prior to V6.11 needed to use this for object ivars. :M Print: ( -- ) ." Object@" ^base . ;M + \ *G Print the address of the object. Used for debugging purposes only. ;Class *************** *** 1124,1149 **** \ Use "<Super OBJECT" for classes that have ivars :Class object <Super ClassRoot in-application ! \ The following methods are for use with the dotted notation which compiles code to place ! \ the CFA of the non-object IVAR on the stack and then the object address :M Get: ( -- n1 ) execute ;M ! :M Put: ( n1 -- ) 2 cells+ execute ;M ! ! :M Add: ( n1 -- ) 3 cells+ execute ;M ! ! :M And: ( n1 -- ) Get: self AND put: self ;M ! :M Or: ( n1 -- ) Get: self OR put: self ;M ! :M Xor: ( n1 -- ) Get: self XOR put: self ;M ! :M &OF: ( -- addr ) >body @ self + ;M ;Class ! unres-methods unres-len erase --- 1151,1195 ---- \ Use "<Super OBJECT" for classes that have ivars :Class object <Super ClassRoot + \ *G Generic class for objects that contain non-object ivars. in-application ! \ *P The following methods are for use with the dotted notation which compiles code to place ! \ ** the CFA of the non-object IVAR on the stack and then the object address :M Get: ( -- n1 ) execute ;M + \ *G Get the value of the ivar. This is the default method automatically compiled if at ivar + \ ** is referenced with dotted notation without a preceeding method. ! :M Put: ( n/d -- ) 2 cells+ execute ;M ! \ *G Put the value on the stack (dints expect a double number/other ivars expect a single ! \ ** number) into the ivar. ! :M Add: ( n/d -- ) 3 cells+ execute ;M ! \ *G Add the value on the stack (dints expect a double number/other ivars expect a single ! \ ** number) to the ivar. ! :M And: ( n1 -- ) ! \ *G Perform a bitwise AND on the contents of the ivar and n1 storing the result in the ! \ ** ivar. Note dints perform the AND on the 2 cells of the ivar storing the result as the ! \ ** most significant cell, with n1 as the least. ! dup>r Get: self AND r> put: self ;M ! :M Or: ( n1 -- ) ! \ *G Perform a bitwise OR on the contents of the ivar and n1 storing the result in the ! \ ** ivar. Note dints perform the OR on the 2 cells of the ivar storing the result as the ! \ ** most significant cell, with n1 as the least. ! dup>r Get: self OR r> put: self ;M ! :M Xor: ( n1 -- ) ! \ *G Perform a bitwise XOR on the contents of the ivar and n1 storing the result in the ! \ ** ivar. Note dints perform the XOR on the 2 cells of the ivar storing the result as the ! \ ** most significant cell, with n1 as the least. ! dup>r Get: self XOR r> put: self ;M ! :M &OF: ( -- addr ) ! \ *G Return the address of the ivar. ! >body @ self + ;M ;Class ! \ *G End of class unres-methods unres-len erase *************** *** 1219,1223 **** IN-SYSTEM ! : .CLASSES ( -- ) \ display all classes in the system cr \ classes are really vocabularies voc-link @ --- 1265,1270 ---- IN-SYSTEM ! : .CLASSES ( -- ) \ W32F Class ! \ *G Display all classes in the system. cr \ classes are really vocabularies voc-link @ *************** *** 1241,1245 **** classes also hidden also ! : GetMethod { \ m0cfa -- -<method: object>- m0cfa } \ return xt of method @word _msgFind 1 <> abort" Undefined Method" TRUE to get-reference? \ tell do_message to return method --- 1288,1293 ---- classes also hidden also ! : GetMethod { \ m0cfa -- -<method: object>- m0cfa } \ W32F Class ! \ *G Return the xt of method. Used in interpretive mode or to create parsing words. @word _msgFind 1 <> abort" Undefined Method" TRUE to get-reference? \ tell do_message to return method *************** *** 1250,1255 **** then to obj-save m0cfa ; ! : [GetMethod] ( compiling:- -<method: object>- -- ) ! ( runtime:- -- m0cfa ) state @ >r postpone [ GetMethod r> if ] then --- 1298,1303 ---- then to obj-save m0cfa ; ! : [GetMethod] ( compiling:- -<method: object>- -- ) ( runtime:- -- m0cfa ) / W32F Class ! \ *G Compile the xt of the method as a literal into the current definition. Compile only. state @ >r postpone [ GetMethod r> if ] then |
From: Dirk B. <db...@us...> - 2006-01-14 12:30:25
|
Update of /cvsroot/win32forth/win32forth/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv19958/src Modified Files: numconv.f Log Message: Prefix # added to recognise numbers in base 10 e.g. #11 Index: numconv.f =================================================================== RCS file: /cvsroot/win32forth/win32forth/src/numconv.f,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** numconv.f 29 Oct 2005 09:39:57 -0000 1.6 --- numconv.f 14 Jan 2006 12:30:17 -0000 1.7 *************** *** 98,101 **** --- 98,102 ---- \ $ -- hex prefix \ & -- decimal + \ # -- decimal \ new Samstag, Januar 14 2006 dbu \ % -- binary *************** *** 118,121 **** --- 119,123 ---- [char] $ of 16 xbase-convert endof [char] & of 10 xbase-convert endof + [char] # of 10 xbase-convert endof [char] % of 2 xbase-convert endof drop dotted-number? dup |
From: Dirk B. <db...@us...> - 2006-01-14 12:28:34
|
Update of /cvsroot/win32forth/win32forth/doc/classes In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv19224/doc/classes Modified Files: HTMLcontrol.htm Log Message: Some minor chaged to the MDI classes, docs for the HTML control updated and docs for the MDI classes added. Index: HTMLcontrol.htm =================================================================== RCS file: /cvsroot/win32forth/win32forth/doc/classes/HTMLcontrol.htm,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** HTMLcontrol.htm 11 Jan 2006 17:45:20 -0000 1.1 --- HTMLcontrol.htm 14 Jan 2006 12:28:21 -0000 1.2 *************** *** 58,63 **** </p><pre><b><a name="0">;CLASS </a></b></pre><p>End of HTML control class ! </p><h2>Example ! </h2><p>For an example see: demos\HtmlControlDemo.f ! </p><hr><p>Document $Id$</p> </body></html> --- 58,114 ---- </p><pre><b><a name="0">;CLASS </a></b></pre><p>End of HTML control class ! </p><h2>Example (demos\HtmlControlDemo.f) ! </h2><pre> ! needs HtmlControl.f ! ! \ Create a simple browser window ! :class Browserwin <super window ! ! HTMLcontrol html ! ! :M On_Init: ( -- ) ! On_Init: super ! self Start: html ;M ! ! :M On_Size: ( h m w -- ) ! 2drop drop autosize: html ;M ! ! :M GoURL: ( str len -- ) GoURL: html ;M ! :M GetLocationURL: ( -- str len ) GetLocationURL: html ;M ! :M GetLocationName: ( -- str len ) GetLocationName: html ;M ! :M Busy?: ( -- flag ) Busy?: html ;M ! :M Offline?: ( -- flag ) Offline?: html ;M ! :M GetType: ( -- str len ) GetType: html ;M ! ! :M Wait: ( -- ) ! \ Wait until the browser has finished all ! \ downloading operation or other activity. ! begin winpause ! Busy?: self 0= ! until ;M ! ! ;class ! ! BrowserWin bwin ! ! : test ! \ start the window ! start: bwin ! ! \ let the browser load a document ! Offline?: bwin ! if s" doc\p-index.htm" Prepend<home>\ ! else s" www.win32forth.org\doc\p-index.htm" ! then GoURL: bwin ! ! \ wait until browser is ready ! Wait: bwin ! ! \ display some information about the document ! cr GetLocationURL: bwin type ! cr GetLocationName: bwin type ! cr GetType: bwin type ! ; test ! ! </pre><hr><p>Document $Id$</p> </body></html> |
From: Dirk B. <db...@us...> - 2006-01-14 12:28:34
|
Update of /cvsroot/win32forth/win32forth/demos In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv19224/demos Modified Files: HtmlControlDemo.f MDIExample.f Log Message: Some minor chaged to the MDI classes, docs for the HTML control updated and docs for the MDI classes added. Index: MDIExample.f =================================================================== RCS file: /cvsroot/win32forth/win32forth/demos/MDIExample.f,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** MDIExample.f 5 May 2005 09:43:28 -0000 1.2 --- MDIExample.f 14 Jan 2006 12:28:21 -0000 1.3 *************** *** 14,17 **** --- 14,22 ---- Call MessageBox ; [THEN] + \ *D doc\classes\ + \ *> mdi + \ *S Example (demos\MdiExample.f) + \ *+ + Needs MDI *************** *** 283,286 **** --- 288,294 ---- ; + \ *- + \ *Z + MODULE *************** *** 289,291 **** cr .( Save MDIExample.exe [Y/N]: ) key dup emit dup 121 = swap 89 = or nostack [IF] ' go turnkey MDIExample 5 pause-seconds bye [THEN] - |
From: Dirk B. <db...@us...> - 2006-01-14 12:28:34
|
Update of /cvsroot/win32forth/win32forth/doc In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv19224/doc Modified Files: p-classes.htm Log Message: Some minor chaged to the MDI classes, docs for the HTML control updated and docs for the MDI classes added. Index: p-classes.htm =================================================================== RCS file: /cvsroot/win32forth/win32forth/doc/p-classes.htm,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** p-classes.htm 13 Jan 2006 17:50:32 -0000 1.7 --- p-classes.htm 14 Jan 2006 12:28:21 -0000 1.8 *************** *** 32,36 **** <li><a href="./classes/Childwnd.htm">Child-Window</a> Class for child window objects.</li> <li><a href="./classes/Controls.htm#DialogWindow">DialogWindow</a> Class for windows that contain controls.</li> ! <li><a href="./classes/MdiDialog.htm">MdiDialogWindow</a> Class for MDI windows that contain controls.</li> </ul> --- 32,39 ---- <li><a href="./classes/Childwnd.htm">Child-Window</a> Class for child window objects.</li> <li><a href="./classes/Controls.htm#DialogWindow">DialogWindow</a> Class for windows that contain controls.</li> ! <li><a href="./classes/mdi.htm#MDIClientWindow">MDIClientWindow</a> MDI client control class.</li> ! <li><a href="./classes/mdi.htm#MDIFrameWindow">MDIFrameWindow</a> MDI Frame window class.</li> ! <li><a href="./classes/mdi.htm#MDIChildWindow">MDIChildWindow</a> MDI Child window class.</li> ! <li><a href="./classes/MdiDialog.htm">MdiDialogWindow</a> Class for MDI child windows that contain controls.</li> </ul> |
From: Dirk B. <db...@us...> - 2006-01-14 12:28:34
|
Update of /cvsroot/win32forth/win32forth/src/tools In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv19224/src/tools Modified Files: DexH-CreateDocs.f W32fdexh.f Log Message: Some minor chaged to the MDI classes, docs for the HTML control updated and docs for the MDI classes added. Index: DexH-CreateDocs.f =================================================================== RCS file: /cvsroot/win32forth/win32forth/src/tools/DexH-CreateDocs.f,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** DexH-CreateDocs.f 13 Jan 2006 17:50:33 -0000 1.6 --- DexH-CreateDocs.f 14 Jan 2006 12:28:22 -0000 1.7 *************** *** 26,30 **** s" src\lib\MdiDialog.f" create-doc s" src\lib\AXControl.F" create-doc ! s" src\lib\HTMLcontrol.F" create-doc \ GDI class library --- 26,34 ---- s" src\lib\MdiDialog.f" create-doc s" src\lib\AXControl.F" create-doc ! ! -tr s" src\lib\HTMLcontrol.F" create-doc ! +tr s" demos\HtmlControlDemo.f" create-doc ! -tr s" src\lib\Mdi.F" create-doc ! +tr s" demos\MdiExample.f" create-doc \ GDI class library Index: W32fdexh.f =================================================================== RCS file: /cvsroot/win32forth/win32forth/src/tools/W32fdexh.f,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** W32fdexh.f 20 Dec 2005 18:00:50 -0000 1.1 --- W32fdexh.f 14 Jan 2006 12:28:22 -0000 1.2 *************** *** 3,6 **** --- 3,8 ---- needs tools/dexh + internal + create W32Fheader ,| <html> | *************** *** 44,48 **** --- 46,56 ---- 0 c, + create W32FNoTrailer + 0 c, + + external + : W32FDocs ( -- ) + \ *G Set output for Win32Forth documents in the doc folder W32Fheader to HtmlHeader W32FheaderA to HtmlheaderA *************** *** 50,62 **** : W32FClassDocs ( -- ) ! W32Fheader to HtmlHeader ! W32FClassheaderA to HtmlheaderA ! W32FTrailer to HtmlTrailer ; : DexDocs ( -- ) DexHTMLheader to HTMLheader DexHTMLheaderA to HTMLheaderA DexHTMLtrailer to HTMLtrailer ; cr .( DexH -- Document Extractor loaded ) cr --- 58,92 ---- : W32FClassDocs ( -- ) ! \ *G Set output for Win32Forth documents in the doc\classes folder ! W32Fheader to HtmlHeader ! W32FClassheaderA to HtmlheaderA ! W32FTrailer to HtmlTrailer ; : DexDocs ( -- ) + \ *G Set normal DexH output style. DexHTMLheader to HTMLheader DexHTMLheaderA to HTMLheaderA DexHTMLtrailer to HTMLtrailer ; + internal + + 0 value OLDtrailer + + external + + : -tr ( -- ) + \ *G Stop output of the HTML trailer + OLDtrailer 0= + if HTMLtrailer to OLDtrailer + W32FNoTrailer to HTMLtrailer + then ; + + : +tr ( -- ) + \ *G Restart output of the HTML trailer + OLDtrailer ?DUP + if to HTMLtrailer + 0 to OLDtrailer + then ; + cr .( DexH -- Document Extractor loaded ) cr |
From: Dirk B. <db...@us...> - 2006-01-14 12:28:34
|
Update of /cvsroot/win32forth/win32forth/src/lib In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv19224/src/lib Modified Files: HTMLcontrol.F MDI.F Log Message: Some minor chaged to the MDI classes, docs for the HTML control updated and docs for the MDI classes added. Index: MDI.F =================================================================== RCS file: /cvsroot/win32forth/win32forth/src/lib/MDI.F,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** MDI.F 26 Sep 2005 10:53:54 -0000 1.5 --- MDI.F 14 Jan 2006 12:28:21 -0000 1.6 *************** *** 1,14 **** \ MDI.f Multiple Document Interface by Rod Oakford \ adapted from MDI.f by Michael Hillerström to work in Win32Forth v5.2 - \ MDI.f contains classes that form the basis for writing MDI aplications - \ (like MS Word and MS Excel). Each document in an MDI application is displayed - \ in a separate child window within the client area of the application's main window. ! \ July 3rd, 2004 added MDIClient: method to obtain handle of MDIClient window ! \ to fix problem in v6.09.07 with DoMDIMsg when MDIClient is 0 ! \ ( 0 @ returns 0 in v5.2 but in v6.09.07 causes an exception ) ! \ Monday, September 26 2005 removed parent from MDIChildWindow class since it's now ! \ defined in Window class cr .( Loading Multiple Document Interface classes...) --- 1,20 ---- \ MDI.f Multiple Document Interface by Rod Oakford \ adapted from MDI.f by Michael Hillerström to work in Win32Forth v5.2 ! \ *D doc\classes\ ! \ *! mdi ! \ *T Multiple Document Interface (MDI) classes ! \ *P MDI.f contains classes that form the basis for writing MDI aplications ! \ ** (like MS Word and MS Excel). Each document in an MDI application is displayed ! \ ** in a separate child window within the client area of the application's main window. ! ! \ History: ! \ July 3rd, 2004 added MDIClient: method to obtain handle of MDIClient window ! \ to fix problem in v6.09.07 with DoMDIMsg when MDIClient is 0 ! \ ( 0 @ returns 0 in v5.2 but in v6.09.07 causes an exception ) ! \ ! \ Monday, September 26 2005 removed parent from MDIChildWindow class since it's now ! \ defined in Window class cr .( Loading Multiple Document Interface classes...) *************** *** 17,24 **** \ \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ! \ MDI Client Window class \ \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ :Class MDIClientWindow <super Control Record: ClientCreateStruct --- 23,33 ---- \ \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ! \ *W <a name="MDIClientWindow"></a> ! \ *S MDI client control class \ \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ :Class MDIClientWindow <super Control + \ *G MDI client control class. This control is used by the MDIFrameWindow class. + \ ** You shouldn't create instances of this class within your application. Record: ClientCreateStruct *************** *** 27,35 **** ;Record - :M CreateStruct: ( -- CreateStrucPointer ) - ClientCreateStruct - ;M - :M Start: ( hWindowMenu Parent -- ) to Parent to hWindowMenu --- 36,41 ---- ;Record :M Start: ( hWindowMenu Parent -- ) + \ *G Start the control. to Parent to hWindowMenu *************** *** 40,66 **** :M WindowStyle: ( -- style ) WindowStyle: super ! [ WS_HSCROLL WS_VSCROLL or WS_CHILD or WS_CLIPCHILDREN or WS_CLIPSIBLINGS or ] literal ! or ;M :M ExWindowStyle: ( -- exstyle ) ! WS_EX_CLIENTEDGE ! ;M ! ;Class \ \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ! \ MDI Frame Window class \ \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ :Class MDIFrameWindow <super Window ! int MDIClient ! :M MDIClientWindow: ( -- MDICLient window ) MDIClient ;M :M MDIClient: ( -- handle of MDICLient window ) ! MDIClient dup IF drop GetHandle: MDIClient THEN ;M --- 46,83 ---- :M WindowStyle: ( -- style ) WindowStyle: super ! [ WS_HSCROLL WS_VSCROLL or WS_CHILD or WS_CLIPCHILDREN or WS_CLIPSIBLINGS or ] literal or ;M :M ExWindowStyle: ( -- exstyle ) ! WS_EX_CLIENTEDGE ;M ! :M CreateStruct: ( -- CreateStrucPointer ) ! \ *G Get the address of CLIENTCREATESTRUCT structure. It contains information about ! \ ** the menu and first multiple document interface (MDI) child window of an MDI ! \ ** client window. An application passes a pointer to this structure as the ! \ ** lpvParam parameter of the CreateWindow function when creating an MDI client window. ! ClientCreateStruct ;M + ;Class + \ *G End of MDIClientWindow class \ \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ! \ *W <a name="MDIFrameWindow"></a> ! \ *S MDI Frame window class \ \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ :Class MDIFrameWindow <super Window + \ *G All MDI child windows are displayed within the client area of this + \ ** window. ! \ int MDIClient ! MDIClientWindow MDIClient ! :M MDIClientWindow: ( -- MDICLient window ) ! MDIClient ;M :M MDIClient: ( -- handle of MDICLient window ) ! \ MDIClient dup IF drop GetHandle: MDIClient THEN ! GetHandle: MDIClient ;M *************** *** 70,77 **** ;M ! :M WindowMenuNo: ( -- n ) 1 ;M \ override this method :M On_Init: ( -- ) ! New> MDIClientWindow to MDIClient WindowMenuNo: [ self ] NULL LoadMenu: self --- 87,96 ---- ;M ! :M WindowMenuNo: ( -- n ) 1 ;M ! \ *G Override this method to set the menu number in whitch all ! \ ** child windows should be displayed. :M On_Init: ( -- ) ! \ New> MDIClientWindow to MDIClient WindowMenuNo: [ self ] NULL LoadMenu: self *************** *** 80,126 **** ;M ! :M WindowHasMenu: ( -- f ) TRUE ;M :M WindowStyle: ( -- style ) ! WindowStyle: super ! WS_CLIPCHILDREN or ! ;M ! :M WindowTitle: ( -- z" ) z" MDI Frame Window" ;M : DefFrameProc ( h m w l -- f ) ! 4reverse MDIClient: self swap Call DefFrameProc ! ; ! \ :M WM_SIZE ( h m w l -- f ) DefFrameProc ;M \ remove if MDIClient window does not fill entire ! \ client area, use On_Size instead to Move: MDIClient ! :M WM_MENUCHAR ( h m w l -- f ) DefFrameProc ;M ! :M WM_SETFOCUS ( h m w l -- f ) DefFrameProc ;M ! :M WM_NCACTIVATE ( h m w l -- f ) DefFrameProc ;M ! :M WM_COMMAND ( h m w l -- f ) WM_COMMAND WM: super ?dup 0= IF DefFrameProc THEN ;M ! : SendMDIMessage ( l w message -- result ) MDIClient: self Call SendMessage ; ! : SendMDIMessageDrop ( lParam wParam message -- ) SendMDIMessage drop ; ! :M SetRedraw: ( f -- ) 0 swap WM_SETREDRAW SendMDIMessageDrop ;M ! :M Tile: ( f -- ) 0 swap WM_MDITILE SendMDIMessageDrop ;M ! :M Arrange: ( -- ) 0 0 WM_MDIICONARRANGE SendMDIMessageDrop ;M ! :M Cascade: ( -- ) 0 0 WM_MDICASCADE SendMDIMessageDrop ;M ! :M RefreshMenu: ( -- ) 0 0 WM_MDIREFRESHMENU SendMDIMessageDrop hWnd Call DrawMenuBar drop ;M ! :M MDISetMenu: ( hmenuWindow hmenuFrame -- ) WM_MDISETMENU SendMDIMessageDrop hWnd Call DrawMenuBar drop ;M ! \ :M DrawMenuBar: ( -- ) hWnd Call DrawMenuBar drop ;M ! :M Restore: ( hWnd -- ) 0 swap WM_MDIRESTORE SendMDIMessageDrop ;M ! :M Maximize: ( hWnd -- ) 0 swap WM_MDIMAXIMIZE SendMDIMessageDrop ;M ! :M GetActive: ( -- Maximized handle ) 0 sp@ 0 WM_MDIGETACTIVE SendMDIMessage ;M ! :M Activate: ( hWnd -- ) 0 swap WM_MDIACTIVATE SendMDIMessageDrop ;M ! :M Next: ( f hWnd -- ) WM_MDINEXT SendMDIMessageDrop ;M ! :M Destroy: ( hWnd -- ) 0 swap WM_MDIDESTROY SendMDIMessageDrop ;M ! :M CloseChild: ( hWnd -- ) >r 0 0 WM_CLOSE r> Call SendMessage drop ;M :M EnumChildWindows: ( lparam pCallBack -- f ) MDIClient: self Call EnumChildWindows ;M --- 99,214 ---- ;M ! :M WindowHasMenu: ( -- f ) ! TRUE ;M :M WindowStyle: ( -- style ) ! WindowStyle: super WS_CLIPCHILDREN or ;M ! :M WindowTitle: ( -- z" ) ! \ *G Get the title text for the frame window. ! z" MDI Frame Window" ;M : DefFrameProc ( h m w l -- f ) ! 4reverse MDIClient: self swap Call DefFrameProc ; ! \ remove if MDIClient window does not fill entire ! \ client area, use On_Size instead to Move: MDIClient ! \ :M WM_SIZE ( h m w l -- f ) ! \ DefFrameProc ;M ! ! :M WM_MENUCHAR ( h m w l -- f ) ! DefFrameProc ;M ! ! :M WM_SETFOCUS ( h m w l -- f ) ! DefFrameProc ;M ! ! :M WM_NCACTIVATE ( h m w l -- f ) ! DefFrameProc ;M ! ! :M WM_COMMAND ( h m w l -- f ) WM_COMMAND WM: super ?dup 0= IF DefFrameProc THEN ;M ! : SendMDIMessage ( l w message -- result ) ! MDIClient: self Call SendMessage ; ! : SendMDIMessageDrop ( lParam wParam message -- ) ! SendMDIMessage drop ; ! :M SetRedraw: ( f -- ) ! \ *G Set the redraw state of the window. ! \ *P \i f \d Specifies the redraw state. If this parameter is TRUE, the ! \ ** content can be redrawn after a change. If this parameter is FALSE, ! \ ** the content cannot be redrawn after a change. ! 0 swap WM_SETREDRAW SendMDIMessageDrop ;M ! ! :M Tile: ( f -- ) ! \ *G Arrange all child windows in a tile format. ! \ *P \i f \d can be one of the following values optionally combined with ! \ ** MDITILE_SKIPDISABLED to prevent disabled MDI child windows from being ! \ ** tiled. ! \ *L ! \ *| MDITILE_HORIZONTAL | Tiles windows horizontally. | ! \ *| MDITILE_VERTICAL | Tiles windows vertically. | ! 0 swap WM_MDITILE SendMDIMessageDrop ;M ! ! :M Arrange: ( -- ) ! \ *G Arrange all minimized child windows. It does not affect child ! \ ** windows that are not minimized. ! 0 0 WM_MDIICONARRANGE SendMDIMessageDrop ;M ! ! :M Cascade: ( -- ) ! \ *G Arrange all child windows in a cascade format. ! 0 0 WM_MDICASCADE SendMDIMessageDrop ;M ! ! :M RefreshMenu: ( -- ) ! \ *G Refresh the window menu of the MDI frame window. ! 0 0 WM_MDIREFRESHMENU SendMDIMessageDrop hWnd Call DrawMenuBar drop ;M ! ! :M MDISetMenu: ( hmenuWindow hmenuFrame -- ) ! \ *G Replace the entire menu of an MDI frame window, replace the window menu ! \ *P of the frame window, or both. ! WM_MDISETMENU SendMDIMessageDrop hWnd Call DrawMenuBar drop ;M ! ! :M DrawMenuBar: ( -- ) ! \ *G Redraws the menu bar of the window. If the menu bar changes after the system ! \ ** has created the window, this function must be called to draw the changed menu bar. ! hWnd Call DrawMenuBar drop ;M ! ! :M Restore: ( hWnd -- ) ! \ *G Restore an MDI child window from maximized or minimized size. ! 0 swap WM_MDIRESTORE SendMDIMessageDrop ;M ! ! :M Maximize: ( hWnd -- ) ! \ *G M maximize an MDI child window. The system resizes the child window to make its ! \ ** client area fill the client window. The system places the child window's window ! \ ** menu icon in the rightmost position of the frame window's menu bar, and places ! \ ** the child window's restore icon in the leftmost position. The system also appends ! \ ** the title bar text of the child window to that of the frame window. ! 0 swap WM_MDIMAXIMIZE SendMDIMessageDrop ;M ! ! :M GetActive: ( -- Maximized handle ) ! \ *G Retrieve the handle to the active MDI child window. ! 0 sp@ 0 WM_MDIGETACTIVE SendMDIMessage ;M ! ! :M Activate: ( hWnd -- ) ! \ *G Activate a MDI child window. ! 0 swap WM_MDIACTIVATE SendMDIMessageDrop ;M ! ! :M Next: ( f hWnd -- ) ! \ *G Activate the next or previous child window. ! WM_MDINEXT SendMDIMessageDrop ;M ! ! :M Destroy: ( hWnd -- ) ! \ *G Destroy an MDI child window. ! 0 swap WM_MDIDESTROY SendMDIMessageDrop ;M ! ! :M CloseChild: ( hWnd -- ) ! \ *G Close an MDI child window. ! >r 0 0 WM_CLOSE r> Call SendMessage drop ;M :M EnumChildWindows: ( lparam pCallBack -- f ) + \ *G Enumerate the MDI child windows MDIClient: self Call EnumChildWindows ;M *************** *** 136,172 **** ; ! :M CloseAll: ( -- ) 0 &CloseAllChildren EnumChildWindows: self drop ;M int hChild ! :M GetFirstChild: ( -- hWndChild ) \ get handle of the first child window ! GW_CHILD MDIClient: self call GetWindow dup to hChild ;M ! :M GetNextChild: ( -- hWndChild ) \ get handle of the next child window ! GW_HWNDNEXT hChild call GetWindow dup to hChild ;M ! :M SendMessageToAllChildren: { wParam lParam msg -- } \ send a message to all child windows ! GetFirstChild: self ?dup ! if begin >r lParam wParam msg r> call SendMessage drop ! GetNextChild: self dup 0= ! until drop ! then ;M ! :M PostMessageToAllChildren: { wParam lParam msg -- } \ post a message to all child windows ! GetFirstChild: self ?dup ! if begin >r lParam wParam msg r> call PostMessage drop ! GetNextChild: self dup 0= ! until drop ! then ;M ;Class \ \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ! \ MDI Child Window class \ \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ! :Class MDIChildWindow <super Window :M Classinit: ( -- ) --- 224,270 ---- ; ! :M CloseAll: ( -- ) ! \ *G Close all MDI child windows. 0 &CloseAllChildren EnumChildWindows: self drop ;M int hChild ! :M GetFirstChild: ( -- hWndChild ) ! \ *G Get handle of the first child window ! GW_CHILD MDIClient: self call GetWindow dup to hChild ;M ! :M GetNextChild: ( -- hWndChild ) ! \ *G Get handle of the next child window. \n ! \ ** NOTE: you must call GetFirstChild: first. ! GW_HWNDNEXT hChild call GetWindow dup to hChild ;M ! :M SendMessageToAllChildren: { wParam lParam msg -- } ! \ *G Send a message to all child windows ! GetFirstChild: self ?dup ! if begin >r lParam wParam msg r> call SendMessage drop ! GetNextChild: self dup 0= ! until drop ! then ;M ! :M PostMessageToAllChildren: { wParam lParam msg -- } ! \ *G Post a message to all child windows ! GetFirstChild: self ?dup ! if begin >r lParam wParam msg r> call PostMessage drop ! GetNextChild: self dup 0= ! until drop ! then ;M ;Class + \ *G End of MDIFrameWindow class \ \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ! \ *W <a name="MDIChildWindow"></a> ! \ *S MDI Child window class \ \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ! :Class MDIChildWindow <super Window ! \ *G This is the base class for all windows that should be displayed ! \ ** within the client area of a MDIFrameWindow. :M Classinit: ( -- ) *************** *** 215,227 **** ; ! :M DefaultIcon: ( -- hIcon ) 101 appInst Call LoadIcon ;M ! :M ExWindowStyle: ( -- exstyle) WS_EX_MDICHILD ;M ! :M ParentWindow: ( -- hParent ) \ return the handle of parent, 0 = no parent ! Gethandle: Parent ! ;M ! :M Start: ( Parent -- ) \ create a new window object to Parent MDI-child-class --- 313,330 ---- ; ! :M DefaultIcon: ( -- hIcon ) ! \ *G Return the handle of the Icon whitch should be displayed in the upper ! \ ** left corner of the MDi child window. ! 101 appInst Call LoadIcon ;M ! :M ExWindowStyle: ( -- exstyle) ! WS_EX_MDICHILD ;M ! :M ParentWindow: ( -- hParent ) ! \ *G Teturn the handle of parent, 0 = no parent ! Gethandle: Parent ;M ! :M Start: ( Parent -- ) ! \ *G Create a new MDI child window object to Parent MDI-child-class *************** *** 232,256 **** :M WindowStyle: ( -- style ) ! [ WS_CHILD WS_VISIBLE or ] literal ! ;M ! :M WindowTitle: ( -- z" ) z" MDI Child Window" ;M ! :M WindowHasMenu: ( -- f ) FALSE ;M ! :M StartPos: ( -- x y ) CW_USEDEFAULT dup ;M ! :M StartSize: ( -- w h ) CW_USEDEFAULT dup ;M ! :M On_QueryEnd: ( -- f ) TRUE ;M :M WM_QUERYENDSESSION ( h m w l -- f ) On_QueryEnd: [ self ] ! dup IF drop DefMDIChildProc THEN ;M ! :M On_Close: ( -- f ) \ False to cancel close ! TRUE ! ;M :M WM_CLOSE ( h m w l -- f ) --- 335,372 ---- :M WindowStyle: ( -- style ) ! [ WS_CHILD WS_VISIBLE or ] literal ;M ! :M WindowTitle: ( -- z" ) ! \ *G Get the title text for the MDI child window. ! z" MDI Child Window" ;M ! :M WindowHasMenu: ( -- f ) ! FALSE ;M ! :M StartPos: ( -- x y ) ! CW_USEDEFAULT dup ;M ! :M StartSize: ( -- w h ) ! CW_USEDEFAULT dup ;M ! :M On_QueryEnd: ( -- f ) ! \ *G This method is called when the user chooses to end the session or when an ! \ ** application calls the ExitWindows function. If any application returns zero, ! \ ** the session is not ended. ! \ *P The default method returns TRUE, so that the session will be ended. ! TRUE ;M :M WM_QUERYENDSESSION ( h m w l -- f ) On_QueryEnd: [ self ] ! dup IF drop DefMDIChildProc THEN ;M ! :M On_Close: ( -- f ) ! \ *G This method is called when the user chooses to close the MDI child window. ! \ ** If it returns FALSE the window will not be closed. ! \ *P Override the method to check if the document within the child window ! \ ** need's to be saved. ! \ *P The default method returns TRUE, so that the window will be closed. ! TRUE ;M :M WM_CLOSE ( h m w l -- f ) *************** *** 272,282 **** \ Failing to this, will cause in very weird results and malfunction! ! :M WM_CHILDACTIVATE ( h m w l -- f ) DefMDIChildProc ;M ! :M WM_GETMINMAXINFO ( h m w l -- f ) DefMDIChildProc ;M ! :M WM_MENUCHAR ( h m w l -- f ) DefMDIChildProc ;M ! :M WM_MOVE ( h m w l -- f ) DefMDIChildProc ;M :M WM_SETFOCUS ( h m w l -- f ) --- 388,433 ---- \ Failing to this, will cause in very weird results and malfunction! ! :M On_ChildActivate: ( -- ) ! \ *G Handle the WM_CHILDACTIVATE message. This message is sent to a child window ! \ ** when the user clicks the window's title bar or when the window is activated, ! \ ** moved, or sized. ! ;M ! :M WM_CHILDACTIVATE ( h m w l -- f ) ! On_ChildActivate: [ self ] ! DefMDIChildProc ;M ! :M On_GetMinMaxInfo: ( pMinMaxInfo -- pMinMaxInfo ) ! \ *G Handle the WM_GETMINMAXINFO message. This message is sent to a window when the size ! \ ** or position of the window is about to change. An application can use this message ! \ ** to override the window's default maximized size and position, or its default minimum ! \ ** or maximum tracking size. ! \ *P \i pMinMaxInfo \d Pointer to a MINMAXINFO structure that contains the default maximized ! \ ** position and dimensions, and the default minimum and maximum tracking sizes. An application ! \ ** can override the defaults by setting the members of this structure. ! ;M ! :M WM_GETMINMAXINFO ( h m w l -- f ) ! On_GetMinMaxInfo: [ self ] ! DefMDIChildProc ;M ! ! :M On_MenuChar: ( w l -- w l ) ! \ *G Handle the WM_MENUCHAR message. This message is sent when a menu is active and the user ! \ ** presses a key that does not correspond to any mnemonic or accelerator key. This message ! \ ** is sent to the window that owns the menu. ! ;M ! ! :M WM_MENUCHAR ( h m w l -- f ) ! On_MenuChar: [ self ] ! DefMDIChildProc ;M ! ! :M On_Move: ( l -- l ) ! \ *G Handle the WM_MOVE message. This message is sent after a window has been moved. ! ;M ! ! :M WM_MOVE ( h m w l -- f ) ! On_Move: [ self ] ! DefMDIChildProc ! ;M :M WM_SETFOCUS ( h m w l -- f ) *************** *** 291,295 **** ;M ! :M On_SysCommand: ( h m w l -- f ) FALSE ;M :M WM_SYSCOMMAND ( h m w l -- f ) --- 442,450 ---- ;M ! :M On_SysCommand: ( h m w l -- h m w l f ) ! \ *G Handle the WM_SYSCOMMAND message. A window receives this message when the user chooses ! \ ** a command from the window menu or when the user chooses the maximize button, minimize ! \ ** button, restore button, or close button. ! FALSE ;M :M WM_SYSCOMMAND ( h m w l -- f ) *************** *** 298,302 **** ;M ! :M On_Command: ( h m w l -- f ) FALSE ;M :M WM_COMMAND ( h m w l -- f ) --- 453,461 ---- ;M ! :M On_Command: ( h m w l -- h m w l f ) ! \ *G Handle the WM_COMMAND message. This message is sent when the user selects a command item ! \ ** from a menu, when a control sends a notification message to its parent window, or when an ! \ ** accelerator keystroke is translated. ! FALSE ;M :M WM_COMMAND ( h m w l -- f ) *************** *** 306,313 **** ;Class \s \ Example ! \ ( need to have WM_SIZE call DefFrameProc for this example ) MDIFrameWindow Frame --- 465,475 ---- ;Class + \ *G End of MDIChildWindow class + + \ *Z \s \ Example ! \ ( need to have WM_SIZE call DefFrameProc in MDIFrameWindow for this example ) MDIFrameWindow Frame *************** *** 338,344 **** : DoMDIMsg ( pMsg f -- pMsg f ) dup MDIClient: Frame 0<> and ! IF ! drop dup MDIClient: Frame Call TranslateMDISysAccel 0= ! THEN ! ; msg-chain chain-add DoMDIMsg --- 500,505 ---- : DoMDIMsg ( pMsg f -- pMsg f ) dup MDIClient: Frame 0<> and ! IF drop dup MDIClient: Frame Call TranslateMDISysAccel 0= ! THEN ; ! msg-chain chain-add DoMDIMsg Index: HTMLcontrol.F =================================================================== RCS file: /cvsroot/win32forth/win32forth/src/lib/HTMLcontrol.F,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** HTMLcontrol.F 11 Jan 2006 17:45:20 -0000 1.3 --- HTMLcontrol.F 14 Jan 2006 12:28:21 -0000 1.4 *************** *** 109,114 **** free-lasttypelib - \ *S Example - \ *P For an example see: demos\HtmlControlDemo.f - \ *Z --- 109,111 ---- |
From: Dirk B. <db...@us...> - 2006-01-13 17:50:42
|
Update of /cvsroot/win32forth/win32forth/src/lib In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv26243/src/lib Modified Files: AcceleratorTables.f file.f Log Message: Added documentation for the Accelerator table support and the file I/O classes Index: file.f =================================================================== RCS file: /cvsroot/win32forth/win32forth/src/lib/file.f,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** file.f 31 Dec 2005 11:12:44 -0000 1.6 --- file.f 13 Jan 2006 17:50:33 -0000 1.7 *************** *** 1,4 **** --- 1,8 ---- \ $Id$ + \ *D doc\classes\ + \ *! File + \ *T Classes for File I/O + anew -File.f *************** *** 11,18 **** \ ----------------------------------------------------------------------------- ! \ File I/O class \ ----------------------------------------------------------------------------- - :Class File <Super Object int errorcode --- 15,23 ---- \ ----------------------------------------------------------------------------- ! \ *W <a name="File"></a> ! \ *S File I/O class \ ----------------------------------------------------------------------------- :Class File <Super Object + \ *G File I/O class int errorcode *************** *** 53,56 **** --- 58,62 ---- :M Close: ( -- ) + \ *G Close the file. hfile if hfile close-file to errorcode *************** *** 61,64 **** --- 67,71 ---- :M Open: ( -- f ) + \ *G Open the file Close: self filename count mode open-file dup to errorcode *************** *** 69,72 **** --- 76,80 ---- :M Read: { addr cnt -- f } + \ *G Read cnt bytes from the file into memory hfile if addr cnt hfile read-file *************** *** 77,80 **** --- 85,89 ---- :M Write: { addr cnt -- f } + \ *G Write cnt bytes from memory into the file. hfile if addr cnt hfile write-file *************** *** 85,88 **** --- 94,98 ---- :M Create: ( -- f ) + \ *G Create the file. Close: self filename count mode create-file dup to errorcode *************** *** 93,96 **** --- 103,107 ---- :M Delete: ( -- ) + \ *G Delete the file Close: self filename count delete-file to errorcode *************** *** 98,101 **** --- 109,113 ---- :M Rename: { addr cnt -- } + \ *G Rename the file. Close: self filename count addr cnt rename-file to errorcode *************** *** 105,108 **** --- 117,121 ---- :M GetPosition: ( -- ud ) + \ *G Get the position of the file pointer hfile if hfile file-position to errorcode *************** *** 111,114 **** --- 124,128 ---- :M RePosition: ( ud -- ) + \ *G Set the position of the file pointer hfile -if reposition-file to errorcode *************** *** 117,120 **** --- 131,135 ---- :M FileSize: ( -- ud ) + \ *G Get the size of the file hfile if hfile file-size to errorcode *************** *** 122,126 **** then ;M ! :M Append: ( -- ) \ set append mode hfile if hfile file-append to errorcode --- 137,142 ---- then ;M ! :M Append: ( -- ) ! \ *G Set append mode hfile if hfile file-append to errorcode *************** *** 128,131 **** --- 144,148 ---- :M Flush: ( -- ) + \ *G Flush the file hfile if hfile flush-file to errorcode *************** *** 134,137 **** --- 151,155 ---- :M ReadLine: ( addr len -- len eof ) + \ *G Read a line from the file. hfile ?dup if read-line to errorcode *************** *** 141,146 **** :M WriteLine: ( addr len -- ) hfile ! -if write-line to errorcode s" Write Line" ismsgtext ?fileerror else 3drop --- 159,165 ---- :M WriteLine: ( addr len -- ) + \ *G Write a line to the file hfile ! -if write-line to errorcode s" Write Line" ismsgtext ?fileerror else 3drop *************** *** 148,151 **** --- 167,171 ---- :M Resize: ( ud -- ) + \ *G Resize the file hfile ?dup if resize-file to errorcode *************** *** 154,184 **** then ;M ! :M Exist?: ( -- ) filename count file-status nip 0= ;M :M SetName: ( addr cnt -- ) maxcounted min 0max filename place filename +NULL ;M :M GetName: ( -- addr ) filename ;M :M ClearName: ( -- ) filename max-path erase ;M :M SetMode: ( mode -- ) to mode ;M :M ErrorCode: ( -- n ) errorcode ;M ;Class ! \ ----------------------------------------------------------------------------- ! \ class for loading/saving a complete file from/to memory \ ----------------------------------------------------------------------------- :Class ReadFile <Super File int FileBuffer --- 174,212 ---- then ;M ! :M Exist?: ( -- f ) ! \ *G Check if the file exist filename count file-status nip 0= ;M :M SetName: ( addr cnt -- ) + \ *G Set the file name maxcounted min 0max filename place filename +NULL ;M :M GetName: ( -- addr ) + \ *G Get the file name filename ;M :M ClearName: ( -- ) + \ *G Clear the file name filename max-path erase ;M :M SetMode: ( mode -- ) + \ *G Set the I/O mode to mode ;M :M ErrorCode: ( -- n ) + \ *G Get the error code of the previous file I/O errorcode ;M ;Class ! \ *G End of File class \ ----------------------------------------------------------------------------- ! \ *W <a name="ReadFile"></a> ! \ *S Class for loading/saving a complete file from/to memory \ ----------------------------------------------------------------------------- :Class ReadFile <Super File + \ *G ReadFile class for loading/saving a complete file from/to memory. int FileBuffer *************** *** 188,197 **** 0 to FileBuffer ;M ! :M ReleaseBuffer: ( -- ) \ free the memory of the file-buffer FileBuffer ?dup if release 0 to FileBuffer then ;M ! :M GetBuffer: ( -- addr len ) \ get the address and len of the file-buffer FileBuffer ?dup if lcount --- 216,227 ---- 0 to FileBuffer ;M ! :M ReleaseBuffer: ( -- ) ! \ *G Free the memory of the file-buffer FileBuffer ?dup if release 0 to FileBuffer then ;M ! :M GetBuffer: ( -- addr len ) ! \ *G Fet the address and len of the file-buffer FileBuffer ?dup if lcount *************** *** 199,203 **** then ;M ! :M GetLength: ( -- len ) \ get the length of the file-buffer FileBuffer ?dup if @ --- 229,234 ---- then ;M ! :M GetLength: ( -- len ) ! \ *G Get the length of the file-buffer FileBuffer ?dup if @ *************** *** 205,211 **** then ;M ! :M SetLength: ( len -- ) \ set the length of the file-buffer ! \ NOTE: You can set the length with this method behind the ! \ allocated memory of the file-buffer! So take care. FileBuffer ?dup if ! --- 236,243 ---- then ;M ! :M SetLength: ( len -- ) ! \ *G Set the length of the file-buffer. ! \ *P NOTE: with this method you can set the length behind the ! \ ** allocated memory of the file-buffer! So take care. FileBuffer ?dup if ! *************** *** 213,224 **** then ;M ! :M SetBuffer: ( addr len -- ) \ set the address and len of the file-buffer ReleaseBuffer: self swap dup to FileBuffer ! ;M :M AllocBuffer: ( len -- ) dup cell+ malloc swap SetBuffer: self ;M ! :M LoadFile: ( addr len -- f ) \ load a file into the file-buffer, f=true on success Setname: self r/o SetMode: self --- 245,259 ---- then ;M ! :M SetBuffer: ( addr len -- ) ! \ *G Set the address and length of the file-buffer ReleaseBuffer: self swap dup to FileBuffer ! ;M :M AllocBuffer: ( len -- ) + \ *G Allocate memory for the file-buffer dup cell+ malloc swap SetBuffer: self ;M ! :M LoadFile: ( addr len -- f ) ! \ *G load a file into the file-buffer, f=true on success Setname: self r/o SetMode: self *************** *** 232,236 **** then Close: self ;M ! :M SaveFile: ( -- ) \ save the file-buffer to the file FileBuffer 0= ?exitm r/w SetMode: self --- 267,272 ---- then Close: self ;M ! :M SaveFile: ( -- ) ! \ *G Save the file-buffer to the file FileBuffer 0= ?exitm r/w SetMode: self *************** *** 244,266 **** ;Class ! ! \ ReadFile MyDumpFile ! \ ! \ : DumpFile ( addr len -- ) ! \ ! \ \ Load the file into memory ! \ LoadFile: MyDumpFile ! \ if \ get the address and length of the file buffer ! \ GetBuffer: MyDumpFile ( addr len ) ! \ ! \ \ do something with the file data ! \ dump ! \ ! \ \ don't forget to close the file ! \ Close: MyDumpFile ! \ else abort" Can't read file." ! \ then ; ! \ ! \ s" temp.f" DumpFile module --- 280,311 ---- ;Class ! \ *G End of ReadFile class module + + \s + + \ *S Example + \ *+ + + ReadFile MyDumpFile + + : DumpFile ( addr len -- ) + + \ Load the file into memory + LoadFile: MyDumpFile + if \ get the address and length of the file buffer + GetBuffer: MyDumpFile ( addr len ) + + \ do something with the file data + dump + + \ don't forget to close the file + Close: MyDumpFile + else abort" Can't read file." + then ; + + s" temp.f" DumpFile + + \ *- + \ *Z Index: AcceleratorTables.f =================================================================== RCS file: /cvsroot/win32forth/win32forth/src/lib/AcceleratorTables.f,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** AcceleratorTables.f 1 May 2005 06:27:41 -0000 1.2 --- AcceleratorTables.f 13 Jan 2006 17:50:33 -0000 1.3 *************** *** 2,20 **** \ October 2004 Rod Oakford ! \ --------------------------------------------------------------------------------------------- ! \ To use Accelerator Tables in an application: (see the example below) ! \ Define the Accelerator Tables required using: AcceleratorTable <name> ! \ Start the entries for each table with: <name> table ! \ Add entries with: ( flags key-code command-id ) AccelEntry ! \ End the table with: ( Window ) HandlesThem ! \ This will add code to process the Accelerator Keys in the message chain. ! \ Use: <name> EnableAccelerators to enable the accelerator commands ! \ and send them to the window used with HandlesThem. ! \ These accelerator commands are handled in the window's OnWmCommand: method. ! \ Use: <name> DisableAccelerators to disable the accelerator commands for this table. ! \ Always disable (destroy) every table before the application closes to prevent memory leaks. ! \ --------------------------------------------------------------------------------------------- cr .( Windows Accelerator Table support...) --- 2,22 ---- \ October 2004 Rod Oakford ! \ *D doc ! \ *! p-AcceleratorTables ! \ *T Windows Accelerator Table support ! \ *P To use Accelerator Tables in an application: ! \ *P Define the Accelerator Tables required using: AcceleratorTable <name> ! \ *P Start the entries for each table with: <name> table ! \ *P Add entries with: ( flags key-code command-id ) AccelEntry ! \ *P End the table with: ( Window ) HandlesThem ! \ ** This will add code to process the Accelerator Keys in the message chain. ! \ *P Use: <name> EnableAccelerators to enable the accelerator commands ! \ ** and send them to the window used with HandlesThem. ! \ *P These accelerator commands are handled in the window's OnWmCommand: method. ! \ *P Use: <name> DisableAccelerators to disable the accelerator commands for this table. ! \ ** Always disable (destroy) every table before the application closes to prevent memory leaks. ! \ *S Glossary cr .( Windows Accelerator Table support...) *************** *** 27,46 **** EXTERNAL ! : Dump-Accelerator-Key-Table ( a -- ) cr dup BODY> .name ." Table:" cr ." Address Flags Key ID" cell+ 2@ 6 * bounds DO ! cr i 6 h.R i w@ 5 h.R i 2 + w@ 5 h.R i 4 + w@ 4 h.R 6 +LOOP cr ; ! : AcceleratorTable ( <name> -- ) \ creates a new named Accelerator Table Create here to CurrentTable ( Handle ) 0 , ( AccelEntries ) 0 , ( AccelTable ) here , ; ! : Table ( a -- ) \ starts a table of entries in the dictionary dup to CurrentTable here 0 rot cell+ 2! ; ! : AccelEntry ( flags key-code command-id -- ) \ adds entries to the current table ! rot 3 ( FVIRTKEY FNOINVERT or ) or w, swap w, w, CurrentTable cell+ incr ; --- 29,52 ---- EXTERNAL ! : Dump-Accelerator-Key-Table ( a -- ) \ W32F sys ! \ *G Dump an Accelerator Table to the console window- cr dup BODY> .name ." Table:" cr ." Address Flags Key ID" cell+ 2@ 6 * bounds DO ! cr i 6 h.R i w@ 5 h.R i 2 + w@ 5 h.R i 4 + w@ 4 h.R 6 +LOOP cr ; ! : AcceleratorTable ( <name> -- ) ! \ *G Create a new named Accelerator Table Create here to CurrentTable ( Handle ) 0 , ( AccelEntries ) 0 , ( AccelTable ) here , ; ! : Table ( a -- ) \ W32F sys ! \ *G Start a table of entries in the dictionary dup to CurrentTable here 0 rot cell+ 2! ; ! : AccelEntry ( flags key-code command-id -- ) \ W32F sys ! \ *G Add a entry to the current table ! rot 3 ( FVIRTKEY FNOINVERT or ) or w, swap w, w, CurrentTable cell+ incr ; *************** *** 48,52 **** Sys-warning-off ! : HandlesThem ( Window -- ) \ adds the code in #DOES> to the message chain here DOVAR , CurrentTable , swap ( Window ) , dup msg-chain noop-chain-add ! #DOES> ( pMsg f pfa -- pMsg f ) --- 54,60 ---- Sys-warning-off ! : HandlesThem ( Window -- ) \ W32F ! \ *G Close a table and assign it to the given window. ! \ adds the code in #DOES> to the message chain here DOVAR , CurrentTable , swap ( Window ) , dup msg-chain noop-chain-add ! #DOES> ( pMsg f pfa -- pMsg f ) *************** *** 57,68 **** Sys-warning-on ! : DisableAccelerators ( a -- ) \ destroys the Windows Accelerator Table dup @ Call DestroyAcceleratorTable drop off ; - \ it does not matter trying to destroy a table more than once ! : EnableAccelerators ( a -- ) \ creates the Windows Accelerator Table dup DisableAccelerators ! dup cell+ 2@ swap Call CreateAcceleratorTable swap ! ; ! \ it does not matter creating the same table again as long as it is destroyed first MODULE --- 65,78 ---- Sys-warning-on ! : DisableAccelerators ( a -- ) \ W32F ! \ *G Destroys the Windows Accelerator Table. ! \ ** It does not matter trying to destroy a table more than once dup @ Call DestroyAcceleratorTable drop off ; ! : EnableAccelerators ( a -- ) \ W32F ! \ *G Creates the Windows Accelerator Table. ! \ ** It does not matter creating the same table again as long as it is destroyed first dup DisableAccelerators ! dup cell+ 2@ swap Call CreateAcceleratorTable swap ! ; MODULE *************** *** 72,76 **** \s ! \ EXAMPLE \ \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ --- 82,87 ---- \s ! \ *S Example ! \ *+ \ \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ *************** *** 90,94 **** :M StartSize: 220 50 ;M ! :M On_Init: ( -- ) NumKeys EnableAccelerators --- 101,105 ---- :M StartSize: 220 50 ;M ! :M On_Init: ( -- ) NumKeys EnableAccelerators *************** *** 175,177 **** cr .( CharKeys EnableAccelerators will enable them again.) cr .( Closing the Test window will disable all the accelerators) ! |
From: Dirk B. <db...@us...> - 2006-01-13 17:50:41
|
Update of /cvsroot/win32forth/win32forth/doc In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv26243/doc Modified Files: p-classes.htm p-index.htm Added Files: p-AcceleratorTables.htm Log Message: Added documentation for the Accelerator table support and the file I/O classes --- NEW FILE: p-AcceleratorTables.htm --- <html> <head> <meta http-equiv="Content-Language" content="en-gb"> <meta name="GENERATOR" content="dexh00"> <meta name="ProgId" content="FrontPage.Editor.Document"> <meta http-equiv="Content-Type" content="text/html; charset=windows-1252"> <title> </title><style><!-- h1 { font-family: Tahoma; font-size: 24pt; font-weight: bold } h2 { font-family: Tahoma; font-size: 18pt; font-weight: bold } --> </style> </head> <body><h1 align="center"> <a href="mailto:win...@ya...?subject=DOC:Doc error in $Id: p-AcceleratorTables.htm,v 1.1 2006/01/13 17:50:32 dbu_de Exp $"> <img border="0" src="TELLUS.gif" align="left" width="32" height="32"></a> <img border="0" src="FORTHPRO.gif" width="32" height="32"> Win32Forth</h1> <hr /><h1>Windows Accelerator Table support </h1><hr /><p>To use Accelerator Tables in an application: </p><p>Define the Accelerator Tables required using: AcceleratorTable <name> </p><p>Start the entries for each table with: <name> table </p><p>Add entries with: ( flags key-code command-id ) AccelEntry </p><p>End the table with: ( Window ) HandlesThem This will add code to process the Accelerator Keys in the message chain. </p><p>Use: <name> EnableAccelerators to enable the accelerator commands and send them to the window used with HandlesThem. </p><p>These accelerator commands are handled in the window's OnWmCommand: method. </p><p>Use: <name> DisableAccelerators to disable the accelerator commands for this table. Always disable (destroy) every table before the application closes to prevent memory leaks. </p><h2>Glossary </h2><pre><b><a name="0">: Dump-Accelerator-Key-Table ( a -- ) \ W32F sys </a></b></pre><p>Dump an Accelerator Table to the console window- </p><pre><b><a name="0">: AcceleratorTable ( <name> -- ) </a></b></pre><p>Create a new named Accelerator Table </p><pre><b><a name="0">: Table ( a -- ) \ W32F sys </a></b></pre><p>Start a table of entries in the dictionary </p><pre><b><a name="0">: AccelEntry ( flags key-code command-id -- ) \ W32F sys </a></b></pre><p>Add a entry to the current table </p><pre><b><a name="0">: HandlesThem ( Window -- ) \ W32F </a></b></pre><p>Close a table and assign it to the given window. </p><pre><b><a name="0">: DisableAccelerators ( a -- ) \ W32F </a></b></pre><p>Destroys the Windows Accelerator Table. It does not matter trying to destroy a table more than once </p><pre><b><a name="0">: EnableAccelerators ( a -- ) \ W32F </a></b></pre><p>Creates the Windows Accelerator Table. It does not matter creating the same table again as long as it is destroyed first </p><h2>Example </h2><pre> \ \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ \ Define some accelerator tables \ \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ AcceleratorTable FunctionKeys AcceleratorTable CharKeys AcceleratorTable NumKeys \ \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ \ Define a small window that will receive the accelerator commands \ \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ :Object TEST <Super Window :M StartSize: 220 50 ;M :M On_Init: ( -- ) NumKeys EnableAccelerators FunctionKeys EnableAccelerators CharKeys EnableAccelerators ;M :M OnWmCommand: ( hwnd msg wparam lparam -- hwnd msg wparam lparam ) over LOWORD ( Command ID ) cr ." Accelerator command ID: " . ;M :M On_Done: ( -- ) NumKeys DisableAccelerators FunctionKeys DisableAccelerators CharKeys DisableAccelerators ;M ;Object \ \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ \ Accelerator table entries \ \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ NumKeys table \ Flags Key Code Command ID FCONTROL VK_NUMPAD0 0 AccelEntry FCONTROL VK_NUMPAD1 1 AccelEntry FCONTROL VK_NUMPAD2 2 AccelEntry FCONTROL VK_NUMPAD3 3 AccelEntry FCONTROL VK_NUMPAD4 4 AccelEntry FCONTROL VK_NUMPAD5 5 AccelEntry FCONTROL VK_NUMPAD6 6 AccelEntry FCONTROL VK_NUMPAD7 7 AccelEntry FCONTROL VK_NUMPAD8 8 AccelEntry FCONTROL VK_NUMPAD9 9 AccelEntry FCONTROL VK_DECIMAL 16 AccelEntry FCONTROL VK_RETURN 17 AccelEntry FCONTROL VK_ADD 18 AccelEntry FCONTROL VK_SUBTRACT 19 AccelEntry TEST HandlesThem FunctionKeys table \ Flags Key Code Command ID FSHIFT VK_F1 65 AccelEntry FSHIFT VK_F2 66 AccelEntry FSHIFT VK_F3 67 AccelEntry FSHIFT VK_F4 68 AccelEntry TEST HandlesThem CharKeys table \ Flags Key Code Command ID 0 'Z' 129 AccelEntry 0 'X' 130 AccelEntry 0 'C' 131 AccelEntry 0 'V' 132 AccelEntry 0 'B' 133 AccelEntry 0 'N' 134 AccelEntry 0 'M' 135 AccelEntry TEST HandlesThem \ \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ \ Instructions \ \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ cr NumKeys Dump-Accelerator-Key-Table FunctionKeys Dump-Accelerator-Key-Table CharKeys Dump-Accelerator-Key-Table start: test cr .( Make sure the test window has the focus.) cr .( Press some of the accelerator keys to see the IDs in the console window.) cr .( In this example NumPad keys need Ctrl [Num Lock needs to be on].) cr .( Function keys work with Shift, Char keys work without Shift, Ctrl or Alt.) cr .( All combinations of Shift, Ctrl, Alt or nothing are possible.) cr .( CharKeys DisableAccelerators will disable the CharKeys accelerators.) cr .( CharKeys EnableAccelerators will enable them again.) cr .( Closing the Test window will disable all the accelerators) </pre><hr><p>Document $Id: p-AcceleratorTables.htm,v 1.1 2006/01/13 17:50:32 dbu_de Exp $</p> </body></html> Index: p-index.htm =================================================================== RCS file: /cvsroot/win32forth/win32forth/doc/p-index.htm,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** p-index.htm 9 Jan 2006 13:33:42 -0000 1.8 --- p-index.htm 13 Jan 2006 17:50:32 -0000 1.9 *************** *** 149,152 **** --- 149,153 ---- <li><a href="p-structures.htm">Structures in Win32Forth</a></li> <li><a href="p-numconv.htm">Number Conversion</a></li> + <li><a href="p-AcceleratorTables.htm">Accelerator tables</a></li> <li><a href="p-relnotes.6.12.htm">Release Notes</a></li> </ul> Index: p-classes.htm =================================================================== RCS file: /cvsroot/win32forth/win32forth/doc/p-classes.htm,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** p-classes.htm 13 Jan 2006 12:09:26 -0000 1.6 --- p-classes.htm 13 Jan 2006 17:50:32 -0000 1.7 *************** *** 96,101 **** --- 96,107 ---- <p>All these classes are rewritten to use the GDI class library.</p> + <h2>Other classes</h2> + <ul> + <li><a href="./classes/File.htm#File">File</a> Class for file I/O.</li> + <li><a href="./classes/File.htm#ReadFile">ReadFile</a> Class for loading/saving a complete file from/to memory.</li> <hr> + <p>Document $Id$</p> + </body> </html> |
From: Dirk B. <db...@us...> - 2006-01-13 17:50:41
|
Update of /cvsroot/win32forth/win32forth/doc/classes In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv26243/doc/classes Added Files: File.htm Log Message: Added documentation for the Accelerator table support and the file I/O classes --- NEW FILE: File.htm --- <html> <head> <meta http-equiv="Content-Language" content="en-gb"> <meta name="GENERATOR" content="dexh00"> <meta name="ProgId" content="FrontPage.Editor.Document"> <meta http-equiv="Content-Type" content="text/html; charset=windows-1252"> <title> </title><style><!-- h1 { font-family: Tahoma; font-size: 24pt; font-weight: bold } h2 { font-family: Tahoma; font-size: 18pt; font-weight: bold } --> </style> </head> <body><h1 align="center"> <a href="mailto:win...@ya...?subject=DOC:Doc error in $Id: File.htm,v 1.1 2006/01/13 17:50:33 dbu_de Exp $"> <img border="0" src="../TELLUS.gif" align="left" width="32" height="32"></a> <img border="0" src="../FORTHPRO.gif" width="32" height="32"> Win32Forth</h1> <hr /><h1>Classes for File I/O </h1><hr /><a name="File"></a> <h2>File I/O class </h2><pre><b><a name="0">:Class File <Super Object </a></b></pre><p>File I/O class </p><pre><b><a name="0">:M Close: ( -- ) </a></b></pre><p>Close the file. </p><pre><b><a name="0">:M Open: ( -- f ) </a></b></pre><p>Open the file </p><pre><b><a name="0">:M Read: { addr cnt -- f } </a></b></pre><p>Read cnt bytes from the file into memory </p><pre><b><a name="0">:M Write: { addr cnt -- f } </a></b></pre><p>Write cnt bytes from memory into the file. </p><pre><b><a name="0">:M Create: ( -- f ) </a></b></pre><p>Create the file. </p><pre><b><a name="0">:M Delete: ( -- ) </a></b></pre><p>Delete the file </p><pre><b><a name="0">:M Rename: { addr cnt -- } </a></b></pre><p>Rename the file. </p><pre><b><a name="0">:M GetPosition: ( -- ud ) </a></b></pre><p>Get the position of the file pointer </p><pre><b><a name="0">:M RePosition: ( ud -- ) </a></b></pre><p>Set the position of the file pointer </p><pre><b><a name="0">:M FileSize: ( -- ud ) </a></b></pre><p>Get the size of the file </p><pre><b><a name="0">:M Append: ( -- ) </a></b></pre><p>Set append mode </p><pre><b><a name="0">:M Flush: ( -- ) </a></b></pre><p>Flush the file </p><pre><b><a name="0">:M ReadLine: ( addr len -- len eof ) </a></b></pre><p>Read a line from the file. </p><pre><b><a name="0">:M WriteLine: ( addr len -- ) </a></b></pre><p>Write a line to the file </p><pre><b><a name="0">:M Resize: ( ud -- ) </a></b></pre><p>Resize the file </p><pre><b><a name="0">:M Exist?: ( -- f ) </a></b></pre><p>Check if the file exist </p><pre><b><a name="0">:M SetName: ( addr cnt -- ) </a></b></pre><p>Set the file name </p><pre><b><a name="0">:M GetName: ( -- addr ) </a></b></pre><p>Get the file name </p><pre><b><a name="0">:M ClearName: ( -- ) </a></b></pre><p>Clear the file name </p><pre><b><a name="0">:M SetMode: ( mode -- ) </a></b></pre><p>Set the I/O mode </p><pre><b><a name="0">:M ErrorCode: ( -- n ) </a></b></pre><p>Get the error code of the previous file I/O </p><pre><b><a name="0">;Class </a></b></pre><p>End of File class </p><a name="ReadFile"></a> <h2>Class for loading/saving a complete file from/to memory </h2><pre><b><a name="0">:Class ReadFile <Super File </a></b></pre><p>ReadFile class for loading/saving a complete file from/to memory. </p><pre><b><a name="0">:M ReleaseBuffer: ( -- ) </a></b></pre><p>Free the memory of the file-buffer </p><pre><b><a name="0">:M GetBuffer: ( -- addr len ) </a></b></pre><p>Fet the address and len of the file-buffer </p><pre><b><a name="0">:M GetLength: ( -- len ) </a></b></pre><p>Get the length of the file-buffer </p><pre><b><a name="0">:M SetLength: ( len -- ) </a></b></pre><p>Set the length of the file-buffer. </p><p>NOTE: with this method you can set the length behind the allocated memory of the file-buffer! So take care. </p><pre><b><a name="0">:M SetBuffer: ( addr len -- ) </a></b></pre><p>Set the address and length of the file-buffer </p><pre><b><a name="0">:M AllocBuffer: ( len -- ) </a></b></pre><p>Allocate memory for the file-buffer </p><pre><b><a name="0">:M LoadFile: ( addr len -- f ) </a></b></pre><p>load a file into the file-buffer, f=true on success </p><pre><b><a name="0">:M SaveFile: ( -- ) </a></b></pre><p>Save the file-buffer to the file </p><pre><b><a name="0">;Class </a></b></pre><p>End of ReadFile class </p><h2>Example </h2><pre> ReadFile MyDumpFile : DumpFile ( addr len -- ) \ Load the file into memory LoadFile: MyDumpFile if \ get the address and length of the file buffer GetBuffer: MyDumpFile ( addr len ) \ do something with the file data dump \ don't forget to close the file Close: MyDumpFile else abort" Can't read file." then ; s" temp.f" DumpFile </pre><hr><p>Document $Id: File.htm,v 1.1 2006/01/13 17:50:33 dbu_de Exp $</p> </body></html> |
From: Dirk B. <db...@us...> - 2006-01-13 17:50:41
|
Update of /cvsroot/win32forth/win32forth/src/tools In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv26243/src/tools Modified Files: DexH-CreateDocs.f Log Message: Added documentation for the Accelerator table support and the file I/O classes Index: DexH-CreateDocs.f =================================================================== RCS file: /cvsroot/win32forth/win32forth/src/tools/DexH-CreateDocs.f,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** DexH-CreateDocs.f 13 Jan 2006 12:07:28 -0000 1.5 --- DexH-CreateDocs.f 13 Jan 2006 17:50:33 -0000 1.6 *************** *** 5,14 **** internal ! : create-doc ( addr len -- ) Prepend<home>\ (dex) ; external ! : create-class-docs ( -- ) W32FClassDocs --- 5,18 ---- internal ! : create-doc ( addr len -- ) Prepend<home>\ (dex) ; external ! : create-docs ( -- ) \ W32F tool ! \ *G Create the documentation for Win32Forth from ! \ ** the source files ! ! \ classes W32FClassDocs *************** *** 21,29 **** s" src\controls.f" create-doc s" src\lib\MdiDialog.f" create-doc - s" src\lib\AXControl.F" create-doc s" src\lib\HTMLcontrol.F" create-doc - \ GDI class library s" src\gdi\gdiStruct.f" create-doc --- 25,31 ---- *************** *** 37,40 **** --- 39,50 ---- s" src\gdi\gdiWindowDC.f" create-doc s" src\gdi\gdiMetafileDC.f" create-doc + + \ other classes + s" src\lib\file.f" create-doc + + \ other documentation + W32FDocs + + s" src\lib\AcceleratorTables.f" create-doc ; *************** *** 42,44 **** cls ! create-class-docs --- 52,54 ---- cls ! create-docs |
From: George H. <geo...@us...> - 2006-01-13 12:09:49
|
Update of /cvsroot/win32forth/win32forth/doc/classes In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv8328/win32forth/doc/classes Added Files: MdiDialog.htm Log Message: gah: Added docs for MdiDialog --- NEW FILE: MdiDialog.htm --- <html> <head> <meta http-equiv="Content-Language" content="en-gb"> <meta name="GENERATOR" content="dexh00"> <meta name="ProgId" content="FrontPage.Editor.Document"> <meta http-equiv="Content-Type" content="text/html; charset=windows-1252"> <title> W32F MdiDialog</title><style><!-- h1 { font-family: Tahoma; font-size: 24pt; font-weight: bold } h2 { font-family: Tahoma; font-size: 18pt; font-weight: bold } --> </style> </head> <body><h1 align="center"> <a href="mailto:win...@ya...?subject=DOC:Doc error in $Id: MdiDialog.htm,v 1.1 2006/01/13 12:09:26 georgeahubert Exp $"> <img border="0" src="../TELLUS.gif" align="left" width="32" height="32"></a> <img border="0" src="../FORTHPRO.gif" width="32" height="32"> Win32Forth</h1> <hr /><h1>MdiDialog -- Class for MDI windows containing controls. </h1><hr /><p>MdiDialogWindows can be designed with ForthForm. </p><p>The file MdiDialog.f in the src\lib folder is not loaded by default. The file Mdi.f is automatically loaded with this file if not already included. </p><h2>Glossary </h2><pre><b><a name="0">:CLASS MdiDialogWindow <Super MdiChildWindow </a></b></pre><p>Base class for Multi-document interface (MDI) child windows that contain controls. </p><pre><b><a name="0">:M ClassInit: ( -- ) </a></b></pre><p>Initialise the class. </p><pre><b><a name="0">:M ~: ( -- ) </a></b></pre><p>Destructor method called when a dynamic object is freed by DISPOSE. </p><hr><p>Document $Id: MdiDialog.htm,v 1.1 2006/01/13 12:09:26 georgeahubert Exp $</p> </body></html> |
From: George H. <geo...@us...> - 2006-01-13 12:09:49
|
Update of /cvsroot/win32forth/win32forth/doc In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv8328/win32forth/doc Modified Files: p-classes.htm Log Message: gah: Added docs for MdiDialog Index: p-classes.htm =================================================================== RCS file: /cvsroot/win32forth/win32forth/doc/p-classes.htm,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** p-classes.htm 11 Jan 2006 17:45:20 -0000 1.5 --- p-classes.htm 13 Jan 2006 12:09:26 -0000 1.6 *************** *** 32,35 **** --- 32,36 ---- <li><a href="./classes/Childwnd.htm">Child-Window</a> Class for child window objects.</li> <li><a href="./classes/Controls.htm#DialogWindow">DialogWindow</a> Class for windows that contain controls.</li> + <li><a href="./classes/MdiDialog.htm">MdiDialogWindow</a> Class for MDI windows that contain controls.</li> </ul> |
From: George H. <geo...@us...> - 2006-01-13 12:07:38
|
Update of /cvsroot/win32forth/win32forth/src/tools In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv7684/win32forth/src/tools Modified Files: DexH-CreateDocs.f Log Message: gah: Added dex comments to MdiDialog Index: DexH-CreateDocs.f =================================================================== RCS file: /cvsroot/win32forth/win32forth/src/tools/DexH-CreateDocs.f,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** DexH-CreateDocs.f 11 Jan 2006 17:45:20 -0000 1.4 --- DexH-CreateDocs.f 13 Jan 2006 12:07:28 -0000 1.5 *************** *** 20,23 **** --- 20,24 ---- s" src\control.f" create-doc s" src\controls.f" create-doc + s" src\lib\MdiDialog.f" create-doc s" src\lib\AXControl.F" create-doc |