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: George H. <geo...@us...> - 2006-02-08 14:26:46
|
Update of /cvsroot/win32forth/win32forth/doc In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv23074/win32forth/doc Modified Files: p-AcceleratorTables.htm p-classdbg.htm p-float.htm p-module.htm p-task.htm w32f-glossary.csv Log Message: gah: Updated glossary and docs Index: w32f-glossary.csv =================================================================== RCS file: /cvsroot/win32forth/win32forth/doc/w32f-glossary.csv,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** w32f-glossary.csv 7 Feb 2006 16:58:33 -0000 1.6 --- w32f-glossary.csv 8 Feb 2006 14:26:34 -0000 1.7 *************** *** 926,929 **** --- 926,931 ---- ">fpcw","n --","W32F Floating extra","CODE","","p-float.htm#3" "fpsw>","-- n","W32F Floating extra","CODE","","p-float.htm#4" + "B/FLOAT","-- n","W32F Floating extra","CONSTANT","","p-float.htm#5" + "cells/float","","","VALUE","","p-float.htm#6" "finit","--","W32F Floating extra","CODE","","p-float.htm#7" "F@","addr -- ; fs: -- r","ANSI Floating","CODE","","p-float.htm#8" *************** *** 951,967 **** "F2NIP","fs: r1 r2 r3 r4 -- r3 r4","W32F Floating extra","COLON","","p-float.htm#30" "fpi","fs: -- r","W32F Floating extra","CODE","","p-float.htm#31" ! "f0.0","FS: -- r","W32F Floating extra","CODE","","p-float.htm#32" "f1.0","fs: -- r","W32F Floating extra","CODE","","p-float.htm#33" "fL2t","fs: -- r","W32F Floating extra","CODE","","p-float.htm#34" "fL2e","fs: -- r","W32F Floating extra","CODE","","p-float.htm#35" "fLog2","fs: -- r","W32F Floating extra","CODE","","p-float.htm#36" ! "fLn2","fs: -- r","W32F Floating extra","CODE","","p-float.htm#37" ! "finf","FS: -- r","W32F Floating extra","FCONSTANT","","p-float.htm#38" ! "f2.0","FS: -- r","W32F Floating extra","FCONSTANT","","p-float.htm#39" ! "f10.0","FS: -- r","W32F Floating extra","FCONSTANT","","p-float.htm#40" ! "f0.5","FS: -- r","W32F Floating extra","FCONSTANT","","p-float.htm#41" ! "fbig","FS: -- r","W32F Floating extra","FCONSTANT","","p-float.htm#42" ! "feps","FS: -- r","W32F Floating extra","FCONSTANT","","p-float.htm#43" ! "fsmall","FS: -- r","W32F Floating extra","FCONSTANT","","p-float.htm#44" "a2**63","-- addr","W32F Floating extra","FVARIABLE","","p-float.htm#45" "sq2m1","-- addr","W32F Floating extra","FVARIABLE","","p-float.htm#46" --- 953,969 ---- "F2NIP","fs: r1 r2 r3 r4 -- r3 r4","W32F Floating extra","COLON","","p-float.htm#30" "fpi","fs: -- r","W32F Floating extra","CODE","","p-float.htm#31" ! "f0.0","fs: -- r","W32F Floating extra","CODE","","p-float.htm#32" "f1.0","fs: -- r","W32F Floating extra","CODE","","p-float.htm#33" "fL2t","fs: -- r","W32F Floating extra","CODE","","p-float.htm#34" "fL2e","fs: -- r","W32F Floating extra","CODE","","p-float.htm#35" "fLog2","fs: -- r","W32F Floating extra","CODE","","p-float.htm#36" ! "fLn2","fs: -- r","W32F Floating extra","CODE","","p-float.htm#37" ! "finf","fs: -- r","W32F Floating extra","FCONSTANT","","p-float.htm#38" ! "f2.0","fs: -- r","W32F Floating extra","FCONSTANT","","p-float.htm#39" ! "f10.0","fs: -- r","W32F Floating extra","FCONSTANT","","p-float.htm#40" ! "f0.5","fs: -- r","W32F Floating extra","FCONSTANT","","p-float.htm#41" ! "fbig","fs: -- r","W32F Floating extra","FCONSTANT","","p-float.htm#42" ! "feps","fs: -- r","W32F Floating extra","FCONSTANT","","p-float.htm#43" ! "fsmall","fs: -- r","W32F Floating extra","FCONSTANT","","p-float.htm#44" "a2**63","-- addr","W32F Floating extra","FVARIABLE","","p-float.htm#45" "sq2m1","-- addr","W32F Floating extra","FVARIABLE","","p-float.htm#46" *************** *** 973,977 **** "D>F","d -- ; Fs: -- r","ANSI Floating","CODE","","p-float.htm#52" "F>D","-- d ; fs: r --","ANSI Floating","CODE","","p-float.htm#53" ! "ZF>D","-- d ; fs: r --","W32F Floating extra","CODE","","p-float.htm#54" "s>f","n -- ; fs: -- r","W32F Floating extra","COLON","","p-float.htm#55" "f>s","-- n ; fs: r --","W32F Floating extra","COLON","","p-float.htm#56" --- 975,979 ---- "D>F","d -- ; Fs: -- r","ANSI Floating","CODE","","p-float.htm#52" "F>D","-- d ; fs: r --","ANSI Floating","CODE","","p-float.htm#53" ! "ZF>D","-- d ; fs: r --","W32F Floating extra","CODE","","p-float.htm#54" "s>f","n -- ; fs: -- r","W32F Floating extra","COLON","","p-float.htm#55" "f>s","-- n ; fs: r --","W32F Floating extra","COLON","","p-float.htm#56" *************** *** 994,999 **** "FNEGATE","fs: r1 -- r2","ANSI Floating","CODE","","p-float.htm#73" "1/f","fs: r1 -- r2","W32F Floating extra","COLON","","p-float.htm#74" ! "f2/","fs: r1 -- r2","W32F Floating extra","CODE","","p-float.htm#75" ! "f2*","fs: r1 -- r2","W32F Floating extra","CODE","","p-float.htm#76" "FABS","fs: r1 -- r2","ANSI Floating ext","CODE","","p-float.htm#77" "FSQRT","fs: r1 -- r2","ANSI Floating ext","CODE","","p-float.htm#78" --- 996,1001 ---- "FNEGATE","fs: r1 -- r2","ANSI Floating","CODE","","p-float.htm#73" "1/f","fs: r1 -- r2","W32F Floating extra","COLON","","p-float.htm#74" ! "f2*","fs: r1 -- r2","W32F Floating extra","CODE","","p-float.htm#75" ! "f2/","fs: r1 -- r2","W32F Floating extra","CODE","","p-float.htm#76" "FABS","fs: r1 -- r2","ANSI Floating ext","CODE","","p-float.htm#77" "FSQRT","fs: r1 -- r2","ANSI Floating ext","CODE","","p-float.htm#78" Index: p-float.htm =================================================================== RCS file: /cvsroot/win32forth/win32forth/doc/p-float.htm,v retrieving revision 1.13 retrieving revision 1.14 diff -C2 -d -r1.13 -r1.14 *** p-float.htm 7 Feb 2006 11:53:24 -0000 1.13 --- p-float.htm 8 Feb 2006 14:26:34 -0000 1.14 *************** *** 50,56 **** </p><pre><b><a name="4">code fpsw> ( -- n ) \ W32F Floating extra </a></b></pre><p>Get x87 FPU Status Word. ! </p><pre><b><a name="5">\- B/FLOAT 10 constant B/FLOAT ( -- n ) \ W32F Floating extra </a></b></pre><p>Number of bytes in a floating-point number. Note the default is 8 bytes. ! </p><pre><b><a name="6">B/FLOAT aligned cell / value cells/float </a></b></pre><p>Number of cells in a floating-point number. If the number of bytes is not a multiple of 4 this is rounded up. --- 50,56 ---- </p><pre><b><a name="4">code fpsw> ( -- n ) \ W32F Floating extra </a></b></pre><p>Get x87 FPU Status Word. ! </p><pre><b><a name="5"> 10 constant B/FLOAT ( -- n ) \ W32F Floating extra </a></b></pre><p>Number of bytes in a floating-point number. Note the default is 8 bytes. ! </p><pre><b><a name="6">value cells/float </a></b></pre><p>Number of cells in a floating-point number. If the number of bytes is not a multiple of 4 this is rounded up. *************** *** 129,195 **** </h3><pre><b><a name="31">code fpi ( fs: -- r ) \ W32F Floating extra </a></b></pre><p>Push the value 3.141596... on to the FP stack. ! </p><pre><b><a name="32">code f0.0 ( FS: -- r ) \ W32F Floating extra </a></b></pre><p>Push plus zero on to the FP stack. </p><pre><b><a name="33">code f1.0 ( fs: -- r ) \ W32F Floating extra </a></b></pre><p>Push the value 1.0 on to the FP stack. ! </p><pre><b><a name="34">code fL2t ( fs: -- r ) \ W32F Floating extra </a></b></pre><p>Push the value of log base 2 of 10. ! </p><pre><b><a name="35">code fL2e ( fs: -- r ) \ W32F Floating extra </a></b></pre><p>Push the value of log base 2 of e. ! </p><pre><b><a name="36">code fLog2 ( fs: -- r ) \ W32F Floating extra </a></b></pre><p>Push the value of log base 10 of 2. ! </p><pre><b><a name="37">code fLn2 ( fs: -- r ) \ W32F Floating extra </a></b></pre><p>Push the value of ln 2 (the natural logarithm). ! </p><pre><b><a name="38"> f0.0 fconstant finf ( FS: -- r ) \ W32F Floating extra </a></b></pre><p>Push plus infinity. ! </p><pre><b><a name="39"> f1.0 fconstant f2.0 ( FS: -- r ) \ W32F Floating extra </a></b></pre><p>Push floating-point 2.0. ! </p><pre><b><a name="40"> f0.0 fconstant f10.0 ( FS: -- r ) \ W32F Floating extra </a></b></pre><p>Push floating-point 10.0. ! </p><pre><b><a name="41"> f1.0 fconstant f0.5 ( FS: -- r ) \ W32F Floating extra </a></b></pre><p>Push floating-point 0.5. ! </p><pre><b><a name="42"> f0.0 fconstant fbig ( FS: -- r ) \ W32F Floating extra </a></b></pre><p>Push the largest non-infinite floating-point number. ! </p><pre><b><a name="43"> f0.0 fconstant feps ( FS: -- r ) \ W32F Floating extra </a></b></pre><p>Push the smallest non-zero floating-point number. ! </p><pre><b><a name="44"> f1.0 fconstant fsmall ( FS: -- r ) \ W32F Floating extra </a></b></pre><p>Push the smallest non-denormalised floating-point number. </p><h3>Variables ! </h3><pre><b><a name="45"> fvariable a2**63 ( -- addr ) \ W32F Floating extra </a></b></pre><p>Return the address of a float containing 2**63. ! </p><pre><b><a name="46"> fvariable sq2m1 ( -- addr ) \ W32F Floating extra </a></b></pre><p>Return the address of a float containing sqrt(2) - 1. </p><pre><b><a name="47"> fvariable sq2/2m1 ( -- addr ) \ W32F Floating extra </a></b></pre><p>Return the address of a float containing sqrt(2)/2 - 1. </p><h3>Rounding functions ! </h3><pre><b><a name="48">code FLOOR ( fs: r1 -- r2 ) \ ANSI Floating </a></b></pre><p>Round r1 to an integral value using the round toward negative infinity rule, giving r2. ! </p><pre><b><a name="49">code FCEIL ( fs: r1 -- r2 ) \ W32F Floating extra </a></b></pre><p>Round r1 to an integral value using the round toward positive infinity rule, giving r2. ! </p><pre><b><a name="50">code FTRUNC ( fs: r1 -- r2 ) \ W32F Floating extra </a></b></pre><p>Round r1 to an integral value using the round toward zero rule, giving r2. ! </p><pre><b><a name="51">code FROUND ( fs: r1 -- r2 ) \ ANSI Floating </a></b></pre><p>Round r1 to an integral value using the round to nearest rule, giving r2. </p><h3>Integer to float conversion ! </h3><pre><b><a name="52">code D>F ( d -- ; Fs: -- r ) \ ANSI Floating </a></b></pre><p>Convert double number to floating-point number. ! </p><pre><b><a name="53">code F>D ( -- d ; fs: r -- ) \ ANSI Floating </a></b></pre><p>Convert floating-point number to double number, by rounding towards zero. If the result would be too large to fit in a double number then <br /> -9223372036854775808 is returned. ! </p><pre><b><a name="54">code ZF>D ( -- d ; fs: r -- ) \ W32F Floating extra </a></b></pre><p>Convert floating-point number to double number, using the current rounding mode ! (rounding towards zero unless changed by the user). If the result would be too large to fit in a double number then <br /> -9223372036854775808 is returned. ! </p><pre><b><a name="55">: s>f ( n -- ; fs: -- r ) \ W32F Floating extra </a></b></pre><p>Convert the single number n to floating point number r. ! </p><pre><b><a name="56">: f>s ( -- n ; fs: r -- ) \ W32F Floating extra </a></b></pre><p>Convert the floating point number r to single number n. </p><pre><b><a name="57">code FS>DS ( -- dfloat fs: r -- ) \ W32F Floating extra </a></b></pre><p>Move floating point number bits to the data stack as a 64-bit float. This function is for passing floats to DLLs. ! </p><pre><b><a name="58">code SFS>DS ( -- float ; fs: r -- ) \ W32F Floating extra </a></b></pre><p>Push the top of the float stack onto the data stack as a 32-bit float. This function is for passing floats to DLLs. --- 129,195 ---- </h3><pre><b><a name="31">code fpi ( fs: -- r ) \ W32F Floating extra </a></b></pre><p>Push the value 3.141596... on to the FP stack. ! </p><pre><b><a name="32">code f0.0 ( fs: -- r ) \ W32F Floating extra </a></b></pre><p>Push plus zero on to the FP stack. </p><pre><b><a name="33">code f1.0 ( fs: -- r ) \ W32F Floating extra </a></b></pre><p>Push the value 1.0 on to the FP stack. ! </p><pre><b><a name="34">code fL2t ( fs: -- r ) \ W32F Floating extra </a></b></pre><p>Push the value of log base 2 of 10. ! </p><pre><b><a name="35">code fL2e ( fs: -- r ) \ W32F Floating extra </a></b></pre><p>Push the value of log base 2 of e. ! </p><pre><b><a name="36">code fLog2 ( fs: -- r ) \ W32F Floating extra </a></b></pre><p>Push the value of log base 10 of 2. ! </p><pre><b><a name="37">code fLn2 ( fs: -- r ) \ W32F Floating extra </a></b></pre><p>Push the value of ln 2 (the natural logarithm). ! </p><pre><b><a name="38"> fconstant finf ( fs: -- r ) \ W32F Floating extra </a></b></pre><p>Push plus infinity. ! </p><pre><b><a name="39">2e0 fconstant f2.0 ( fs: -- r ) \ W32F Floating extra </a></b></pre><p>Push floating-point 2.0. ! </p><pre><b><a name="40">10e0 fconstant f10.0 ( fs: -- r ) \ W32F Floating extra </a></b></pre><p>Push floating-point 10.0. ! </p><pre><b><a name="41">5e-1 fconstant f0.5 ( fs: -- r ) \ W32F Floating extra </a></b></pre><p>Push floating-point 0.5. ! </p><pre><b><a name="42"> f0.0 fconstant fbig ( fs: -- r ) \ W32F Floating extra </a></b></pre><p>Push the largest non-infinite floating-point number. ! </p><pre><b><a name="43"> f0.0 fconstant feps ( fs: -- r ) \ W32F Floating extra </a></b></pre><p>Push the smallest non-zero floating-point number. ! </p><pre><b><a name="44"> f1.0 fconstant fsmall ( fs: -- r ) \ W32F Floating extra </a></b></pre><p>Push the smallest non-denormalised floating-point number. </p><h3>Variables ! </h3><pre><b><a name="45"> fvariable a2**63 ( -- addr ) \ W32F Floating extra </a></b></pre><p>Return the address of a float containing 2**63. ! </p><pre><b><a name="46"> fvariable sq2m1 ( -- addr ) \ W32F Floating extra </a></b></pre><p>Return the address of a float containing sqrt(2) - 1. </p><pre><b><a name="47"> fvariable sq2/2m1 ( -- addr ) \ W32F Floating extra </a></b></pre><p>Return the address of a float containing sqrt(2)/2 - 1. </p><h3>Rounding functions ! </h3><pre><b><a name="48">code FLOOR ( fs: r1 -- r2 ) \ ANSI Floating </a></b></pre><p>Round r1 to an integral value using the round toward negative infinity rule, giving r2. ! </p><pre><b><a name="49">code FCEIL ( fs: r1 -- r2 ) \ W32F Floating extra </a></b></pre><p>Round r1 to an integral value using the round toward positive infinity rule, giving r2. ! </p><pre><b><a name="50">code FTRUNC ( fs: r1 -- r2 ) \ W32F Floating extra </a></b></pre><p>Round r1 to an integral value using the round toward zero rule, giving r2. ! </p><pre><b><a name="51">code FROUND ( fs: r1 -- r2 ) \ ANSI Floating </a></b></pre><p>Round r1 to an integral value using the round to nearest rule, giving r2. </p><h3>Integer to float conversion ! </h3><pre><b><a name="52">code D>F ( d -- ; Fs: -- r ) \ ANSI Floating </a></b></pre><p>Convert double number to floating-point number. ! </p><pre><b><a name="53">code F>D ( -- d ; fs: r -- ) \ ANSI Floating </a></b></pre><p>Convert floating-point number to double number, by rounding towards zero. If the result would be too large to fit in a double number then <br /> -9223372036854775808 is returned. ! </p><pre><b><a name="54">code ZF>D ( -- d ; fs: r -- ) \ W32F Floating extra </a></b></pre><p>Convert floating-point number to double number, using the current rounding mode ! (rounding towards nearest unless changed by the user). If the result would be too large to fit in a double number then <br /> -9223372036854775808 is returned. ! </p><pre><b><a name="55">: s>f ( n -- ; fs: -- r ) \ W32F Floating extra </a></b></pre><p>Convert the single number n to floating point number r. ! </p><pre><b><a name="56">: f>s ( -- n ; fs: r -- ) \ W32F Floating extra </a></b></pre><p>Convert the floating point number r to single number n. </p><pre><b><a name="57">code FS>DS ( -- dfloat fs: r -- ) \ W32F Floating extra </a></b></pre><p>Move floating point number bits to the data stack as a 64-bit float. This function is for passing floats to DLLs. ! </p><pre><b><a name="58">code SFS>DS ( -- float ; fs: r -- ) \ W32F Floating extra </a></b></pre><p>Push the top of the float stack onto the data stack as a 32-bit float. This function is for passing floats to DLLs. *************** *** 213,263 **** </a></b></pre><p>Return true if r1 is greater than or equal to r2. Returns true if either number is a NAN. ! </p><pre><b><a name="67">: FMAX ( fs: r1 r2 -- r3 ) \ ANSI Floating </a></b></pre><p>Return r3 the maximum of r1 and r2. If r1 is a NAN then so is r3. If r2 is a NAN then r3=r1. ! </p><pre><b><a name="68">: FMIN ( fs: r1 r2 -- r3 ) \ ANSI Floating </a></b></pre><p>Return r3 the minimum of r1 and r2. If r1 is a NAN then so is r3. If r2 is a NAN then r3=r1. </p><h3>Arithmetic operators ! </h3><pre><b><a name="69">code F+ ( fs: r1 r2 -- r3 ) \ ANSI Floating </a></b></pre><p>Add r1 to r2. ! </p><pre><b><a name="70">code F- ( fs: r1 r2 -- r3 ) \ ANSI Floating </a></b></pre><p>Subtract r2 from r1. ! </p><pre><b><a name="71">code F* ( fs: r1 r2 -- r3 ) \ ANSI Floating </a></b></pre><p>Multiply r1 by r2. ! </p><pre><b><a name="72">code F/ ( fs: r1 r2 -- r3 ) \ ANSI Floating </a></b></pre><p>Divide r1 by r2. ! </p><pre><b><a name="73">code FNEGATE ( fs: r1 -- r2 ) \ ANSI Floating </a></b></pre><p>Reverse the sign of r1. ! </p><pre><b><a name="74">: 1/f ( fs: r1 -- r2 ) \ W32F Floating extra </a></b></pre><p>r2 is the reciprocal of r1. ! </p><pre><b><a name="75">code f2/ ( fs: r1 -- r2 ) \ W32F Floating extra </a></b></pre><p>Multiply by 2. ! </p><pre><b><a name="76">code f2* ( fs: r1 -- r2 ) \ W32F Floating extra </a></b></pre><p>Divide by 2. ! </p><pre><b><a name="77">code FABS ( fs: r1 -- r2 ) \ ANSI Floating ext </a></b></pre><p>r2 is the absolute value of r1. ! </p><pre><b><a name="78">code FSQRT ( fs: r1 -- r2 ) \ ANSI Floating ext </a></b></pre><p>r2 is the positive square root of r1. </p><h3>Trigonometric functions ! </h3><pre><b><a name="79">: FSIN ( fs: r1 -- r2 ) \ ANSI Floating ext </a></b></pre><p>r2 is the sine of r1 in radians. ! </p><pre><b><a name="80">: FCOS ( fs: r1 -- r2 ) \ ANSI Floating ext </a></b></pre><p>r2 is the cosine of r1 in radians. ! </p><pre><b><a name="81">: FSINCOS ( fs: r1 -- r2 r3 ) \ ANSI Floating ext </a></b></pre><p>r2 is the sine and r3 the cosine of r1 in radians. This function is more efficient than calling FSIN and FCOS separately. ! </p><pre><b><a name="82">: FTAN ( fs: r1 -- r2 ) \ ANSI Floating ext </a></b></pre><p>r2 is the tangent of r1 in radians. </p><h3>Inverse Trigonometric functions ! </h3><pre><b><a name="83">code FASIN ( fs: r1 -- r2 ) \ ANSI Floating ext </a></b></pre><p>r2 is the radian angle whose sine is r1. The result for |x| =< 1 is between ±pi/2. The result for |x| > 1 is NAN. ! </p><pre><b><a name="84">code FACOS ( fs: r1 -- r2 ) \ ANSI Floating ext </a></b></pre><p>r2 is the radian angle whose cosine is r1. The result for |x| =< 1 is between 0 and pi. The result for |x| > 1 is NAN ! </p><pre><b><a name="85">code FATAN ( fs: r1 -- r2 ) \ ANSI Floating ext </a></b></pre><p>r2 is the radian angle whose tangent is r1. The result is between ±pi/2. ! </p><pre><b><a name="86">code FATAN2 ( fs: r1 r2 -- r3 ) \ ANSI Floating ext </a></b></pre><p>r3 is the radian angle whose tangent is r1/r2. The result is between ±pi with the same sign as r2. If r1 and r2 are both zero then r3 is ±zero. --- 213,263 ---- </a></b></pre><p>Return true if r1 is greater than or equal to r2. Returns true if either number is a NAN. ! </p><pre><b><a name="67">: FMAX ( fs: r1 r2 -- r3 ) \ ANSI Floating </a></b></pre><p>Return r3 the maximum of r1 and r2. If r1 is a NAN then so is r3. If r2 is a NAN then r3=r1. ! </p><pre><b><a name="68">: FMIN ( fs: r1 r2 -- r3 ) \ ANSI Floating </a></b></pre><p>Return r3 the minimum of r1 and r2. If r1 is a NAN then so is r3. If r2 is a NAN then r3=r1. </p><h3>Arithmetic operators ! </h3><pre><b><a name="69">code F+ ( fs: r1 r2 -- r3 ) \ ANSI Floating </a></b></pre><p>Add r1 to r2. ! </p><pre><b><a name="70">code F- ( fs: r1 r2 -- r3 ) \ ANSI Floating </a></b></pre><p>Subtract r2 from r1. ! </p><pre><b><a name="71">code F* ( fs: r1 r2 -- r3 ) \ ANSI Floating </a></b></pre><p>Multiply r1 by r2. ! </p><pre><b><a name="72">code F/ ( fs: r1 r2 -- r3 ) \ ANSI Floating </a></b></pre><p>Divide r1 by r2. ! </p><pre><b><a name="73">code FNEGATE ( fs: r1 -- r2 ) \ ANSI Floating </a></b></pre><p>Reverse the sign of r1. ! </p><pre><b><a name="74">: 1/f ( fs: r1 -- r2 ) \ W32F Floating extra </a></b></pre><p>r2 is the reciprocal of r1. ! </p><pre><b><a name="75">code f2* ( fs: r1 -- r2 ) \ W32F Floating extra </a></b></pre><p>Multiply by 2. ! </p><pre><b><a name="76">code f2/ ( fs: r1 -- r2 ) \ W32F Floating extra </a></b></pre><p>Divide by 2. ! </p><pre><b><a name="77">code FABS ( fs: r1 -- r2 ) \ ANSI Floating ext </a></b></pre><p>r2 is the absolute value of r1. ! </p><pre><b><a name="78">code FSQRT ( fs: r1 -- r2 ) \ ANSI Floating ext </a></b></pre><p>r2 is the positive square root of r1. </p><h3>Trigonometric functions ! </h3><pre><b><a name="79">: FSIN ( fs: r1 -- r2 ) \ ANSI Floating ext </a></b></pre><p>r2 is the sine of r1 in radians. ! </p><pre><b><a name="80">: FCOS ( fs: r1 -- r2 ) \ ANSI Floating ext </a></b></pre><p>r2 is the cosine of r1 in radians. ! </p><pre><b><a name="81">: FSINCOS ( fs: r1 -- r2 r3 ) \ ANSI Floating ext </a></b></pre><p>r2 is the sine and r3 the cosine of r1 in radians. This function is more efficient than calling FSIN and FCOS separately. ! </p><pre><b><a name="82">: FTAN ( fs: r1 -- r2 ) \ ANSI Floating ext </a></b></pre><p>r2 is the tangent of r1 in radians. </p><h3>Inverse Trigonometric functions ! </h3><pre><b><a name="83">code FASIN ( fs: r1 -- r2 ) \ ANSI Floating ext </a></b></pre><p>r2 is the radian angle whose sine is r1. The result for |x| =< 1 is between ±pi/2. The result for |x| > 1 is NAN. ! </p><pre><b><a name="84">code FACOS ( fs: r1 -- r2 ) \ ANSI Floating ext </a></b></pre><p>r2 is the radian angle whose cosine is r1. The result for |x| =< 1 is between 0 and pi. The result for |x| > 1 is NAN ! </p><pre><b><a name="85">code FATAN ( fs: r1 -- r2 ) \ ANSI Floating ext </a></b></pre><p>r2 is the radian angle whose tangent is r1. The result is between ±pi/2. ! </p><pre><b><a name="86">code FATAN2 ( fs: r1 r2 -- r3 ) \ ANSI Floating ext </a></b></pre><p>r3 is the radian angle whose tangent is r1/r2. The result is between ±pi with the same sign as r2. If r1 and r2 are both zero then r3 is ±zero. *************** *** 265,282 **** polar coordinates. </p><h3>Logarithmic functions ! </h3><pre><b><a name="87">code FLN ( fs: r1 -- r2 ) \ ANSI Floating ext </a></b></pre><p>r2 is the natural logarithm of r1. If r1 is ±0 then r2 is -infinity. If r1 is infinity then r2 is infinity. If r1 is less than zero then r2 is a NAN. ! </p><pre><b><a name="88">code FLNP1 ( fs: r1 -- r2 ) \ ANSI Floating ext </a></b></pre><p>r2 is the natural logarithm of the quantity r1 plus one. If r1 is -1.0 then r2 is -infinity. If r1 is infinity then r2 is infinity. If r1 is less than -1.0 then r2 is a NAN. ! </p><pre><b><a name="89">code FLOG ( fs: r1 -- r2 ) \ ANSI Floating ext </a></b></pre><p>r2 is the logarithm to base 10 of r1. If r1 is ±0 then r2 is -infinity. If r1 is infinity then r2 is infinity. If r1 is less than zero then r2 is a NAN. </p><h3>Exponential functions ! </h3><pre><b><a name="90">code FEXP ( fs: r1 -- r2 ) \ ANSI Floating ext </a></b></pre><p>Raise e to the power r1, giving r2. ! </p><pre><b><a name="91">code FEXPM1 ( fs: r1 -- r2 ) \ ANSI Floating ext </a></b></pre><p>Raise e to the power r1 and subtract one, giving r2. </p><p>This function allows accurate computation when its arguments are close to zero, and --- 265,282 ---- polar coordinates. </p><h3>Logarithmic functions ! </h3><pre><b><a name="87">code FLN ( fs: r1 -- r2 ) \ ANSI Floating ext </a></b></pre><p>r2 is the natural logarithm of r1. If r1 is ±0 then r2 is -infinity. If r1 is infinity then r2 is infinity. If r1 is less than zero then r2 is a NAN. ! </p><pre><b><a name="88">code FLNP1 ( fs: r1 -- r2 ) \ ANSI Floating ext </a></b></pre><p>r2 is the natural logarithm of the quantity r1 plus one. If r1 is -1.0 then r2 is -infinity. If r1 is infinity then r2 is infinity. If r1 is less than -1.0 then r2 is a NAN. ! </p><pre><b><a name="89">code FLOG ( fs: r1 -- r2 ) \ ANSI Floating ext </a></b></pre><p>r2 is the logarithm to base 10 of r1. If r1 is ±0 then r2 is -infinity. If r1 is infinity then r2 is infinity. If r1 is less than zero then r2 is a NAN. </p><h3>Exponential functions ! </h3><pre><b><a name="90">code FEXP ( fs: r1 -- r2 ) \ ANSI Floating ext </a></b></pre><p>Raise e to the power r1, giving r2. ! </p><pre><b><a name="91">code FEXPM1 ( fs: r1 -- r2 ) \ ANSI Floating ext </a></b></pre><p>Raise e to the power r1 and subtract one, giving r2. </p><p>This function allows accurate computation when its arguments are close to zero, and *************** *** 284,304 **** such as cosh(x) can be efficiently and accurately implemented by using FEXPM1; accuracy is lost in this function for small values of x if the word FEXP is used. ! </p><pre><b><a name="92">: f** ( fs: r1 r2 -- r3 ) \ ANSI Floating ext </a></b></pre><p>Raise r1 to the power r2, giving the product r3. ! </p><pre><b><a name="93">: FALOG ( fs: r1 -- r2 ) \ ANSI Floating ext </a></b></pre><p>Raise ten to the power r1, giving r2. </p><h3>Hyperbolic functions ! </h3><pre><b><a name="94">: FSINH ( fs: r1 -- r2 ) \ ANSI Floating ext </a></b></pre><p>r2 is the hyperbolic sine of r1. ! </p><pre><b><a name="95">: FCOSH ( fs: r1 -- r2 ) \ ANSI Floating ext </a></b></pre><p>r2 is the hyperbolic cosine of r1. ! </p><pre><b><a name="96">: FTANH ( fs: r1 -- r2 ) \ ANSI Floating ext </a></b></pre><p>r2 is the hyperbolic tangent of r1, |r2| <= 1. </p><h3>Inverse hyperbolic functions ! </h3><pre><b><a name="97">code FASINH ( fs: r1 -- r2 ) \ ANSI Floating ext </a></b></pre><p>r2 is the number whose hyperbolic sine is r1. ! </p><pre><b><a name="98">code FACOSH ( fs: r1 -- r2 ) \ ANSI Floating ext </a></b></pre><p>r2 is the number whose hyperbolic cosine is r1. If r1 < 1.0 then r2 is a NAN. ! </p><pre><b><a name="99">: FATANH ( fs: r1 -- r2 ) \ ANSI Floating ext </a></b></pre><p>r2 is the number whose hyperbolic tangent is r1. IF |r1| > 1.0 then r2 is a NAN. </p><pre><b><a name="100">: F~ ( -- flag ; fs: r1 r2 r3 -- ) \ ANSI Floating ext --- 284,304 ---- such as cosh(x) can be efficiently and accurately implemented by using FEXPM1; accuracy is lost in this function for small values of x if the word FEXP is used. ! </p><pre><b><a name="92">: f** ( fs: r1 r2 -- r3 ) \ ANSI Floating ext </a></b></pre><p>Raise r1 to the power r2, giving the product r3. ! </p><pre><b><a name="93">: FALOG ( fs: r1 -- r2 ) \ ANSI Floating ext </a></b></pre><p>Raise ten to the power r1, giving r2. </p><h3>Hyperbolic functions ! </h3><pre><b><a name="94">: FSINH ( fs: r1 -- r2 ) \ ANSI Floating ext </a></b></pre><p>r2 is the hyperbolic sine of r1. ! </p><pre><b><a name="95">: FCOSH ( fs: r1 -- r2 ) \ ANSI Floating ext </a></b></pre><p>r2 is the hyperbolic cosine of r1. ! </p><pre><b><a name="96">: FTANH ( fs: r1 -- r2 ) \ ANSI Floating ext </a></b></pre><p>r2 is the hyperbolic tangent of r1, |r2| <= 1. </p><h3>Inverse hyperbolic functions ! </h3><pre><b><a name="97">code FASINH ( fs: r1 -- r2 ) \ ANSI Floating ext </a></b></pre><p>r2 is the number whose hyperbolic sine is r1. ! </p><pre><b><a name="98">code FACOSH ( fs: r1 -- r2 ) \ ANSI Floating ext </a></b></pre><p>r2 is the number whose hyperbolic cosine is r1. If r1 < 1.0 then r2 is a NAN. ! </p><pre><b><a name="99">: FATANH ( fs: r1 -- r2 ) \ ANSI Floating ext </a></b></pre><p>r2 is the number whose hyperbolic tangent is r1. IF |r1| > 1.0 then r2 is a NAN. </p><pre><b><a name="100">: F~ ( -- flag ; fs: r1 r2 r3 -- ) \ ANSI Floating ext |
Update of /cvsroot/win32forth/win32forth/doc/classes In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv23074/win32forth/doc/classes Modified Files: AXControl.htm Childwnd.htm Control.htm Controls.htm Dialog.htm File.htm Generic.htm HTMLcontrol.htm MdiDialog.htm TrayWindow.htm Window.htm gdiBase.htm gdiBitmap.htm gdiBrush.htm gdiDC.htm gdiFont.htm gdiMetafile.htm gdiMetafileDC.htm gdiPen.htm gdiStruct.htm gdiWindowDc.htm mdi.htm Log Message: gah: Updated glossary and docs |
From: George H. <geo...@us...> - 2006-02-08 10:54:58
|
Update of /cvsroot/win32forth/win32forth/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv8565/win32forth/src Modified Files: Class.f Log Message: gah: Modified :CLASS to hide the name till after <SUPER executes so a class can specify a previous class of the same name as super-class the same as :OBJECT Index: Class.f =================================================================== RCS file: /cvsroot/win32forth/win32forth/src/Class.f,v retrieving revision 1.15 retrieving revision 1.16 diff -C2 -d -r1.15 -r1.16 *** Class.f 6 Feb 2006 17:48:17 -0000 1.15 --- Class.f 8 Feb 2006 10:54:43 -0000 1.16 *************** *** 442,445 **** --- 442,451 ---- 0 value oldcurrent + also forth definitions + + 0 value Obj-CLASS + + previous definitions + \ Build a class header with its superclass pointer : inherit ( pfa -- ) *************** *** 455,463 **** \ add to search order ^Class XFA OFF ! also ^class body> vcfa>voc context ! definitions ; forth definitions - here 0 , value Obj-CLASS 0 value Obj-LOADLINE --- 461,469 ---- \ add to search order ^Class XFA OFF ! also ^class body> vcfa>voc context ! definitions ! obj-class 0= if reveal then ; forth definitions 0 value Obj-LOADLINE *************** *** 482,485 **** --- 488,497 ---- then to Obj-LOADLINE ; + : (class) ( -- ) + hide + 0 to Obj-CLASS + here to ^Class + 0 op! ; \ for error checking in runIvarRef + : :Class ( -<class-name>- ) \ *G Define a class for creating a group of similar objects. *************** *** 487,493 **** false to ?:M create ! 0 to Obj-CLASS ! here to ^Class ! 0 op! \ for error checking in runIvarRef does> [ code-here 12 - to doClass ] \ a dirty trick! --- 499,503 ---- false to ?:M create ! (class) does> [ code-here 12 - to doClass ] \ a dirty trick! *************** *** 541,547 **** false to ?:M create ! 0 to Obj-CLASS ! here to ^Class ! 0 op! \ for error checking in runIvarRef does> [ code-here 12 - to do|Class ] \ a dirty trick! --- 551,555 ---- false to ?:M create ! (class) does> [ code-here 12 - to do|Class ] \ a dirty trick! *************** *** 1107,1110 **** --- 1115,1120 ---- \ cells class-allot ; + module + forth definitions *************** *** 1122,1126 **** \ 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. --- 1132,1136 ---- \ Revised by -rbs July 9th, 2002 ! \ *P Since ClassRoot inherits from the pseudo 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. |
From: George H. <geo...@us...> - 2006-02-08 10:51:53
|
Update of /cvsroot/win32forth/win32forth/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv7376/win32forth/src Modified Files: FLOAT.F Log Message: gah: More documenting of float.f (still work in progress). Index: FLOAT.F =================================================================== RCS file: /cvsroot/win32forth/win32forth/src/FLOAT.F,v retrieving revision 1.35 retrieving revision 1.36 diff -C2 -d -r1.35 -r1.36 *** FLOAT.F 7 Feb 2006 11:26:46 -0000 1.35 --- FLOAT.F 8 Feb 2006 10:51:43 -0000 1.36 *************** *** 121,131 **** end-code ! \- B/FLOAT 10 constant B/FLOAT ( -- n ) \ W32F Floating extra \ *G Number of bytes in a floating-point number. Note the default is 8 bytes. cr B/FLOAT . .( byte floating point numbers) \ The next word is mainly for SEE.F ! B/FLOAT aligned cell / value cells/float \ *G Number of cells in a floating-point number. If the number of bytes is not a multiple \ ** of 4 this is rounded up. --- 121,134 ---- end-code ! [undefined] B/FLOAT [if] ! 10 constant B/FLOAT ( -- n ) \ W32F Floating extra \ *G Number of bytes in a floating-point number. Note the default is 8 bytes. + [then] cr B/FLOAT . .( byte floating point numbers) \ The next word is mainly for SEE.F ! B/FLOAT aligned cell / checkstack ! value cells/float \ *G Number of cells in a floating-point number. If the number of bytes is not a multiple \ ** of 4 this is rounded up. *************** *** 149,154 **** fstack-elements B/FLOAT * NEWUSER FLOATSTACK ! ' FLOATSTACK >body @ constant FSTACK \ pointer to the stack relative to UP ! ' FLOATSP >body @ constant FSP \ pointer to fsp relative to UP in-system --- 152,157 ---- fstack-elements B/FLOAT * NEWUSER FLOATSTACK ! ' FLOATSTACK >body @ constant FSTACK deprecated \ pointer to the stack relative to UP ! ' FLOATSP >body @ constant FSP deprecated \ pointer to fsp relative to UP in-system *************** *** 619,623 **** ! code f0.0 ( FS: -- r ) \ W32F Floating extra \ *G Push plus zero on to the FP stack. fldz --- 622,626 ---- ! code f0.0 ( fs: -- r ) \ W32F Floating extra \ *G Push plus zero on to the FP stack. fldz *************** *** 631,635 **** float; ! code fL2t ( fs: -- r ) \ W32F Floating extra \ *G Push the value of log base 2 of 10. fldl2t --- 634,638 ---- float; ! code fL2t ( fs: -- r ) \ W32F Floating extra \ *G Push the value of log base 2 of 10. fldl2t *************** *** 637,641 **** float; ! code fL2e ( fs: -- r ) \ W32F Floating extra \ *G Push the value of log base 2 of e. fldL2e --- 640,644 ---- float; ! code fL2e ( fs: -- r ) \ W32F Floating extra \ *G Push the value of log base 2 of e. fldL2e *************** *** 643,647 **** float; ! code fLog2 ( fs: -- r ) \ W32F Floating extra \ *G Push the value of log base 10 of 2. fldLg2 --- 646,650 ---- float; ! code fLog2 ( fs: -- r ) \ W32F Floating extra \ *G Push the value of log base 10 of 2. fldLg2 *************** *** 649,653 **** float; ! code fLn2 ( fs: -- r ) \ W32F Floating extra \ *G Push the value of ln 2 (the natural logarithm). fldLn2 --- 652,656 ---- float; ! code fLn2 ( fs: -- r ) \ W32F Floating extra \ *G Push the value of ln 2 (the natural logarithm). fldLn2 *************** *** 655,667 **** float; ! B/FLOAT 10 = nostack ! [IF] stack-check ! f0.0 fconstant finf \ infinity ! ' finf >body 0x80000000 over cell+ ! nostack ! 0x7fff swap 2 cells+ w! stack-check ! f1.0 fconstant f2.0 ! 1 ' f2.0 >body 2 cells+ w+! fvariable a2**63 --- 658,679 ---- float; ! (( Note the following constants are defined later, after the arithmetic operators ! But are included here for documentation purposes ONLY. ! f1.0 f0.0 f/ ! fconstant finf ( fs: -- r ) \ W32F Floating extra ! \ *G Push plus infinity. ! 2e0 fconstant f2.0 ( fs: -- r ) \ W32F Floating extra ! \ *G Push floating-point 2.0. ! ! 10e0 fconstant f10.0 ( fs: -- r ) \ W32F Floating extra ! \ *G Push floating-point 10.0. ! ! 5e-1 fconstant f0.5 ( fs: -- r ) \ W32F Floating extra ! \ *G Push floating-point 0.5. ! )) ! ! B/FLOAT 10 = [IF] fvariable a2**63 *************** *** 680,690 **** 0xbffd sq2/2m1 2 cells+ w! - f0.0 fconstant f10.0 \ floating 10.0 - ' f10.0 >body 0xa0000000 over cell+ ! nostack - 0x4002 swap 2 cells+ w! stack-check - - f1.0 fconstant f0.5 \ floating 0.5 - 0x3ffe ' f0.5 >body 2 cells+ w! - f0.0 fconstant fbig ' fbig >body -1 over ! nostack --- 692,695 ---- *************** *** 695,731 **** 1 ' feps >body ! ! fvariable afsmall ! 0 afsmall ! 0x80000000 afsmall cell+ ! ! 1 afsmall 2 cells+ w! ! ! : fsmall afsmall f@ ; \ smallest "normal" number ! ! [ELSE] ( 8 byte mode ) stack-check ! ! f0.0 fconstant finf ( FS: -- r ) \ W32F Floating extra ! \ *G Push plus infinity. ! ' finf >body 0 over ! 0x7ff00000 swap cell+ ! ! ! f1.0 fconstant f2.0 ( FS: -- r ) \ W32F Floating extra ! \ *G Push floating-point 2.0. ! 0x40000000 ' f2.0 >body cell+ ! ! ! f0.0 fconstant f10.0 ( FS: -- r ) \ W32F Floating extra ! \ *G Push floating-point 10.0. ! ' f10.0 >body 0 over ! 0x40240000 swap cell+ ! ! f1.0 fconstant f0.5 ( FS: -- r ) \ W32F Floating extra ! \ *G Push floating-point 0.5. ! ' f0.5 >body 0 over ! 0x3fe00000 swap cell+ ! ! f0.0 fconstant fbig ( FS: -- r ) \ W32F Floating extra \ *G Push the largest non-infinite floating-point number. ' fbig >body -1 over ! 0x7fefffff swap cell+ ! ! f0.0 fconstant feps ( FS: -- r ) \ W32F Floating extra \ *G Push the smallest non-zero floating-point number. 1 ' feps >body ! ! f1.0 fconstant fsmall ( FS: -- r ) \ W32F Floating extra \ *G Push the smallest non-denormalised floating-point number. ' fsmall >body 0 over ! 0x00100000 swap cell+ ! --- 700,718 ---- 1 ' feps >body ! ! f0.0 fconstant fsmall ! 0 ' fsmall >body tuck ! 0x80000000 over cell+ ! ! 1 swap 2 cells+ w! ! [ELSE] ( 8 byte mode ) ! f0.0 fconstant fbig ( fs: -- r ) \ W32F Floating extra \ *G Push the largest non-infinite floating-point number. ' fbig >body -1 over ! 0x7fefffff swap cell+ ! ! f0.0 fconstant feps ( fs: -- r ) \ W32F Floating extra \ *G Push the smallest non-zero floating-point number. 1 ' feps >body ! ! f1.0 fconstant fsmall ( fs: -- r ) \ W32F Floating extra \ *G Push the smallest non-denormalised floating-point number. ' fsmall >body 0 over ! 0x00100000 swap cell+ ! *************** *** 733,741 **** \ *N Variables ! fvariable a2**63 ( -- addr ) \ W32F Floating extra \ *G Return the address of a float containing 2**63. 0 a2**63 ! 0x43e00000 a2**63 cell+ ! ! fvariable sq2m1 ( -- addr ) \ W32F Floating extra \ *G Return the address of a float containing sqrt(2) - 1. 0x99fcef34 sq2m1 ! --- 720,728 ---- \ *N Variables ! fvariable a2**63 ( -- addr ) \ W32F Floating extra \ *G Return the address of a float containing 2**63. 0 a2**63 ! 0x43e00000 a2**63 cell+ ! ! fvariable sq2m1 ( -- addr ) \ W32F Floating extra \ *G Return the address of a float containing sqrt(2) - 1. 0x99fcef34 sq2m1 ! *************** *** 788,792 **** in-application ! code FLOOR ( fs: r1 -- r2 ) \ ANSI Floating \ *G Round r1 to an integral value using the round toward negative infinity rule, \ ** giving r2. --- 775,779 ---- in-application ! code FLOOR ( fs: r1 -- r2 ) \ ANSI Floating \ *G Round r1 to an integral value using the round toward negative infinity rule, \ ** giving r2. *************** *** 797,801 **** float; ! code FCEIL ( fs: r1 -- r2 ) \ W32F Floating extra \ *G Round r1 to an integral value using the round toward positive infinity rule, \ ** giving r2. --- 784,788 ---- float; ! code FCEIL ( fs: r1 -- r2 ) \ W32F Floating extra \ *G Round r1 to an integral value using the round toward positive infinity rule, \ ** giving r2. *************** *** 806,810 **** float; ! code FTRUNC ( fs: r1 -- r2 ) \ W32F Floating extra \ *G Round r1 to an integral value using the round toward zero rule, giving r2. push ebx --- 793,797 ---- float; ! code FTRUNC ( fs: r1 -- r2 ) \ W32F Floating extra \ *G Round r1 to an integral value using the round toward zero rule, giving r2. push ebx *************** *** 815,819 **** float; ! code FROUND ( fs: r1 -- r2 ) \ ANSI Floating \ *G Round r1 to an integral value using the round to nearest rule, giving r2. push ebx --- 802,806 ---- float; ! code FROUND ( fs: r1 -- r2 ) \ ANSI Floating \ *G Round r1 to an integral value using the round to nearest rule, giving r2. push ebx *************** *** 830,834 **** \ *N Integer to float conversion ! code D>F ( d -- ; Fs: -- r ) \ ANSI Floating \ *G Convert double number to floating-point number. lea esp, -4 [esp] --- 817,821 ---- \ *N Integer to float conversion ! code D>F ( d -- ; Fs: -- r ) \ ANSI Floating \ *G Convert double number to floating-point number. lea esp, -4 [esp] *************** *** 843,847 **** \ Changed 3/13/99 rls ! code F>D ( -- d ; fs: r -- ) \ ANSI Floating \ *G Convert floating-point number to double number, by rounding towards zero. If the \ ** result would be too large to fit in a double number then \n -9223372036854775808 --- 830,834 ---- \ Changed 3/13/99 rls ! code F>D ( -- d ; fs: r -- ) \ ANSI Floating \ *G Convert floating-point number to double number, by rounding towards zero. If the \ ** result would be too large to fit in a double number then \n -9223372036854775808 *************** *** 862,868 **** float; ! code ZF>D ( -- d ; fs: r -- ) \ W32F Floating extra \ *G Convert floating-point number to double number, using the current rounding mode ! \ ** (rounding towards zero unless changed by the user). If the result would be too \ ** large to fit in a double number then \n -9223372036854775808 is returned. fstack-check_1 --- 849,855 ---- float; ! code ZF>D ( -- d ; fs: r -- ) \ W32F Floating extra \ *G Convert floating-point number to double number, using the current rounding mode ! \ ** (rounding towards nearest unless changed by the user). If the result would be too \ ** large to fit in a double number then \n -9223372036854775808 is returned. fstack-check_1 *************** *** 875,883 **** float; ! : s>f ( n -- ; fs: -- r ) \ W32F Floating extra \ *G Convert the single number n to floating point number r. s>d d>f ; ! : f>s ( -- n ; fs: r -- ) \ W32F Floating extra \ *G Convert the floating point number r to single number n. f>d drop ; --- 862,870 ---- float; ! : s>f ( n -- ; fs: -- r ) \ W32F Floating extra \ *G Convert the single number n to floating point number r. s>d d>f ; ! : f>s ( -- n ; fs: r -- ) \ W32F Floating extra \ *G Convert the floating point number r to single number n. f>d drop ; *************** *** 901,905 **** \ from Jos v.d. Ven ! code SFS>DS ( -- float ; fs: r -- ) \ W32F Floating extra \ *G Push the top of the float stack onto the data stack as a 32-bit float. \ ** This function is for passing floats to DLLs. --- 888,892 ---- \ from Jos v.d. Ven ! code SFS>DS ( -- float ; fs: r -- ) \ W32F Floating extra \ *G Push the top of the float stack onto the data stack as a 32-bit float. \ ** This function is for passing floats to DLLs. *************** *** 981,990 **** f< not ; ! : FMAX ( fs: r1 r2 -- r3 ) \ ANSI Floating \ *G Return r3 the maximum of r1 and r2. If r1 is a NAN then so is r3. If r2 is a NAN \ ** then r3=r1. f2dup f< IF fswap THEN fdrop ; ! : FMIN ( fs: r1 r2 -- r3 ) \ ANSI Floating \ *G Return r3 the minimum of r1 and r2. If r1 is a NAN then so is r3. If r2 is a NAN \ ** then r3=r1. --- 968,977 ---- f< not ; ! : FMAX ( fs: r1 r2 -- r3 ) \ ANSI Floating \ *G Return r3 the maximum of r1 and r2. If r1 is a NAN then so is r3. If r2 is a NAN \ ** then r3=r1. f2dup f< IF fswap THEN fdrop ; ! : FMIN ( fs: r1 r2 -- r3 ) \ ANSI Floating \ *G Return r3 the minimum of r1 and r2. If r1 is a NAN then so is r3. If r2 is a NAN \ ** then r3=r1. *************** *** 997,1001 **** \ *N Arithmetic operators ! code F+ ( fs: r1 r2 -- r3 ) \ ANSI Floating \ *G Add r1 to r2. fstack-check_2 --- 984,988 ---- \ *N Arithmetic operators ! code F+ ( fs: r1 r2 -- r3 ) \ ANSI Floating \ *G Add r1 to r2. fstack-check_2 *************** *** 1005,1009 **** float; ! code F- ( fs: r1 r2 -- r3 ) \ ANSI Floating \ *G Subtract r2 from r1. fstack-check_2 --- 992,996 ---- float; ! code F- ( fs: r1 r2 -- r3 ) \ ANSI Floating \ *G Subtract r2 from r1. fstack-check_2 *************** *** 1013,1017 **** float; ! code F* ( fs: r1 r2 -- r3 ) \ ANSI Floating \ *G Multiply r1 by r2. fstack-check_2 --- 1000,1004 ---- float; ! code F* ( fs: r1 r2 -- r3 ) \ ANSI Floating \ *G Multiply r1 by r2. fstack-check_2 *************** *** 1021,1025 **** float; ! code F/ ( fs: r1 r2 -- r3 ) \ ANSI Floating \ *G Divide r1 by r2. fstack-check_2 --- 1008,1012 ---- float; ! code F/ ( fs: r1 r2 -- r3 ) \ ANSI Floating \ *G Divide r1 by r2. fstack-check_2 *************** *** 1029,1033 **** float; ! code FNEGATE ( fs: r1 -- r2 ) \ ANSI Floating \ *G Reverse the sign of r1. fstack-check_1 --- 1016,1020 ---- float; ! code FNEGATE ( fs: r1 -- r2 ) \ ANSI Floating \ *G Reverse the sign of r1. fstack-check_1 *************** *** 1037,1049 **** float; ! : 1/f ( fs: r1 -- r2 ) \ W32F Floating extra \ *G r2 is the reciprocal of r1. f1.0 fswap f/ ; ! code f2/ ( fs: r1 -- r2 ) \ W32F Floating extra \ *G Multiply by 2. fstack-check_1 fld1 - fchs >FPU fscale --- 1024,1035 ---- float; ! : 1/f ( fs: r1 -- r2 ) \ W32F Floating extra \ *G r2 is the reciprocal of r1. f1.0 fswap f/ ; ! code f2* ( fs: r1 -- r2 ) \ W32F Floating extra \ *G Multiply by 2. fstack-check_1 fld1 >FPU fscale *************** *** 1052,1059 **** float; ! code f2* ( fs: r1 -- r2 ) \ W32F Floating extra \ *G Divide by 2. fstack-check_1 fld1 >FPU fscale --- 1038,1046 ---- float; ! code f2/ ( fs: r1 -- r2 ) \ W32F Floating extra \ *G Divide by 2. fstack-check_1 fld1 + fchs >FPU fscale *************** *** 1062,1066 **** float; ! code FABS ( fs: r1 -- r2 ) \ ANSI Floating ext \ *G r2 is the absolute value of r1. fstack-check_1 --- 1049,1053 ---- float; ! code FABS ( fs: r1 -- r2 ) \ ANSI Floating ext \ *G r2 is the absolute value of r1. fstack-check_1 *************** *** 1070,1074 **** float; ! code FSQRT ( fs: r1 -- r2 ) \ ANSI Floating ext \ *G r2 is the positive square root of r1. fstack-check_1 --- 1057,1061 ---- float; ! code FSQRT ( fs: r1 -- r2 ) \ ANSI Floating ext \ *G r2 is the positive square root of r1. fstack-check_1 *************** *** 1078,1081 **** --- 1065,1078 ---- float; + \ The following constants are documented earlier + + f1.0 f0.0 f/ fconstant finf ( fs: -- r ) + + f1.0 f2* fconstant f2.0 ( fs: -- r ) + + f2.0 fdup f2* f2* f+ fconstant f10.0 ( fs: -- r ) + + f1.0 f2/ fconstant f0.5 ( fs: -- r ) + internal *************** *** 1152,1169 **** \ *N Trigonometric functions ! : FSIN ( fs: r1 -- r2 ) \ ANSI Floating ext \ *G r2 is the sine of r1 in radians. >a2**63_frem2pi (fsin) ; ! : FCOS ( fs: r1 -- r2 ) \ ANSI Floating ext \ *G r2 is the cosine of r1 in radians. >a2**63_frem2pi (fcos) ; ! : FSINCOS ( fs: r1 -- r2 r3 ) \ ANSI Floating ext \ *G r2 is the sine and r3 the cosine of r1 in radians. This function is more efficient \ ** than calling FSIN and FCOS separately. >a2**63_frem2pi (fsincos) ; ! : FTAN ( fs: r1 -- r2 ) \ ANSI Floating ext \ *G r2 is the tangent of r1 in radians. fsincos f/ ; --- 1149,1166 ---- \ *N Trigonometric functions ! : FSIN ( fs: r1 -- r2 ) \ ANSI Floating ext \ *G r2 is the sine of r1 in radians. >a2**63_frem2pi (fsin) ; ! : FCOS ( fs: r1 -- r2 ) \ ANSI Floating ext \ *G r2 is the cosine of r1 in radians. >a2**63_frem2pi (fcos) ; ! : FSINCOS ( fs: r1 -- r2 r3 ) \ ANSI Floating ext \ *G r2 is the sine and r3 the cosine of r1 in radians. This function is more efficient \ ** than calling FSIN and FCOS separately. >a2**63_frem2pi (fsincos) ; ! : FTAN ( fs: r1 -- r2 ) \ ANSI Floating ext \ *G r2 is the tangent of r1 in radians. fsincos f/ ; *************** *** 1171,1175 **** \ *N Inverse Trigonometric functions ! code FASIN ( fs: r1 -- r2 ) \ ANSI Floating ext \ *G r2 is the radian angle whose sine is r1. The result for |x| =< 1 is between ±pi/2. \ ** The result for |x| > 1 is NAN. --- 1168,1172 ---- \ *N Inverse Trigonometric functions ! code FASIN ( fs: r1 -- r2 ) \ ANSI Floating ext \ *G r2 is the radian angle whose sine is r1. The result for |x| =< 1 is between ±pi/2. \ ** The result for |x| > 1 is NAN. *************** *** 1187,1191 **** float; ! code FACOS ( fs: r1 -- r2 ) \ ANSI Floating ext \ *G r2 is the radian angle whose cosine is r1. The result for |x| =< 1 is between 0 and pi. \ ** The result for |x| > 1 is NAN --- 1184,1188 ---- float; ! code FACOS ( fs: r1 -- r2 ) \ ANSI Floating ext \ *G r2 is the radian angle whose cosine is r1. The result for |x| =< 1 is between 0 and pi. \ ** The result for |x| > 1 is NAN *************** *** 1204,1208 **** float; ! code FATAN ( fs: r1 -- r2 ) \ ANSI Floating ext \ *G r2 is the radian angle whose tangent is r1. The result is between ±pi/2. fstack-check_1 --- 1201,1205 ---- float; ! code FATAN ( fs: r1 -- r2 ) \ ANSI Floating ext \ *G r2 is the radian angle whose tangent is r1. The result is between ±pi/2. fstack-check_1 *************** *** 1213,1217 **** float; ! code FATAN2 ( fs: r1 r2 -- r3 ) \ ANSI Floating ext \ *G r3 is the radian angle whose tangent is r1/r2. The result is between ±pi \ ** with the same sign as r2. If r1 and r2 are both zero then r3 is ±zero. --- 1210,1214 ---- float; ! code FATAN2 ( fs: r1 r2 -- r3 ) \ ANSI Floating ext \ *G r3 is the radian angle whose tangent is r1/r2. The result is between ±pi \ ** with the same sign as r2. If r1 and r2 are both zero then r3 is ±zero. *************** *** 1227,1231 **** \ *N Logarithmic functions ! code FLN ( fs: r1 -- r2 ) \ ANSI Floating ext \ *G r2 is the natural logarithm of r1. If r1 is ±0 then r2 is -infinity. If r1 \ ** is infinity then r2 is infinity. If r1 is less than zero then r2 is a NAN. --- 1224,1228 ---- \ *N Logarithmic functions ! code FLN ( fs: r1 -- r2 ) \ ANSI Floating ext \ *G r2 is the natural logarithm of r1. If r1 is ±0 then r2 is -infinity. If r1 \ ** is infinity then r2 is infinity. If r1 is less than zero then r2 is a NAN. *************** *** 1237,1241 **** float; ! code FLNP1 ( fs: r1 -- r2 ) \ ANSI Floating ext \ *G r2 is the natural logarithm of the quantity r1 plus one. If r1 is -1.0 then \ ** r2 is -infinity. If r1 is infinity then r2 is infinity. If r1 is less than --- 1234,1238 ---- float; ! code FLNP1 ( fs: r1 -- r2 ) \ ANSI Floating ext \ *G r2 is the natural logarithm of the quantity r1 plus one. If r1 is -1.0 then \ ** r2 is -infinity. If r1 is infinity then r2 is infinity. If r1 is less than *************** *** 1267,1271 **** L$2: float; ! code FLOG ( fs: r1 -- r2 ) \ ANSI Floating ext \ *G r2 is the logarithm to base 10 of r1. If r1 is ±0 then r2 is -infinity. If r1 \ ** is infinity then r2 is infinity. If r1 is less than zero then r2 is a NAN. --- 1264,1268 ---- L$2: float; ! code FLOG ( fs: r1 -- r2 ) \ ANSI Floating ext \ *G r2 is the logarithm to base 10 of r1. If r1 is ±0 then r2 is -infinity. If r1 \ ** is infinity then r2 is infinity. If r1 is less than zero then r2 is a NAN. *************** *** 1279,1283 **** \ *N Exponential functions ! code FEXP ( fs: r1 -- r2 ) \ ANSI Floating ext \ *G Raise e to the power r1, giving r2. fstack-check_1 --- 1276,1280 ---- \ *N Exponential functions ! code FEXP ( fs: r1 -- r2 ) \ ANSI Floating ext \ *G Raise e to the power r1, giving r2. fstack-check_1 *************** *** 1309,1313 **** float; ! code FEXPM1 ( fs: r1 -- r2 ) \ ANSI Floating ext \ *G Raise e to the power r1 and subtract one, giving r2. \ *P This function allows accurate computation when its arguments are close to zero, and --- 1306,1310 ---- float; ! code FEXPM1 ( fs: r1 -- r2 ) \ ANSI Floating ext \ *G Raise e to the power r1 and subtract one, giving r2. \ *P This function allows accurate computation when its arguments are close to zero, and *************** *** 1365,1369 **** L$2: float; ! : f** ( fs: r1 r2 -- r3 ) \ ANSI Floating ext \ *G Raise r1 to the power r2, giving the product r3. FDUP FROUND FDUP F>S F- FDUP F0= --- 1362,1366 ---- L$2: float; ! : f** ( fs: r1 r2 -- r3 ) \ ANSI Floating ext \ *G Raise r1 to the power r2, giving the product r3. FDUP FROUND FDUP F>S F- FDUP F0= *************** *** 1372,1376 **** THEN ; ! : FALOG ( fs: r1 -- r2 ) \ ANSI Floating ext \ *G Raise ten to the power r1, giving r2. f10.0 fswap f** ; --- 1369,1373 ---- THEN ; ! : FALOG ( fs: r1 -- r2 ) \ ANSI Floating ext \ *G Raise ten to the power r1, giving r2. f10.0 fswap f** ; *************** *** 1387,1391 **** \ *N Hyperbolic functions ! : FSINH ( fs: r1 -- r2 ) \ ANSI Floating ext \ *G r2 is the hyperbolic sine of r1. fdup f0< --- 1384,1388 ---- \ *N Hyperbolic functions ! : FSINH ( fs: r1 -- r2 ) \ ANSI Floating ext \ *G r2 is the hyperbolic sine of r1. fdup f0< *************** *** 1394,1402 **** THEN ; ! : FCOSH ( fs: r1 -- r2 ) \ ANSI Floating ext \ *G r2 is the hyperbolic cosine of r1. fabs fexp fdup 1/f f+ f2/ ; ! : FTANH ( fs: r1 -- r2 ) \ ANSI Floating ext \ *G r2 is the hyperbolic tangent of r1, |r2| <= 1. fdup fabs f1.0 f< --- 1391,1399 ---- THEN ; ! : FCOSH ( fs: r1 -- r2 ) \ ANSI Floating ext \ *G r2 is the hyperbolic cosine of r1. fabs fexp fdup 1/f f+ f2/ ; ! : FTANH ( fs: r1 -- r2 ) \ ANSI Floating ext \ *G r2 is the hyperbolic tangent of r1, |r2| <= 1. fdup fabs f1.0 f< *************** *** 1411,1415 **** \ *N Inverse hyperbolic functions ! code FASINH ( fs: r1 -- r2 ) \ ANSI Floating ext \ *G r2 is the number whose hyperbolic sine is r1. fstack-check_1 --- 1408,1412 ---- \ *N Inverse hyperbolic functions ! code FASINH ( fs: r1 -- r2 ) \ ANSI Floating ext \ *G r2 is the number whose hyperbolic sine is r1. fstack-check_1 *************** *** 1426,1430 **** float; ! code FACOSH ( fs: r1 -- r2 ) \ ANSI Floating ext \ *G r2 is the number whose hyperbolic cosine is r1. If r1 < 1.0 then r2 is a NAN. fstack-check_1 --- 1423,1427 ---- float; ! code FACOSH ( fs: r1 -- r2 ) \ ANSI Floating ext \ *G r2 is the number whose hyperbolic cosine is r1. If r1 < 1.0 then r2 is a NAN. fstack-check_1 *************** *** 1441,1445 **** float; ! : FATANH ( fs: r1 -- r2 ) \ ANSI Floating ext \ *G r2 is the number whose hyperbolic tangent is r1. IF |r1| > 1.0 then r2 is a NAN. fdup f1.0 f+ --- 1438,1442 ---- float; ! : FATANH ( fs: r1 -- r2 ) \ ANSI Floating ext \ *G r2 is the number whose hyperbolic tangent is r1. IF |r1| > 1.0 then r2 is a NAN. fdup f1.0 f+ *************** *** 2164,2171 **** : f^2 fdup f* ; - \ : f^x fswap fln f* fexp ; - \ synonym f** f^x - - \ : fsqr f0.5 f** ; synonym fsqr fsqrt deprecated --- 2161,2164 ---- *************** *** 2361,2366 **** \ changed to use the reset-stack-chain \ January 22nd, 2004 - 13:53 dbu ! : FLOAT-RESET-STACKS ( ?? -- ) \ reset stack ! finit ; reset-stack-chain chain-add FLOAT-RESET-STACKS --- 2354,2358 ---- \ changed to use the reset-stack-chain \ January 22nd, 2004 - 13:53 dbu ! ' finit alias FLOAT-RESET-STACKS ( ?? -- ) \ reset stack reset-stack-chain chain-add FLOAT-RESET-STACKS |
From: George H. <geo...@us...> - 2006-02-07 19:56:59
|
Update of /cvsroot/win32forth/win32forth/doc In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv510/win32forth/doc Modified Files: p-AcceleratorTables.htm p-classdbg.htm p-float.htm p-glossary.htm p-module.htm p-task.htm w32f-glossary.csv Log Message: gah: Updated glossary and docs Index: p-glossary.htm =================================================================== RCS file: /cvsroot/win32forth/win32forth/doc/p-glossary.htm,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** p-glossary.htm 6 Feb 2006 17:48:16 -0000 1.3 --- p-glossary.htm 7 Feb 2006 11:53:24 -0000 1.4 *************** *** 1 **** ! <table border=1><tr><th>Name</th><th>Stack</th><th>Comment</th><th>Type</th><th>Class</th><th>File</th></tr><tr><th>Generic-Window</th><td> </td><td> </td><td>CLASS</td><td> </td><td>Generic.htm#0</td></tr><tr><th>hWnd</th><td> </td><td> </td><td>INT ivar</td><td>Generic-Window</td><td>Generic.htm#1</td></tr><tr><th>Classinit:</th><td>--</td><td> </td><td>METHOD</td><td>Generic-Window</td><td>Generic.htm#2</td></tr><tr><th>GetHandle:</th><td>-- hWnd</td><td> </td><td>METHOD</td><td>Generic-Window</td><td>Generic.htm#3</td></tr><tr><th>PutHandle:</th><td>hWnd --</td><td> </td><td>METHOD</td><td>Generic-Window</td><td>Generic.htm#4</td></tr><tr><th>ZeroWindow:</th><td>--</td><td> </td><td>METHOD</td><td>Generic-Window</td><td>Generic.htm#5</td></tr><tr><th>DestroyWindow:</th><td>--</td><td> </td><td>METHOD</td><td>Generic-Window</td><td>Generic.htm#6</td></tr><tr><th>Close:</th><td>--</td><td> </td><td>METHOD</td><td>Generic-Window</td><td>Generic.htm#7</td></tr><tr><th>Paint:</th><td>--</td><td> </td><td>METHOD</td><td>Generic-Window</td><td>Generic.htm#8</td></tr><tr><th>Show:</th><td>state --</td><td> </td><td>METHOD</td><td>Generic-Window</td><td>Generic.htm#9</td></tr><tr><th>GDIFlush:</th><td>--</td><td> </td><td>METHOD</td><td>Generic-Window</td><td>Generic.htm#10</td></tr><tr><th>Update:</th><td>--</td><td> </td><td>METHOD</td><td>Generic-Window</td><td>Generic.htm#11</td></tr><tr><th>Scroll:</th><td>x y --</td><td> </td><td>METHOD</td><td>Generic-Window</td><td>Generic.htm#12</td></tr><tr><th>Move:</th><td>x y w h --</td><td> </td><td>METHOD</td><td>Generic-Window</td><td>Generic.htm#13</td></tr><tr><th>SetWindowPos:</th><td>x y --</td><td> </td><td>METHOD</td><td>Generic-Window</td><td>Generic.htm#14</td></tr><tr><th>SetMenu:</th><td>MenuHandle --</td><td> </td><td>METHOD</td><td>Generic-Window</td><td>Generic.htm#15</td></tr><tr><th>SetText:</th><td>addr len \ text$ --</td><td> </td><td>METHOD</td><td>Generic-Window</td><td>Generic.htm#16</td></tr><tr><th>GetText:</th><td>-- addr len</td><td> </td><td>METHOD</td><td>Generic-Window</td><td>Generic.htm#17</td></tr><tr><th>SetTextAlign:</th><td>flag --</td><td> </td><td>METHOD</td><td>Generic-Window</td><td>Generic.htm#18</td></tr><tr><th>GetDC:</th><td>-- hdc</td><td> </td><td>METHOD</td><td>Generic-Window</td><td>Generic.htm#19</td></tr><tr><th>GetWindowDC:</th><td>-- hdc</td><td> </td><td>METHOD</td><td>Generic-Window</td><td>Generic.htm#20</td></tr><tr><th>ReleaseDC:</th><td>hdc --</td><td> </td><td>METHOD</td><td>Generic-Window</td><td>Generic.htm#21</td></tr><tr><th>BeginPaint:</th><td>ps -- hdc</td><td> </td><td>METHOD</td><td>Generic-Window</td><td>Generic.htm#22</td></tr><tr><th>EndPaint:</th><td>ps --</td><td> </td><td>METHOD</td><td>Generic-Window</td><td>Generic.htm#23</td></tr><tr><th>GetClientRect:</th><td>rect --</td><td> </td><td>METHOD</td><td>Generic-Window</td><td>Generic.htm#24</td></tr><tr><th>GetWindowLong:</th><td>index -- value</td><td> </td><td>METHOD</td><td>Generic-Window</td><td>Generic.htm#25</td></tr><tr><th>SetWindowLong:</th><td>value index -- oldval</td><td> </td><td>METHOD</td><td>Generic-Window</td><td>Generic.htm#26</td></tr><tr><th>GetStyle:</th><td>-- style</td><td> </td><td>METHOD</td><td>Generic-Window</td><td>Generic.htm#27</td></tr><tr><th>SetStyle:</th><td>style --</td><td> </td><td>METHOD</td><td>Generic-Window</td><td>Generic.htm#28</td></tr><tr><th>+Style:</th><td>style --</td><td> </td><td>METHOD</td><td>Generic-Window</td><td>Generic.htm#29</td></tr><tr><th>-Style:</th><td>style --</td><td> </td><td>METHOD</td><td>Generic-Window</td><td>Generic.htm#30</td></tr><tr><th>SetFocus:</th><td>--</td><td> </td><td>METHOD</td><td>Generic-Window</td><td>Generic.htm#31</td></tr><tr><th>SetForegroundWindow:</th><td>--</td><td> </td><td>METHOD</td><td>Generic-Window</td><td>Generic.htm#32</td></tr><tr><th>SetActiveWindow:</th><td>--</td><td> </td><td>METHOD</td><td>Generic-Window</td><td>Generic.htm#33</td></tr><tr><th>MessageBox:</th><td>szText szTitle style -- result</td><td> </td><td>METHOD</td><td>Generic-Window</td><td>Generic.htm#34</td></tr><tr><th>InvalidateRect:</th><td>bgflag rectangle --</td><td> </td><td>METHOD</td><td>Generic-Window</td><td>Generic.htm#35</td></tr><tr><th>GetDlgItem:</th><td>id -- handle</td><td> </td><td>METHOD</td><td>Generic-Window</td><td>Generic.htm#36</td></tr><tr><th>GetDlgItemText:</th><td>addr len id -- len</td><td> </td><td>METHOD</td><td>Generic-Window</td><td>Generic.htm#37</td></tr><tr><th>SetDlgItemText:</th><td>addr len id --</td><td> </td><td>METHOD</td><td>Generic-Window</td><td>Generic.htm#38</td></tr><tr><th>SetDlgItemFocus:</th><td>id --</td><td> </td><td>METHOD</td><td>Generic-Window</td><td>Generic.htm#39</td></tr><tr><th>SelectDlgItemAll:</th><td>id --</td><td> </td><td>METHOD</td><td>Generic-Window</td><td>Generic.htm#40</td></tr><tr><th>IsDlgButtonChecked:</th><td>id -- f1</td><td> </td><td>METHOD</td><td>Generic-Window</td><td>Generic.htm#41</td></tr><tr><th>CheckDlgButton:</th><td>uCheck id --</td><td> </td><td>METHOD</td><td>Generic-Window</td><td>Generic.htm#42</td></tr><tr><th>SetDlgItemAlign:</th><td>flag id --</td><td> </td><td>METHOD</td><td>Generic-Window</td><td>Generic.htm#43</td></tr><tr><th>SetAlign:</th><td>flag id --</td><td>DEPRECATED</td><td>METHOD</td><td>Generic-Window</td><td>Generic.htm#44</td></tr><tr><th>EnableDlgItem:</th><td>flag id --</td><td> </td><td>METHOD</td><td>Generic-Window</td><td>Generic.htm#45</td></tr><tr><th>ShowDlgItem:</th><td>flag id --</td><td> </td><td>METHOD</td><td>Generic-Window</td><td>Generic.htm#46</td></tr><tr><th>CheckRadioButton:</th><td>check_id first_id last_id --</td><td> </td><td>METHOD</td><td>Generic-Window</td><td>Generic.htm#47</td></tr><tr><th>SendDlgItemMessage:</th><td>lParam wParam message id -- long</td><td> </td><td>METHOD</td><td>Generic-Window</td><td>Generic.htm#48</td></tr><tr><th>SetDlgItemFont:</th><td>FontObject id --</td><td> </td><td>METHOD</td><td>Generic-Window</td><td>Generic.htm#49</td></tr><tr><th>Window</th><td> </td><td> </td><td>CLASS</td><td> </td><td>Window.htm#0</td></tr><tr><th>ClassInit:</th><td>--</td><td> </td><td>METHOD</td><td>Window</td><td>Window.htm#1</td></tr><tr><th>GetSize:</th><td>-- w h</td><td> </td><td>METHOD</td><td>Window</td><td>Window.htm#2</td></tr><tr><th>Width:</th><td>-- width</td><td> </td><td>METHOD</td><td>Window</td><td>Window.htm#3</td></tr><tr><th>Height:</th><td>-- height</td><td> </td><td>METHOD</td><td>Window</td><td>Window.htm#4</td></tr><tr><th>SetSize:</th><td>w h --</td><td> </td><td>METHOD</td><td>Window</td><td>Window.htm#5</td></tr><tr><th>On_Size:</th><td>--</td><td> </td><td>METHOD</td><td>Window</td><td>Window.htm#6</td></tr><tr><th>MinSize:</th><td>-- width height</td><td> </td><td>METHOD</td><td>Window</td><td>Window.htm#7</td></tr><tr><th>MaxSize:</th><td>-- width height</td><td> </td><td>METHOD</td><td>Window</td><td>Window.htm#8</td></tr><tr><th>StartSize:</th><td>-- width height</td><td> </td><td>METHOD</td><td>Window</td><td>Window.htm#9</td></tr><tr><th>SetOrigin:</th><td>x y --</td><td> </td><td>METHOD</td><td>Window</td><td>Window.htm#10</td></tr><tr><th>StartPos:</th><td>-- left top</td><td> </td><td>METHOD</td><td>Window</td><td>Window.htm#11</td></tr><tr><th>On_Init:</th><td>--</td><td> </td><td>METHOD</td><td>Window</td><td>Window.htm#12</td></tr><tr><th>On_Done:</th><td>--</td><td> </td><td>METHOD</td><td>Window</td><td>Window.htm#13</td></tr><tr><th>SetClassName:</th><td>adr len --</td><td> </td><td>METHOD</td><td>Window</td><td>Window.htm#14</td></tr><tr><th>GetClassName:</th><td>-- adr len</td><td> </td><td>METHOD</td><td>Window</td><td>Window.htm#15</td></tr><tr><th>SetParent:</th><td>hwndParent --</td><td> </td><td>METHOD</td><td>Window</td><td>Window.htm#16</td></tr><tr><th>ParentWindow:</th><td>-- hwndparent | 0 if no parent</td><td> </td><td>METHOD</td><td>Window</td><td>Window.htm#17</td></tr><tr><th>DefaultCursor:</th><td>-- cursor-id</td><td> </td><td>METHOD</td><td>Window</td><td>Window.htm#18</td></tr><tr><th>DefaultIcon:</th><td>-- hIcon</td><td> </td><td>METHOD</td><td>Window</td><td>Window.htm#19</td></tr><tr><th>WindowStyle:</th><td>-- style</td><td> </td><td>METHOD</td><td>Window</td><td>Window.htm#20</td></tr><tr><th>ExWindowStyle:</th><td>-- extended_style</td><td> </td><td>METHOD</td><td>Window</td><td>Window.htm#21</td></tr><tr><th>WindowTitle:</th><td>-- Zstring</td><td> </td><td>METHOD</td><td>Window</td><td>Window.htm#22</td></tr><tr><th>&ps</th><td> </td><td> </td><td>RECORD:</td><td>Window</td><td>Window.htm#24</td></tr><tr><th>On_EraseBackground:</th><td>hwnd msg wparam lparam -- res</td><td> </td><td>METHOD</td><td>Window</td><td>Window.htm#25</td></tr><tr><th>On_Paint:</th><td>--</td><td> </td><td>METHOD</td><td>Window</td><td>Window.htm#26</td></tr><tr><th>WindowHasMenu:</th><td>-- flag</td><td> </td><td>METHOD</td><td>Window</td><td>Window.htm#27</td></tr><tr><th>MoveCursor:</th><td>gx gy --</td><td> </td><td>METHOD</td><td>Window</td><td>Window.htm#28</td></tr><tr><th>MakeCursor:</th><td>gx gy width height --</td><td> </td><td>METHOD</td><td>Window</td><td>Window.htm#29</td></tr><tr><th>DestroyCursor:</th><td>--</td><td> </td><td>METHOD</td><td>Window</td><td>Window.htm#30</td></tr><tr><th>ShowCursor:</th><td>--</td><td> </td><td>METHOD</td><td>Window</td><td>Window.htm#31</td></tr><tr><th>HideCursor:</th><td>--</td><td> </td><td>METHOD</td><td>Window</td><td>Window.htm#32</td></tr><tr><th>On_SetFocus:</th><td>h m w l --</td><td> </td><td>METHOD</td><td>Window</td><td>Window.htm#33</td></tr><tr><th>On_KillFocus:</th><td>h m w l --</td><td> </td><td>METHOD</td><td>Window</td><td>Window.htm#34</td></tr><tr><th>PushKey:</th><td>c1 --</td><td> </td><td>METHOD</td><td>Window</td><td>Window.htm#35</td></tr><tr><th>Win32Forth:</th><td>h m w l --</td><td> </td><td>METHOD</td><td>Window</td><td>Window.htm#36</td></tr><tr><th>DefWindowProc:</th><td>h m w l -- res</td><td> </td><td>METHOD</td><td>Window</td><td>Window.htm#37</td></tr><tr><th>CenterWindow:</th><td>-- x y</td><td> </td><td>METHOD</td><td>Window</td><td>Window.htm#38</td></tr><tr><th>Enable:</th><td>f1 --</td><td> </td><td>METHOD</td><td>Window</td><td>Window.htm#39</td></tr><tr><th>GetWindowRect:</th><td>-- left top right bottom</td><td> </td><td>METHOD</td><td>Window</td><td>Window.htm#40</td></tr><tr><th>SetTitle:</th><td>adr len \ temp$ --</td><td> </td><td>METHOD</td><td>Window</td><td>Window.htm#41</td></tr><tr><th>find-window</th><td>z"a1 -- hWnd</td><td>w32f</td><td>COLON</td><td> </td><td>Window.htm#43</td></tr><tr><th>send-window</th><td>lParam wParam Message_ID hWnd --</td><td>w32f</td><td>COLON</td><td> </td><td>Window.htm#44</td></tr><tr><th>LoadIconFile</th><td>adr len -- hIcon</td><td>w32f</td><td>COLON</td><td> </td><td>Window.htm#45</td></tr><tr><th>TrayWindow</th><td> </td><td> </td><td>CLASS</td><td> </td><td>TrayWindow.htm#0</td></tr><tr><th>DefaultIcon:</th><td>-- hIcon</td><td> </td><td>METHOD</td><td>TrayWindow</td><td>TrayWindow.htm#1</td></tr><tr><th>GetTooltip:</th><td>-- addr len</td><td> </td><td>METHOD</td><td>TrayWindow</td><td>TrayWindow.htm#2</td></tr><tr><th>AddIcon:</th><td>--</td><td> </td><td>METHOD</td><td>TrayWindow</td><td>TrayWindow.htm#3</td></tr><tr><th>DeleteIcon:</th><td>--</td><td> </td><td>METHOD</td><td>TrayWindow</td><td>TrayWindow.htm#4</td></tr><tr><th>IsVisible?:</th><td>-- f</td><td> </td><td>METHOD</td><td>TrayWindow</td><td>TrayWindow.htm#5</td></tr><tr><th>ShowWindow:</th><td>--</td><td> </td><td>METHOD</td><td>TrayWindow</td><td>TrayWindow.htm#6</td></tr><tr><th>HideWindow:</th><td>--</td><td> </td><td>METHOD</td><td>TrayWindow</td><td>TrayWindow.htm#7</td></tr><tr><th>WM_SIZE</th><td>hWnd uMsg wParam lParam -- res</td><td> </td><td>METHOD</td><td>TrayWindow</td><td>TrayWindow.htm#8</td></tr><tr><th>WM_SYSCOMMAND</th><td>hWnd uMsg wParam lParam -- res</td><td> </td><td>METHOD</td><td>TrayWindow</td><td>TrayWindow.htm#9</td></tr><tr><th>On_IconNotify:</th><td>hWnd uMsg wParam lParam -- res</td><td> </td><td>METHOD</td><td>TrayWindow</td><td>TrayWindow.htm#10</td></tr><tr><th>Child-Window</th><td> </td><td> </td><td>CLASS</td><td> </td><td>Childwnd.htm#0</td></tr><tr><th>GetParent:</th><td>-- parent</td><td> </td><td>METHOD</td><td>Child-Window</td><td>Childwnd.htm#1</td></tr><tr><th>SetID:</th><td>n --</td><td> </td><td>METHOD</td><td>Child-Window</td><td>Childwnd.htm#2</td></tr><tr><th>GetID:</th><td>-- n</td><td> </td><td>METHOD</td><td>Child-Window</td><td>Childwnd.htm#3</td></tr><tr><th>WindowStyle:</th><td>-- style</td><td> </td><td>METHOD</td><td>Child-Window</td><td>Childwnd.htm#4</td></tr><tr><th>ExWindowStyle:</th><td>-- extended_style</td><td> </td><td>METHOD</td><td>Child-Window</td><td>Childwnd.htm#5</td></tr><tr><th>WindowTitle:</th><td>-- Zstring</td><td> </td><td>METHOD</td><td>Child-Window</td><td>Childwnd.htm#6</td></tr><tr><th>Start:</th><td>Parent --</td><td> </td><td>METHOD</td><td>Child-Window</td><td>Childwnd.htm#7</td></tr><tr><th>dialogID?</th><td>hdr ID -- f</td><td> </td><td>COLON</td><td> </td><td>Dialog.htm#0</td></tr><tr><th>find-dialog-ID</th><td>id addr -- address-of-template-header</td><td> </td><td>COLON</td><td> </td><td>Dialog.htm#1</td></tr><tr><th>load-dialog</th><td>-<filename-without-an-extension>-</td><td> </td><td>COLON</td><td> </td><td>Dialog.htm#2</td></tr><tr><th>Dialog</th><td> </td><td> </td><td>CLASS</td><td> </td><td>Dialog.htm#3</td></tr><tr><th>Start:</th><td>parent -- flag</td><td> </td><td>METHOD</td><td>Dialog</td><td>Dialog.htm#4</td></tr><tr><th>EndDialog:</th><td>return-value --</td><td> </td><td>METHOD</td><td>Dialog</td><td>Dialog.htm#5</td></tr><tr><th>On_Init:</th><td>hwndfocus -- f</td><td> </td><td>METHOD</td><td>Dialog</td><td>Dialog.htm#6</td></tr><tr><th>On_Command:</th><td>hCtrl code ID -- f</td><td> </td><td>METHOD</td><td>Dialog</td><td>Dialog.htm#7</td></tr><tr><th>ModelessDialog</th><td> </td><td> </td><td>CLASS</td><td> </td><td>Dialog.htm#9</td></tr><tr><th>WindowStyle:</th><td>-- n1</td><td> </td><td>METHOD</td><td>ModelessDialog</td><td>Dialog.htm#10</td></tr><tr><th>ExWindowStyle:</th><td>-- n1</td><td> </td><td>METHOD</td><td>ModelessDialog</td><td>Dialog.htm#11</td></tr><tr><th>Origin:</th><td>-- x y</td><td> </td><td>METHOD</td><td>ModelessDialog</td><td>Dialog.htm#12</td></tr><tr><th>Start:</th><td>parent --</td><td> </td><td>METHOD</td><td>ModelessDialog</td><td>Dialog.htm#13</td></tr><tr><th>EndDialog:</th><td>n1 --</td><td> </td><td>METHOD</td><td>ModelessDialog</td><td>Dialog.htm#14</td></tr><tr><th>Control</th><td> </td><td> </td><td>CLASS</td><td> </td><td>Control.htm#0</td></tr><tr><th>GetParent:</th><td>-- parent</td><td> </td><td>METHOD</td><td>Control</td><td>Control.htm#1</td></tr><tr><th>GetHandleOfParent:</th><td>-- handleofparent</td><td> </td><td>METHOD</td><td>Control</td><td>Control.htm#2</td></tr><tr><th>SetID:</th><td>id --</td><td> </td><td>METHOD</td><td>Control</td><td>Control.htm#3</td></tr><tr><th>GetID:</th><td>-- id</td><td> </td><td>METHOD</td><td>Control</td><td>Control.htm#4</td></tr><tr><th>ExWindowStyle:</th><td>-- exstyle</td><td> </td><td>METHOD</td><td>Control</td><td>Control.htm#5</td></tr><tr><th>WindowStyle:</th><td>-- style</td><td> </td><td>METHOD</td><td>Control</td><td>Control.htm#6</td></tr><tr><th>StartSize:</th><td>-- width height</td><td> </td><td>METHOD</td><td>Control</td><td>Control.htm#7</td></tr><tr><th>StartPos:</th><td>-- left top</td><td> </td><td>METHOD</td><td>Control</td><td>Control.htm#8</td></tr><tr><th>CreateStruct:</th><td>-- CreateStrucPointer</td><td> </td><td>METHOD</td><td>Control</td><td>Control.htm#9</td></tr><tr><th>EditControl</th><td> </td><td> </td><td>CLASS</td><td> </td><td>Controls.htm#0</td></tr><tr><th>ClassInit:</th><td>--</td><td> </td><td>METHOD</td><td>EditControl</td><td>Controls.htm#1</td></tr><tr><th>StartSize:</th><td>-- width height</td><td> </td><td>METHOD</td><td>EditControl</td><td>Controls.htm#2</td></tr><tr><th>WindowStyle:</th><td>-- Style</td><td> </td><td>METHOD</td><td>EditControl</td><td>Controls.htm#3</td></tr><tr><th>Start:</th><td>Parent --</td><td> </td><td>METHOD</td><td>EditControl</td><td>Controls.htm#4</td></tr><tr><th>SetWmChar:</th><td>pWmChar --</td><td> </td><td>METHOD</td><td>EditControl</td><td>Controls.htm#5</td></tr><tr><th>SetWmKeyDown:</th><td>pWmKeyDown --</td><td> </td><td>METHOD</td><td>EditControl</td><td>Controls.htm#6</td></tr><tr><th>SetWmKillFocus:</th><td>pWmKillFocus --</td><td> </td><td>METHOD</td><td>EditControl</td><td>Controls.htm#7</td></tr><tr><th>SubClass:</th><td>hWnd Parent --</td><td> </td><td>METHOD</td><td>EditControl</td><td>Controls.htm#8</td></tr><tr><th>ComboControl</th><td> </td><td> </td><td>CLASS</td><td> </td><td>Controls.htm#10</td></tr><tr><th>StartSize:</th><td>-- width height</td><td> </td><td>METHOD</td><td>ComboControl</td><td>Controls.htm#11</td></tr><tr><th>WindowStyle:</th><td>-- Style</td><td> </td><td>METHOD</td><td>ComboControl</td><td>Controls.htm#12</td></tr><tr><th>SetWmChar:</th><td>pWmChar --</td><td> </td><td>METHOD</td><td>ComboControl</td><td>Controls.htm#13</td></tr><tr><th>SetWmKeyDown:</th><td>pWmKeyDown --</td><td> </td><td>METHOD</td><td>ComboControl</td><td>Controls.htm#14</td></tr><tr><th>SetWmKillFocus:</th><td>pWmKillFocus --</td><td> </td><td>METHOD</td><td>ComboControl</td><td>Controls.htm#15</td></tr><tr><th>InsertString:</th><td>adr len --</td><td> </td><td>METHOD</td><td>ComboControl</td><td>Controls.htm#16</td></tr><tr><th>GetString:</th><td>adr index --</td><td> </td><td>METHOD</td><td>ComboControl</td><td>Controls.htm#17</td></tr><tr><th>GetCount:</th><td>-- n1</td><td> </td><td>METHOD</td><td>ComboControl</td><td>Controls.htm#18</td></tr><tr><th>Start:</th><td>Parent --</td><td> </td><td>METHOD</td><td>ComboControl</td><td>Controls.htm#19</td></tr><tr><th>ComboListControl</th><td> </td><td> </td><td>CLASS</td><td> </td><td>Controls.htm#21</td></tr><tr><th>WindowStyle:</th><td>-- Style</td><td> </td><td>METHOD</td><td>ComboListControl</td><td>Controls.htm#22</td></tr><tr><th>ListControl</th><td> </td><td> </td><td>CLASS</td><td> </td><td>Controls.htm#24</td></tr><tr><th>WindowStyle:</th><td>-- Style</td><td> </td><td>METHOD</td><td>ListControl</td><td>Controls.htm#25</td></tr><tr><th>Start:</th><td>Parent --</td><td> </td><td>METHOD</td><td>ListControl</td><td>Controls.htm#26</td></tr><tr><th>GroupControl</th><td> </td><td> </td><td>CLASS</td><td> </td><td>Controls.htm#28</td></tr><tr><th>WindowStyle:</th><td>-- Style</td><td> </td><td>METHOD</td><td>GroupControl</td><td>Controls.htm#29</td></tr><tr><th>Start:</th><td>Parent --</td><td> </td><td>METHOD</td><td>GroupControl</td><td>Controls.htm#30</td></tr><tr><th>StaticControl</th><td> </td><td> </td><td>CLASS</td><td> </td><td>Controls.htm#32</td></tr><tr><th>Start:</th><td>Parent --</td><td> </td><td>METHOD</td><td>StaticControl</td><td>Controls.htm#33</td></tr><tr><th>CheckControl</th><td> </td><td> </td><td>CLASS</td><td> </td><td>Controls.htm#35</td></tr><tr><th>WindowStyle:</th><td>-- style</td><td> </td><td>METHOD</td><td>CheckControl</td><td>Controls.htm#36</td></tr><tr><th>Start:</th><td>Parent --</td><td> </td><td>METHOD</td><td>CheckControl</td><td>Controls.htm#37</td></tr><tr><th>RadioControl</th><td> </td><td> </td><td>CLASS</td><td> </td><td>Controls.htm#39</td></tr><tr><th>WindowStyle:</th><td>-- style</td><td> </td><td>METHOD</td><td>RadioControl</td><td>Controls.htm#40</td></tr><tr><th>Start:</th><td>Parent --</td><td> </td><td>METHOD</td><td>RadioControl</td><td>Controls.htm#41</td></tr><tr><th>ButtonControl</th><td> </td><td> </td><td>CLASS</td><td> </td><td>Controls.htm#43</td></tr><tr><th>ClassInit:</th><td>--</td><td> </td><td>METHOD</td><td>ButtonControl</td><td>Controls.htm#44</td></tr><tr><th>SetFunc:</th><td>cfa --</td><td> </td><td>METHOD</td><td>ButtonControl</td><td>Controls.htm#45</td></tr><tr><th>WindowStyle:</th><td>-- style</td><td> </td><td>METHOD</td><td>ButtonControl</td><td>Controls.htm#46</td></tr><tr><th>Start:</th><td>Parent --</td><td> </td><td>METHOD</td><td>ButtonControl</td><td>Controls.htm#47</td></tr><tr><th>DialogWindow</th><td> </td><td> </td><td>CLASS</td><td> </td><td>Controls.htm#49</td></tr><tr><th>ClassInit:</th><td>--</td><td> </td><td>METHOD</td><td>DialogWindow</td><td>Controls.htm#50</td></tr><tr><th>TextBox</th><td> </td><td> </td><td>CLASS</td><td> </td><td>Controls.htm#0</td></tr><tr><th>ClassInit:</th><td>--</td><td> </td><td>METHOD</td><td>TextBox</td><td>Controls.htm#1</td></tr><tr><th>SetWmSetFocus:</th><td>xt --</td><td> </td><td>METHOD</td><td>TextBox</td><td>Controls.htm#2</td></tr><tr><th>WindowStyle:</th><td>-- style</td><td> </td><td>METHOD</td><td>TextBox</td><td>Controls.htm#3</td></tr><tr><th>AddStyle:</th><td>n --</td><td> </td><td>METHOD</td><td>TextBox</td><td>Controls.htm#4</td></tr><tr><th>Enable:</th><td>f --</td><td> </td><td>METHOD</td><td>TextBox</td><td>Controls.htm#5</td></tr><tr><th>Disable:</th><td>--</td><td> </td><td>METHOD</td><td>TextBox</td><td>Controls.htm#6</td></tr><tr><th>ReadOnly:</th><td>f --</td><td> </td><td>METHOD</td><td>TextBox</td><td>Controls.htm#7</td></tr><tr><th>SetSelection:</th><td>nEnd nStart --</td><td> </td><td>METHOD</td><td>TextBox</td><td>Controls.htm#8</td></tr><tr><th>GetSelection:</th><td>-- nEnd nStart</td><td> </td><td>METHOD</td><td>TextBox</td><td>Controls.htm#9</td></tr><tr><th>SelectAll:</th><td>--</td><td> </td><td>METHOD</td><td>TextBox</td><td>Controls.htm#10</td></tr><tr><th>RemoveSelection:</th><td>--</td><td> </td><td>METHOD</td><td>TextBox</td><td>Controls.htm#11</td></tr><tr><th>GetCursor:</th><td>-- n</td><td> </td><td>METHOD</td><td>TextBox</td><td>Controls.htm#12</td></tr><tr><th>IsModified?:</th><td>-- f</td><td> </td><td>METHOD</td><td>TextBox</td><td>Controls.htm#13</td></tr><tr><th>SetModify:</th><td>f --</td><td> </td><td>METHOD</td><td>TextBox</td><td>Controls.htm#14</td></tr><tr><th>NotModified:</th><td>--</td><td> </td><td>METHOD</td><td>TextBox</td><td>Controls.htm#15</td></tr><tr><th>Undo?:</th><td>-- f</td><td> </td><td>METHOD</td><td>TextBox</td><td>Controls.htm#16</td></tr><tr><th>Undo:</th><td>--</td><td> </td><td>METHOD</td><td>TextBox</td><td>Controls.htm#17</td></tr><tr><th>Redo?:</th><td>-- f</td><td> </td><td>METHOD</td><td>TextBox</td><td>Controls.htm#18</td></tr><tr><th>Redo:</th><td>--</td><td> </td><td>METHOD</td><td>TextBox</td><td>Controls.htm#19</td></tr><tr><th>Cut:</th><td>--</td><td> </td><td>METHOD</td><td>TextBox</td><td>Controls.htm#20</td></tr><tr><th>Copy:</th><td>--</td><td> </td><td>METHOD</td><td>TextBox</td><td>Controls.htm#21</td></tr><tr><th>Paste:</th><td>--</td><td> </td><td>METHOD</td><td>TextBox</td><td>Controls.htm#22</td></tr><tr><th>Clear:</th><td>--</td><td> </td><td>METHOD</td><td>TextBox</td><td>Controls.htm#23</td></tr><tr><th>SetFont:</th><td>handle --</td><td> </td><td>METHOD</td><td>TextBox</td><td>Controls.htm#24</td></tr><tr><th>SetTextLimit:</th><td>n --</td><td> </td><td>METHOD</td><td>TextBox</td><td>Controls.htm#25</td></tr><tr><th>GetTextEx:</th><td>buffer$ maxlen -- buffer$ len</td><td> </td><td>METHOD</td><td>TextBox</td><td>Controls.htm#26</td></tr><tr><th>SetTextZ:</th><td>addrz --</td><td> </td><td>METHOD</td><td>TextBox</td><td>Controls.htm#27</td></tr><tr><th>PassWordBox</th><td> </td><td> </td><td>CLASS</td><td> </td><td>Controls.htm#29</td></tr><tr><th>WindowStyle:</th><td>-- style</td><td> </td><td>METHOD</td><td>PassWordBox</td><td>Controls.htm#30</td></tr><tr><th>MultiLineTextBox</th><td> </td><td> </td><td>CLASS</td><td> </td><td>Controls.htm#32</td></tr><tr><th>WindowStyle:</th><td>-- style</td><td> </td><td>METHOD</td><td>MultiLineTextBox</td><td>Controls.htm#33</td></tr><tr><th>SetTabStops:</th><td>tabarray #tabs --</td><td> </td><td>METHOD</td><td>MultiLineTextBox</td><td>Controls.htm#34</td></tr><tr><th>DefaultTabs:</th><td>--</td><td> </td><td>METHOD</td><td>MultiLineTextBox</td><td>Controls.htm#35</td></tr><tr><th>SetMargins:</th><td>left right --</td><td> </td><td>METHOD</td><td>MultiLineTextBox</td><td>Controls.htm#36</td></tr><tr><th>SelectAll:</th><td>--</td><td> </td><td>METHOD</td><td>MultiLineTextBox</td><td>Controls.htm#37</td></tr><tr><th>GetLine:</th><td>-- n</td><td> </td><td>METHOD</td><td>MultiLineTextBox</td><td>Controls.htm#38</td></tr><tr><th>Wrap:</th><td>--</td><td> </td><td>METHOD</td><td>MultiLineTextBox</td><td>Controls.htm#39</td></tr><tr><th>Unwrap:</th><td>--</td><td> </td><td>METHOD</td><td>MultiLineTextBox</td><td>Controls.htm#40</td></tr><tr><th>GetLineCount:</th><td>-- n</td><td> </td><td>METHOD</td><td>MultiLineTextBox</td><td>Controls.htm#41</td></tr><tr><th>GetSelText:</th><td>addr -- n</td><td> </td><td>METHOD</td><td>MultiLineTextBox</td><td>Controls.htm#42</td></tr><tr><th>LineScroll:</th><td>n --</td><td> </td><td>METHOD</td><td>MultiLineTextBox</td><td>Controls.htm#43</td></tr><tr><th>RichEditControl</th><td> </td><td> </td><td>CLASS</td><td> </td><td>Controls.htm#45</td></tr><tr><th>Start:</th><td>Parent --</td><td> </td><td>METHOD</td><td>RichEditControl</td><td>Controls.htm#46</td></tr><tr><th>GetSelText:</th><td>addr -- n</td><td> </td><td>METHOD</td><td>RichEditControl</td><td>Controls.htm#47</td></tr><tr><th>GetLines:</th><td>-- nr</td><td> </td><td>METHOD</td><td>RichEditControl</td><td>Controls.htm#48</td></tr><tr><th>ComboBox</th><td> </td><td> </td><td>CLASS</td><td> </td><td>Controls.htm#50</td></tr><tr><th>ClassInit:</th><td>--</td><td> </td><td>METHOD</td><td>ComboBox</td><td>Controls.htm#51</td></tr><tr><th>WindowStyle:</th><td>-- style</td><td> </td><td>METHOD</td><td>ComboBox</td><td>Controls.htm#52</td></tr><tr><th>AddStyle:</th><td>n --</td><td> </td><td>METHOD</td><td>ComboBox</td><td>Controls.htm#53</td></tr><tr><th>SetDir:</th><td>dirz$ attrib --</td><td> </td><td>METHOD</td><td>ComboBox</td><td>Controls.htm#54</td></tr><tr><th>AddStringTo:</th><td>z"string" --</td><td> </td><td>METHOD</td><td>ComboBox</td><td>Controls.htm#55</td></tr><tr><th>SetSelection:</th><td>n --</td><td> </td><td>METHOD</td><td>ComboBox</td><td>Controls.htm#56</td></tr><tr><th>GetSelectedString:</th><td>-- addr cnt</td><td> </td><td>METHOD</td><td>ComboBox</td><td>Controls.htm#57</td></tr><tr><th>Setfont:</th><td>handle --</td><td> </td><td>METHOD</td><td>ComboBox</td><td>Controls.htm#58</td></tr><tr><th>InsertStringAt:</th><td>lpszString posn --</td><td> </td><td>METHOD</td><td>ComboBox</td><td>Controls.htm#59</td></tr><tr><th>DeleteString:</th><td>index --</td><td> </td><td>METHOD</td><td>ComboBox</td><td>Controls.htm#60</td></tr><tr><th>Clear:</th><td>--</td><td> </td><td>METHOD</td><td>ComboBox</td><td>Controls.htm#61</td></tr><tr><th>Find:</th><td>lpszString -- index</td><td> </td><td>METHOD</td><td>ComboBox</td><td>Controls.htm#62</td></tr><tr><th>FindExact:</th><td>lpszString -- index</td><td> </td><td>METHOD</td><td>ComboBox</td><td>Controls.htm#63</td></tr><tr><th>GetCount:</th><td>-- n</td><td> </td><td>METHOD</td><td>ComboBox</td><td>Controls.htm#64</td></tr><tr><th>SelectString:</th><td>lpszString -- index</td><td> </td><td>METHOD</td><td>ComboBox</td><td>Controls.htm#65</td></tr><tr><th>GetStringAt:</th><td>index -- a n</td><td> </td><td>METHOD</td><td>ComboBox</td><td>Controls.htm#66</td></tr><tr><th>GetCurrent:</th><td>-- index</td><td> </td><td>METHOD</td><td>ComboBox</td><td>Controls.htm#67</td></tr><tr><th>Enable:</th><td>f --</td><td> </td><td>METHOD</td><td>ComboBox</td><td>Controls.htm#68</td></tr><tr><th>Disable:</th><td>--</td><td> </td><td>METHOD</td><td>ComboBox</td><td>Controls.htm#69</td></tr><tr><th>ComboListBox</th><td> </td><td> </td><td>CLASS</td><td> </td><td>Controls.htm#71</td></tr><tr><th>WindowStyle:</th><td>-- style</td><td> </td><td>METHOD</td><td>ComboListBox</td><td>Controls.htm#72</td></tr><tr><th>Start:</th><td>Parent --</td><td> </td><td>METHOD</td><td>ComboListBox</td><td>Controls.htm#73</td></tr><tr><th>ListBox</th><td> </td><td> </td><td>CLASS</td><td> </td><td>Controls.htm#75</td></tr><tr><th>ClassInit:</th><td>--</td><td> </td><td>METHOD</td><td>ListBox</td><td>Controls.htm#76</td></tr><tr><th>WindowStyle:</th><td>-- style</td><td> </td><td>METHOD</td><td>ListBox</td><td>Controls.htm#77</td></tr><tr><th>AddStyle:</th><td>n --</td><td> </td><td>METHOD</td><td>ListBox</td><td>Controls.htm#78</td></tr><tr><th>SetDir:</th><td>dirz$ attrib --</td><td> </td><td>METHOD</td><td>ListBox</td><td>Controls.htm#79</td></tr><tr><th>Clear:</th><td>--</td><td> </td><td>METHOD</td><td>ListBox</td><td>Controls.htm#80</td></tr><tr><th>AddStringTo:</th><td>z"string" --</td><td> </td><td>METHOD</td><td>ListBox</td><td>Controls.htm#81</td></tr><tr><th>SetSelection:</th><td>n --</td><td> </td><td>METHOD</td><td>ListBox</td><td>Controls.htm#82</td></tr><tr><th>GetSelection:</th><td>-- n</td><td> </td><td>METHOD</td><td>ListBox</td><td>Controls.htm#83</td></tr><tr><th>GetString:</th><td>n addr -- n</td><td> </td><td>METHOD</td><td>ListBox</td><td>Controls.htm#84</td></tr><tr><th>GetSelectedString:</th><td>-- addr cnt</td><td> </td><td>METHOD</td><td>ListBox</td><td>Controls.htm#85</td></tr><tr><th>GetCount:</th><td>-- n</td><td> </td><td>METHOD</td><td>ListBox</td><td>Controls.htm#86</td></tr><tr><th>Setfont:</th><td>handle --</td><td> </td><td>METHOD</td><td>ListBox</td><td>Controls.htm#87</td></tr><tr><th>AddString:</th><td>lpszString --</td><td> </td><td>METHOD</td><td>ListBox</td><td>Controls.htm#88</td></tr><tr><th>InsertString:</th><td>lpszString index --</td><td> </td><td>METHOD</td><td>ListBox</td><td>Controls.htm#89</td></tr><tr><th>DeleteString:</th><td>index --</td><td> </td><td>METHOD</td><td>ListBox</td><td>Controls.htm#90</td></tr><tr><th>Find:</th><td>lpszString -- index</td><td> </td><td>METHOD</td><td>ListBox</td><td>Controls.htm#91</td></tr><tr><th>FindExact:</th><td>lpszString -- index</td><td> </td><td>METHOD</td><td>ListBox</td><td>Controls.htm#92</td></tr><tr><th>GetString:</th><td>index -- a n</td><td> </td><td>METHOD</td><td>ListBox</td><td>Controls.htm#93</td></tr><tr><th>GetCurrent:</th><td>-- index</td><td> </td><td>METHOD</td><td>ListBox</td><td>Controls.htm#94</td></tr><tr><th>SelectString:</th><td>lpszString -- index</td><td> </td><td>METHOD</td><td>ListBox</td><td>Controls.htm#95</td></tr><tr><th>GetState:</th><td>index -- f</td><td> </td><td>METHOD</td><td>ListBox</td><td>Controls.htm#96</td></tr><tr><th>Enable:</th><td>f --</td><td> </td><td>METHOD</td><td>ListBox</td><td>Controls.htm#97</td></tr><tr><th>Disable:</th><td>--</td><td> </td><td>METHOD</td><td>ListBox</td><td>Controls.htm#98</td></tr><tr><th>SetTabStops:</th><td>addr cnt --</td><td> </td><td>METHOD</td><td>ListBox</td><td>Controls.htm#99</td></tr><tr><th>MultiListbox</th><td> </td><td> </td><td>CLASS</td><td> </td><td>Controls.htm#101</td></tr><tr><th>WindowStyle:</th><td>-- style</td><td> </td><td>METHOD</td><td>MultiListbox</td><td>Controls.htm#102</td></tr><tr><th>Select:</th><td>index --</td><td> </td><td>METHOD</td><td>MultiListbox</td><td>Controls.htm#103</td></tr><tr><th>Unselect:</th><td>index --</td><td> </td><td>METHOD</td><td>MultiListbox</td><td>Controls.htm#104</td></tr><tr><th>GetSelCount:</th><td>-- n</td><td> </td><td>METHOD</td><td>MultiListbox</td><td>Controls.htm#105</td></tr><tr><th>GetSelectedItems:</th><td>array cnt -- count</td><td> </td><td>METHOD</td><td>MultiListbox</td><td>Controls.htm#106</td></tr><tr><th>MultiExListbox</th><td> </td><td> </td><td>CLASS</td><td> </td><td>Controls.htm#108</td></tr><tr><th>WindowStyle:</th><td>-- style</td><td> </td><td>METHOD</td><td>MultiExListbox</td><td>Controls.htm#109</td></tr><tr><th>DragListbox</th><td> </td><td> </td><td>CLASS</td><td> </td><td>Controls.htm#111</td></tr><tr><th>WindowStyle:</th><td>-- style</td><td> </td><td>METHOD</td><td>DragListbox</td><td>Controls.htm#112</td></tr><tr><th>Start:</th><td>Parent --</td><td> </td><td>METHOD</td><td>DragListbox</td><td>Controls.htm#113</td></tr><tr><th>UpDownControl</th><td> </td><td> </td><td>CLASS</td><td> </td><td>Controls.htm#115</td></tr><tr><th>ClassInit:</th><td>--</td><td> </td><td>METHOD</td><td>UpDownControl</td><td>Controls.htm#116</td></tr><tr><th>WindowStyle:</th><td>-- style</td><td> </td><td>METHOD</td><td>UpDownControl</td><td>Controls.htm#117</td></tr><tr><th>AddStyle:</th><td>n --</td><td> </td><td>METHOD</td><td>UpDownControl</td><td>Controls.htm#118</td></tr><tr><th>Start:</th><td>Parent --</td><td> </td><td>METHOD</td><td>UpDownControl</td><td>Controls.htm#119</td></tr><tr><th>StartSize:</th><td>-- cx cy</td><td> </td><td>METHOD</td><td>UpDownControl</td><td>Controls.htm#120</td></tr><tr><th>StartPos:</th><td>-- x y</td><td> </td><td>METHOD</td><td>UpDownControl</td><td>Controls.htm#121</td></tr><tr><th>SetBuddy:</th><td>hBuddy --</td><td> </td><td>METHOD</td><td>UpDownControl</td><td>Controls.htm#122</td></tr><tr><th>GetValue:</th><td>-- n</td><td> </td><td>METHOD</td><td>UpDownControl</td><td>Controls.htm#123</td></tr><tr><th>SetValue:</th><td>n --</td><td> </td><td>METHOD</td><td>UpDownControl</td><td>Controls.htm#124</td></tr><tr><th>SetDecimal:</th><td>--</td><td> </td><td>METHOD</td><td>UpDownControl</td><td>Controls.htm#125</td></tr><tr><th>SetHex:</th><td>--</td><td> </td><td>METHOD</td><td>UpDownControl</td><td>Controls.htm#126</td></tr><tr><th>GetBase:</th><td>-- n</td><td> </td><td>METHOD</td><td>UpDownControl</td><td>Controls.htm#127</td></tr><tr><th>SetRange:</th><td>lower upper --</td><td> </td><td>METHOD</td><td>UpDownControl</td><td>Controls.htm#128</td></tr><tr><th>GetRange:</th><td>-- lower upper</td><td> </td><td>METHOD</td><td>UpDownControl</td><td>Controls.htm#129</td></tr><tr><th>Enable:</th><td>f --</td><td> </td><td>METHOD</td><td>UpDownControl</td><td>Controls.htm#130</td></tr><tr><th>Disable:</th><td>--</td><td> </td><td>METHOD</td><td>UpDownControl</td><td>Controls.htm#131</td></tr><tr><th>CheckBox</th><td> </td><td> </td><td>CLASS</td><td> </td><td>Controls.htm#133</td></tr><tr><th>ClassInit:</th><td>--</td><td> </td><td>METHOD</td><td>CheckBox</td><td>Controls.htm#134</td></tr><tr><th>WindowStyle:</th><td>-- style</td><td> </td><td>METHOD</td><td>CheckBox</td><td>Controls.htm#135</td></tr><tr><th>AddStyle:</th><td>n --</td><td> </td><td>METHOD</td><td>CheckBox</td><td>Controls.htm#136</td></tr><tr><th>IsButtonChecked?:</th><td>-- f</td><td> </td><td>METHOD</td><td>CheckBox</td><td>Controls.htm#137</td></tr><tr><th>Enable:</th><td>f --</td><td> </td><td>METHOD</td><td>CheckBox</td><td>Controls.htm#138</td></tr><tr><th>Disable:</th><td>--</td><td> </td><td>METHOD</td><td>CheckBox</td><td>Controls.htm#139</td></tr><tr><th>Setfont:</th><td>handle --</td><td> </td><td>METHOD</td><td>CheckBox</td><td>Controls.htm#140</td></tr><tr><th>RadioButton</th><td> </td><td> </td><td>CLASS</td><td> </td><td>Controls.htm#142</td></tr><tr><th>ClassInit:</th><td>--</td><td> </td><td>METHOD</td><td>RadioButton</td><td>Controls.htm#143</td></tr><tr><th>WindowStyle:</th><td>-- style</td><td> </td><td>METHOD</td><td>RadioButton</td><td>Controls.htm#144</td></tr><tr><th>AddStyle:</th><td>n --</td><td> </td><td>METHOD</td><td>RadioButton</td><td>Controls.htm#145</td></tr><tr><th>IsButtonChecked?:</th><td>-- f</td><td> </td><td>METHOD</td><td>RadioButton</td><td>Controls.htm#146</td></tr><tr><th>CheckButton:</th><td>--</td><td> </td><td>METHOD</td><td>RadioButton</td><td>Controls.htm#147</td></tr><tr><th>UnCheckButton:</th><td>--</td><td> </td><td>METHOD</td><td>RadioButton</td><td>Controls.htm#148</td></tr><tr><th>Check:</th><td>f --</td><td> </td><td>METHOD</td><td>RadioButton</td><td>Controls.htm#149</td></tr><tr><th>Enable:</th><td>f --</td><td> </td><td>METHOD</td><td>RadioButton</td><td>Controls.htm#150</td></tr><tr><th>Disable:</th><td>--</td><td> </td><td>METHOD</td><td>RadioButton</td><td>Controls.htm#151</td></tr><tr><th>Setfont:</th><td>handle --</td><td> </td><td>METHOD</td><td>RadioButton</td><td>Controls.htm#152</td></tr><tr><th>GroupRadioButton</th><td> </td><td> </td><td>CLASS</td><td> </td><td>Controls.htm#154</td></tr><tr><th>WindowStyle:</th><td>-- style</td><td> </td><td>METHOD</td><td>GroupRadioButton</td><td>Controls.htm#155</td></tr><tr><th>PushButton</th><td> </td><td> </td><td>CLASS</td><td> </td><td>Controls.htm#157</td></tr><tr><th>ClassInit:</th><td>--</td><td> </td><td>METHOD</td><td>PushButton</td><td>Controls.htm#158</td></tr><tr><th>WindowStyle:</th><td>-- style</td><td> </td><td>METHOD</td><td>PushButton</td><td>Controls.htm#159</td></tr><tr><th>AddStyle:</th><td>n --</td><td> </td><td>METHOD</td><td>PushButton</td><td>Controls.htm#160</td></tr><tr><th>Setfont:</th><td>handle --</td><td> </td><td>METHOD</td><td>PushButton</td><td>Controls.htm#161</td></tr><tr><th>Enable:</th><td>f --</td><td> </td><td>METHOD</td><td>PushButton</td><td>Controls.htm#162</td></tr><tr><th>Disable:</th><td>--</td><td> </td><td>METHOD</td><td>PushButton</td><td>Controls.htm#163</td></tr><tr><th>DefPushButton</th><td> </td><td> </td><td>CLASS</td><td> </td><td>Controls.htm#165</td></tr><tr><th>WindowStyle:</th><td>-- style</td><td> </td><td>METHOD</td><td>DefPushButton</td><td>Controls.htm#166</td></tr><tr><th>Label</th><td> </td><td> </td><td>CLASS</td><td> </td><td>Controls.htm#168</td></tr><tr><th>ClassInit:</th><td>--</td><td> </td><td>METHOD</td><td>Label</td><td>Controls.htm#169</td></tr><tr><th>WindowStyle:</th><td>-- style</td><td> </td><td>METHOD</td><td>Label</td><td>Controls.htm#170</td></tr><tr><th>AddStyle:</th><td>n --</td><td> </td><td>METHOD</td><td>Label</td><td>Controls.htm#171</td></tr><tr><th>Setfont:</th><td>handle --</td><td> </td><td>METHOD</td><td>Label</td><td>Controls.htm#172</td></tr><tr><th>Enable:</th><td>f --</td><td> </td><td>METHOD</td><td>Label</td><td>Controls.htm#173</td></tr><tr><th>Disable:</th><td>--</td><td> </td><td>METHOD</td><td>Label</td><td>Controls.htm#174</td></tr><tr><th>StaticImage</th><td> </td><td> </td><td>|CLASS</td><td> </td><td>Controls.htm#176</td></tr><tr><th>ImageType:</th><td>-- ImageType</td><td> </td><td>METHOD</td><td>StaticImage</td><td>Controls.htm#177</td></tr><tr><th>GetImage:</th><td>-- hImage</td><td> </td><td>METHOD</td><td>StaticImage</td><td>Controls.htm#178</td></tr><tr><th>SetImage:</th><td>hImage --</td><td> </td><td>METHOD</td><td>StaticImage</td><td>Controls.htm#179</td></tr><tr><th>SetFont:</th><td>fhndl --</td><td> </td><td>METHOD</td><td>StaticImage</td><td>Controls.htm#180</td></tr><tr><th>StaticBitmap</th><td> </td><td> </td><td>CLASS</td><td> </td><td>Controls.htm#182</td></tr><tr><th>WindowStyle:</th><td>-- style</td><td> </td><td>METHOD</td><td>StaticBitmap</td><td>Controls.htm#183</td></tr><tr><th>StaticIcon</th><td> </td><td> </td><td>CLASS</td><td> </td><td>Controls.htm#185</td></tr><tr><th>WindowStyle:</th><td>-- style</td><td> </td><td>METHOD</td><td>StaticIcon</td><td>Controls.htm#186</td></tr><tr><th>ImageType:</th><td>-- ImageType</td><td> </td><td>METHOD</td><td>StaticIcon</td><td>Controls.htm#187</td></tr><tr><th>StaticMetafile</th><td> </td><td> </td><td>CLASS</td><td> </td><td>Controls.htm#189</td></tr><tr><th>WindowStyle:</th><td>-- style</td><td> </td><td>METHOD</td><td>StaticMetafile</td><td>Controls.htm#190</td></tr><tr><th>ImageType:</th><td>-- ImageType</td><td> </td><td>METHOD</td><td>StaticMetafile</td><td>Controls.htm#191</td></tr><tr><th>StaticFrame</th><td> </td><td> </td><td>CLASS</td><td> </td><td>Controls.htm#193</td></tr><tr><th>BlackRect:</th><td>--</td><td> </td><td>METHOD</td><td>StaticFrame</td><td>Controls.htm#194</td></tr><tr><th>GrayRect:</th><td>--</td><td> </td><td>METHOD</td><td>StaticFrame</td><td>Controls.htm#195</td></tr><tr><th>WhiteRect:</th><td>--</td><td> </td><td>METHOD</td><td>StaticFrame</td><td>Controls.htm#196</td></tr><tr><th>BlackFrame:</th><td>--</td><td> </td><td>METHOD</td><td>StaticFrame</td><td>Controls.htm#197</td></tr><tr><th>GrayFrame:</th><td>--</td><td> </td><td>METHOD</td><td>StaticFrame</td><td>Controls.htm#198</td></tr><tr><th>WhiteFrame:</th><td>--</td><td> </td><td>METHOD</td><td>StaticFrame</td><td>Controls.htm#199</td></tr><tr><th>EtchedFrame:</th><td>--</td><td> </td><td>METHOD</td><td>StaticFrame</td><td>Controls.htm#200</td></tr><tr><th>SunkenFrame:</th><td>--</td><td> </td><td>METHOD</td><td>StaticFrame</td><td>Controls.htm#201</td></tr><tr><th>GroupBox</th><td> </td><td> </td><td>CLASS</td><td> </td><td>Controls.htm#203</td></tr><tr><th>ClassInit:</th><td>--</td><td> </td><td>METHOD</td><td>GroupBox</td><td>Controls.htm#204</td></tr><tr><th>WindowStyle:</th><td>-- style</td><td> </td><td>METHOD</td><td>GroupBox</td><td>Controls.htm#205</td></tr><tr><th>AddStyle:</th><td>n --</td><td> </td><td>METHOD</td><td>GroupBox</td><td>Controls.htm#206</td></tr><tr><th>Setfont:</th><td>handle --</td><td> </td><td>METHOD</td><td>GroupBox</td><td>Controls.htm#207</td></tr><tr><th>Enable:</th><td>f --</td><td> </td><td>METHOD</td><td>GroupBox</td><td>Controls.htm#208</td></tr><tr><th>Disable:</th><td>--</td><td> </td><td>METHOD</td><td>GroupBox</td><td>Controls.htm#209</td></tr><tr><th>Progressbar</th><td> </td><td> </td><td>CLASS</td><td> </td><td>Controls.htm#211</td></tr><tr><th>Start:</th><td>Parent --</td><td> </td><td>METHOD</td><td>Progressbar</td><td>Controls.htm#212</td></tr><tr><th>ClassInit:</th><td>--</td><td> </td><td>METHOD</td><td>Progressbar</td><td>Controls.htm#213</td></tr><tr><th>WindowStyle:</th><td>-- style</td><td> </td><td>METHOD</td><td>Progressbar</td><td>Controls.htm#214</td></tr><tr><th>AddStyle:</th><td>n --</td><td> </td><td>METHOD</td><td>Progressbar</td><td>Controls.htm#215</td></tr><tr><th>+Value:</th><td>n --</td><td> </td><td>METHOD</td><td>Progressbar</td><td>Controls.htm#216</td></tr><tr><th>GetValue:</th><td>-- n</td><td> </td><td>METHOD</td><td>Progressbar</td><td>Controls.htm#217</td></tr><tr><th>SetValue:</th><td>n --</td><td> </td><td>METHOD</td><td>Progressbar</td><td>Controls.htm#218</td></tr><tr><th>SetRange:</th><td>min max --</td><td> </td><td>METHOD</td><td>Progressbar</td><td>Controls.htm#219</td></tr><tr><th>SetStep:</th><td>n --</td><td> </td><td>METHOD</td><td>Progressbar</td><td>Controls.htm#220</td></tr><tr><th>GetStep:</th><td>-- n</td><td> </td><td>METHOD</td><td>Progressbar</td><td>Controls.htm#221</td></tr><tr><th>StepIt:</th><td>--</td><td> </td><td>METHOD</td><td>Progressbar</td><td>Controls.htm#222</td></tr><tr><th>SmoothProgressbar</th><td> </td><td> </td><td>CLASS</td><td> </td><td>Controls.htm#224</td></tr><tr><th>WindowStyle:</th><td>-- style</td><td> </td><td>METHOD</td><td>SmoothProgressbar</td><td>Controls.htm#225</td></tr><tr><th>Trackbar</th><td> </td><td> </td><td>CLASS</td><td> </td><td>Controls.htm#227</td></tr><tr><th>Start:</th><td>Parent --</td><td> </td><td>METHOD</td><td>Trackbar</td><td>Controls.htm#228</td></tr><tr><th>ClassInit:</th><td>--</td><td> </td><td>METHOD</td><td>Trackbar</td><td>Controls.htm#229</td></tr><tr><th>WindowStyle:</th><td>-- style</td><td> </td><td>METHOD</td><td>Trackbar</td><td>Controls.htm#230</td></tr><tr><th>AddStyle:</th><td>n --</td><td> </td><td>METHOD</td><td>Trackbar</td><td>Controls.htm#231</td></tr><tr><th>GetLineSize:</th><td>-- n</td><td> </td><td>METHOD</td><td>Trackbar</td><td>Controls.htm#232</td></tr><tr><th>SetLineSize:</th><td>n --</td><td> </td><td>METHOD</td><td>Trackbar</td><td>Controls.htm#233</td></tr><tr><th>GetPageSize:</th><td>-- n</td><td> </td><td>METHOD</td><td>Trackbar</td><td>Controls.htm#234</td></tr><tr><th>SetPageSize:</th><td>n --</td><td> </td><td>METHOD</td><td>Trackbar</td><td>Controls.htm#235</td></tr><tr><th>GetValue:</th><td>-- n</td><td> </td><td>METHOD</td><td>Trackbar</td><td>Controls.htm#236</td></tr><tr><th>SetValue:</th><td>n --</td><td> </td><td>METHOD</td><td>Trackbar</td><td>Controls.htm#237</td></tr><tr><th>GetRangeMax:</th><td>-- n</td><td> </td><td>METHOD</td><td>Trackbar</td><td>Controls.htm#238</td></tr><tr><th>SetRangeMax:</th><td>max f --</td><td> </td><td>METHOD</td><td>Trackbar</td><td>Controls.htm#239</td></tr><tr><th>GetRangeMin:</th><td>-- n</td><td> </td><td>METHOD</td><td>Trackbar</td><td>Controls.htm#240</td></tr><tr><th>SetRangeMin:</th><td>min f --</td><td> </td><td>METHOD</td><td>Trackbar</td><td>Controls.htm#241</td></tr><tr><th>GetSelEnd:</th><td>-- n</td><td> </td><td>METHOD</td><td>Trackbar</td><td>Controls.htm#242</td></tr><tr><th>SetSelEnd:</th><td>end f --</td><td> </td><td>METHOD</td><td>Trackbar</td><td>Controls.htm#243</td></tr><tr><th>GetSelStart:</th><td>-- n</td><td> </td><td>METHOD</td><td>Trackbar</td><td>Controls.htm#244</td></tr><tr><th>SetSelStart:</th><td>start f --</td><td> </td><td>METHOD</td><td>Trackbar</td><td>Controls.htm#245</td></tr><tr><th>GetThumbLength:</th><td>-- n</td><td> </td><td>METHOD</td><td>Trackbar</td><td>Controls.htm#246</td></tr><tr><th>SetThumbLength:</th><td>n --</td><td> </td><td>METHOD</td><td>Trackbar</td><td>Controls.htm#247</td></tr><tr><th>GetChannelRect:</th><td>lpRect --</td><td> </td><td>METHOD</td><td>Trackbar</td><td>Controls.htm#248</td></tr><tr><th>GetThumbRect:</th><td>lpRect --</td><td> </td><td>METHOD</td><td>Trackbar</td><td>Controls.htm#249</td></tr><tr><th>GetTick:</th><td>iTic -- n</td><td> </td><td>METHOD</td><td>Trackbar</td><td>Controls.htm#250</td></tr><tr><th>SetTick:</th><td>pos --</td><td> </td><td>METHOD</td><td>Trackbar</td><td>Controls.htm#251</td></tr><tr><th>ClearTicks:</th><td>f --</td><td> </td><td>METHOD</td><td>Trackbar</td><td>Controls.htm#252</td></tr><tr><th>GetTickPos:</th><td>iTic -- n</td><td> </td><td>METHOD</td><td>Trackbar</td><td>Controls.htm#253</td></tr><tr><th>GetTicksPtr:</th><td>-- pointer</td><td> </td><td>METHOD</td><td>Trackbar</td><td>Controls.htm#254</td></tr><tr><th>SetTickFreq:</th><td>pos freq --</td><td> </td><td>METHOD</td><td>Trackbar</td><td>Controls.htm#255</td></tr><tr><th>GetNumTicks:</th><td>-- n</td><td> </td><td>METHOD</td><td>Trackbar</td><td>Controls.htm#256</td></tr><tr><th>SetRange:</th><td>min max f --</td><td> </td><td>METHOD</td><td>Trackbar</td><td>Controls.htm#257</td></tr><tr><th>SetSel:</th><td>min max f --</td><td> </td><td>METHOD</td><td>Trackbar</td><td>Controls.htm#258</td></tr><tr><th>ClearSel:</th><td>f --</td><td> </td><td>METHOD</td><td>Trackbar</td><td>Controls.htm#259</td></tr><tr><th>Enable:</th><td>f --</td><td> </td><td>METHOD</td><td>Trackbar</td><td>Controls.htm#260</td></tr><tr><th>Disable:</th><td>--</td><td> </td><td>METHOD</td><td>Trackbar</td><td>Controls.htm#261</td></tr><tr><th>VTrackBar</th><td> </td><td> </td><td>CLASS</td><td> </td><td>Controls.htm#263</td></tr><tr><th>WindowStyle:</th><td>-- style</td><td> </td><td>METHOD</td><td>VTrackBar</td><td>Controls.htm#264</td></tr><tr><th>Statusbar</th><td> </td><td> </td><td>CLASS</td><td> </td><td>Controls.htm#266</td></tr><tr><th>ClassInit:</th><td>--</td><td> </td><td>METHOD</td><td>Statusbar</td><td>Controls.htm#267</td></tr><tr><th>AddStyle:</th><td>n --</td><td> </td><td>METHOD</td><td>Statusbar</td><td>Controls.htm#268</td></tr><tr><th>Start:</th><td>Parent --</td><td> </td><td>METHOD</td><td>Statusbar</td><td>Controls.htm#269</td></tr><tr><th>WindowStyle:</th><td>-- style</td><td> </td><td>METHOD</td><td>Statusbar</td><td>Controls.htm#270</td></tr><tr><th>RaisedBorder:</th><td>--</td><td> </td><td>METHOD</td><td>Statusbar</td><td>Controls.htm#271</td></tr><tr><th>NoBorder:</th><td>--</td><td> </td><td>METHOD</td><td>Statusbar</td><td>Controls.htm#272</td></tr><tr><th>SunkenBorder:</th><td>--</td><td> </td><td>METHOD</td><td>Statusbar</td><td>Controls.htm#273</td></tr><tr><th>ClassInit:</th><td>--</td><td> </td><td>METHOD</td><td>Statusbar</td><td>Controls.htm#274</td></tr><tr><th>MinHeight:</th><td>#pixels --</td><td> </td><td>METHOD</td><td>Statusbar</td><td>Controls.htm#275</td></tr><tr><th>GetBorders:</th><td>-- hWidth vWidth divWidth</td><td> </td><td>METHOD</td><td>Statusbar</td><td>Controls.htm#276</td></tr><tr><th>Redraw:</th><td>--</td><td> </td><td>METHOD</td><td>Statusbar</td><td>Controls.htm#277</td></tr><tr><th>SetText:</th><td>szText --</td><td> </td><td>METHOD</td><td>Statusbar</td><td>Controls.htm#278</td></tr><tr><th>Clear:</th><td>--</td><td> </td><td>METHOD</td><td>Statusbar</td><td>Controls.htm#279</td></tr><tr><th>Setfont:</th><td>handle --</td><td> </td><td>METHOD</td><td>Statusbar</td><td>Controls.htm#280</td></tr><tr><th>MultiStatusbar</th><td> </td><td> </td><td>CLASS</td><td> </td><td>Controls.htm#282</td></tr><tr><th>Start:</th><td>Parent --</td><td> </td><td>METHOD</td><td>MultiStatusbar</td><td>Controls.htm#283</td></tr><tr><th>SetParts:</th><td>aWidths nParts --</td><td> </td><td>METHOD</td><td>MultiStatusbar</td><td>Controls.htm#284</td></tr><tr><th>GetParts:</th><td>-- aWidths nParts</td><td> </td><td>METHOD</td><td>MultiStatusbar</td><td>Controls.htm#285</td></tr><tr><th>SetSimple:</th><td>--</td><td> </td><td>METHOD</td><td>MultiStatusbar</td><td>Controls.htm#286</td></tr><tr><th>SetMulti:</th><td>--</td><td> </td><td>METHOD</td><td>MultiStatusbar</td><td>Controls.htm#287</td></tr><tr><th>SetText:</th><td>szText n --</td><td> </td><td>METHOD</td><td>MultiStatusbar</td><td>Controls.htm#288</td></tr><tr><th>BitmapButton</th><td> </td><td> </td><td>CLASS</td><td> </td><td>Controls.htm#290</td></tr><tr><th>ClassInit:</th><td>--</td><td> </td><td>METHOD</td><td>BitmapButton</td><td>Controls.htm#291</td></tr><tr><th>WindowStyle:</th><td>-- style</td><td> </td><td>METHOD</td><td>BitmapButton</td><td>Controls.htm#292</td></tr><tr><th>IconButton</th><td> </td><td> </td><td>CLASS</td><td> </td><td>Controls.htm#294</td></tr><tr><th>ClassInit:</th><td>--</td><td> </td><td>METHOD</td><td>IconButton</td><td>Controls.htm#295</td></tr><tr><th>WindowStyle:</th><td>-- style</td><td> </td><td>METHOD</td><td>IconButton</td><td>Controls.htm#296</td></tr><tr><th>SetIcon:</th><td>hIcon --</td><td> </td><td>METHOD</td><td>IconButton</td><td>Controls.htm#297</td></tr><tr><th>GetIcon:</th><td>-- hIcon</td><td> </td><td>METHOD</td><td>IconButton</td><td>Controls.htm#298</td></tr><tr><th>ScrollBar</th><td> </td><td> </td><td>|CLASS</td><td> </td><td>Controls.htm#300</td></tr><tr><th>ClassInit:</th><td>--</td><td> </td><td>METHOD</td><td>ScrollBar</td><td>Controls.htm#301</td></tr><tr><th>WindowStyle:</th><td>-- style</td><td> </td><td>METHOD</td><td>ScrollBar</td><td>Controls.htm#302</td></tr><tr><th>AddStyle:</th><td>n --</td><td> </td><td>METHOD</td><td>ScrollBar</td><td>Controls.htm#303</td></tr><tr><th>Start:</th><td>Parent --</td><td> </td><td>METHOD</td><td>ScrollBar</td><td>Controls.htm#304</td></tr><tr><th>SetFont:</th><td>hndl --</td><td> </td><td>METHOD</td><td>ScrollBar</td><td>Controls.htm#305</td></tr><tr><th>Enable:</th><td>f --</td><td> </td><td>METHOD</td><td>ScrollBar</td><td>Controls.htm#306</td></tr><tr><th>Disable:</th><td>--</td><td> </td><td>METHOD</td><td>ScrollBar</td><td>Controls.htm#307</td></tr><tr><th>WindowStyle:</th><td>-- style</td><td> </td><td>METHOD</td><td>ScrollBar</td><td>Controls.htm#308</td></tr><tr><th>VertScroll</th><td> </td><td> </td><td>CLASS</td><td> </td><td>Controls.htm#310</td></tr><tr><th>WindowStyle:</th><td>-- style</td><td> </td><td>METHOD</td><td>VertScroll</td><td>Controls.htm#311</td></tr><tr><th>SizeBox</th><td> </td><td> </td><td>CLASS</td><td> </td><td>Controls.htm#313</td></tr><tr><th>WindowStyle:</th><td>-- style</td><td> </td><td>METHOD</td><td>SizeBox</td><td>Controls.htm#314</td></tr><tr><th>MonthCalendar</th><td> </td><td> </td><td>CLASS</td><td> </td><td>Controls.htm#316</td></tr><tr><th>ClassInit:</th><td>--</td><td> </td><td>METHOD</td><td>MonthCalendar</td><td>Controls.htm#317</td></tr><tr><th>AddStyle:</th><td>n --</td><td> </td><td>METHOD</td><td>MonthCalendar</td><td>Controls.htm#318</td></tr><tr><th>Start:</th><td>Parent --</td><td> </td><td>METHOD</td><td>MonthCalendar</td><td>Controls.htm#319</td></tr><tr><th>MinSize:</th><td>-- x y</td><td> </td><td>METHOD</td><td>MonthCalendar</td><td>Controls.htm#320</td></tr><tr><th>WindowStyle:</th><td>-- style</td><td> </td><td>METHOD</td><td>MonthCalendar</td><td>Controls.htm#321</td></tr><tr><th>DateTimePicker</th><td> </td><td> </td><td>CLASS</td><td> </td><td>Controls.htm#323</td></tr><tr><th>ClassInit:</th><td>--</td><td> </td><td>METHOD</td><td>DateTimePicker</td><td>Controls.htm#324</td></tr><tr><th>AddStyle:</th><td>n --</td><td> </td><td>METHOD</td><td>DateTimePicker</td><td>Controls.htm#325</td></tr><tr><th>Start:</th><td>Parent --</td><td> </td><td>METHOD</td><td>DateTimePicker</td><td>Controls.htm#326</td></tr><tr><th>WindowStyle:</th><td>-- style</td><td> </td><td>METHOD</td><td>DateTimePicker</td><td>Controls.htm#327</td></tr><tr><th>SetCustomFormat:</th><td>z"format" --</td><td> </td><td>METHOD</td><td>DateTimePicker</td><td>Controls.htm#328</td></tr><tr><th>GetTime:</th><td>-- hrs min secs</td><td> </td><td>METHOD</td><td>DateTimePicker</td><td>Controls.htm#329</td></tr><tr><th>SetTime:</th><td>hr min sec --</td><td> </td><td>METHOD</td><td>DateTimePicker</td><td>Controls.htm#330</td></tr><tr><th>GetDate:</th><td>-- day month year</td><td> </td><td>METHOD</td><td>DateTimePicker</td><td>Controls.htm#331</td></tr><tr><th>TabControl</th><td> </td><td> </td><td>CLASS</td><td> </td><td>Controls.htm#333</td></tr><tr><th>Start:</th><td>Parent --</td><td> </td><td>METHOD</td><td>TabControl</td><td>Controls.htm#334</td></tr><tr><th>ClassInit:</th><td>--</td><td> </td><td>METHOD</td><td>TabControl</td><td>Controls.htm#335</td></tr><tr><th>WindowStyle:</th><td>-- style</td><td> </td><td>METHOD</td><td>TabControl</td><td>Controls.htm#336</td></tr><tr><th>AddStyle:</th><td>n --</td><td> </td><td>METHOD</td><td>TabControl</td><td>Controls.htm#337</td></tr><tr><th>InsertTab:</th><td>index --</td><td> </td><td>METHOD</td><td>TabControl</td><td>Controls.htm#338</td></tr><tr><th>GetTabInfo:</th><td>index --</td><td> </td><td>METHOD</td><td>TabControl</td><td>Controls.htm#339</td></tr><tr><th>SetTabInfo:</th><td>index --</td><td> </td><td>METHOD</td><td>TabControl</td><td>Controls.htm#340</td></tr><tr><th>ClientSize:</th><td>-- x y w h</td><td> </td><td>METHOD</td><td>TabControl</td><td>Controls.htm#341</td></tr><tr><th>WindowSize:</th><td>0 0 width height -- x y w h</td><td> </td><td>METHOD</td><td>TabControl</td><td>Controls.htm#342</td></tr><tr><th>Enable:</th><td>f --</td><td> </td><td>METHOD</td><td>TabControl</td><td>Controls.htm#343</td></tr><tr><th>Disable:</th><td>--</td><td> </td><td>METHOD</td><td>TabControl</td><td>Controls.htm#344</td></tr><tr><th>Setfont:</th><td>handle --</td><td> </td><td>METHOD</td><td>TabControl</td><td>Controls.htm#345</td></tr><tr><th>WindowTitle:</th><td>-- null$</td><td> </td><td>METHOD</td><td>TabControl</td><td>Controls.htm#346</td></tr><tr><th>VertButtonBar</th><td> </td><td> </td><td>CLASS</td><td> </td><td>Controls.htm#348</td></tr><tr><th>SetFont:</th><td>fonthndl \ hb1 --</td><td> </td><td>METHOD</td><td>VertButtonBar</td><td>Controls.htm#349</td></tr><tr><th>Enable:</th><td>flag \ hb1 --</td><td> </td><td>METHOD</td><td>VertButtonBar</td><td>Controls.htm#350</td></tr><tr><th>Disable:</th><td>--</td><td> </td><td>METHOD</td><td>VertButtonBar</td><td>Controls.htm#351</td></tr><tr><th>HorizButtonBar</th><td> </td><td> </td><td>CLASS</td><td> </td><td>Controls.htm#353</td></tr><tr><th>SetFont:</th><td>fonthndl \ hb1 --</td><td> </td><td>METHOD</td><td>HorizButtonBar</td><td>Controls.htm#354</td></tr><tr><th>Enable:</th><td>flag \ hb1 --</td><td> </td><td>METHOD</td><td>HorizButtonBar</td><td>Controls.htm#355</td></tr><tr><th>Disable:</th><td>--</td><td> </td><td>METHOD</td><td>HorizButtonBar</td><td>Controls.htm#356</td></tr><tr><th>MdiDialogWindow</th><td> </td><td> </td><td>CLASS</td><td> </td><td>MdiDialog.htm#0</td></tr><tr><th>ClassInit:</th><td>--</td><td> </td><td>METHOD</td><td>MdiDialogWindow</td><td>MdiDialog.htm#1</td></tr><tr><th>~:</th><td>--</td><td> </td><td>METHOD</td><td>MdiDialogWindow</td><td>MdiDialog.htm#2</td></tr><tr><th>AXControl</th><td> </td><td> </td><td>CLASS</td><td> </td><td>AXControl.htm#0</td></tr><tr><th>AXUCreate:</th><td>ustr --</td><td> </td><td>METHOD</td><td>AXControl</td><td>AXControl.htm#1</td></tr><tr><th>AXCreate:</th><td>str len --</td><td> </td><td>METHOD</td><td>AXControl</td><td>AXControl.htm#2</td></tr><tr><th>QueryInterface:</th><td>ppv riid -- flag</td><td> </td><td>METHOD</td><td>AXControl</td><td>AXControl.htm#3</td></tr><tr><th>HTMLControl</th><td> </td><td> </td><td>CLASS</td><td> </td><td>HTMLcontrol.htm#0</td></tr><tr><th>Start:</th><td>Parent --</td><td> </td><td>METHOD</td><td>HTMLControl</td><td>HTMLcontrol.htm#1</td></tr><tr><th>GetLocationURL:</th><td>-- str len</td><td> </td><td>METHOD</td><td>HTMLControl</td><td>HTMLcontrol.htm#2</td></tr><tr><th>GetLocationName:</th><td>-- str len</td><td> </td><td>METHOD</td><td>HTMLControl</td><td>HTMLcontrol.htm#3</td></tr><tr><th>GetType:</th><td>-- str len</td><td>&nb... [truncated message content] |
From: George H. <geo...@us...> - 2006-02-07 19:40:19
|
Update of /cvsroot/win32forth/win32forth/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv21665/win32forth/src Modified Files: Module.f Log Message: gah: More dexing Index: Module.f =================================================================== RCS file: /cvsroot/win32forth/win32forth/src/Module.f,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** Module.f 4 Feb 2006 16:12:24 -0000 1.4 --- Module.f 7 Feb 2006 11:25:49 -0000 1.5 *************** *** 47,51 **** \ *S Glossary ! : (PRIVATE) ( xt-of-voc -- ) \ *G Set the vocabulary for internal definitions for the next module to be built. \ ** This is a non-parsing version of the word PRIVATE. --- 47,51 ---- \ *S Glossary ! : (PRIVATE) ( xt-of-voc -- ) \ W32F Module System \ *G Set the vocabulary for internal definitions for the next module to be built. \ ** This is a non-parsing version of the word PRIVATE. *************** *** 54,63 **** is hidden-voc ; ! : PRIVATE ( -<voc>- ) \ *G Set the vocabulary for internal definitions for the next module to be built. \ ** This is a parsing version of the word (PRIVATE). ' (private) ; ! : INTERNAL ( -- ) \ *G If a module hasn't yet been started or the internal vocabulary isn't the context \ ** vocabulary add the internal vocabulary to the search order and save the current --- 54,63 ---- is hidden-voc ; ! : PRIVATE ( -<voc>- ) \ W32F Module System \ *G Set the vocabulary for internal definitions for the next module to be built. \ ** This is a parsing version of the word (PRIVATE). ' (private) ; ! : INTERNAL ( -- ) \ W32F Module System \ *G If a module hasn't yet been started or the internal vocabulary isn't the context \ ** vocabulary add the internal vocabulary to the search order and save the current *************** *** 72,81 **** then ; ! : EXTERNAL ( -- ) \ *G Make the external vocabulary the current vocabulary. pre-voc 0= abort" Use Only while building a module" pre-voc current ! ; ! : MODULE ( -- ) \ *G Complete the module by making the external vocabulary the current vocabulary, \ ** removing the internal vocabulary from the search order if it's the context --- 72,81 ---- then ; ! : EXTERNAL ( -- ) \ W32F Module System \ *G Make the external vocabulary the current vocabulary. pre-voc 0= abort" Use Only while building a module" pre-voc current ! ; ! : MODULE ( -- ) \ W32F Module System \ *G Complete the module by making the external vocabulary the current vocabulary, \ ** removing the internal vocabulary from the search order if it's the context |
From: George H. <geo...@us...> - 2006-02-07 19:23:17
|
Update of /cvsroot/win32forth/win32forth/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv22051/win32forth/src Modified Files: FLOAT.F Log Message: gah: More dexing and optimising (still work in progress) Index: FLOAT.F =================================================================== RCS file: /cvsroot/win32forth/win32forth/src/FLOAT.F,v retrieving revision 1.34 retrieving revision 1.35 diff -C2 -d -r1.34 -r1.35 *** FLOAT.F 6 Feb 2006 15:40:36 -0000 1.34 --- FLOAT.F 7 Feb 2006 11:26:46 -0000 1.35 *************** *** 116,120 **** \ *G Get x87 FPU Status Word. push tos ! fnstsw ax mov tos, eax next, --- 116,120 ---- \ *G Get x87 FPU Status Word. push tos ! fstsw ax mov tos, eax next, *************** *** 208,212 **** L$1: fld FSIZE FSTACK_MEMORY fxam ! fnstsw ax mov ebx, eax and ebx, # FPU_STATUS_CCF_MASK --- 208,212 ---- L$1: fld FSIZE FSTACK_MEMORY fxam ! fstsw ax mov ebx, eax and ebx, # FPU_STATUS_CCF_MASK *************** *** 221,228 **** \ ** Tasks in a multi-task program should execute this word before executing any \ ** other floating-point words. ! fninit mov FSP_MEMORY , edi B/FLOAT 10 = 0= [IF] ! fnstcw word -4 [ebp] and word -4 [ebp], # 0x0eff \ 8 byte mode fldcw word -4 [ebp] [THEN] --- 221,228 ---- \ ** Tasks in a multi-task program should execute this word before executing any \ ** other floating-point words. ! finit mov FSP_MEMORY , edi B/FLOAT 10 = 0= [IF] ! fstcw word -4 [ebp] and word -4 [ebp], # 0x0eff \ 8 byte mode fldcw word -4 [ebp] [THEN] *************** *** 750,760 **** \ \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ! \ Rounding Modes \ \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ - internal - - cell newuser cwtemp - in-system --- 750,756 ---- \ \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ! \ *N Rounding functions \ \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ in-system *************** *** 763,774 **** \ output: bx = org FPU Control Word macro: set-rounding-mode ! fstcw word cwtemp [up] ! mov ax, cwtemp [up] ! push ax and ax, # 0x0f3ff or ax, bx ! mov cwtemp [up], ax ! fldcw word cwtemp [up] ! pop bx endm --- 759,769 ---- \ output: bx = org FPU Control Word macro: set-rounding-mode ! fstcw word -4 [ebp] ! mov ax, -4 [ebp] and ax, # 0x0f3ff or ax, bx ! mov -8 [ebp], ax ! fldcw word -8 [ebp] ! mov bx, -4 [ebp] endm *************** *** 776,781 **** \ input: bx = org FPU Control Word macro: restore-rounding-mode ! mov cwtemp [up], bx ! fldcw word cwtemp [up] endm --- 771,776 ---- \ input: bx = org FPU Control Word macro: restore-rounding-mode ! mov -4 [ebp], bx ! fldcw word -4 [ebp] endm *************** *** 793,800 **** in-application - external - - \ *N Rounding functions - code FLOOR ( fs: r1 -- r2 ) \ ANSI Floating \ *G Round r1 to an integral value using the round toward negative infinity rule, --- 788,791 ---- *************** *** 848,878 **** mov tos, 8 [esp] lea esp, 12 [esp] - FPU> - float; \ Changed 3/13/99 rls code F>D ( -- d ; fs: r -- ) \ ANSI Floating ! \ *G Convert floating-point number to double number. If the result would be too large ! \ ** to fit in a double number then \n -9223372036854775808 is returned. fstack-check_1 >FPU ! push ebx mov bx, # 0x00c00 \ Set rounding to truncate set-rounding-mode - sub esp, # 8 fistp qword 0 [esp] restore-rounding-mode ! pop ebx ! xchg ebx, 0 [esp] float; code ZF>D ( -- d ; fs: r -- ) \ W32F Floating extra fstack-check_1 >FPU sub esp, # 8 fistp qword 0 [esp] ! xchg ebx, 4 [esp] float; --- 839,876 ---- mov tos, 8 [esp] lea esp, 12 [esp] FPU> float; \ Changed 3/13/99 rls code F>D ( -- d ; fs: r -- ) \ ANSI Floating ! \ *G Convert floating-point number to double number, by rounding towards zero. If the ! \ ** result would be too large to fit in a double number then \n -9223372036854775808 ! \ ** is returned. fstack-check_1 >FPU ! sub esp, # 12 ! mov 8 [esp], tos ! xor ebx, ebx mov bx, # 0x00c00 \ Set rounding to truncate set-rounding-mode fistp qword 0 [esp] restore-rounding-mode ! mov tos, 4 [esp] ! mov eax, 0 [esp] ! mov 4 [esp], eax ! add esp, # 4 float; code ZF>D ( -- d ; fs: r -- ) \ W32F Floating extra + \ *G Convert floating-point number to double number, using the current rounding mode + \ ** (rounding towards zero unless changed by the user). If the result would be too + \ ** large to fit in a double number then \n -9223372036854775808 is returned. fstack-check_1 >FPU sub esp, # 8 fistp qword 0 [esp] ! mov eax, 4 [esp] ! mov 4 [esp], tos ! mov tos, eax float; *************** *** 927,931 **** macro: (fcomp) ! fnstsw ax push ebx mov ebx, eax --- 925,929 ---- macro: (fcomp) ! fstsw ax push ebx mov ebx, eax *************** *** 1027,1031 **** fstack-check_2 2>FPU - \ fxch fdivrp st(1), st FPU> --- 1025,1028 ---- *************** *** 1083,1087 **** internal ! code f**+n ( fs: r1 -- r2 ; n -- ) fstack-check_1 fld1 --- 1080,1084 ---- internal ! code f**+n ( n -- ; fs: r1 -- r2 ) \ r2 is r1 to the power n, where n is positve. fstack-check_1 fld1 *************** *** 1104,1110 **** float; ! : f**n ( Fs: r1 -- r2 ; n -- ) \ Floating number raised to integer power. DUP 0< ! IF ABS F**+N F1.0 FSWAP F/ ELSE F**+N THEN ; --- 1101,1107 ---- float; ! : f**n ( n -- ; fs: r1 -- r2 ) \ r2 is r1 to the power n. DUP 0< ! IF ABS F**+N 1/f ELSE F**+N THEN ; *************** *** 1141,1145 **** >FPU L$1: fprem1 ! fnstsw ax sahf jp short L$1 --- 1138,1142 ---- >FPU L$1: fprem1 ! fstsw ax sahf jp short L$1 *************** *** 1249,1253 **** fld FSIZE sq2m1 fcomp st(1) ! fnstsw ax sahf jp short L$3 --- 1246,1250 ---- fld FSIZE sq2m1 fcomp st(1) ! fstsw ax sahf jp short L$3 *************** *** 1255,1259 **** fld FSIZE sq2/2m1 fcomp st(1) ! fnstsw ax sahf jb short L$4 --- 1252,1256 ---- fld FSIZE sq2/2m1 fcomp st(1) ! fstsw ax sahf jb short L$4 *************** *** 1287,1291 **** >FPU \ 1 fxam ! fnstsw ax and ax, # FPU_STATUS_CCF_MASK cmp ax, # FPU_STATUS_CCF_INFINITY --- 1284,1288 ---- >FPU \ 1 fxam ! fstsw ax and ax, # FPU_STATUS_CCF_MASK cmp ax, # FPU_STATUS_CCF_INFINITY *************** *** 1321,1325 **** >fpu fxam ! fnstsw ax and ax, # FPU_STATUS_CCF_MASK cmp ax, # FPU_STATUS_CCF_INFINITY --- 1318,1322 ---- >fpu fxam ! fstsw ax and ax, # FPU_STATUS_CCF_MASK cmp ax, # FPU_STATUS_CCF_INFINITY *************** *** 1335,1344 **** fld1 fcom st(1) ! fnstsw ax sahf jbe short L$4 fchs fcomp st(1) ! fnstsw ax sahf jnc short L$5 --- 1332,1341 ---- fld1 fcom st(1) ! fstsw ax sahf jbe short L$4 fchs fcomp st(1) ! fstsw ax sahf jnc short L$5 *************** *** 1375,1378 **** --- 1372,1379 ---- THEN ; + : FALOG ( fs: r1 -- r2 ) \ ANSI Floating ext + \ *G Raise ten to the power r1, giving r2. + f10.0 fswap f** ; + synonym f^x f** DEPRECATED *************** *** 1448,1452 **** \ July 29th, 1998 - 8:53 tjz \ added '@' after FLOATSP to fix a bug reported by Pierre Abbat ! : F~ ( fs: r1 r2 r3 -- ) ( -- flag ) fdup f0< IF fabs fover fabs 3 fpick fabs f+ f* \ r1 r2 r3*(r1+r2) --- 1449,1460 ---- \ July 29th, 1998 - 8:53 tjz \ added '@' after FLOATSP to fix a bug reported by Pierre Abbat ! : F~ ( -- flag ; fs: r1 r2 r3 -- ) \ ANSI Floating ext ! \ *G If r3 is positive, flag is true if the absolute value of (r1 minus r2) is less than r3. ! \ ** If r3 is zero, flag is true if the implementation-dependent encoding of r1 and r2 are ! \ ** exactly identical (positive and negative zero are unequal if they have distinct encodings). ! \ ** If r3 is negative, flag is true if the absolute value of (r1 minus r2) is less than the ! \ ** absolute value of r3 times the sum of the absolute values of r1 and r2. ! \ *P This provides the three types of floating point equality in common use -- close in ! \ ** absolute terms, exact equality as represented, and relatively close. fdup f0< IF fabs fover fabs 3 fpick fabs f+ f* \ r1 r2 r3*(r1+r2) *************** *** 1583,1593 **** 10 newuser fbcd-buf - external - - : FALOG ( fs: r1 -- r2 ) \ ? overflow error ? - f10.0 fswap f** ; - - internal - : 10**n ( fs: -- r ) ( n -- ) \ 10 raised to n f10.0 f**n ; --- 1591,1594 ---- *************** *** 1946,1950 **** \ ** floating-point representation. If the string represents a valid floating-point \ ** number in the syntax below, its value r and true are returned. If the string does not ! \ ** represent a valid floating-point number only false is returned. \n \ ** F# used at the end of a line is treated as a special case representing zero. \n \ ** If interpreting the FP number is placed on the FP stack, while it is compiled as --- 1947,1951 ---- \ ** floating-point representation. If the string represents a valid floating-point \ ** number in the syntax below, its value r and true are returned. If the string does not ! \ ** represent a valid floating-point number an error is thrown. \n \ ** F# used at the end of a line is treated as a special case representing zero. \n \ ** If interpreting the FP number is placed on the FP stack, while it is compiled as *************** *** 2050,2054 **** THEN ; ! : (FE.) ( addr -- ; fs: r -- ) \ convert fp # into a string (in engineering notation) { $buf \ -- } $buf off --- 2051,2056 ---- THEN ; ! : (FE.) ( addr -- ; fs: r -- ) \ W32F Floating extra ! \ *G Format r as a string in engineering notation. { $buf \ -- } $buf off *************** *** 2065,2069 **** base @ >r decimal (.) $buf +PLACE r> base ! ; ! : (E.) ( addr -- ; fs: r -- ) \ convert fp # into a string (in scientific notation) { $buf \ -- } $buf off --- 2067,2072 ---- base @ >r decimal (.) $buf +PLACE r> base ! ; ! : (E.) ( addr -- ; fs: r -- ) \ W32F Floating extra ! \ *G Format r as a string in scientific notation. { $buf \ -- } $buf off *************** *** 2080,2084 **** base @ >r decimal (.) $buf +PLACE r> base ! ; ! : (G.) ( addr -- ; fs: r -- ) \ convert fp # into a string fdepth 0 <= IF EXIT THEN --- 2083,2089 ---- base @ >r decimal (.) $buf +PLACE r> base ! ; ! : (G.) ( addr -- ; fs: r -- ) \ W32F Floating extra ! \ *G Format r as a string using scientific notation or ordinary representation according ! \ ** to the size of r. fdepth 0 <= IF EXIT THEN *************** *** 2091,2096 **** THEN ; ! SYNONYM (FS.) (E.) ( addr -- ; fs: r -- ) \ convert fp # into a string (in scientific notation) ! \ ----------------------------------------------------------------------------- --- 2096,2101 ---- THEN ; ! SYNONYM (FS.) (E.) ( addr -- ; fs: r -- ) \ W32F Floating extra ! \ *G Format r as a string in scientific notation. \ ----------------------------------------------------------------------------- |
Update of /cvsroot/win32forth/win32forth/doc/classes In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv510/win32forth/doc/classes Modified Files: AXControl.htm Childwnd.htm Control.htm Controls.htm Dialog.htm File.htm Generic.htm HTMLcontrol.htm MdiDialog.htm TrayWindow.htm Window.htm gdiBase.htm gdiBitmap.htm gdiBrush.htm gdiDC.htm gdiFont.htm gdiMetafile.htm gdiMetafileDC.htm gdiPen.htm gdiStruct.htm gdiWindowDc.htm mdi.htm Log Message: gah: Updated glossary and docs |
From: Dirk B. <db...@us...> - 2006-02-06 17:48:31
|
Update of /cvsroot/win32forth/win32forth/src/tools In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv24798/src/tools Modified Files: DexH-CreateDocs.f DexH-Glossary.f DexH.f Log Message: Updated the glossary generator in DexH. Now it supports most but not all defining words. Index: DexH-Glossary.f =================================================================== RCS file: /cvsroot/win32forth/win32forth/src/tools/DexH-Glossary.f,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** DexH-Glossary.f 4 Feb 2006 10:40:36 -0000 1.2 --- DexH-Glossary.f 6 Feb 2006 17:48:18 -0000 1.3 *************** *** 5,33 **** \ **************************************************************************** - \ helper words - \ **************************************************************************** - - [UNDEFINED] 2+ [if] - CODE 2+ ( n1 -- n2 ) \ add two to n1 - inc ebx - inc ebx - next c; - [then] - - [UNDEFINED] 2- [if] - CODE 2- ( n1 -- n2 ) \ sub two from n1 - dec ebx - dec ebx - next c; - [then] - - : "minus-path" { a1 n1 -- a2 n2 } \ remove path from filename - \ scan to last '\' in filename - a1 n1 + n1 [CHAR] \ -SCAN - ?dup if n1 swap - 1- swap 1+ swap else drop a1 n1 then - ; - - - \ **************************************************************************** \ write output file \ **************************************************************************** --- 5,8 ---- *************** *** 59,65 **** : output-delete ( -- ) OutputFile delete-file drop ; ! : (output-string) ( addr count -- ) \ *G Write a string to the output-file. OutputFileHandle write-file drop ; --- 34,41 ---- : output-delete ( -- ) + \ *G Delete the output file for the glossary. OutputFile delete-file drop ; ! : output-write ( addr len -- ) \ *G Write a string to the output-file. OutputFileHandle write-file drop ; *************** *** 67,71 **** : output-char ( char -- ) \ *G Write a char to the output-file. ! here c! here 1 (output-string) ; : output-string ( addr count -- ) --- 43,56 ---- : output-char ( char -- ) \ *G Write a char to the output-file. ! here c! here 1 output-write ; ! ! : (output-string) ( addr count -- ) ! \ *G Write a string to the output-file. ! \ ** A " char will be written as "" into the file. ! bounds ! ?do i c@ dup [char] " = ! if dup output-char ! then output-char ! loop ; : output-string ( addr count -- ) *************** *** 76,82 **** [char] " output-char ; ! : output-tab ( -- ) ! \ *G Write TAB to the output-file. ! \ 9 output-char ; [char] , output-char ; --- 61,66 ---- [char] " output-char ; ! : output-sep ( -- ) ! \ *G Write seperator to the output-file. [char] , output-char ; *************** *** 88,96 **** : output-header ( -- ) \ *G Write the header line to the output-file. ! s" Name" output-string output-tab ! s" Stack" output-string output-tab ! s" Comment" output-string output-tab ! s" Type" output-string output-tab ! s" Class" output-string output-tab s" File" output-string output-cr ; --- 72,80 ---- : output-header ( -- ) \ *G Write the header line to the output-file. ! s" Name" output-string output-sep ! s" Stack" output-string output-sep ! s" Comment" output-string output-sep ! s" Type" output-string output-sep ! s" Class" output-string output-sep s" File" output-string output-cr ; *************** *** 107,119 **** \ **************************************************************************** ! 99 value definition-type ! create $definition-name 260 allot $definition-name off ! create $class-name 260 allot $class-name off false value InClass? ! : IsClass? ( -- f ) ! definition-type 8 = \ :class ? ! definition-type 9 = \ :object ? ! or ; : IsCloseingClass? ( -- f ) --- 91,113 ---- \ **************************************************************************** ! -1 constant #invalid-definition-type ! #invalid-definition-type value definition-type ! ! : allot-erase ( n -- ) ! here over allot swap erase ; ! ! create $definition-name 1024 allot-erase ! create $definition-type 1024 allot-erase ! create $stack-comment 1024 allot-erase ! create $comment 1024 allot-erase ! create $class-name 1024 allot-erase ! false value InClass? ! : IsClass? ( -- f ) ! definition-type 8 = \ :class ? ! definition-type 9 = \ :object ? ! definition-type 14 = \ |class ? ! or or ; : IsCloseingClass? ( -- f ) *************** *** 122,254 **** or ; ! : save-definition-name ( addr len f -- addr len ) ! if 2dup $definition-name place ! then IsClass? ! if 2dup $class-name place ! then ! IsCloseingClass? ! if $class-name off ! then ! ; ! : print-line { addr count char fSaveName -- addr' count' } \ write line to output file; stop on char ! count 0> ! if ! addr count char scan dup 0<> ! if 1- swap 1+ swap ! dup count swap - addr swap char bl = if 1- then ! fSaveName save-definition-name \ save name ! output-string ! else 2drop addr count ! fSaveName save-definition-name \ save name ! output-string ! addr 0 \ preevent stack underflow ! then ! else addr 0 \ preevent stack underflow ! then ! ; ! : print-definition-name ( addr count -- addr' count' ) \ write word name output file ! bl scan bl skip bl IsClass? print-line ; ! : print-stack-comment ( addr count -- addr' count' ) \ write stack-comment output file ! ?dup ! if bl skip dup ! if over c@ [char] ( = ! if [char] ) false print-line ! else over c@ [char] { = ! if [char] } false print-line ! then ! then ! then ! else 0 \ preevent stack underflow ! then ! ; ! : print-comment ( addr count -- ) \ write comment to output file ! ?dup ! if bl skip dup ! if over c@ [char] \ = ! if [char] \ skip ! bl skip ! output-string ! else 2drop ! then ! else 2drop ! then ! else drop ! then ! ; ! : print-definition-type ( -- ) \ write type of definition to output file ! definition-type ! case 0 of s" COLON" endof ! 1 of s" CODE" endof ! 2 of s" CONSTANT" endof ! 3 of s" DEFER" endof ! 4 of s" CREATE" endof ! 5 of s" VARIABLE" endof ! 6 of s" VALUE" endof ! 7 of s" METHOD" endof ! 8 of s" CLASS" endof ! 9 of s" OBJECT" endof ! 10 of s" ;CLASS" endof ! 11 of s" ;OBJECT" endof ! 99 of s" ?" endof ! endcase ! output-string ; ! : print-file-name ( #ancor -- ) \ write input file name to output file ! $infile lcount output-string ! s" #" output-string ! s>d (D.) output-string ; ! : is-definition-type ( addr1 len1 addr2 len2 -- f ) ! \ 4dup cr tab . space drop . drop ! \ 4dup cr tab type ! \ cr tab type ! COMPARE 0= ; ! : +word ( a1 n1 -- a2 n2 a3 n3 ) ! bl skip 2dup bl scan 2dup 2>r nip - 2r> 2swap ; ! : set-definition-type ( addr len n -- ) ! to definition-type 2drop ; ! : get-definition-type ( addr len -- ) \ get type of definition ! \ cr ." get-definition-type for: " 2dup type ! 99 to definition-type \ default: unkonwen ! 2dup upper +word 2nip -trailing ! 2dup s" :" is-definition-type if 0 set-definition-type exit then ! 2dup s" CODE" is-definition-type if 1 set-definition-type exit then ! 2dup s" CONSTANT" is-definition-type if 2 set-definition-type exit then ! 2dup s" DEFER" is-definition-type if 3 set-definition-type exit then ! 2dup s" CREATE" is-definition-type if 4 set-definition-type exit then ! 2dup s" VARIABLE" is-definition-type if 5 set-definition-type exit then ! 2dup s" VALUE" is-definition-type if 6 set-definition-type exit then ! 2dup s" :M" is-definition-type if 7 set-definition-type exit then ! 2dup s" :CLASS" is-definition-type if 8 set-definition-type true to InClass? exit then ! 2dup s" :OBJECT" is-definition-type if 9 set-definition-type true to InClass? exit then ! 2dup s" ;CLASS" is-definition-type if 10 set-definition-type false to InClass? exit then ! 2dup s" ;OBJECT" is-definition-type if 11 set-definition-type false to InClass? exit then ! 2drop ; : print-class-name ( -- ) InClass? IsClass? 0= and ! if $class-name count else s" " then output-string ; ! : process-word ( #ancor addr count -- ) \ process on line of the input file ?dup ! if print-definition-name output-tab ( #ancor addr' count' ) ! print-stack-comment output-tab ( #ancor addr' count' ) ! print-comment output-tab ( #ancor ) ! print-definition-type output-tab ( #ancor ) ! print-class-name output-tab ( #ancor ) ! print-file-name output-cr ( -- ) else 2drop then ; --- 116,327 ---- or ; ! : set-class-name ( -- ) IsClass? ! if $definition-name lcount $class-name lplace ! else IsCloseingClass? ! if 0 $class-name ! ! then ! then ; ! : +word ( a1 n1 -- a2 n2 a3 n3 ) ! bl skip 2dup bl scan 2dup 2>r nip - 2r> 2swap ; ! : set-definition-type ( addr len n -- ) ! to definition-type 2drop ; ! : is-definition-type ( a1 n1 -- ) ! 2dup s" :" COMPARE 0= if 0 set-definition-type exit then ! 2dup s" CODE" COMPARE 0= if 1 set-definition-type exit then ! 2dup s" CONSTANT" COMPARE 0= if 2 set-definition-type exit then ! 2dup s" DEFER" COMPARE 0= if 3 set-definition-type exit then ! 2dup s" CREATE" COMPARE 0= if 4 set-definition-type exit then ! 2dup s" VARIABLE" COMPARE 0= if 5 set-definition-type exit then ! 2dup s" VALUE" COMPARE 0= if 6 set-definition-type exit then ! 2dup s" :M" COMPARE 0= if 7 set-definition-type exit then ! 2dup s" :CLASS" COMPARE 0= if 8 set-definition-type true to InClass? exit then ! 2dup s" :OBJECT" COMPARE 0= if 9 set-definition-type true to InClass? exit then ! 2dup s" ;CLASS" COMPARE 0= if 10 set-definition-type false to InClass? exit then ! 2dup s" ;OBJECT" COMPARE 0= if 11 set-definition-type false to InClass? exit then ! 2dup s" FVARIABLE" COMPARE 0= if 12 set-definition-type exit then ! 2dup s" 2VARIABLE" COMPARE 0= if 13 set-definition-type exit then ! 2dup s" |CLASS" COMPARE 0= if 14 set-definition-type true to InClass? exit then ! 2dup s" :NONAME" COMPARE 0= if 15 set-definition-type exit then ! 2dup s" |:" COMPARE 0= if 16 set-definition-type exit then ! 2dup s" FCONSTANT" COMPARE 0= if 17 set-definition-type exit then ! 2dup s" 2CONSTANT" COMPARE 0= if 18 set-definition-type exit then ! 2dup s" BYTES" COMPARE 0= if 19 set-definition-type exit then ! 2dup s" BYTE" COMPARE 0= if 20 set-definition-type exit then ! 2dup s" BITS" COMPARE 0= if 21 set-definition-type exit then ! 2dup s" SHORT" COMPARE 0= if 22 set-definition-type exit then ! 2dup s" INT" COMPARE 0= if 23 set-definition-type exit then ! 2dup s" DINT" COMPARE 0= if 24 set-definition-type exit then ! 2dup s" USER" COMPARE 0= if 25 set-definition-type exit then ! 2dup s" NEWUSER" COMPARE 0= if 26 set-definition-type exit then ! 2dup s" CFA-CODE" COMPARE 0= if 27 set-definition-type exit then ! 2dup s" CFA-FUNC" COMPARE 0= if 28 set-definition-type exit then ! 2dup s" HEADER" COMPARE 0= if 29 set-definition-type exit then ! 2dup s" ALIAS" COMPARE 0= if 30 set-definition-type exit then ! 2dup s" SYNONYM" COMPARE 0= if 31 set-definition-type exit then ! 2dup s" EQU" COMPARE 0= if 32 set-definition-type exit then ! \ 2dup s" AS" COMPARE 0= if 33 set-definition-type exit then ! 2dup s" MACRO" COMPARE 0= if 34 set-definition-type exit then ! 2dup s" #DEFINE" COMPARE 0= if 35 set-definition-type exit then ! 2dup s" RECORD:" COMPARE 0= if 36 set-definition-type exit then ! 2dup s" ;RECORDSIZE:" COMPARE 0= if 37 set-definition-type exit then ! 2dup s" MACRO:" COMPARE 0= if 38 set-definition-type exit then ! 2dup s" SUBR:" COMPARE 0= if 39 set-definition-type exit then ! \ 2dup s" PROC" COMPARE 0= if 40 set-definition-type exit then ! 2dup s" EXTERN" COMPARE 0= if 41 set-definition-type exit then ! 2dup s" WINLIBRARY" COMPARE 0= if 42 set-definition-type exit then ! 2drop ; ! : get-definition-type ( addr len -- ) ! \ Get the type of the definition. ! \ Note: The string will be in uppercase letters after this. ! #invalid-definition-type to definition-type \ default: unkonwen ! 2dup upper +word -trailing ! is-definition-type definition-type #invalid-definition-type = ! if +word -trailing is-definition-type 2drop ! else 2drop ! then ; ! create buf1$ 1024 allot ! create buf2$ 1024 allot ! : parse-stack-comment ( a1 n1 c1 c2 -- a2 n2 f ) ! { c1 c2 -- } ! 0 $stack-comment ! ! 2dup c1 scan ?dup \ a1 n1 a2 n2 f ! if \ stack comment found ! 2nip 2dup c2 scan 2dup 2>r nip - ?dup \ a2 n2 a3 n3 ! if c1 skip bl skip -trailing $stack-comment lplace ! else drop ! then 2r> 1 /string ! else drop ! then $stack-comment lcount nip ; ! : parse-line ( addr len -- f ) ! \ Parse one line of the input file, and write ! \ the name the stack comment, and to comment into the output file. ! \ the name and definition type ! +word buf1$ lplace ! +word buf2$ lplace ! ! buf1$ lcount $definition-type lplace $definition-type lcount ! get-definition-type definition-type #invalid-definition-type = ! if buf2$ lcount $definition-type lplace $definition-type lcount ! get-definition-type definition-type #invalid-definition-type = ! if 2drop false exit \ exit on error ! else buf1$ lcount $definition-name lplace ! then ! else buf2$ lcount $definition-name lplace ! then ! ! \ stack comment ! [char] ( [char] ) parse-stack-comment 0= ! if [char] { [char] } parse-stack-comment drop ! then ! ! \ comment ! [char] \ scan ?dup ! if [char] \ skip bl skip -trailing $comment lplace ! else drop 0 $comment ! ! then ! ! \ write the strings into the output file ! $definition-name lcount output-string output-sep ! $stack-comment lcount output-string output-sep ! $comment lcount output-string output-sep ! ! true ; : print-class-name ( -- ) + \ Write the name of the current class into the output file. InClass? IsClass? 0= and ! if $class-name lcount else s" " then output-string ; ! : print-definition-type ( -- ) ! \ Write the definition type into the output file. ! definition-type ! case 0 of s" COLON" endof ! 15 of s" COLON hidden" endof \ :noname ! 16 of s" COLON hidden" endof \ |: ! ! 1 of s" CODE" endof ! ! 2 of s" CONSTANT" endof ! 17 of s" FCONSTANT" endof ! 18 of s" 2CONSTANT" endof ! ! 3 of s" DEFER" endof ! 4 of s" CREATE" endof ! ! 5 of s" VARIABLE" endof ! 12 of s" FVARIABLE" endof ! 13 of s" 2VARIABLE" endof ! ! 6 of s" VALUE" endof ! ! 14 of s" |CLASS" endof ! 8 of s" CLASS" endof ! 9 of s" OBJECT" endof ! ! 10 of s" ;CLASS" endof ! 11 of s" ;OBJECT" endof ! ! 7 of s" METHOD" endof \ :m ! 19 of s" BYTES ivar" endof ! 20 of s" BYTE ivar" endof ! 21 of s" BITS ivar" endof ! 22 of s" SHORT ivar" endof ! 23 of s" INT ivar" endof ! 24 of s" DINT ivar" endof ! ! 25 of s" USER" endof ! 26 of s" NEWUSER" endof ! 27 of s" CFA-CODE" endof ! 28 of s" CFA-FUNC" endof ! 29 of s" HEADER" endof ! 30 of s" ALIAS" endof ! 31 of s" SYNONYM" endof ! 32 of s" EQU" endof ! 33 of s" AS" endof ! 34 of s" MACRO" endof ! 35 of s" #DEFINE" endof ! 36 of s" RECORD:" endof ! 37 of s" ;RECORDSIZE:" endof ! 38 of s" MACRO:" endof ! 39 of s" SUBR:" endof ! 40 of s" PROC" endof ! 41 of s" EXTERN" endof ! 42 of s" WINLIBRARY" endof ! endcase ! output-string ; ! ! : print-file-name ( #ancor -- ) ! \ Write the name of input file with the ancor into the output file. ! [char] " output-char ! $infile lcount (output-string) ! [char] # output-char ! s>d (D.) (output-string) ! [char] " output-char ; ! ! : process-word ( #ancor addr len -- ) ! \ *G Process on line of the input file. ?dup ! if parse-line ! if set-class-name ! print-definition-type output-sep ( #ancor ) ! print-class-name output-sep ( #ancor ) ! print-file-name output-cr ( -- ) ! else drop ! then else 2drop then ; Index: DexH-CreateDocs.f =================================================================== RCS file: /cvsroot/win32forth/win32forth/src/tools/DexH-CreateDocs.f,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** DexH-CreateDocs.f 4 Feb 2006 16:12:24 -0000 1.11 --- DexH-CreateDocs.f 6 Feb 2006 17:48:18 -0000 1.12 *************** *** 11,16 **** \ create a new gloassary file if needed ! create-glossary-file? ! if output-new then \ classes --- 11,16 ---- \ create a new gloassary file if needed ! 1 to create-glossary-file? ! output-new \ classes Index: DexH.f =================================================================== RCS file: /cvsroot/win32forth/win32forth/src/tools/DexH.f,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** DexH.f 4 Feb 2006 10:40:36 -0000 1.4 --- DexH.f 6 Feb 2006 17:48:18 -0000 1.5 *************** *** 44,48 **** \ Set to true when a seperate glossary.txt should be created \ Still work in progress... (dbu) ! 1 constant create-glossary-file? ( *P DexH is ANS Forth except for the need for BOUNDS, SCAN, SKIP and LCOUNT. ) --- 44,48 ---- \ Set to true when a seperate glossary.txt should be created \ Still work in progress... (dbu) ! 1 value create-glossary-file? ( *P DexH is ANS Forth except for the need for BOUNDS, SCAN, SKIP and LCOUNT. ) *************** *** 304,308 **** $line lplace $line lcount get-definition-type ! definition-type 99 <> ; --- 304,308 ---- $line lplace $line lcount get-definition-type ! definition-type #invalid-definition-type <> ; *************** *** 310,315 **** \ cr 2dup type 2dup gl-get-type ! if $line lplace ! #gl-ancor $line lcount process-word else 2drop cr ." Line: " $line lcount type ." skipped" then ; --- 310,317 ---- \ cr 2dup type 2dup gl-get-type ! if IsCloseingClass? 0= ! if $line lplace #gl-ancor $line lcount process-word ! else 2drop ! then else 2drop cr ." Line: " $line lcount type ." skipped" then ; |
Update of /cvsroot/win32forth/win32forth/doc/classes In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv24798/doc/classes Modified Files: AXControl.htm Childwnd.htm Control.htm Controls.htm Dialog.htm File.htm Generic.htm HTMLcontrol.htm MdiDialog.htm TrayWindow.htm Window.htm gdiBase.htm gdiBitmap.htm gdiBrush.htm gdiDC.htm gdiFont.htm gdiMetafile.htm gdiMetafileDC.htm gdiPen.htm gdiStruct.htm gdiWindowDc.htm mdi.htm Log Message: Updated the glossary generator in DexH. Now it supports most but not all defining words. Index: Dialog.htm =================================================================== RCS file: /cvsroot/win32forth/win32forth/doc/classes/Dialog.htm,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** Dialog.htm 6 Feb 2006 15:49:35 -0000 1.6 --- Dialog.htm 6 Feb 2006 17:48:16 -0000 1.7 *************** *** 63,67 **** </p><a name="Dialog"></a> <h2>Dialog Class ! </h2><pre><b><a name="3">:CLASS Dialog <SUPER Dialog&Control \ generic-window </a></b></pre><p>Dialog class. <br /> To use this class you have to create a ressource file (*.res) whitch must contain --- 63,67 ---- </p><a name="Dialog"></a> <h2>Dialog Class ! </h2><pre><b><a name="3">:CLASS Dialog <SUPER Dialog&Control </a></b></pre><p>Dialog class. <br /> To use this class you have to create a ressource file (*.res) whitch must contain Index: mdi.htm =================================================================== RCS file: /cvsroot/win32forth/win32forth/doc/classes/mdi.htm,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** mdi.htm 6 Feb 2006 15:49:35 -0000 1.4 --- mdi.htm 6 Feb 2006 17:48:16 -0000 1.5 *************** *** 39,43 **** </a></b></pre><p>All MDI child windows are displayed within the client area of this window. ! </p><pre><b><a name="5">: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. --- 39,43 ---- </a></b></pre><p>All MDI child windows are displayed within the client area of this window. ! </p><pre><b><a name="5">:M WindowMenuNo: ( -- n ) </a></b></pre><p>Override this method to set the menu number in whitch all child windows should be displayed. Index: Controls.htm =================================================================== RCS file: /cvsroot/win32forth/win32forth/doc/classes/Controls.htm,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** Controls.htm 6 Feb 2006 15:49:35 -0000 1.9 --- Controls.htm 6 Feb 2006 17:48:16 -0000 1.10 *************** *** 63,69 **** </p><pre><b><a name="17">:M GetString: ( adr index -- ) </a></b></pre><p>Use: GetString: to get indexed items out of the combo box string list ! Use: GetText: to get the current combo box string ! </p><pre><b><a name="18">:M GetCount: ( -- n1 ) \ n1 = count of items ! </a></b></pre><p>Use: GetCount: to get the count of items in the combo box string list </p><pre><b><a name="19">:M Start: ( Parent -- ) </a></b></pre><p>Create the control. --- 63,69 ---- </p><pre><b><a name="17">:M GetString: ( adr index -- ) </a></b></pre><p>Use: GetString: to get indexed items out of the combo box string list [...1461 lines suppressed...] </a></b></pre><p>Enable the control. ! </p><pre><b><a name="351">:M Disable: ( -- ) </a></b></pre><p>Disable the control. ! </p><pre><b><a name="352">;Class </a></b></pre><p>End of VertButtonBar class </p><a name="HorizButtonBar"></a> <h2>HorizButtonBar class ! </h2><pre><b><a name="353">:Class HorizButtonBar <super HButtonBar </a></b></pre><p>HorizButtonBar control </p><p>This is an enhanced Version of the HButtonBar class. </p><p>Note: this control isn't one of the standard control of MS windows. ! </p><pre><b><a name="354">:M SetFont: { fonthndl \ hb1 -- } </a></b></pre><p>Set the font in the control. ! </p><pre><b><a name="355">:M Enable: { flag \ hb1 -- } </a></b></pre><p>Enable the control. ! </p><pre><b><a name="356">:M Disable: ( -- ) </a></b></pre><p>Disable the control. ! </p><pre><b><a name="357">;Class </a></b></pre><p>End of HorizButtonBar class </p><hr><p>Document $Id$</p> |
From: Dirk B. <db...@us...> - 2006-02-06 17:48:25
|
Update of /cvsroot/win32forth/win32forth/src/lib In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv24798/src/lib Modified Files: MDI.F excontrols.f Log Message: Updated the glossary generator in DexH. Now it supports most but not all defining words. Index: excontrols.f =================================================================== RCS file: /cvsroot/win32forth/win32forth/src/lib/excontrols.f,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** excontrols.f 4 Feb 2006 10:53:47 -0000 1.11 --- excontrols.f 6 Feb 2006 17:48:17 -0000 1.12 *************** *** 711,715 **** :M Select: ( index -- ) \ *G Select a string in the list box. ! \ *G \i index \d specifies the zero-based index of the string to set. If this parameter \ ** is -1, the selection is added to all strings. \ ** Note: This method ABORT's on error. --- 711,715 ---- :M Select: ( index -- ) \ *G Select a string in the list box. ! \ *P \i index \d specifies the zero-based index of the string to set. If this parameter \ ** is -1, the selection is added to all strings. \ ** Note: This method ABORT's on error. *************** *** 720,724 **** :M Unselect: ( index -- ) \ *G Deselect a string in the list box. ! \ *G \i index \d specifies the zero-based index of the string to set. If this parameter \ ** is -1, the selection is removed from all strings. \ ** Note: This method ABORT's on error. --- 720,724 ---- :M Unselect: ( index -- ) \ *G Deselect a string in the list box. ! \ *P \i index \d specifies the zero-based index of the string to set. If this parameter \ ** is -1, the selection is removed from all strings. \ ** Note: This method ABORT's on error. Index: MDI.F =================================================================== RCS file: /cvsroot/win32forth/win32forth/src/lib/MDI.F,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** MDI.F 14 Jan 2006 12:28:21 -0000 1.6 --- MDI.F 6 Feb 2006 17:48:17 -0000 1.7 *************** *** 87,93 **** ;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: ( -- ) --- 87,94 ---- ;M ! :M WindowMenuNo: ( -- n ) \ *G Override this method to set the menu number in whitch all \ ** child windows should be displayed. + 1 ;M :M On_Init: ( -- ) |
From: Dirk B. <db...@us...> - 2006-02-06 17:48:25
|
Update of /cvsroot/win32forth/win32forth/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv24798/src Modified Files: CONTROLS.F Class.f Dialog.f Log Message: Updated the glossary generator in DexH. Now it supports most but not all defining words. Index: CONTROLS.F =================================================================== RCS file: /cvsroot/win32forth/win32forth/src/CONTROLS.F,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** CONTROLS.F 1 Feb 2006 17:08:25 -0000 1.8 --- CONTROLS.F 6 Feb 2006 17:48:17 -0000 1.9 *************** *** 186,190 **** :M GetString: ( adr index -- ) \ *G Use: GetString: to get indexed items out of the combo box string list ! \ ** Use: GetText: to get the current combo box string swap dup>r 1+ swap CB_GETLBTEXT --- 186,190 ---- :M GetString: ( adr index -- ) \ *G Use: GetString: to get indexed items out of the combo box string list ! \ ** Use: GetText: to get the current combo box string. swap dup>r 1+ swap CB_GETLBTEXT *************** *** 192,197 **** ;M ! :M GetCount: ( -- n1 ) \ n1 = count of items ! \ *G Use: GetCount: to get the count of items in the combo box string list 0 0 CB_GETCOUNT GetID: self SendDlgItemMessage: parent 0 max --- 192,197 ---- ;M ! :M GetCount: ( -- n1 ) ! \ *G Use: GetCount: to get the count of items in the combo box string list. 0 0 CB_GETCOUNT GetID: self SendDlgItemMessage: parent 0 max Index: Class.f =================================================================== RCS file: /cvsroot/win32forth/win32forth/src/Class.f,v retrieving revision 1.14 retrieving revision 1.15 diff -C2 -d -r1.14 -r1.15 *** Class.f 25 Jan 2006 11:10:53 -0000 1.14 --- Class.f 6 Feb 2006 17:48:17 -0000 1.15 *************** *** 959,963 **** 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 --- 959,963 ---- 0 value BeginningOfRecordAddress ! : Record: ( -<name>- ) \ 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 *************** *** 982,986 **** \ -------------------- Instance Variables -------------------- ! : bytes ( n -<name>- ) \ unstructure array of bytes \ create ^class DFA @ , class-allot \ does> @ ^base + ; --- 982,987 ---- \ -------------------- Instance Variables -------------------- ! : bytes ( n -<name>- ) \ W32F Class ! \ *G n-Bytes instance variable (array of bytes) \ create ^class DFA @ , class-allot \ does> @ ^base + ; *************** *** 1039,1043 **** in-system ! : bits { nbits -- -<name>- } \ define an 'nbits' bit field in prev data item header (ivb@) , --- 1040,1061 ---- in-system ! : bits { nbits -- -<name>- } \ W32F Class ! \ *G Define an 'nbits' bit field in prev data item. ! \ *E Example: ! \ ** int BinaryBits \ a 32bit cell of bit fields ! \ ** 1 bits fBinary \ define the bit fields ! \ ** 1 bits fParity ! \ ** 1 bits fOutxCtsFlow ! \ ** 1 bits fOutxDsrFlow ! \ ** 2 bits fDtrControl ! \ ** 1 bits fDtrSensitivity ! \ ** 1 bits fTXContinueOnXoff ! \ ** 1 bits fOutX ! \ ** 1 bits fInx ! \ ** 1 bits fErrorChar ! \ ** 1 bits fNull ! \ ** 2 bits fRtsControl ! \ ** 1 bits fAbortOnError ! \ ** 17 bits fDummy header (ivb@) , Index: Dialog.f =================================================================== RCS file: /cvsroot/win32forth/win32forth/src/Dialog.f,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** Dialog.f 31 Dec 2005 11:12:44 -0000 1.4 --- Dialog.f 6 Feb 2006 17:48:17 -0000 1.5 *************** *** 80,84 **** \ *W <a name="Dialog"></a> \ *S Dialog Class ! :CLASS Dialog <SUPER Dialog&Control \ generic-window \ *G Dialog class. \n \ ** To use this class you have to create a ressource file (*.res) whitch must contain --- 80,84 ---- \ *W <a name="Dialog"></a> \ *S Dialog Class ! :CLASS Dialog <SUPER Dialog&Control \ *G Dialog class. \n \ ** To use this class you have to create a ressource file (*.res) whitch must contain |
Update of /cvsroot/win32forth/win32forth/doc/classes In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv3764/win32forth/doc/classes Modified Files: AXControl.htm Childwnd.htm Control.htm Controls.htm Dialog.htm File.htm Generic.htm HTMLcontrol.htm MdiDialog.htm TrayWindow.htm Window.htm gdiBase.htm gdiBitmap.htm gdiBrush.htm gdiDC.htm gdiFont.htm gdiMetafile.htm gdiMetafileDC.htm gdiPen.htm gdiStruct.htm gdiWindowDc.htm mdi.htm Log Message: gah: Updated glossary and other docs |
From: George H. <geo...@us...> - 2006-02-06 15:40:49
|
Update of /cvsroot/win32forth/win32forth/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv32673/win32forth/src Modified Files: FLOAT.F Log Message: gah: Minor bug fix Index: FLOAT.F =================================================================== RCS file: /cvsroot/win32forth/win32forth/src/FLOAT.F,v retrieving revision 1.33 retrieving revision 1.34 diff -C2 -d -r1.33 -r1.34 *** FLOAT.F 6 Feb 2006 15:05:20 -0000 1.33 --- FLOAT.F 6 Feb 2006 15:40:36 -0000 1.34 *************** *** 1403,1407 **** ELSE f2* fdup f0< IF fexpm1 fdup f2.0 f+ f/ ! ELSE fnegate fexp fdup f1.0 f- \ RLS Sep. 21, 1997 fswap f1.0 f+ f/ THEN --- 1403,1407 ---- ELSE f2* fdup f0< IF fexpm1 fdup f2.0 f+ f/ ! ELSE fnegate fexp f1.0 fover f- \ RLS Sep. 21, 1997 fswap f1.0 f+ f/ THEN |
From: George H. <geo...@us...> - 2006-02-06 15:05:31
|
Update of /cvsroot/win32forth/win32forth/doc In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv20001/win32forth/doc Modified Files: p-float.htm Log Message: gah: More documenting of float.f (still work in progress). Index: p-float.htm =================================================================== RCS file: /cvsroot/win32forth/win32forth/doc/p-float.htm,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** p-float.htm 4 Feb 2006 16:12:24 -0000 1.9 --- p-float.htm 6 Feb 2006 15:05:20 -0000 1.10 *************** *** 29,33 **** while indeterminate results produce NANs. </p><h2>Glossary ! </h2><pre><b><a name="0">code finit ( -- ) \ W32F Floating extra </a></b></pre><p>Clears the floating-point stack & sets the appropriate byte mode. It is executed by the system on start-up and by the default exception handler. --- 29,59 ---- while indeterminate results produce NANs. </p><h2>Glossary ! </h2><h3>Loading and saving FPU registers ! </h3><p>The following words are for examining, saving, restoring and changing the state of the ! x87 FPU. They are not normally needed by applications although they can be useful for ! dealing with legacy code, which requires different rounding modes, precision, or ! exception handling. <br /> ! Since the default error handler resets the control word then applications that use ! other settings will need to CATCH all exceptions or modify the error handler. <br /> ! NOTE if programs unmask exceptions then they need to handle their own errors. ! For information on the settings and writng exception handlers refer to the INTEL ! processor documentation. ! </p><p><b> WARNING! </b> do not alter the settings unless you know what you're doing. ! </p><pre><b><a name="0">code >fregs ( addr -- ) \ W32F Floating extra ! </a></b></pre><p>Restore x87 FPU State. ! </p><pre><b><a name="1">code >fregs> ( addr -- ) \ W32F Floating extra ! </a></b></pre><p>Save and Restore x87 FPU State. ! </p><pre><b><a name="2">code fpcw> ( -- n ) \ W32F Floating extra ! </a></b></pre><p>Get x87 FPU Control Word. ! </p><pre><b><a name="3">code >fpcw ( n -- ) \ W32F Floating extra ! </a></b></pre><p>Set x87 FPU Control Word. ! </p><pre><b><a name="4">code fpsw> ( -- n ) \ W32F Floating extra ! </a></b></pre><p>Get x87 FPU Status Word. ! </p><pre><b><a name="5">\- B/FLOAT 10 constant B/FLOAT ( -- n ) \ W32F Floating extra ! </a></b></pre><p>Number of bytes in a floating-point number. Note the default is 8 bytes. ! </p><pre><b><a name="6">B/FLOAT aligned cell / value cells/float ! </a></b></pre><p>Number of cells in a floating-point number. If the number of bytes is not a multiple ! of 4 this is rounded up. ! </p><pre><b><a name="7">code finit ( -- ) \ W32F Floating extra </a></b></pre><p>Clears the floating-point stack & sets the appropriate byte mode. It is executed by the system on start-up and by the default exception handler. *************** *** 36,58 **** other floating-point words. </p><h3>Memory Access ! </h3><pre><b><a name="1">code F@ ( addr -- ) ( FS: -- r ) \ ANSI Floating </a></b></pre><p>Fetch a float. ! </p><pre><b><a name="2">code SF@ ( addr -- ) ( FS: -- r ) \ ANSI Floating ext </a></b></pre><p>Fetch a 32 bit (short) float. ! </p><pre><b><a name="3">code DF@ ( addr -- ) ( FS: -- r ) \ ANSI Floating ext </a></b></pre><p>Fetch a 64 bit (double) float. ! </p><pre><b><a name="4">code F! ( addr -- ) ( fs: r -- ) \ ANSI Floating </a></b></pre><p>Store a float. ! </p><pre><b><a name="5">code SF! ( addr -- ) ( fs: r -- ) \ ANSI Floating ext </a></b></pre><p>Store a 32 bit (short) float. ! </p><pre><b><a name="6">code DF! ( addr -- ) ( fs: r -- ) \ ANSI Floating ext </a></b></pre><p>Store a 64 bit (double) float. ! </p><pre><b><a name="7">code F+! ( addr -- ) ( fs: r -- ) \ W32F Floating extra </a></b></pre><p>Add the value to a float. ! </p><pre><b><a name="8">: FVARIABLE ( compiling -<name>- -- ; run-time -- addr) \ ANSI Floating </a></b></pre><p>Define a floating-point variable in the dictionary. The contents are undefined. ! </p><pre><b><a name="9">: FVALUE ( compiling -<name>- -- FS: r -- ; run-time FS: -- r ) \ W32F Floating extra </a></b></pre><p>Define a floating point value initialised from the FP stack. ! </p><pre><b><a name="10">: FTO \ W32F Floating extra </a></b></pre><p><b> Interpreting: ( -<fvalue>- -- FS: r -- ) <br /> Compiling: ( -<fvalue>- -- Run-time: FS: r -- ) </b> --- 62,84 ---- other floating-point words. </p><h3>Memory Access ! </h3><pre><b><a name="8">code F@ ( addr -- ; fs: -- r ) \ ANSI Floating </a></b></pre><p>Fetch a float. ! </p><pre><b><a name="9">code SF@ ( addr -- ; fs: -- r ) \ ANSI Floating ext </a></b></pre><p>Fetch a 32 bit (short) float. ! </p><pre><b><a name="A">code DF@ ( addr -- ; fs: -- r ) \ ANSI Floating ext </a></b></pre><p>Fetch a 64 bit (double) float. ! </p><pre><b><a name="B">code F! ( addr -- ; fs: r -- ) \ ANSI Floating </a></b></pre><p>Store a float. ! </p><pre><b><a name="C">code SF! ( addr -- ; fs: r -- ) \ ANSI Floating ext </a></b></pre><p>Store a 32 bit (short) float. ! </p><pre><b><a name="D">code DF! ( addr -- ; fs: r -- ) \ ANSI Floating ext </a></b></pre><p>Store a 64 bit (double) float. ! </p><pre><b><a name="E">code F+! ( addr -- ; fs: r -- ) \ W32F Floating extra </a></b></pre><p>Add the value to a float. ! </p><pre><b><a name="F">: FVARIABLE ( compiling -<name>- -- ; run-time -- addr) \ ANSI Floating </a></b></pre><p>Define a floating-point variable in the dictionary. The contents are undefined. ! </p><pre><b><a name="10">: FVALUE ( compiling -<name>- -- ; fs: r -- ; run-time FS: -- r ) \ W32F Floating extra </a></b></pre><p>Define a floating point value initialised from the FP stack. ! </p><pre><b><a name="11">: FTO \ W32F Floating extra </a></b></pre><p><b> Interpreting: ( -<fvalue>- -- FS: r -- ) <br /> Compiling: ( -<fvalue>- -- Run-time: FS: r -- ) </b> *************** *** 60,228 **** be corrupted; no checks are made so the user should take care. FTO should not be POSTPONEd. ! </p><pre><b><a name="11">: FCONSTANT \ ANSI Floating ! </a></b></pre><p> <b> Interpretation: ( -<name>- ) ( F: r -- ) </b> <br /> Define an FP constant. <br /> <b> Compilation: </b> <br /> Append the run-time semantics given below to the current definition. <br /> ! <b> Run-time: ( F: -- r ) </b> <br /> Place r on the floating-point stack. ! </p><pre><b><a name="12">: FLITERAL ( fs: r -- ) \ ANSI Floating </a></b></pre><p> <b> Interpretation: </b> <br /> Interpretation semantics for this word are undefined. <br /> ! <b> Compilation: ( F: r -- ) </b> <br /> Append the run-time semantics given below to the current definition. <br /> ! <b> Run-time: ( F: -- r ) </b> <br /> Place r on the floating-point stack. </p><h3>Stack operations ! </h3><pre><b><a name="13">code FDROP ( fs: r -- ) \ ANSI Floating </a></b></pre><p>Remove r from the floating-point stack. ! </p><pre><b><a name="14">code FDUP ( fs: r -- r r ) \ ANSI Floating </a></b></pre><p>Duplicate the top entry on the floating-point stack. ! </p><pre><b><a name="15">code FSWAP ( fs: r1 r2 -- r2 r1 ) \ ANSI Floating </a></b></pre><p>Exchange the top 2 FP numbers. ! </p><pre><b><a name="16">code FOVER ( fs: r1 r2 -- r1 r2 r1 ) \ ANSI Floating </a></b></pre><p>Copy the 2nd FP stack number to the top of the FP stack. ! </p><pre><b><a name="17">code FROT ( fs: r1 r2 r3 -- r2 r3 r1 ) \ ANSI Floating </a></b></pre><p>Rotate the top 3 FP stack numbers. ! </p><pre><b><a name="18">code FPICK ( n -- ) ( fs: -- r ) \ W32F Floating extra </a></b></pre><p>Copy the n'th number from the FP stack. ! </p><pre><b><a name="19">: FNIP ( fs: r1 r2 -- r2 ) \ W32F Floating extra </a></b></pre><p>Remove the 2nd FP stack entry. </p><h3>FP Stack operations on pairs of entries </h3><p>The following words can be used for pairs of FP numbers and are useful for dealing with complex numbers or 2-dimensional vectors on the FP stack. ! </p><pre><b><a name="20">code F2DROP ( fs: r1 r2 -- ) \ W32F Floating extra </a></b></pre><p>Remove the top 2 FP stack entries. ! </p><pre><b><a name="21">: F2DUP ( fs: r1 r2 -- r1 r2 r1 r2 ) \ W32F Floating extra </a></b></pre><p>Duplicate the top 2 FP stack entries. ! </p><pre><b><a name="22">: F2SWAP ( fs: r1 r2 r3 r4 -- r3 r4 r2 r1 ) \ W32F Floating extra </a></b></pre><p>Swap the top pair of floating-point numbers with the second pair. ! </p><pre><b><a name="23">: F2NIP ( fs: r1 r2 r3 r4 -- r3 r4 ) \ W32F Floating extra </a></b></pre><p>Remove the 2nd pair of FP stack entries. </p><h3>Constants ! </h3><pre><b><a name="24">code fpi ( fs: -- r ) \ W32F Floating extra </a></b></pre><p>Push the value 3.141596... on to the FP stack. ! </p><pre><b><a name="25">code f0.0 ( FS: -- r ) \ W32F Floating extra </a></b></pre><p>Push plus zero on to the FP stack. ! </p><pre><b><a name="26">code f1.0 ( fs: -- r ) \ W32F Floating extra </a></b></pre><p>Push the value 1.0 on to the FP stack. ! </p><pre><b><a name="27">code fL2t ( fs: -- r ) \ W32F Floating extra </a></b></pre><p>Push the value of log base 2 of 10. ! </p><pre><b><a name="28">code fL2e ( fs: -- r ) \ W32F Floating extra </a></b></pre><p>Push the value of log base 2 of e. ! </p><pre><b><a name="29">code fLog2 ( fs: -- r ) \ W32F Floating extra </a></b></pre><p>Push the value of log base 10 of 2. ! </p><pre><b><a name="30">code fLn2 ( fs: -- r ) \ W32F Floating extra </a></b></pre><p>Push the value of ln 2 (the natural logarithm). ! </p><pre><b><a name="31"> f0.0 fconstant finf ( FS: -- r ) \ W32F Floating extra </a></b></pre><p>Push plus infinity. ! </p><pre><b><a name="32"> f1.0 fconstant f2.0 ( FS: -- r ) \ W32F Floating extra </a></b></pre><p>Push floating-point 2.0. ! </p><pre><b><a name="33"> f0.0 fconstant f10.0 ( FS: -- r ) \ W32F Floating extra </a></b></pre><p>Push floating-point 10.0. ! </p><pre><b><a name="34"> f1.0 fconstant f0.5 ( FS: -- r ) \ W32F Floating extra </a></b></pre><p>Push floating-point 0.5. ! </p><pre><b><a name="35"> f0.0 fconstant fbig ( FS: -- r ) \ W32F Floating extra </a></b></pre><p>Push the largest non-infinite floating-point number. ! </p><pre><b><a name="36"> f0.0 fconstant feps ( FS: -- r ) \ W32F Floating extra </a></b></pre><p>Push the smallest non-zero floating-point number. ! </p><pre><b><a name="37"> f1.0 fconstant fsmall ( FS: -- r ) \ W32F Floating extra </a></b></pre><p>Push the smallest non-denormalised floating-point number. </p><h3>Variables ! </h3><pre><b><a name="38"> fvariable a2**63 ( -- addr ) \ W32F Floating extra </a></b></pre><p>Return the address of a float containing 2**63. ! </p><pre><b><a name="39"> fvariable sq2m1 ( -- addr ) \ W32F Floating extra </a></b></pre><p>Return the address of a float containing sqrt(2) - 1. ! </p><pre><b><a name="40"> fvariable sq2/2m1 ( -- addr ) \ W32F Floating extra </a></b></pre><p>Return the address of a float containing sqrt(2)/2 - 1. ! </p><h3>Rounding Modes ! </h3><pre><b><a name="41">code FLOOR ( fs: f1 -- fs: f2 ) \ ANSI Floating </a></b></pre><p>Round r1 to an integral value using the round toward negative infinity rule, giving r2. ! </p><pre><b><a name="42">code FCEIL ( fs: f1 -- fs: f2 ) \ W32F Floating extra </a></b></pre><p>Round r1 to an integral value using the round toward positive infinity rule, giving r2. ! </p><pre><b><a name="43">code FTRUNC ( fs: f1 -- fs: f2 ) \ W32F Floating extra </a></b></pre><p>Round r1 to an integral value using the round toward zero rule, giving r2. ! </p><pre><b><a name="44">code FROUND ( fs: f1 -- fs: f2 ) \ ANSI Floating </a></b></pre><p>Round r1 to an integral value using the round to nearest rule, giving r2. </p><h3>Integer to float conversion ! </h3><pre><b><a name="45">code D>F ( d -- ) ( F: -- r ) \ ANSI Floating </a></b></pre><p>Convert double number to floating-point number. ! </p><pre><b><a name="46">code F>D ( -- d ) ( fs: r -- ) \ ANSI Floating </a></b></pre><p>Convert floating-point number to double number. If the result would be too large to fit in a double number then <br /> -9223372036854775808 is returned. ! </p><pre><b><a name="47">: s>f ( n -- ) ( fs: -- r ) \ W32F Floating extra </a></b></pre><p>Convert the single number n to floating point number r. ! </p><pre><b><a name="48">: f>s ( -- n ) ( fs: r -- ) \ W32F Floating extra </a></b></pre><p>Convert the floating point number r to single number n. ! </p><pre><b><a name="49">code FS>DS ( -- d ) ( f: r -- ) \ W32F Floating extra </a></b></pre><p>Move floating point number bits to the data stack as a 64-bit float. This function is for passing floats to DLLs. ! </p><pre><b><a name="50">code SFS>DS ( -- float ) ( fs: r -- ) \ W32F Floating extra </a></b></pre><p>Push the top of the float stack onto the data stack as a 32-bit float. This function is for passing floats to DLLs. </p><h3>Comparison operators ! </h3><pre><b><a name="51">: F0= ( -- f ) ( fs: r -- ) \ ANSI Floating </a></b></pre><p>Return true if r equals ±0e0. Returns false for NAN. ! </p><pre><b><a name="52">: F0< ( -- f ) ( fs: r -- ) \ ANSI Floating </a></b></pre><p>Return true if r is less than ±0e0. Returns false for NAN. ! </p><pre><b><a name="53">: f0> ( -- f ) ( fs: r -- ) \ W32F Floating extra </a></b></pre><p>Return true if r is greater than ±0e0. Returns false for NAN. ! </p><pre><b><a name="54">: f= ( -- f ) ( fs: r1 r2 -- ) \ W32F Floating extra </a></b></pre><p>Return true if r1 equals r2. Returns false if either number is a NAN. ! </p><pre><b><a name="55">: F< ( -- f ) ( fs: r1 r2 -- ) \ ANSI Floating </a></b></pre><p>Return true if r1 is less than r2. Returns false if either number is a NAN. ! </p><pre><b><a name="56">: f> ( -- f ) ( fs: r1 r2 -- ) \ W32F Floating extra </a></b></pre><p>Return true if r1 is greater than r2. Returns false if either number is a NAN. ! </p><pre><b><a name="57">: f<= ( -- f ) ( fs: r1 r2 -- ) \ W32F Floating extra </a></b></pre><p>Return true if r1 is less than or equal to r2. Returns true if either number is a NAN. ! </p><pre><b><a name="58">: f>= ( -- f ) ( fs: r1 r2 -- ) \ W32F Floating extra </a></b></pre><p>Return true if r1 is greater than or equal to r2. Returns true if either number is a NAN. ! </p><pre><b><a name="59">: FMAX ( fs: r1 r2 -- r3 ) \ ANSI Floating </a></b></pre><p>Return r3 the maximum of r1 and r2. If r1 is a NAN then so is r3. If r2 is a NAN then r3=r1. ! </p><pre><b><a name="60">: FMIN ( fs: r1 r2 -- r3 ) \ ANSI Floating </a></b></pre><p>Return r3 the minimum of r1 and r2. If r1 is a NAN then so is r3. If r2 is a NAN then r3=r1. </p><h3>Arithmetic operators ! </h3><pre><b><a name="61">code F+ ( fs: r1 r2 -- r3 ) \ ANSI Floating </a></b></pre><p>Add r1 to r2. ! </p><pre><b><a name="62">code F- ( fs: r1 r2 -- r3 ) \ ANSI Floating </a></b></pre><p>Subtract r2 from r1. ! </p><pre><b><a name="63">code F* ( fs: r1 r2 -- r3 ) \ ANSI Floating </a></b></pre><p>Multiply r1 by r2. ! </p><pre><b><a name="64">code F/ ( fs: r1 r2 -- r3 ) \ ANSI Floating </a></b></pre><p>Divide r1 by r2. ! </p><pre><b><a name="65">code FNEGATE ( fs: r1 -- r2 ) \ ANSI Floating </a></b></pre><p>Reverse the sign of r1. ! </p><pre><b><a name="66">code f2/ ( fs: r1 -- r2 ) \ W32F Floating extra </a></b></pre><p>Multiply by 2. ! </p><pre><b><a name="67">code f2* ( fs: r1 -- r2 ) \ W32F Floating extra </a></b></pre><p>Divide by 2. ! </p><pre><b><a name="68">: 1/f ( fs: r1 -- r2 ) \ W32F Floating extra ! </a></b></pre><p>r2 is the reciprocal of r1. </p><h3>Trigonometric functions ! </h3><pre><b><a name="69">: FSIN ( f: r1 -- r2 ) \ ANSI Floating ext </a></b></pre><p>r2 is the sine of r1 in radians. ! </p><pre><b><a name="70">: FCOS ( f: r1 -- r2 ) \ ANSI Floating ext </a></b></pre><p>r2 is the cosine of r1 in radians. ! </p><pre><b><a name="71">: FSINCOS ( f: r1 -- r2 r3 ) \ ANSI Floating ext </a></b></pre><p>r2 is the sine and r3 the cosine of r1 in radians. This function is more efficient than calling FSIN and FCOS separately. ! </p><pre><b><a name="72">: FTAN ( f: r1 -- r2 ) \ ANSI Floating ext </a></b></pre><p>r2 is the tangent of r1 in radians. </p><h3>Inverse Trigonometric functions ! </h3><pre><b><a name="73">code FASIN ( fs: r1 -- r2 ) \ ANSI Floating ext </a></b></pre><p>r2 is the radian angle whose sine is r1. The result for |x| =< 1 is between ±pi/2. The result for |x| > 1 is NAN. ! </p><pre><b><a name="74">code FACOS ( fs: r1 -- r2 ) \ ANSI Floating ext </a></b></pre><p>r2 is the radian angle whose cosine is r1. The result for |x| =< 1 is between 0 and pi. The result for |x| > 1 is NAN ! </p><pre><b><a name="75">code FATAN ( fs: r1 -- r2 ) \ ANSI Floating ext </a></b></pre><p>r2 is the radian angle whose tangent is r1. The result is between ±pi/2. ! </p><pre><b><a name="76">code FATAN2 ( fs: r1 r2 -- r3 ) \ ANSI Floating ext </a></b></pre><p>r3 is the radian angle whose tangent is r1/r2. The result is between ±pi with the same sign as r2. If r1 and r2 are both zero then r3 is ±zero. --- 86,258 ---- be corrupted; no checks are made so the user should take care. FTO should not be POSTPONEd. ! </p><pre><b><a name="12">: FCONSTANT ( -<name>- ; fs: r -- ) \ ANSI Floating ! </a></b></pre><p> <b> Interpretation: ( -<name>- ; fs: r -- ) </b> <br /> Define an FP constant. <br /> <b> Compilation: </b> <br /> Append the run-time semantics given below to the current definition. <br /> ! <b> Run-time: ( fs: -- r ) </b> <br /> Place r on the floating-point stack. ! </p><pre><b><a name="13">: FLITERAL ( Compilation fs: r -- ; Runtime fs: -- r ) \ ANSI Floating </a></b></pre><p> <b> Interpretation: </b> <br /> Interpretation semantics for this word are undefined. <br /> ! <b> Compilation: ( fs: r -- ) </b> <br /> Append the run-time semantics given below to the current definition. <br /> ! <b> Run-time: ( fs: -- r ) </b> <br /> Place r on the floating-point stack. </p><h3>Stack operations ! </h3><pre><b><a name="14">code FDROP ( fs: r -- ) \ ANSI Floating </a></b></pre><p>Remove r from the floating-point stack. ! </p><pre><b><a name="15">code FDUP ( fs: r -- r r ) \ ANSI Floating </a></b></pre><p>Duplicate the top entry on the floating-point stack. ! </p><pre><b><a name="16">code FSWAP ( fs: r1 r2 -- r2 r1 ) \ ANSI Floating </a></b></pre><p>Exchange the top 2 FP numbers. ! </p><pre><b><a name="17">code FOVER ( fs: r1 r2 -- r1 r2 r1 ) \ ANSI Floating </a></b></pre><p>Copy the 2nd FP stack number to the top of the FP stack. ! </p><pre><b><a name="18">code FROT ( fs: r1 r2 r3 -- r2 r3 r1 ) \ ANSI Floating </a></b></pre><p>Rotate the top 3 FP stack numbers. ! </p><pre><b><a name="19">code FPICK ( n -- ; fs: -- r ) \ W32F Floating extra </a></b></pre><p>Copy the n'th number from the FP stack. ! </p><pre><b><a name="1A">: FNIP ( fs: r1 r2 -- r2 ) \ W32F Floating extra </a></b></pre><p>Remove the 2nd FP stack entry. </p><h3>FP Stack operations on pairs of entries </h3><p>The following words can be used for pairs of FP numbers and are useful for dealing with complex numbers or 2-dimensional vectors on the FP stack. ! </p><pre><b><a name="1B">code F2DROP ( fs: r1 r2 -- ) \ W32F Floating extra </a></b></pre><p>Remove the top 2 FP stack entries. ! </p><pre><b><a name="1C">: F2DUP ( fs: r1 r2 -- r1 r2 r1 r2 ) \ W32F Floating extra </a></b></pre><p>Duplicate the top 2 FP stack entries. ! </p><pre><b><a name="1D">: F2SWAP ( fs: r1 r2 r3 r4 -- r3 r4 r2 r1 ) \ W32F Floating extra </a></b></pre><p>Swap the top pair of floating-point numbers with the second pair. ! </p><pre><b><a name="1E">: F2NIP ( fs: r1 r2 r3 r4 -- r3 r4 ) \ W32F Floating extra </a></b></pre><p>Remove the 2nd pair of FP stack entries. </p><h3>Constants ! </h3><pre><b><a name="1F">code fpi ( fs: -- r ) \ W32F Floating extra </a></b></pre><p>Push the value 3.141596... on to the FP stack. ! </p><pre><b><a name="20">code f0.0 ( FS: -- r ) \ W32F Floating extra </a></b></pre><p>Push plus zero on to the FP stack. ! </p><pre><b><a name="21">code f1.0 ( fs: -- r ) \ W32F Floating extra </a></b></pre><p>Push the value 1.0 on to the FP stack. ! </p><pre><b><a name="22">code fL2t ( fs: -- r ) \ W32F Floating extra </a></b></pre><p>Push the value of log base 2 of 10. ! </p><pre><b><a name="23">code fL2e ( fs: -- r ) \ W32F Floating extra </a></b></pre><p>Push the value of log base 2 of e. ! </p><pre><b><a name="24">code fLog2 ( fs: -- r ) \ W32F Floating extra </a></b></pre><p>Push the value of log base 10 of 2. ! </p><pre><b><a name="25">code fLn2 ( fs: -- r ) \ W32F Floating extra </a></b></pre><p>Push the value of ln 2 (the natural logarithm). ! </p><pre><b><a name="26"> f0.0 fconstant finf ( FS: -- r ) \ W32F Floating extra </a></b></pre><p>Push plus infinity. ! </p><pre><b><a name="27"> f1.0 fconstant f2.0 ( FS: -- r ) \ W32F Floating extra </a></b></pre><p>Push floating-point 2.0. ! </p><pre><b><a name="28"> f0.0 fconstant f10.0 ( FS: -- r ) \ W32F Floating extra </a></b></pre><p>Push floating-point 10.0. ! </p><pre><b><a name="29"> f1.0 fconstant f0.5 ( FS: -- r ) \ W32F Floating extra </a></b></pre><p>Push floating-point 0.5. ! </p><pre><b><a name="2A"> f0.0 fconstant fbig ( FS: -- r ) \ W32F Floating extra </a></b></pre><p>Push the largest non-infinite floating-point number. ! </p><pre><b><a name="2B"> f0.0 fconstant feps ( FS: -- r ) \ W32F Floating extra </a></b></pre><p>Push the smallest non-zero floating-point number. ! </p><pre><b><a name="2C"> f1.0 fconstant fsmall ( FS: -- r ) \ W32F Floating extra </a></b></pre><p>Push the smallest non-denormalised floating-point number. </p><h3>Variables ! </h3><pre><b><a name="2D"> fvariable a2**63 ( -- addr ) \ W32F Floating extra </a></b></pre><p>Return the address of a float containing 2**63. ! </p><pre><b><a name="2E"> fvariable sq2m1 ( -- addr ) \ W32F Floating extra </a></b></pre><p>Return the address of a float containing sqrt(2) - 1. ! </p><pre><b><a name="2F"> fvariable sq2/2m1 ( -- addr ) \ W32F Floating extra </a></b></pre><p>Return the address of a float containing sqrt(2)/2 - 1. ! </p><h3>Rounding functions ! </h3><pre><b><a name="30">code FLOOR ( fs: r1 -- r2 ) \ ANSI Floating </a></b></pre><p>Round r1 to an integral value using the round toward negative infinity rule, giving r2. ! </p><pre><b><a name="31">code FCEIL ( fs: r1 -- r2 ) \ W32F Floating extra </a></b></pre><p>Round r1 to an integral value using the round toward positive infinity rule, giving r2. ! </p><pre><b><a name="32">code FTRUNC ( fs: r1 -- r2 ) \ W32F Floating extra </a></b></pre><p>Round r1 to an integral value using the round toward zero rule, giving r2. ! </p><pre><b><a name="33">code FROUND ( fs: r1 -- r2 ) \ ANSI Floating </a></b></pre><p>Round r1 to an integral value using the round to nearest rule, giving r2. </p><h3>Integer to float conversion ! </h3><pre><b><a name="34">code D>F ( d -- ; Fs: -- r ) \ ANSI Floating </a></b></pre><p>Convert double number to floating-point number. ! </p><pre><b><a name="35">code F>D ( -- d ; fs: r -- ) \ ANSI Floating </a></b></pre><p>Convert floating-point number to double number. If the result would be too large to fit in a double number then <br /> -9223372036854775808 is returned. ! </p><pre><b><a name="36">: s>f ( n -- ; fs: -- r ) \ W32F Floating extra </a></b></pre><p>Convert the single number n to floating point number r. ! </p><pre><b><a name="37">: f>s ( -- n ; fs: r -- ) \ W32F Floating extra </a></b></pre><p>Convert the floating point number r to single number n. ! </p><pre><b><a name="38">code FS>DS ( -- dfloat fs: r -- ) \ W32F Floating extra </a></b></pre><p>Move floating point number bits to the data stack as a 64-bit float. This function is for passing floats to DLLs. ! </p><pre><b><a name="39">code SFS>DS ( -- float ; fs: r -- ) \ W32F Floating extra </a></b></pre><p>Push the top of the float stack onto the data stack as a 32-bit float. This function is for passing floats to DLLs. </p><h3>Comparison operators ! </h3><pre><b><a name="3A">: F0= ( -- f ; fs: r -- ) \ ANSI Floating </a></b></pre><p>Return true if r equals ±0e0. Returns false for NAN. ! </p><pre><b><a name="3B">: F0< ( -- f ; fs: r -- ) \ ANSI Floating </a></b></pre><p>Return true if r is less than ±0e0. Returns false for NAN. ! </p><pre><b><a name="3C">: f0> ( -- f ; fs: r -- ) \ W32F Floating extra </a></b></pre><p>Return true if r is greater than ±0e0. Returns false for NAN. ! </p><pre><b><a name="3D">: f= ( -- f ; fs: r1 r2 -- ) \ W32F Floating extra </a></b></pre><p>Return true if r1 equals r2. Returns false if either number is a NAN. ! </p><pre><b><a name="3E">: F< ( -- f ; fs: r1 r2 -- ) \ ANSI Floating </a></b></pre><p>Return true if r1 is less than r2. Returns false if either number is a NAN. ! </p><pre><b><a name="3F">: f> ( -- f ; fs: r1 r2 -- ) \ W32F Floating extra </a></b></pre><p>Return true if r1 is greater than r2. Returns false if either number is a NAN. ! </p><pre><b><a name="40">: f<= ( -- f ; fs: r1 r2 -- ) \ W32F Floating extra </a></b></pre><p>Return true if r1 is less than or equal to r2. Returns true if either number is a NAN. ! </p><pre><b><a name="41">: f>= ( -- f ; fs: r1 r2 -- ) \ W32F Floating extra </a></b></pre><p>Return true if r1 is greater than or equal to r2. Returns true if either number is a NAN. ! </p><pre><b><a name="42">: FMAX ( fs: r1 r2 -- r3 ) \ ANSI Floating </a></b></pre><p>Return r3 the maximum of r1 and r2. If r1 is a NAN then so is r3. If r2 is a NAN then r3=r1. ! </p><pre><b><a name="43">: FMIN ( fs: r1 r2 -- r3 ) \ ANSI Floating </a></b></pre><p>Return r3 the minimum of r1 and r2. If r1 is a NAN then so is r3. If r2 is a NAN then r3=r1. </p><h3>Arithmetic operators ! </h3><pre><b><a name="44">code F+ ( fs: r1 r2 -- r3 ) \ ANSI Floating </a></b></pre><p>Add r1 to r2. ! </p><pre><b><a name="45">code F- ( fs: r1 r2 -- r3 ) \ ANSI Floating </a></b></pre><p>Subtract r2 from r1. ! </p><pre><b><a name="46">code F* ( fs: r1 r2 -- r3 ) \ ANSI Floating </a></b></pre><p>Multiply r1 by r2. ! </p><pre><b><a name="47">code F/ ( fs: r1 r2 -- r3 ) \ ANSI Floating </a></b></pre><p>Divide r1 by r2. ! </p><pre><b><a name="48">code FNEGATE ( fs: r1 -- r2 ) \ ANSI Floating </a></b></pre><p>Reverse the sign of r1. ! </p><pre><b><a name="49">: 1/f ( fs: r1 -- r2 ) \ W32F Floating extra ! </a></b></pre><p>r2 is the reciprocal of r1. ! </p><pre><b><a name="4A">code f2/ ( fs: r1 -- r2 ) \ W32F Floating extra </a></b></pre><p>Multiply by 2. ! </p><pre><b><a name="4B">code f2* ( fs: r1 -- r2 ) \ W32F Floating extra </a></b></pre><p>Divide by 2. ! </p><pre><b><a name="4C">code FABS ( fs: r1 -- r2 ) \ ANSI Floating ext ! </a></b></pre><p>r2 is the absolute value of r1. ! </p><pre><b><a name="4D">code FSQRT ( fs: r1 -- r2 ) \ ANSI Floating ext ! </a></b></pre><p>r2 is the positive square root of r1. </p><h3>Trigonometric functions ! </h3><pre><b><a name="4E">: FSIN ( fs: r1 -- r2 ) \ ANSI Floating ext </a></b></pre><p>r2 is the sine of r1 in radians. ! </p><pre><b><a name="4F">: FCOS ( fs: r1 -- r2 ) \ ANSI Floating ext </a></b></pre><p>r2 is the cosine of r1 in radians. ! </p><pre><b><a name="50">: FSINCOS ( fs: r1 -- r2 r3 ) \ ANSI Floating ext </a></b></pre><p>r2 is the sine and r3 the cosine of r1 in radians. This function is more efficient than calling FSIN and FCOS separately. ! </p><pre><b><a name="51">: FTAN ( fs: r1 -- r2 ) \ ANSI Floating ext </a></b></pre><p>r2 is the tangent of r1 in radians. </p><h3>Inverse Trigonometric functions ! </h3><pre><b><a name="52">code FASIN ( fs: r1 -- r2 ) \ ANSI Floating ext </a></b></pre><p>r2 is the radian angle whose sine is r1. The result for |x| =< 1 is between ±pi/2. The result for |x| > 1 is NAN. ! </p><pre><b><a name="53">code FACOS ( fs: r1 -- r2 ) \ ANSI Floating ext </a></b></pre><p>r2 is the radian angle whose cosine is r1. The result for |x| =< 1 is between 0 and pi. The result for |x| > 1 is NAN ! </p><pre><b><a name="54">code FATAN ( fs: r1 -- r2 ) \ ANSI Floating ext </a></b></pre><p>r2 is the radian angle whose tangent is r1. The result is between ±pi/2. ! </p><pre><b><a name="55">code FATAN2 ( fs: r1 r2 -- r3 ) \ ANSI Floating ext </a></b></pre><p>r3 is the radian angle whose tangent is r1/r2. The result is between ±pi with the same sign as r2. If r1 and r2 are both zero then r3 is ±zero. *************** *** 230,263 **** polar coordinates. </p><h3>Logarithmic functions ! </h3><pre><b><a name="77">code FLN ( fs: r1 -- r2 ) \ ANSI Floating ext </a></b></pre><p>r2 is the natural logarithm of r1. If r1 is ±0 then r2 is -infinity. If r1 is infinity then r2 is infinity. If r1 is less than zero then r2 is a NAN. ! </p><pre><b><a name="78">code FLNP1 ( fs: r1 -- r2 ) \ ANSI Floating ext </a></b></pre><p>r2 is the natural logarithm of the quantity r1 plus one. If r1 is -1.0 then r2 is -infinity. If r1 is infinity then r2 is infinity. If r1 is less than -1.0 then r2 is a NAN. </p><h3>Exponential functions ! </h3><h3>Hyperbolic functions ! </h3><pre><b><a name="79">: FSINH ( f: r1 -- r2 ) \ ANSI Floating ext </a></b></pre><p>r2 is the hyperbolic sine of r1. ! </p><pre><b><a name="80">: FCOSH ( f: r1 -- r2 ) \ ANSI Floating ext </a></b></pre><p>r2 is the hyperbolic cosine of r1. ! </p><pre><b><a name="81">: FTANH ( f: r1 -- r2 ) \ ANSI Floating ext </a></b></pre><p>r2 is the hyperbolic tangent of r1, |r2| <= 1. </p><h3>Inverse hyperbolic functions ! </h3><pre><b><a name="82">code FASINH ( fs: r1 -- r2 ) \ ANSI Floating ext </a></b></pre><p>r2 is the number whose hyperbolic sine is r1. ! </p><pre><b><a name="83">code FACOSH ( fs: r1 -- r2 ) \ ANSI Floating ext </a></b></pre><p>r2 is the number whose hyperbolic cosine is r1. If r1 < 1.0 then r2 is a NAN. ! </p><pre><b><a name="84">: FATANH ( f: r1 -- r2 ) \ ANSI Floating ext </a></b></pre><p>r2 is the number whose hyperbolic tangent is r1. IF |r1| > 1.0 then r2 is a NAN. ! </p><h3>Output conversion. ! </h3><pre><b><a name="85">: PRECISION ( -- u ) \ ANSI Floating ext </a></b></pre><p>Return the number of significant digits currently used by (F.), (FE.), (FS.), F., FE., or FS. as u. ! </p><pre><b><a name="86">: SET-PRECISION ( u -- ) \ ANSI Floating ext </a></b></pre><p>Set the number of significant digits currently used by (F.), (FE.), (FS.), F., FE., or FS. to u. ! </p><pre><b><a name="87">: min-precision ( u -- ) \ W32F Floating extra </a></b></pre><p>Set the number of significant digits currently used by (F.), (FE.), (FS.), F., FE., or FS. to u if it is greater than the present setting. --- 260,353 ---- polar coordinates. </p><h3>Logarithmic functions ! </h3><pre><b><a name="56">code FLN ( fs: r1 -- r2 ) \ ANSI Floating ext </a></b></pre><p>r2 is the natural logarithm of r1. If r1 is ±0 then r2 is -infinity. If r1 is infinity then r2 is infinity. If r1 is less than zero then r2 is a NAN. ! </p><pre><b><a name="57">code FLNP1 ( fs: r1 -- r2 ) \ ANSI Floating ext </a></b></pre><p>r2 is the natural logarithm of the quantity r1 plus one. If r1 is -1.0 then r2 is -infinity. If r1 is infinity then r2 is infinity. If r1 is less than -1.0 then r2 is a NAN. + </p><pre><b><a name="58">code FLOG ( fs: r1 -- r2 ) \ ANSI Floating ext + </a></b></pre><p>r2 is the logarithm to base 10 of r1. If r1 is ±0 then r2 is -infinity. If r1 + is infinity then r2 is infinity. If r1 is less than zero then r2 is a NAN. </p><h3>Exponential functions ! </h3><pre><b><a name="59">code FEXP ( fs: r1 -- r2 ) \ ANSI Floating ext ! </a></b></pre><p>Raise e to the power r1, giving r2. ! </p><pre><b><a name="5A">code FEXPM1 ( fs: r1 -- r2 ) \ ANSI Floating ext ! </a></b></pre><p>Raise e to the power r1 and subtract one, giving r2. ! </p><p>This function allows accurate computation when its arguments are close to zero, and ! provides a useful base for the standard exponential functions. Hyperbolic functions ! such as cosh(x) can be efficiently and accurately implemented by using FEXPM1; ! accuracy is lost in this function for small values of x if the word FEXP is used. ! </p><pre><b><a name="5B">: f** ( fs: r1 r2 -- r3 ) \ ANSI Floating ext ! </a></b></pre><p>Raise r1 to the power r2, giving the product r3. ! </p><h3>Hyperbolic functions ! </h3><pre><b><a name="5C">: FSINH ( fs: r1 -- r2 ) \ ANSI Floating ext </a></b></pre><p>r2 is the hyperbolic sine of r1. ! </p><pre><b><a name="5D">: FCOSH ( fs: r1 -- r2 ) \ ANSI Floating ext </a></b></pre><p>r2 is the hyperbolic cosine of r1. ! </p><pre><b><a name="5E">: FTANH ( fs: r1 -- r2 ) \ ANSI Floating ext </a></b></pre><p>r2 is the hyperbolic tangent of r1, |r2| <= 1. </p><h3>Inverse hyperbolic functions ! </h3><pre><b><a name="5F">code FASINH ( fs: r1 -- r2 ) \ ANSI Floating ext </a></b></pre><p>r2 is the number whose hyperbolic sine is r1. ! </p><pre><b><a name="60">code FACOSH ( fs: r1 -- r2 ) \ ANSI Floating ext </a></b></pre><p>r2 is the number whose hyperbolic cosine is r1. If r1 < 1.0 then r2 is a NAN. ! </p><pre><b><a name="61">: FATANH ( fs: r1 -- r2 ) \ ANSI Floating ext </a></b></pre><p>r2 is the number whose hyperbolic tangent is r1. IF |r1| > 1.0 then r2 is a NAN. ! </p><pre><b><a name="62">: REPRESENT ( addr u -- n flag1 flag2 ; fs: r -- ) \ ANSI Floating ! </a></b></pre><p>At c-addr, place the character-string external representation of the significand of ! the floating-point number r. Return the decimal-base exponent as n, the sign as flag1 ! and valid result as flag2. The character string shall consist of the u most significant ! digits of the significand represented as a decimal fraction with the implied decimal ! point to the left of the first digit, and the first digit zero only if all digits ! are zero. The significand is rounded to u digits following the round to nearest ! rule; n is adjusted, if necessary, to correspond to the rounded magnitude of the ! significand. If flag2 is true then r was in the implementation-defined range of ! floating-point numbers. If flag1 is true then r is negative. <br /> ! An ambiguous condition exists if the value of BASE is not decimal ten. <br /> ! When flag2 is false, n is 7FFFFFFF and flag1 is the sign. The contents of c-addr are ! the first u characters of either NAN or Infinity, padded with spaces if necessary. ! </p><h3>Input of Floating Poin... [truncated message content] |
From: George H. <geo...@us...> - 2006-02-06 15:05:28
|
Update of /cvsroot/win32forth/win32forth/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv20001/win32forth/src Modified Files: FLOAT.F Log Message: gah: More documenting of float.f (still work in progress). Index: FLOAT.F =================================================================== RCS file: /cvsroot/win32forth/win32forth/src/FLOAT.F,v retrieving revision 1.32 retrieving revision 1.33 diff -C2 -d -r1.32 -r1.33 *** FLOAT.F 4 Feb 2006 10:53:47 -0000 1.32 --- FLOAT.F 6 Feb 2006 15:05:20 -0000 1.33 *************** *** 66,70 **** in-application ! code >fregs ( addr -- ) \ Restore x87 FPU State frstor DATASTACK_MEMORY pop tos --- 66,84 ---- in-application ! \ *N Loading and saving FPU registers ! [...1397 lines suppressed...] + \ ** Ealier versions need to add + \ ** + \ ** : new-reset-stacks [ defer@ reset-stacks compile, ] my-reset-stacks ; + \ ** new-reset-stacks is reset-stacks + + \ *E You can test for the presence of NANs with; + \ ** + \ ** .... fdup f= 0= .... + \ ** + \ ** which returns true only for NANs. You can test for both NANs and infinities with; + \ ** + \ ** .... fdup f- f0= 0= + \ ** + \ ** and for infinities with; + \ ** + \ ** .... fabs finf f= + \ ** + + \ *Z |
From: George H. <geo...@us...> - 2006-02-04 16:12:33
|
Update of /cvsroot/win32forth/win32forth/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv2133/win32forth/src Modified Files: CLASSDBG.F Module.f Log Message: gah: Added module, task and classdbg to DexH-CreateDoocs and glossary Index: Module.f =================================================================== RCS file: /cvsroot/win32forth/win32forth/src/Module.f,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** Module.f 22 Dec 2005 11:02:28 -0000 1.3 --- Module.f 4 Feb 2006 16:12:24 -0000 1.4 *************** *** 15,19 **** \ a module ! \ *! doc\p-module W32F module \ *T Using the Module Wordset \ *P Win32Forth implements the ANSI search-order wordset and extensions as well as it's --- 15,20 ---- \ a module ! \ *D doc ! \ *! p-module W32F module \ *T Using the Module Wordset \ *P Win32Forth implements the ANSI search-order wordset and extensions as well as it's Index: CLASSDBG.F =================================================================== RCS file: /cvsroot/win32forth/win32forth/src/CLASSDBG.F,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** CLASSDBG.F 9 Jan 2006 13:29:53 -0000 1.7 --- CLASSDBG.F 4 Feb 2006 16:12:24 -0000 1.8 *************** *** 1,5 **** \ $Id$ ! \ *! doc\p-classdbg W32F classdbg \ *T Class Debugging Words \ *P Win32Forth contains some miscellaneous words to help with developing Classes and Objects. --- 1,6 ---- \ $Id$ ! \ *D doc ! \ *! p-classdbg W32F classdbg \ *T Class Debugging Words \ *P Win32Forth contains some miscellaneous words to help with developing Classes and Objects. |
Update of /cvsroot/win32forth/win32forth/doc/classes In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv2133/win32forth/doc/classes Modified Files: AXControl.htm Childwnd.htm Control.htm Controls.htm Dialog.htm File.htm Generic.htm HTMLcontrol.htm MdiDialog.htm TrayWindow.htm Window.htm gdiBase.htm gdiBitmap.htm gdiBrush.htm gdiDC.htm gdiFont.htm gdiMetafile.htm gdiMetafileDC.htm gdiPen.htm gdiStruct.htm gdiWindowDc.htm mdi.htm Log Message: gah: Added module, task and classdbg to DexH-CreateDoocs and glossary |
From: George H. <geo...@us...> - 2006-02-04 16:12:33
|
Update of /cvsroot/win32forth/win32forth/src/lib In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv2133/win32forth/src/lib Modified Files: task.f Log Message: gah: Added module, task and classdbg to DexH-CreateDoocs and glossary Index: task.f =================================================================== RCS file: /cvsroot/win32forth/win32forth/src/lib/task.f,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** task.f 3 Jan 2006 08:28:19 -0000 1.5 --- task.f 4 Feb 2006 16:12:24 -0000 1.6 *************** *** 5,9 **** cr .( Loading Task Support...) ! \ *! doc\p-task W32F Task \ *T Using the Task Wordset --- 5,10 ---- cr .( Loading Task Support...) ! \ *D doc ! \ *! p-task W32F Task \ *T Using the Task Wordset |
From: George H. <geo...@us...> - 2006-02-04 16:12:33
|
Update of /cvsroot/win32forth/win32forth/doc In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv2133/win32forth/doc Modified Files: p-AcceleratorTables.htm p-classdbg.htm p-float.htm p-module.htm p-task.htm w32f-glossary.csv Log Message: gah: Added module, task and classdbg to DexH-CreateDoocs and glossary Index: p-module.htm =================================================================== RCS file: /cvsroot/win32forth/win32forth/doc/p-module.htm,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** p-module.htm 22 Dec 2005 11:02:28 -0000 1.2 --- p-module.htm 4 Feb 2006 16:12:24 -0000 1.3 *************** *** 33,40 **** </a></b></pre><p>Set the vocabulary for internal definitions for the next module to be built. This is a non-parsing version of the word PRIVATE. ! </p><pre><b><a name="0">: PRIVATE ( -<voc>- ) </a></b></pre><p>Set the vocabulary for internal definitions for the next module to be built. This is a parsing version of the word (PRIVATE). ! </p><pre><b><a name="0">: INTERNAL ( -- ) </a></b></pre><p>If a module hasn't yet been started or the internal vocabulary isn't the context vocabulary add the internal vocabulary to the search order and save the current --- 33,40 ---- </a></b></pre><p>Set the vocabulary for internal definitions for the next module to be built. This is a non-parsing version of the word PRIVATE. ! </p><pre><b><a name="1">: PRIVATE ( -<voc>- ) </a></b></pre><p>Set the vocabulary for internal definitions for the next module to be built. This is a parsing version of the word (PRIVATE). ! </p><pre><b><a name="2">: INTERNAL ( -- ) </a></b></pre><p>If a module hasn't yet been started or the internal vocabulary isn't the context vocabulary add the internal vocabulary to the search order and save the current *************** *** 42,48 **** vocabulary. If a module is already being built then make the current vocabulary the internal vocabulary. ! </p><pre><b><a name="0">: EXTERNAL ( -- ) </a></b></pre><p>Make the external vocabulary the current vocabulary. ! </p><pre><b><a name="0">: MODULE ( -- ) </a></b></pre><p>Complete the module by making the external vocabulary the current vocabulary, removing the internal vocabulary from the search order if it's the context --- 42,48 ---- vocabulary. If a module is already being built then make the current vocabulary the internal vocabulary. ! </p><pre><b><a name="3">: EXTERNAL ( -- ) </a></b></pre><p>Make the external vocabulary the current vocabulary. ! </p><pre><b><a name="4">: MODULE ( -- ) </a></b></pre><p>Complete the module by making the external vocabulary the current vocabulary, removing the internal vocabulary from the search order if it's the context Index: p-classdbg.htm =================================================================== RCS file: /cvsroot/win32forth/win32forth/doc/p-classdbg.htm,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** p-classdbg.htm 9 Jan 2006 13:33:42 -0000 1.1 --- p-classdbg.htm 4 Feb 2006 16:12:24 -0000 1.2 *************** *** 21,40 **** </h2><pre><b><a name="0">: cmethods ( 'class' -- ) \ W32F Class debug </a></b></pre><p>Print out all the methods of a class. ! </p><pre><b><a name="0">: methods ( object-address -- ) \ W32F Class debug </a></b></pre><p>Print out all the methods of an object. ! </p><pre><b><a name="0">: ivars ( object-address -- ) \ W32F Class debug </a></b></pre><p>Print out all the object IVARs of an object. ! </p><pre><b><a name="0">: matches ( -<name>- ) \ W32F Class debug </a></b></pre><p>Print out all the method selectors and IVAR names that have the same hash value as -<name>- will be assigned. If -<name>- is already in use as a selector or an IVAR name then it will appear in the list. ! </p><pre><b><a name="0">: objects ( 'class' -- ) \ W32F Class debug </a></b></pre><p>Display all of the instances of 'class'. ! </p><pre><b><a name="0">: msee ( -<method object>- ) \ W32F Class debug </a></b></pre><p>Display the source code of the method. Either a Class or Object can be supplied. ! </p><pre><b><a name="0">: mdebug ( -<method object>- ) \ W32F Class debug </a></b></pre><p>Set debugging of the method. An Object must be supplied (Classes aren't allowed). NOTE the method will be debugged for all objects that respond to it. ! </p><pre><b><a name="0">: mdbg ( -<method object>- ) \ W32F Class debug </a></b></pre><p>Set debugging of the method and then execute it. An Object must be supplied (Classes aren't allowed). --- 21,40 ---- </h2><pre><b><a name="0">: cmethods ( 'class' -- ) \ W32F Class debug </a></b></pre><p>Print out all the methods of a class. ! </p><pre><b><a name="1">: methods ( object-address -- ) \ W32F Class debug </a></b></pre><p>Print out all the methods of an object. ! </p><pre><b><a name="2">: ivars ( object-address -- ) \ W32F Class debug </a></b></pre><p>Print out all the object IVARs of an object. ! </p><pre><b><a name="3">: matches ( -<name>- ) \ W32F Class debug </a></b></pre><p>Print out all the method selectors and IVAR names that have the same hash value as -<name>- will be assigned. If -<name>- is already in use as a selector or an IVAR name then it will appear in the list. ! </p><pre><b><a name="4">: objects ( 'class' -- ) \ W32F Class debug </a></b></pre><p>Display all of the instances of 'class'. ! </p><pre><b><a name="5">: msee ( -<method object>- ) \ W32F Class debug </a></b></pre><p>Display the source code of the method. Either a Class or Object can be supplied. ! </p><pre><b><a name="6">: mdebug ( -<method object>- ) \ W32F Class debug </a></b></pre><p>Set debugging of the method. An Object must be supplied (Classes aren't allowed). NOTE the method will be debugged for all objects that respond to it. ! </p><pre><b><a name="7">: mdbg ( -<method object>- ) \ W32F Class debug </a></b></pre><p>Set debugging of the method and then execute it. An Object must be supplied (Classes aren't allowed). Index: w32f-glossary.csv =================================================================== RCS file: /cvsroot/win32forth/win32forth/doc/w32f-glossary.csv,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** w32f-glossary.csv 4 Feb 2006 10:40:35 -0000 1.1 --- w32f-glossary.csv 4 Feb 2006 16:12:24 -0000 1.2 *************** *** 1,4 **** "Name","Stack","Comment","Type","Class","File" ! "Generic-Window",,,"CLASS"," ","Generic.htm""#""0" "Classinit:","( -- )",,"METHOD","Generic-Window","Generic.htm""#""2" "GetHandle:","( -- hWnd )",,"METHOD","Generic-Window","Generic.htm""#""3" --- 1,4 ---- "Name","Stack","Comment","Type","Class","File" ! "Generic-Window",,,"CLASS","","Generic.htm""#""0" "Classinit:","( -- )",,"METHOD","Generic-Window","Generic.htm""#""2" "GetHandle:","( -- hWnd )",,"METHOD","Generic-Window","Generic.htm""#""3" *************** [...1177 lines suppressed...] ! "FSIN","( f: r1 -- r2 )","ANSI Floating ext","COLON","","p-float.htm""#""69" ! "FCOS","( f: r1 -- r2 )","ANSI Floating ext","COLON","","p-float.htm""#""70" ! "FSINCOS","( f: r1 -- r2 r3 )","ANSI Floating ext","COLON","","p-float.htm""#""71" ! "FTAN","( f: r1 -- r2 )","ANSI Floating ext","COLON","","p-float.htm""#""72" ! "FASIN","( fs: r1 -- r2 )","ANSI Floating ext","CODE","","p-float.htm""#""73" ! "FACOS","( fs: r1 -- r2 )","ANSI Floating ext","CODE","","p-float.htm""#""74" ! "FATAN","( fs: r1 -- r2 )","ANSI Floating ext","CODE","","p-float.htm""#""75" ! "FATAN2","( fs: r1 r2 -- r3 )","ANSI Floating ext","CODE","","p-float.htm""#""76" ! "FLN","( fs: r1 -- r2 )","ANSI Floating ext","CODE","","p-float.htm""#""77" ! "FLNP1","( fs: r1 -- r2 )","ANSI Floating ext","CODE","","p-float.htm""#""78" ! "FSINH","( f: r1 -- r2 )","ANSI Floating ext","COLON","","p-float.htm""#""79" ! "FCOSH","( f: r1 -- r2 )","ANSI Floating ext","COLON","","p-float.htm""#""80" ! "FTANH","( f: r1 -- r2 )","ANSI Floating ext","COLON","","p-float.htm""#""81" ! "FASINH","( fs: r1 -- r2 )","ANSI Floating ext","CODE","","p-float.htm""#""82" ! "FACOSH","( fs: r1 -- r2 )","ANSI Floating ext","CODE","","p-float.htm""#""83" ! "FATANH","( f: r1 -- r2 )","ANSI Floating ext","COLON","","p-float.htm""#""84" ! "PRECISION","( -- u )","ANSI Floating ext","COLON","","p-float.htm""#""85" ! "SET-PRECISION","( u -- )","ANSI Floating ext","COLON","","p-float.htm""#""86" ! "min-precision","( u -- )","W32F Floating extra","COLON","","p-float.htm""#""87" ! "(F.)","( addr -- )",,"COLON","","p-float.htm""#""88" Index: p-task.htm =================================================================== RCS file: /cvsroot/win32forth/win32forth/doc/p-task.htm,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** p-task.htm 3 Jan 2006 08:28:19 -0000 1.2 --- p-task.htm 4 Feb 2006 16:12:24 -0000 1.3 *************** *** 53,89 **** </h2><pre><b><a name="0">cell field+ task>parm ( task-block -- addr ) \ W32F Task </a></b></pre><p>Convert the task-block address into the address of the thread parameter ! </p><pre><b><a name="0">cell field+ task>id ( task-block -- addr ) \ W32F Task </a></b></pre><p>Convert the task-block address into the address of the thread id ! </p><pre><b><a name="0">cell field+ task>handle ( task-block -- addr ) \ W32F Task </a></b></pre><p>Convert the task-block address into the address of the thread handle ! </p><pre><b><a name="0">cell field+ task>stop ( task-block -- addr ) \ W32F Task </a></b></pre><p>Convert the task-block address into the address of the the stop flag ! </p><pre><b><a name="0">: task>parm@ ( task-block -- parm ) \ W32F Task </a></b></pre><p>Fetch the parameter from the task-block. ! </p><pre><b><a name="0">1 proc ExitThread as exit-task ( n -- ) \ W32F Task </a></b></pre><p>Exit the current task returning the value n to the operating system, which can be retrieved by calling GetExitCodeThread. The stacks and user area for the thread are freed and DLLs are detatched. If the thread is the last active thread of the process then the process is terminated. ! </p><pre><b><a name="0">: create-task ( task-block -- flag ) \ W32F Task </a></b></pre><p>Create a new task which is suspended. Flag is true if successful. ! </p><pre><b><a name="0">: run-task ( task-block -- flag ) \ W32F Task </a></b></pre><p>Create a new task and run it. Flag is true if successful. ! </p><pre><b><a name="0">: suspend-task ( task-block -- flag ) \ W32F Task </a></b></pre><p>Suspend a task. Flag is true if successful. ! </p><pre><b><a name="0">: resume-task ( task-block -- flag ) \ W32F Task </a></b></pre><p>Resume a task. Flag is true if successful. ! </p><pre><b><a name="0">: stop-task ( task-block -- ) \ W32F Task </a></b></pre><p>Set the stop flag of the task block to true. ! </p><pre><b><a name="0">: task-sleep ( n -- ) \ W32F Task </a></b></pre><p>Suspend the current task for at least n msec. If n is INFINITE (-1) the task is suspended forever. ! </p><pre><b><a name="0">: (task-block) ( parm cfa-task addr -- len ) \ W32F Task </a></b></pre><p>Build a task block at the supplied address, initialise the parameter and xt and return the size of the task block. ! </p><pre><b><a name="0">: task-block ( parm cfa-task -- addr ) \ W32F Task </a></b></pre><p>Build a task block in the dictionary, initialise the parameter and xt and return the address of the block. ! </p><pre><b><a name="0">: task-stop? ( task-block -- flag ) \ W32F Task </a></b></pre><p>Flag is true if stop-task has been set by another task. In this case the task should do any necessary clean-up and exit. --- 53,89 ---- </h2><pre><b><a name="0">cell field+ task>parm ( task-block -- addr ) \ W32F Task </a></b></pre><p>Convert the task-block address into the address of the thread parameter ! </p><pre><b><a name="1">cell field+ task>id ( task-block -- addr ) \ W32F Task </a></b></pre><p>Convert the task-block address into the address of the thread id ! </p><pre><b><a name="2">cell field+ task>handle ( task-block -- addr ) \ W32F Task </a></b></pre><p>Convert the task-block address into the address of the thread handle ! </p><pre><b><a name="3">cell field+ task>stop ( task-block -- addr ) \ W32F Task </a></b></pre><p>Convert the task-block address into the address of the the stop flag ! </p><pre><b><a name="4">: task>parm@ ( task-block -- parm ) \ W32F Task </a></b></pre><p>Fetch the parameter from the task-block. ! </p><pre><b><a name="5">1 proc ExitThread as exit-task ( n -- ) \ W32F Task </a></b></pre><p>Exit the current task returning the value n to the operating system, which can be retrieved by calling GetExitCodeThread. The stacks and user area for the thread are freed and DLLs are detatched. If the thread is the last active thread of the process then the process is terminated. ! </p><pre><b><a name="6">: create-task ( task-block -- flag ) \ W32F Task </a></b></pre><p>Create a new task which is suspended. Flag is true if successful. ! </p><pre><b><a name="7">: run-task ( task-block -- flag ) \ W32F Task </a></b></pre><p>Create a new task and run it. Flag is true if successful. ! </p><pre><b><a name="8">: suspend-task ( task-block -- flag ) \ W32F Task </a></b></pre><p>Suspend a task. Flag is true if successful. ! </p><pre><b><a name="9">: resume-task ( task-block -- flag ) \ W32F Task </a></b></pre><p>Resume a task. Flag is true if successful. ! </p><pre><b><a name="10">: stop-task ( task-block -- ) \ W32F Task </a></b></pre><p>Set the stop flag of the task block to true. ! </p><pre><b><a name="11">: task-sleep ( n -- ) \ W32F Task </a></b></pre><p>Suspend the current task for at least n msec. If n is INFINITE (-1) the task is suspended forever. ! </p><pre><b><a name="12">: (task-block) ( parm cfa-task addr -- len ) \ W32F Task </a></b></pre><p>Build a task block at the supplied address, initialise the parameter and xt and return the size of the task block. ! </p><pre><b><a name="13">: task-block ( parm cfa-task -- addr ) \ W32F Task </a></b></pre><p>Build a task block in the dictionary, initialise the parameter and xt and return the address of the block. ! </p><pre><b><a name="14">: task-stop? ( task-block -- flag ) \ W32F Task </a></b></pre><p>Flag is true if stop-task has been set by another task. In this case the task should do any necessary clean-up and exit. *************** *** 94,104 **** The system also contains some locks used internally that are transparent to the user. </p><h2>Glossary ! </h2><pre><b><a name="0">: lock ( lock -- ) \ W32F Lock </a></b></pre><p>If another thread owns the lock wait until it's free, then if the lock is free claim it for this thread, then increment the lock count. ! </p><pre><b><a name="0">: unlock ( lock -- ) \ W32F Lock </a></b></pre><p>Decrement the lock count and free the lock if the resultant count is zero. ! </p><pre><b><a name="0">: trylock ( lock -- fl ) \ W32F Lock </a></b></pre><p><b> For NT 2000 and XP; </b> If the lock is owned by another thread return false. <br /> --- 94,104 ---- The system also contains some locks used internally that are transparent to the user. </p><h2>Glossary ! </h2><pre><b><a name="15">: lock ( lock -- ) \ W32F Lock </a></b></pre><p>If another thread owns the lock wait until it's free, then if the lock is free claim it for this thread, then increment the lock count. ! </p><pre><b><a name="16">: unlock ( lock -- ) \ W32F Lock </a></b></pre><p>Decrement the lock count and free the lock if the resultant count is zero. ! </p><pre><b><a name="17">: trylock ( lock -- fl ) \ W32F Lock </a></b></pre><p><b> For NT 2000 and XP; </b> If the lock is owned by another thread return false. <br /> *************** *** 107,111 **** <b> For Win9x; </b> Perform the action of LOCK and return true. ! </p><pre><b><a name="0">: make-lock ( compiling: -<name>- -- runtime: -- lock ) \ W32F Lock </a></b></pre><p>Create a new lock. When executed the lock returns it's identifier. </p><h2>WARNING --- 107,111 ---- <b> For Win9x; </b> Perform the action of LOCK and return true. ! </p><pre><b><a name="18">: make-lock ( compiling: -<name>- -- runtime: -- lock ) \ W32F Lock </a></b></pre><p>Create a new lock. When executed the lock returns it's identifier. </p><h2>WARNING |
From: George H. <geo...@us...> - 2006-02-04 16:12:33
|
Update of /cvsroot/win32forth/win32forth/src/tools In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv2133/win32forth/src/tools Modified Files: DexH-CreateDocs.f Log Message: gah: Added module, task and classdbg to DexH-CreateDoocs and glossary Index: DexH-CreateDocs.f =================================================================== RCS file: /cvsroot/win32forth/win32forth/src/tools/DexH-CreateDocs.f,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** DexH-CreateDocs.f 4 Feb 2006 10:40:36 -0000 1.10 --- DexH-CreateDocs.f 4 Feb 2006 16:12:24 -0000 1.11 *************** *** 54,58 **** --- 54,62 ---- \ s" src\lib\AcceleratorTables.f" create-doc + s" src\lib\task.f" create-doc + s" src\Module.f" create-doc + s" src\Classdbg.f" create-doc s" src\FLOAT.F" create-doc + ; |
From: Dirk B. <db...@us...> - 2006-02-04 10:53:57
|
Update of /cvsroot/win32forth/win32forth/doc In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv23277/doc Modified Files: FloadCmdLine.htm Log Message: Some minor changes and some dexing' Index: FloadCmdLine.htm =================================================================== RCS file: /cvsroot/win32forth/win32forth/doc/FloadCmdLine.htm,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** FloadCmdLine.htm 3 Feb 2006 22:54:55 -0000 1.3 --- FloadCmdLine.htm 4 Feb 2006 10:53:47 -0000 1.4 *************** *** 16,20 **** <br />Use CMenuExtender v1.2.1.2 to create a new context entry. <br />The CMenuExtender can be downloaded from: ! <br />http://www.monctoncomputerservice.com/revenger_inc/download.html <p><b>How it works:</b> <br />1.Create a menu entry for Win32Forth using CMExtEd. --- 16,20 ---- <br />Use CMenuExtender v1.2.1.2 to create a new context entry. <br />The CMenuExtender can be downloaded from: ! <a href="http://www.monctoncomputerservice.com/revenger_inc/download.html">here.</a> <p><b>How it works:</b> <br />1.Create a menu entry for Win32Forth using CMExtEd. |
From: Dirk B. <db...@us...> - 2006-02-04 10:53:57
|
Update of /cvsroot/win32forth/win32forth/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv23277/src Modified Files: DIS486.F FLOAT.F floadcmdline.f Log Message: Some minor changes and some dexing' Index: floadcmdline.f =================================================================== RCS file: /cvsroot/win32forth/win32forth/src/floadcmdline.f,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** floadcmdline.f 3 Feb 2006 22:54:14 -0000 1.3 --- floadcmdline.f 4 Feb 2006 10:53:47 -0000 1.4 *************** *** 8,12 **** \ ** \nUse CMenuExtender v1.2.1.2 to create a new context entry. \ ** \nThe CMenuExtender can be downloaded from: ! \ ** \nhttp://www.monctoncomputerservice.com/revenger_inc/download.html \ *P \bHow it works:\d --- 8,12 ---- \ ** \nUse CMenuExtender v1.2.1.2 to create a new context entry. \ ** \nThe CMenuExtender can be downloaded from: ! \ *W <a href="http://www.monctoncomputerservice.com/revenger_inc/download.html">here.</a> \ *P \bHow it works:\d *************** *** 24,28 **** \ *P \bNotes:\d \ ** \n1.Only testet under XP. ! \ ** \n2.It is also possible to add WinEd to the context menu. \ ** Then leave the commandline in CMExtEd empty. --- 24,28 ---- \ *P \bNotes:\d \ ** \n1.Only testet under XP. ! \ ** \n2.It is also possible to add WinEd to the context menu. \ ** Then leave the commandline in CMExtEd empty. Index: FLOAT.F =================================================================== RCS file: /cvsroot/win32forth/win32forth/src/FLOAT.F,v retrieving revision 1.31 retrieving revision 1.32 diff -C2 -d -r1.31 -r1.32 *** FLOAT.F 2 Feb 2006 10:55:21 -0000 1.31 --- FLOAT.F 4 Feb 2006 10:53:47 -0000 1.32 *************** *** 37,41 **** \ ------------------------------------------------------------------------- ! \ *! doc\p-float W32F float \ *T Floating point words in Win32Forth --- 37,42 ---- \ ------------------------------------------------------------------------- ! \ *D doc ! \ *! p-float W32F float \ *T Floating point words in Win32Forth Index: DIS486.F =================================================================== RCS file: /cvsroot/win32forth/win32forth/src/DIS486.F,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** DIS486.F 31 Aug 2005 09:04:49 -0000 1.5 --- DIS486.F 4 Feb 2006 10:53:47 -0000 1.6 *************** *** 1095,1099 **** 3 = if .reg16(XX-XXX-NNN) ! else drop .s" word " op2 mod-r/m(ModR/M) then --- 1095,1099 ---- 3 = if .reg16(XX-XXX-NNN) ! else drop .s" word " op2 mod-r/m(ModR/M) then |
From: Dirk B. <db...@us...> - 2006-02-04 10:53:57
|
Update of /cvsroot/win32forth/win32forth/src/lib In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv23277/src/lib Modified Files: excontrols.f Log Message: Some minor changes and some dexing' Index: excontrols.f =================================================================== RCS file: /cvsroot/win32forth/win32forth/src/lib/excontrols.f,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** excontrols.f 1 Feb 2006 17:08:25 -0000 1.10 --- excontrols.f 4 Feb 2006 10:53:47 -0000 1.11 *************** *** 909,916 **** :M CheckButton: ( -- ) ! 1 ID CheckDlgButton: parent ;M :M UnCheckButton: ( -- ) ! 0 ID CheckDlgButton: parent ;M :M Check: ( f -- ) --- 909,916 ---- :M CheckButton: ( -- ) ! BST_CHECKED ID CheckDlgButton: parent ;M :M UnCheckButton: ( -- ) ! BST_UNCHECKED ID CheckDlgButton: parent ;M :M Check: ( f -- ) *************** *** 962,974 **** :M IsButtonChecked?: ( -- f ) ID IsDlgButtonChecked: parent ;M :M CheckButton: ( -- ) ! 1 ID CheckDlgButton: parent ;M :M UnCheckButton: ( -- ) ! 0 ID CheckDlgButton: parent ;M :M Check: ( f -- ) if CheckButton: self else UnCheckButton: self --- 962,978 ---- :M IsButtonChecked?: ( -- f ) + \ *G Check if the radio button is checked or unchecked. ID IsDlgButtonChecked: parent ;M :M CheckButton: ( -- ) ! \ *G Set the button state to checked. ! BST_CHECKED ID CheckDlgButton: parent ;M :M UnCheckButton: ( -- ) ! \ *G Set the button state to unchecked. ! BST_UNCHECKED ID CheckDlgButton: parent ;M :M Check: ( f -- ) + \ *G Set the button state to either checked or unchecked. if CheckButton: self else UnCheckButton: self *************** *** 1105,1117 **** |Class StaticImage <Super Label \ *G Base class for static control showing an image. ! \ ** This is an intern class; don't use it directly. :M ImageType: ( -- ImageType ) IMAGE_BITMAP ;M :M GetImage: ( -- hImage ) 0 ImageType: [ self ] STM_GETIMAGE SendMessage:Self ;M :M SetImage: ( hImage -- ) GetImage: self over <> if ImageType: [ self ] STM_SETIMAGE SendMessage:Self DROP --- 1109,1124 ---- |Class StaticImage <Super Label \ *G Base class for static control showing an image. ! \ ** This is an internal class; don't use it directly. :M ImageType: ( -- ImageType ) + \ *G Get the image type of the control. \i ImageType \d is IMAGE_BITMAP. IMAGE_BITMAP ;M :M GetImage: ( -- hImage ) + \ *G Retrieve a handle to the image associated with the control. 0 ImageType: [ self ] STM_GETIMAGE SendMessage:Self ;M :M SetImage: ( hImage -- ) + \ *G Associate a new image (icon or bitmap) with the control. GetImage: self over <> if ImageType: [ self ] STM_SETIMAGE SendMessage:Self DROP *************** *** 1131,1135 **** \ ------------------------------------------------------------------------ :Class StaticBitmap <Super StaticImage ! \ *G Static control showing a bitmap :M WindowStyle: ( -- style ) --- 1138,1142 ---- \ ------------------------------------------------------------------------ :Class StaticBitmap <Super StaticImage ! \ *G Static control showing a bitmap. :M WindowStyle: ( -- style ) *************** *** 1145,1149 **** \ ------------------------------------------------------------------------ :Class StaticIcon <Super StaticImage ! \ *G Static control showing an icon :M WindowStyle: ( -- style ) --- 1152,1156 ---- \ ------------------------------------------------------------------------ :Class StaticIcon <Super StaticImage ! \ *G Static control showing an icon. :M WindowStyle: ( -- style ) *************** *** 1152,1155 **** --- 1159,1163 ---- :M ImageType: ( -- ImageType ) + \ *G Get the image type of the control. \i ImageType \d is IMAGE_ICON. IMAGE_ICON ;M *************** *** 1162,1166 **** \ ------------------------------------------------------------------------ :Class StaticMetafile <Super StaticImage ! \ *G Static control showing an enhanced metafile :M WindowStyle: ( -- style ) --- 1170,1174 ---- \ ------------------------------------------------------------------------ :Class StaticMetafile <Super StaticImage ! \ *G Static control showing an enhanced metafile. :M WindowStyle: ( -- style ) *************** *** 1169,1172 **** --- 1177,1181 ---- :M ImageType: ( -- ImageType ) + \ *G Get the image type of the control. \i ImageType \d is IMAGE_ENHMETAFILE. IMAGE_ENHMETAFILE ;M *************** *** 1179,1206 **** \ ------------------------------------------------------------------------ :Class StaticFrame <Super Label ! \ *G Static control showing a frame :M BlackRect: ( -- ) ! \ *G rectangle in the window frame color (default is black) WindowStyle: super SS_BLACKRECT OR SetStyle: self ;M :M GrayRect: ( -- ) ! \ *G rectangle in the screen background color (default is gray) WindowStyle: super SS_GRAYRECT OR SetStyle: self ;M :M WhiteRect: ( -- ) ! \ *G rectangle in the window background color (default is white) WindowStyle: super SS_WHITERECT OR SetStyle: self ;M :M BlackFrame: ( -- ) ! \ *G frame in the window frame color (default is black) WindowStyle: super SS_BLACKFRAME OR SetStyle: self ;M :M GrayFrame: ( -- ) ! \ *G frame in the screen background color (default is gray) WindowStyle: super SS_GRAYFRAME OR SetStyle: self ;M :M WhiteFrame: ( -- ) ! \ *G frame in the window background color (default is white) WindowStyle: super SS_WHITEFRAME OR SetStyle: self ;M --- 1188,1215 ---- \ ------------------------------------------------------------------------ :Class StaticFrame <Super Label ! \ *G Static control showing a frame. :M BlackRect: ( -- ) ! \ *G Rectangle in the window frame color (default is black). WindowStyle: super SS_BLACKRECT OR SetStyle: self ;M :M GrayRect: ( -- ) ! \ *G Rectangle in the screen background color (default is gray). WindowStyle: super SS_GRAYRECT OR SetStyle: self ;M :M WhiteRect: ( -- ) ! \ *G Rectangle in the window background color (default is white). WindowStyle: super SS_WHITERECT OR SetStyle: self ;M :M BlackFrame: ( -- ) ! \ *G Frame in the window frame color (default is black). WindowStyle: super SS_BLACKFRAME OR SetStyle: self ;M :M GrayFrame: ( -- ) ! \ *G Frame in the screen background color (default is gray). WindowStyle: super SS_GRAYFRAME OR SetStyle: self ;M :M WhiteFrame: ( -- ) ! \ *G Frame in the window background color (default is white). WindowStyle: super SS_WHITEFRAME OR SetStyle: self ;M *************** *** 1210,1214 **** :M SunkenFrame: ( -- ) ! \ *G draws frame with half-sunken border WindowStyle: super SS_SUNKEN OR SetStyle: self ;M --- 1219,1223 ---- :M SunkenFrame: ( -- ) ! \ *G Draws frame with half-sunken border. WindowStyle: super SS_SUNKEN OR SetStyle: self ;M *************** *** 1262,1265 **** --- 1271,1277 ---- :Class Progressbar <Super Control \ *G Progressbar control + \ ** A progress bar is a window that an application can use to indicate the progress + \ ** of a lengthy operation. It consists of a rectangle that is gradually filled with + \ ** the system highlight color as an operation progresses. int style *************** *** 1285,1315 **** :M +Value: ( n -- ) ! \ *G increases the value of progress bar by specified increment 0 SWAP PBM_DELTAPOS SendMessage:Self DROP ;M :M GetValue: ( -- n ) ! \ *G returns the current position value 0 0 PBM_DELTAPOS SendMessage:Self ;M :M SetValue: ( n -- ) ! \ *G sets the current position value 0 SWAP PBM_SETPOS SendMessage:Self DROP ;M :M SetRange: ( min max -- ) ! \ *G sets the minimum and maximum values for progress bar word-join 0 PBM_SETRANGE SendMessage:Self ?Win-error ;M :M SetStep: ( n -- ) ! \ *G sets the step increment ! 0 SWAP PBM_SETSTEP SendMessage:Self DROP ;M :M GetStep: ( -- n ) ! \ *G returns the current step increment ! 0 0 PBM_SETSTEP SendMessage:Self ! DUP SetStep: self ! ;M :M StepIt: ( -- ) ! \ *G advances the current position by the step increment 0 0 PBM_STEPIT SendMessage:Self DROP ;M --- 1297,1338 ---- :M +Value: ( n -- ) ! \ *G Advances the current position of the progress bar by a specified increment ! \ ** and redraws the bar to reflect the new position. 0 SWAP PBM_DELTAPOS SendMessage:Self DROP ;M :M GetValue: ( -- n ) ! \ *G Returns the current position of the progress bar. 0 0 PBM_DELTAPOS SendMessage:Self ;M :M SetValue: ( n -- ) ! \ *G Sets the current position for the progress bar and redraws the bar to ! \ ** reflect the new position. 0 SWAP PBM_SETPOS SendMessage:Self DROP ;M :M SetRange: ( min max -- ) ! \ *G Sets the minimum and maximum values for the progress bar and redraws the ! \ ** bar to reflect the new range. ! \ *P \i min \d is the minimum range value. By default, the minimum value is zero. ! \ *P \i max \d is the maximum range value. By default, the maximum value is 100. word-join 0 PBM_SETRANGE SendMessage:Self ?Win-error ;M + : SetStep ( n -- n1 ) + 0 SWAP PBM_SETSTEP SendMessage:Self ; + :M SetStep: ( n -- ) ! \ *G Specifies the step increment for the progress bar. The step increment is ! \ the amount by which the progress bar increases its current position whenever ! \ the StepIt: method is used. By default, the step increment is set to 10. ! SetStep DROP ;M :M GetStep: ( -- n ) ! \ *G Returns the current step increment for the progress bar. ! 0 SetStep dup SetStep ;M :M StepIt: ( -- ) ! \ *G Advances the current position for the progress bar by the step increment ! \ ** and redraws the bar to reflect the new position. ! \ *P When the position exceeds the maximum range value, this method resets the current ! \ ** position so that the progress indicator starts over again from the beginning. 0 0 PBM_STEPIT SendMessage:Self DROP ;M *************** *** 1322,1326 **** \ ------------------------------------------------------------------------ :Class SmoothProgressbar <Super Progressbar ! \ *G SmoothProgressbar control :M WindowStyle: ( -- style ) --- 1345,1354 ---- \ ------------------------------------------------------------------------ :Class SmoothProgressbar <Super Progressbar ! \ *G Progressbar control ! \ ** A progress bar is a window that an application can use to indicate the progress ! \ ** of a lengthy operation. It consists of a rectangle that is gradually filled with ! \ ** the system highlight color as an operation progresses. ! \ *P The progress bar displays progress status in a smooth scrolling bar instead of the ! \ ** default segmented bar. :M WindowStyle: ( -- style ) |
Update of /cvsroot/win32forth/win32forth/doc/classes In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv19124/doc/classes Modified Files: AXControl.htm Childwnd.htm Control.htm Controls.htm Dialog.htm File.htm Generic.htm HTMLcontrol.htm MdiDialog.htm TrayWindow.htm Window.htm gdiBase.htm gdiBitmap.htm gdiBrush.htm gdiDC.htm gdiFont.htm gdiMetafile.htm gdiMetafileDC.htm gdiPen.htm gdiStruct.htm gdiWindowDc.htm mdi.htm Log Message: Changed DexH to create a glossary file (w32f-glossary.csv) in the doc folder. This file can be used to create a glossary file for win32forth as HTML. Index: Dialog.htm =================================================================== RCS file: /cvsroot/win32forth/win32forth/doc/classes/Dialog.htm,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** Dialog.htm 8 Jan 2006 09:28:07 -0000 1.3 --- Dialog.htm 4 Feb 2006 10:40:35 -0000 1.4 *************** *** 56,99 **** </a></b></pre><p>Given the address of a header in a resource file, return true if this is the header for a dialog resource. I'm only guessing here. ! </p><pre><b><a name="0">: find-dialog-ID ( id addr -- address-of-template-header ) </a></b></pre><p>Find dialog template given address and length of resource file in memory. ! </p><pre><b><a name="0">: load-dialog ( -<filename-without-an-extension>- ) </a></b></pre><p>Load template from dialog resource (*.res) to here and allot memory. <br /> Usage: load-dialog dialog </p><a name="Dialog"></a> <h2>Dialog Class ! </h2><pre><b><a name="0">:CLASS Dialog <SUPER Dialog&Control \ generic-window </a></b></pre><p>Dialog class. <br /> To use this class you have to create a ressource file (*.res) whitch must contain the dialog resource. Since Win32Forth doesn't provide any tool's to create a dialog resource you should use ForthForm to create your dialog windows instead. ! </p><pre><b><a name="0">:M Start: ( parent -- flag ) </a></b></pre><p>Open the dialog ! </p><pre><b><a name="0">:M EndDialog: ( return-value -- ) </a></b></pre><p>Close the dialog ! </p><pre><b><a name="0">:M On_Init: ( hwndfocus -- f ) </a></b></pre><p>Init the dialog ! </p><pre><b><a name="0">:M On_Command: ( hCtrl code ID -- f ) </a></b></pre><p>Process Commands from Controls ! </p><pre><b><a name="0">;Class </a></b></pre><p>End of Dialog class </p><a name="ModelessDialog"></a> <h2>Modless Dialog class ! </h2><pre><b><a name="0">:Class ModelessDialog <SUPER Dialog </a></b></pre><p>Modless Dialog class <br /> To use this class you have to create a ressource file (*.res) whitch must contain the dialog resource. Since Win32Forth doesn't provide any tool's to create a dialog resource you should use ForthForm to create your dialog windows instead. ! </p><pre><b><a name="0">:M WindowStyle: ( -- n1 ) </a></b></pre><p>Get the window style of the dialog. ! </p><pre><b><a name="0">:M ExWindowStyle: ( -- n1 ) </a></b></pre><p>Get the extended window style of the dialog. ! </p><pre><b><a name="0">:M Origin: ( -- x y ) </a></b></pre><p>Get the origin (upper left corner) of the dialog. ! </p><pre><b><a name="0">:M Start: ( parent -- ) </a></b></pre><p>Open the dialog ! </p><pre><b><a name="0">:M EndDialog: ( n1 -- ) </a></b></pre><p>Close the dialog ! </p><pre><b><a name="0">;Class </a></b></pre><p>End of ModlessDialog class </p><hr><p>Document $Id$</p> --- 56,99 ---- </a></b></pre><p>Given the address of a header in a resource file, return true if this is the header for a dialog resource. I'm only guessing here. ! </p><pre><b><a name="1">: find-dialog-ID ( id addr -- address-of-template-header ) </a></b></pre><p>Find dialog template given address and length of resource file in memory. ! </p><pre><b><a name="2">: load-dialog ( -<filename-without-an-extension>- ) </a></b></pre><p>Load template from dialog resource (*.res) to here and allot memory. <br /> Usage: load-dialog dialog </p><a name="Dialog"></a> <h2>Dialog Class ! </h2><pre><b><a name="3">:CLASS Dialog <SUPER Dialog&Control \ generic-window </a></b></pre><p>Dialog class. <br /> To use this class you have to create a ressource file (*.res) whitch must contain the dialog resource. Since Win32Forth doesn't provide any tool's to create a dialog resource you should use ForthForm to create your dialog windows instead. ! </p><pre><b><a name="4">:M Start: ( parent -- flag ) </a></b></pre><p>Open the dialog ! </p><pre><b><a name="5">:M EndDialog: ( return-value -- ) </a></b></pre><p>Close the dialog ! </p><pre><b><a name="6">:M On_Init: ( hwndfocus -- f ) </a></b></pre><p>Init the dialog ! </p><pre><b><a name="7">:M On_Command: ( hCtrl code ID -- f ) </a></b></pre><p>Process Commands from Controls ! </p><pre><b><a name="8">;Class </a></b></pre><p>End of Dialog class </p><a name="ModelessDialog"></a> <h2>Modless Dialog class ! </h2><pre><b><a name="9">:Class ModelessDialog <SUPER Dialog </a></b></pre><p>Modless Dialog class <br /> To use this class you have to create a ressource file (*.res) whitch must contain the dialog resource. Since Win32Forth doesn't provide any tool's to create a dialog resource you should use ForthForm to create your dialog windows instead. ! </p><pre><b><a name="10">:M WindowStyle: ( -- n1 ) </a></b></pre><p>Get the window style of the dialog. ! </p><pre><b><a name="11">:M ExWindowStyle: ( -- n1 ) </a></b></pre><p>Get the extended window style of the dialog. ! </p><pre><b><a name="12">:M Origin: ( -- x y ) </a></b></pre><p>Get the origin (upper left corner) of the dialog. ! </p><pre><b><a name="13">:M Start: ( parent -- ) </a></b></pre><p>Open the dialog ! </p><pre><b><a name="14">:M EndDialog: ( n1 -- ) </a></b></pre><p>Close the dialog ! </p><pre><b><a name="15">;Class </a></b></pre><p>End of ModlessDialog class </p><hr><p>Document $Id$</p> Index: Childwnd.htm =================================================================== RCS file: /cvsroot/win32forth/win32forth/doc/classes/Childwnd.htm,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** Childwnd.htm 11 Jan 2006 17:45:20 -0000 1.1 --- Childwnd.htm 4 Feb 2006 10:40:35 -0000 1.2 *************** *** 23,41 **** not the window handle. This allows the child to send messages to its parent. ! </p><pre><b><a name="0">:M GetParent: ( -- parent ) </a></b></pre><p>Get the object address of the parent window. ! </p><pre><b><a name="0">:M SetID: ( n -- ) </a></b></pre><p>Set the ID for this child window ! </p><pre><b><a name="0">:M GetID: ( -- n ) </a></b></pre><p>Get the ID for this child window ! </p><pre><b><a name="0">:M WindowStyle: ( -- style ) </a></b></pre><p>Get the window style ! </p><pre><b><a name="0">:M ExWindowStyle: ( -- extended_style ) </a></b></pre><p>Get the extended window style ! </p><pre><b><a name="0">:M WindowTitle: ( -- Zstring ) </a></b></pre><p>Get the window caption. ! </p><pre><b><a name="0">:M Start: ( Parent -- ) </a></b></pre><p>Create the child window ! </p><pre><b><a name="0">;Class </a></b></pre><p>End of Child-Window class </p><hr><p>Document $Id$</p> --- 23,41 ---- not the window handle. This allows the child to send messages to its parent. ! </p><pre><b><a name="1">:M GetParent: ( -- parent ) </a></b></pre><p>Get the object address of the parent window. ! </p><pre><b><a name="2">:M SetID: ( n -- ) </a></b></pre><p>Set the ID for this child window ! </p><pre><b><a name="3">:M GetID: ( -- n ) </a></b></pre><p>Get the ID for this child window ! </p><pre><b><a name="4">:M WindowStyle: ( -- style ) </a></b></pre><p>Get the window style ! </p><pre><b><a name="5">:M ExWindowStyle: ( -- extended_style ) </a></b></pre><p>Get the extended window style ! </p><pre><b><a name="6">:M WindowTitle: ( -- Zstring ) </a></b></pre><p>Get the window caption. ! </p><pre><b><a name="7">:M Start: ( Parent -- ) </a></b></pre><p>Create the child window ! </p><pre><b><a name="8">;Class </a></b></pre><p>End of Child-Window class </p><hr><p>Document $Id$</p> Index: gdiWindowDc.htm =================================================================== RCS file: /cvsroot/win32forth/win32forth/doc/classes/gdiWindowDc.htm,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** gdiWindowDc.htm 8 Jan 2006 09:28:07 -0000 1.3 --- gdiWindowDc.htm 4 Feb 2006 10:40:35 -0000 1.4 *************** *** 23,35 **** </h2><pre><b><a name="0">:class gdiWindowDC <super gdiDC </a></b></pre><p>Window device context class ! </p><pre><b><a name="0">:M Release: ( -- ) </a></b></pre><p>The Release: method releases a device context (DC), freeing it for use by other applications. The effect of the ReleaseDC function depends on the type of DC. It frees only common and window DCs. It has no effect on class or private DCs. ! </p><pre><b><a name="0">:M GetDC: ( hWnd -- f ) </a></b></pre><p>The GetDC method retrieves a handle to a display device context for the client area of a specified window. ! </p><pre><b><a name="0">:M GetDCEx: ( hrgnClip flags hWnd -- f ) </a></b></pre><p>The GetDCEx method retrieves a handle to a display device context for the client area of a specified window or for the entire screen. --- 23,35 ---- </h2><pre><b><a name="0">:class gdiWindowDC <super gdiDC </a></b></pre><p>Window device context class ! </p><pre><b><a name="1">:M Release: ( -- ) </a></b></pre><p>The Release: method releases a device context (DC), freeing it for use by other applications. The effect of the ReleaseDC function depends on the type of DC. It frees only common and window DCs. It has no effect on class or private DCs. ! </p><pre><b><a name="2">:M GetDC: ( hWnd -- f ) </a></b></pre><p>The GetDC method retrieves a handle to a display device context for the client area of a specified window. ! </p><pre><b><a name="3">:M GetDCEx: ( hrgnClip flags hWnd -- f ) </a></b></pre><p>The GetDCEx method retrieves a handle to a display device context for the client area of a specified window or for the entire screen. *************** *** 68,72 **** completely validated. Using this function with both DCX_INTERSECTUPDATE and DCX_VALIDATE is identical to using the BeginPaint function. ! </p><pre><b><a name="0">:M GetWindowDC: ( hWnd -- f ) </a></b></pre><p>The GetWindowDC method retrieves the device context (DC) for the entire window, including title bar, menus, and scroll bars. A window device --- 68,72 ---- completely validated. Using this function with both DCX_INTERSECTUPDATE and DCX_VALIDATE is identical to using the BeginPaint function. ! </p><pre><b><a name="4">:M GetWindowDC: ( hWnd -- f ) </a></b></pre><p>The GetWindowDC method retrieves the device context (DC) for the entire window, including title bar, menus, and scroll bars. A window device *************** *** 74,83 **** the device context is the upper-left corner of the window instead of the client area. ! </p><pre><b><a name="0">:M GetDCOrg: ( -- x y ) </a></b></pre><p>The GetDCOrgEx function retrieves the final translation origin for a specified device context (DC). The final translation origin specifies an offset that the system uses to translate device coordinates into client coordinates (for coordinates in an application's window). ! </p><pre><b><a name="0">;class </a></b></pre><p>End of gdiWindowDC class </p><hr><p>Document $Id$</p> --- 74,83 ---- the device context is the upper-left corner of the window instead of the client area. ! </p><pre><b><a name="5">:M GetDCOrg: ( -- x y ) </a></b></pre><p>The GetDCOrgEx function retrieves the final translation origin for a specified device context (DC). The final translation origin specifies an offset that the system uses to translate device coordinates into client coordinates (for coordinates in an application's window). ! </p><pre><b><a name="6">;class </a></b></pre><p>End of gdiWindowDC class </p><hr><p>Document $Id$</p> Index: TrayWindow.htm =================================================================== RCS file: /cvsroot/win32forth/win32forth/doc/classes/TrayWindow.htm,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** TrayWindow.htm 15 Jan 2006 09:25:50 -0000 1.1 --- TrayWindow.htm 4 Feb 2006 10:40:35 -0000 1.2 *************** *** 23,47 **** </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, --- 23,47 ---- </h2><pre><b><a name="0">:class TrayWindow <super window </a></b></pre><p>TrayWindow class ! </p><pre><b><a name="1">: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="2">:M GetTooltip: ( -- addr len ) </a></b></pre><p>Get the tooltip text for the traybar icon. ! </p><pre><b><a name="3">:M AddIcon: ( -- ) </a></b></pre><p>Add our icon to the traybar ! </p><pre><b><a name="4">:M DeleteIcon: ( -- ) </a></b></pre><p>Remove our icon from the traybar ! </p><pre><b><a name="5">:M IsVisible?: ( -- f ) </a></b></pre><p>Check if the window is visible or not. ! </p><pre><b><a name="6">:M ShowWindow: ( -- ) </a></b></pre><p>Show the window and remove the icon from the traybar. ! </p><pre><b><a name="7">:M HideWindow: ( -- ) </a></b></pre><p>Hide the window and add the icon to the traybar. ! </p><pre><b><a name="8">: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="9">: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="10">: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, *************** *** 49,53 **** </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 --- 49,53 ---- </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="11">;class </a></b></pre><p>End of TrayWindow class </p><h2>Example Index: gdiBrush.htm =================================================================== RCS file: /cvsroot/win32forth/win32forth/doc/classes/gdiBrush.htm,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** gdiBrush.htm 8 Jan 2006 09:28:07 -0000 1.3 --- gdiBrush.htm 4 Feb 2006 10:40:35 -0000 1.4 *************** *** 25,29 **** </a></b></pre><p>Base class for all brush objects. <br /> This is an internal class of the GDI Class library. Don't use it yourself. ! </p><pre><b><a name="0">:M SetOrigin: { xOrg yOrg hdc -- } </a></b></pre><p>Set the brush origin that GDI assigns to the next brush an application selects into the specified device context. <br /> --- 25,29 ---- </a></b></pre><p>Base class for all brush objects. <br /> This is an internal class of the GDI Class library. Don't use it yourself. ! </p><pre><b><a name="1">:M SetOrigin: { xOrg yOrg hdc -- } </a></b></pre><p>Set the brush origin that GDI assigns to the next brush an application selects into the specified device context. <br /> *************** *** 47,92 **** use the UnrealizeObject, SetBrushOrgEx, and SelectObject functions to align the brush before using it. <br /> ! </p><pre><b><a name="0">:M GetOrigin: ( hdc -- xOrg yOrg ) </a></b></pre><p>Get the current brush origin for the specified device context. ! </p><pre><b><a name="0">:M Create: ( lplb -- f ) </a></b></pre><p>The Create function creates a logical brush that has the specified style, color, and pattern. lplb Pointer to a LOGBRUSH structure that contains information about the brush. ! </p><pre><b><a name="0">;class </a></b></pre><p>End of gdiBrush class </p><a name="gdiSolidBrush"></a> <h2>gdiSolidBrush class ! </h2><pre><b><a name="0">:class gdiSolidBrush <super gdiBrush </a></b></pre><p>Solid brush class ! </p><pre><b><a name="0">:M SetRValue: ( r -- ) </a></b></pre><p>Set the red component of the brush color. ! </p><pre><b><a name="0">:M SetGValue: ( g -- ) </a></b></pre><p>Set the green component of the brush color. ! </p><pre><b><a name="0">:M SetBValue: ( b -- ) </a></b></pre><p>Set the blue component of the brush color. ! </p><pre><b><a name="0">:M SetRGB: ( r g b -- ) </a></b></pre><p>Set the red, green and blue component of the brush color. ! </p><pre><b><a name="0">:M SetColor: ( colorref -- ) </a></b></pre><p>Set color of the brush. ! </p><pre><b><a name="0">:M SetSysColor: ( n -- ) </a></b></pre><p>Set the color of the brush to a system color. ! </p><pre><b><a name="0">:M ChooseColor: ( hWnd -- f ) </a></b></pre><p>Open a dialog to choose the color of the brush. ! </p><pre><b><a name="0">:M GetRValue: ( -- r ) </a></b></pre><p>Get the red component of the brush color. ! </p><pre><b><a name="0">:M GetGValue: ( -- g ) </a></b></pre><p>Get the green component of the brush color. ! </p><pre><b><a name="0">:M GetBValue: ( -- b ) </a></b></pre><p>Get the blue component of the brush color. ! </p><pre><b><a name="0">:M GetColor: ( -- colorref ) </a></b></pre><p>Get the color of the brush as a windows COLORREF value. ! </p><pre><b><a name="0">:M Create: ( -- f ) </a></b></pre><p>Create the brush with the current color. ! </p><pre><b><a name="0">;class </a></b></pre><p>End of gdiSolidBrush class </p><a name="gdiHatchBrush"></a> <h2>gdiHatchBrush class ! </h2><pre><b><a name="0">:class gdiHatchBrush <super gdiSolidBrush </a></b></pre><p>Hatch brush class ! </p><pre><b><a name="0">:M SetStyle: ( style -- ) </a></b></pre><p>Set the style of the brush. Possible values are: </p><table border="1"><tr><td>HS_BDIAGONAL --- 47,92 ---- use the UnrealizeObject, SetBrushOrgEx, and SelectObject functions to align the brush before using it. <br /> ! </p><pre><b><a name="2">:M GetOrigin: ( hdc -- xOrg yOrg ) </a></b></pre><p>Get the current brush origin for the specified device context. ! </p><pre><b><a name="3">:M Create: ( lplb -- f ) </a></b></pre><p>The Create function creates a logical brush that has the specified style, color, and pattern. lplb Pointer to a LOGBRUSH structure that contains information about the brush. ! </p><pre><b><a name="4">;class </a></b></pre><p>End of gdiBrush class </p><a name="gdiSolidBrush"></a> <h2>gdiSolidBrush class ! </h2><pre><b><a name="5">:class gdiSolidBrush <super gdiBrush </a></b></pre><p>Solid brush class ! </p><pre><b><a name="6">:M SetRValue: ( r -- ) </a></b></pre><p>Set the red component of the brush color. ! </p><pre><b><a name="7">:M SetGValue: ( g -- ) </a></b></pre><p>Set the green component of the brush color. ! </p><pre><b><a name="8">:M SetBValue: ( b -- ) </a></b></pre><p>Set the blue component of the brush color. ! </p><pre><b><a name="9">:M SetRGB: ( r g b -- ) </a></b></pre><p>Set the red, green and blue component of the brush color. ! </p><pre><b><a name="10">:M SetColor: ( colorref -- ) </a></b></pre><p>Set color of the brush. ! </p><pre><b><a name="11">:M SetSysColor: ( n -- ) </a></b></pre><p>Set the color of the brush to a system color. ! </p><pre><b><a name="12">:M ChooseColor: ( hWnd -- f ) </a></b></pre><p>Open a dialog to choose the color of the brush. ! </p><pre><b><a name="13">:M GetRValue: ( -- r ) </a></b></pre><p>Get the red component of the brush color. ! </p><pre><b><a name="14">:M GetGValue: ( -- g ) </a></b></pre><p>Get the green component of the brush color. ! </p><pre><b><a name="15">:M GetBValue: ( -- b ) </a></b></pre><p>Get the blue component of the brush color. ! </p><pre><b><a name="16">:M GetColor: ( -- colorref ) </a></b></pre><p>Get the color of the brush as a windows COLORREF value. ! </p><pre><b><a name="17">:M Create: ( -- f ) </a></b></pre><p>Create the brush with the current color. ! </p><pre><b><a name="18">;class </a></b></pre><p>End of gdiSolidBrush class </p><a name="gdiHatchBrush"></a> <h2>gdiHatchBrush class ! </h2><pre><b><a name="19">:class gdiHatchBrush <super gdiSolidBrush </a></b></pre><p>Hatch brush class ! </p><pre><b><a name="20">:M SetStyle: ( style -- ) </a></b></pre><p>Set the style of the brush. Possible values are: </p><table border="1"><tr><td>HS_BDIAGONAL *************** *** 120,124 **** </td> </tr> ! </table><pre><b><a name="0">:M GetStyle: ( -- style ) </a></b></pre><p>Get the style of the brush. Possible return values are: </p><table border="1"><tr><td>HS_BDIAGONAL --- 120,124 ---- </td> </tr> ! </table><pre><b><a name="21">:M GetStyle: ( -- style ) </a></b></pre><p>Get the style of the brush. Possible return values are: </p><table border="1"><tr><td>HS_BDIAGONAL *************** *** 152,177 **** </td> </tr> ! </table><pre><b><a name="0">:M Create: ( -- f ) </a></b></pre><p>Create the brush with the current style and color. ! </p><pre><b><a name="0">;class </a></b></pre><p>End of gdiHatchBrush class </p><a name="gdiPatternBrush"></a> <h2>gdiPatternBrush class ! </h2><pre><b><a name="0">:class gdiPatternBrush <super gdiBrush </a></b></pre><p>Pattern brush class. <br /> ! </p><pre><b><a name="0">:M SetBitmap: ( Bitmap -- ) </a></b></pre><p>Set the Bitmap for the PatternBrush. The Bitmap can be a DIB section bitmap, which is created by the CreateDIBSection function. ! </p><pre><b><a name="0">:M GetBitmap: ( -- Bitmap ) </a></b></pre><p>Get the Bitmap for the PatternBrush. ! </p><pre><b><a name="0">:M Create: ( -- f ) </a></b></pre><p>Creates a logical brush with the specified bitmap pattern. ! </p><pre><b><a name="0">;class </a></b></pre><p>End of gdiPatternBrush class </p><a name="gdiDIBPatternBrush"></a> <h2>gdiDIBPatternBrush class ! </h2><pre><b><a name="0">:class gdiDIBPatternBrush <super gdiBrush </a></b></pre><p>DIB Pattern brush class ! </p><pre><b><a name="0">:M Create: ( lpPackedDIB iUsage -- f ) </a></b></pre><p>The Create function creates a logical brush that has the pattern specified by the device-independent bitmap (DIB). <br /> --- 152,177 ---- </td> </tr> ! </table><pre><b><a name="22">:M Create: ( -- f ) </a></b></pre><p>Create the brush with the current style and color. ! </p><pre><b><a name="23">;class </a></b></pre><p>End of gdiHatchBrush class </p><a name="gdiPatternBrush"></a> <h2>gdiPatternBrush class ! </h2><pre><b><a name="24">:class gdiPatternBrush <super gdiBrush </a></b></pre><p>Pattern brush class. <br /> ! </p><pre><b><a name="25">:M SetBitmap: ( Bitmap -- ) </a></b></pre><p>Set the Bitmap for the PatternBrush. The Bitmap can be a DIB section bitmap, which is created by the CreateDIBSection function. ! </p><pre><b><a name="26">:M GetBitmap: ( -- Bitmap ) </a></b></pre><p>Get the Bitmap for the PatternBrush. ! </p><pre><b><a name="27">:M Create: ( -- f ) </a></b></pre><p>Creates a logical brush with the specified bitmap pattern. ! </p><pre><b><a name="28">;class </a></b></pre><p>End of gdiPatternBrush class </p><a name="gdiDIBPatternBrush"></a> <h2>gdiDIBPatternBrush class ! </h2><pre><b><a name="29">:class gdiDIBPatternBrush <super gdiBrush </a></b></pre><p>DIB Pattern brush class ! </p><pre><b><a name="30">:M Create: ( lpPackedDIB iUsage -- f ) </a></b></pre><p>The Create function creates a logical brush that has the pattern specified by the device-independent bitmap (DIB). <br /> *************** *** 197,201 **** </td> </tr> ! </table><pre><b><a name="0">;class </a></b></pre><p>End of gdiDIBPatternBrush class </p><hr><p>Document $Id$</p> --- 197,201 ---- </td> </tr> ! </table><pre><b><a name="31">;class </a></b></pre><p>End of gdiDIBPatternBrush class </p><hr><p>Document $Id$</p> Index: HTMLcontrol.htm =================================================================== RCS file: /cvsroot/win32forth/win32forth/doc/classes/HTMLcontrol.htm,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** HTMLcontrol.htm 14 Jan 2006 12:28:21 -0000 1.2 --- HTMLcontrol.htm 4 Feb 2006 10:40:35 -0000 1.3 *************** *** 22,60 **** </h2><pre><b><a name="0">:CLASS HTMLControl <SUPER AXControl </a></b></pre><p>HTML control class. ! </p><pre><b><a name="0">:M Start: ( Parent -- ) </a></b></pre><p>Start the control ! </p><pre><b><a name="0">:M GetLocationURL: ( -- str len ) </a></b></pre><p>Retrieves the URL of the resource that the browser is currently displaying. ! </p><pre><b><a name="0">:M GetLocationName: ( -- str len ) </a></b></pre><p>Retrieves the name of the resource that the browser is currently displaying. ! </p><pre><b><a name="0">:M GetType: ( -- str len ) </a></b></pre><p>Retrieves the type name of the contained document object. ! </p><pre><b><a name="0">:M Busy?: ( -- flag ) </a></b></pre><p>Retrieves a boolean value that indicates whether the browser is engaged in a downloading operation or other activity. ! </p><pre><b><a name="0">:M Offline?: ( -- flag ) </a></b></pre><p>Retrieves a Boolean value indicating whether the browser is currently operating in offline mode. ! </p><pre><b><a name="0">:M GoURL: ( str len -- ) </a></b></pre><p>Navigates to a resource identified by a Uniform Resource Locator (URL) or to the file identified by a full path. ! </p><pre><b><a name="0">:M SetURL: ( zUrl -- ) </a></b></pre><p>Navigates to a resource identified by a Uniform Resource Locator (URL) or to the file identified by a full path. ! </p><pre><b><a name="0">:M GoHome: ( -- ) </a></b></pre><p>Navigates to the current home or start page. ! </p><pre><b><a name="0">:M GoSearch: ( -- ) </a></b></pre><p>Navigates to the current search page. ! </p><pre><b><a name="0">:M GoForward: ( -- ) </a></b></pre><p>Navigates forward one item in the history list. ! </p><pre><b><a name="0">:M GoBack: ( -- ) </a></b></pre><p>Navigates backward one item in the history list. ! </p><pre><b><a name="0">:M Refresh: ( -- ) </a></b></pre><p>Reloads the file that the browser is currently displaying. ! </p><pre><b><a name="0">:M Stop: ( -- ) </a></b></pre><p>Cancels any pending navigation or download operation and stops any dynamic page elements, such as background sounds and animations. ! </p><pre><b><a name="0">;CLASS </a></b></pre><p>End of HTML control class </p><h2>Example (demos\HtmlControlDemo.f) --- 22,60 ---- </h2><pre><b><a name="0">:CLASS HTMLControl <SUPER AXControl </a></b></pre><p>HTML control class. ! </p><pre><b><a name="1">:M Start: ( Parent -- ) </a></b></pre><p>Start the control ! </p><pre><b><a name="2">:M GetLocationURL: ( -- str len ) </a></b></pre><p>Retrieves the URL of the resource that the browser is currently displaying. ! </p><pre><b><a name="3">:M GetLocationName: ( -- str len ) </a></b></pre><p>Retrieves the name of the resource that the browser is currently displaying. ! </p><pre><b><a name="4">:M GetType: ( -- str len ) </a></b></pre><p>Retrieves the type name of the contained document object. ! </p><pre><b><a name="5">:M Busy?: ( -- flag ) </a></b></pre><p>Retrieves a boolean value that indicates whether the browser is engaged in a downloading operation or other activity. ! </p><pre><b><a name="6">:M Offline?: ( -- flag ) </a></b></pre><p>Retrieves a Boolean value indicating whether the browser is currently operating in offline mode. ! </p><pre><b><a name="7">:M GoURL: ( str len -- ) </a></b></pre><p>Navigates to a resource identified by a Uniform Resource Locator (URL) or to the file identified by a full path. ! </p><pre><b><a name="8">:M SetURL: ( zUrl -- ) </a></b></pre><p>Navigates to a resource identified by a Uniform Resource Locator (URL) or to the file identified by a full path. ! </p><pre><b><a name="9">:M GoHome: ( -- ) </a></b></pre><p>Navigates to the current home or start page. ! </p><pre><b><a name="10">:M GoSearch: ( -- ) </a></b></pre><p>Navigates to the current search page. ! </p><pre><b><a name="11">:M GoForward: ( -- ) </a></b></pre><p>Navigates forward one item in the history list. ! </p><pre><b><a name="12">:M GoBack: ( -- ) </a></b></pre><p>Navigates backward one item in the history list. ! </p><pre><b><a name="13">:M Refresh: ( -- ) </a></b></pre><p>Reloads the file that the browser is currently displaying. ! </p><pre><b><a name="14">:M Stop: ( -- ) </a></b></pre><p>Cancels any pending navigation or download operation and stops any dynamic page elements, such as background sounds and animations. ! </p><pre><b><a name="15">;CLASS </a></b></pre><p>End of HTML control class </p><h2>Example (demos\HtmlControlDemo.f) Index: mdi.htm =================================================================== RCS file: /cvsroot/win32forth/win32forth/doc/classes/mdi.htm,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** mdi.htm 14 Jan 2006 18:17:04 -0000 1.1 --- mdi.htm 4 Feb 2006 10:40:35 -0000 1.2 *************** *** 21,52 **** 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 --- 21,53 ---- in a separate child window within the client area of the application's main window. </p><a name="MDIClientWindow"></a> ! <h2>MDI client control class </h2><pre><b><a name="0">:Class MDIClientWindow <super Control ! </a></b></pre><p>MDI client control class. This control is used by the MDIFrameWindow class. ! You shouldn't create instances of this class within your application. ! </p><pre><b><a name="1">:M Start: ( hWindowMenu Parent -- ) </a></b></pre><p>Start the control. ! </p><pre><b><a name="2">: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="3">;Class </a></b></pre><p>End of MDIClientWindow class </p><a name="MDIFrameWindow"></a> ! <h2>MDI Frame window class ! </h2><pre><b><a name="4">: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="5">: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="6">:M WindowTitle: ( -- z" ) </a></b></pre><p>Get the title text for the frame window. ! </p><pre><b><a name="7">: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="8">: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 *************** *** 63,82 **** </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 --- 64,83 ---- </td> </tr> ! </table><pre><b><a name="9">: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="10">:M Cascade: ( -- ) </a></b></pre><p>Arrange all child windows in a cascade format. ! </p><pre><b><a name="11">:M RefreshMenu: ( -- ) </a></b></pre><p>Refresh the window menu of the MDI frame window. ! </p><pre><b><a name="12">: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="13">: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="14">:M Restore: ( hWnd -- ) </a></b></pre><p>Restore an MDI child window from maximized or minimized size. ! </p><pre><b><a name="15">: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 *************** *** 84,132 **** 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. --- 85,133 ---- 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="16">:M GetActive: ( -- Maximized handle ) </a></b></pre><p>Retrieve the handle to the active MDI child window. ! </p><pre><b><a name="17">:M Activate: ( hWnd -- ) </a></b></pre><p>Activate a MDI child window. ! </p><pre><b><a name="18">:M Next: ( f hWnd -- ) </a></b></pre><p>Activate the next or previous child window. ! </p><pre><b><a name="19">:M Destroy: ( hWnd -- ) </a></b></pre><p>Destroy an MDI child window. ! </p><pre><b><a name="20">:M CloseChild: ( hWnd -- ) </a></b></pre><p>Close an MDI child window. ! </p><pre><b><a name="21">:M EnumChildWindows: ( lparam pCallBack -- f ) </a></b></pre><p>Enumerate the MDI child windows ! </p><pre><b><a name="22">:M CloseAll: ( -- ) </a></b></pre><p>Close all MDI child windows. ! </p><pre><b><a name="23">:M GetFirstChild: ( -- hWndChild ) </a></b></pre><p>Get handle of the first child window ! </p><pre><b><a name="24">: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="25">:M SendMessageToAllChildren: { wParam lParam msg -- } </a></b></pre><p>Send a message to all child windows ! </p><pre><b><a name="26">:M PostMessageToAllChildren: { wParam lParam msg -- } </a></b></pre><p>Post a message to all child windows ! </p><pre><b><a name="27">;Class </a></b></pre><p>End of MDIFrameWindow class </p><a name="MDIChildWindow"></a> ! <h2>MDI Child window class ! </h2><pre><b><a name="28">: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="29">: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="30">:M ParentWindow: ( -- hParent ) </a></b></pre><p>Teturn the handle of parent, 0 = no parent ! </p><pre><b><a name="31">:M Start: ( Parent -- ) </a></b></pre><p>Create a new MDI child window object ! </p><pre><b><a name="32">:M WindowTitle: ( -- z" ) </a></b></pre><p>Get the title text for the MDI child window. ! </p><pre><b><a name="33">: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="34">: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. *************** *** 134,142 **** 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 --- 135,143 ---- need's to be saved. </p><p>The default method returns TRUE, so that the window will be closed. ! </p><pre><b><a name="35">: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="36">: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 *************** *** 146,164 **** 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) --- 147,165 ---- 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="37">: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="38">: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="39">: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="40">: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="41">;Class </a></b></pre><p>End of MDIChildWindow class </p><h2>Example (demos\MdiExample.f) Index: MdiDialog.htm =================================================================== RCS file: /cvsroot/win32forth/win32forth/doc/classes/MdiDialog.htm,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** MdiDialog.htm 13 Jan 2006 12:09:26 -0000 1.1 --- MdiDialog.htm 4 Feb 2006 10:40:35 -0000 1.2 *************** *** 23,29 **** </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$</p> --- 23,29 ---- </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="1">:M ClassInit: ( -- ) </a></b></pre><p>Initialise the class. ! </p><pre><b><a name="2">:M ~: ( -- ) </a></b></pre><p>Destructor method called when a dynamic object is freed by DISPOSE. </p><hr><p>Document $Id$</p> Index: Window.htm =================================================================== RCS file: /cvsroot/win32forth/win32forth/doc/classes/Window.htm,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** Window.htm 26 Jan 2006 17:48:46 -0000 1.7 --- Window.htm 4 Feb 2006 10:40:35 -0000 1.8 *************** *** 20,56 **** </h2><pre><b><a name="0">:CLASS Window <SUPER Generic-Window </a></b></pre><p>Base class for window objects. ! </p><pre><b><a name="0">:M ClassInit: ( -- ) </a></b></pre><p>Initialise the class. </p><h3>Window sizing ! </h3><pre><b><a name="0">:M GetSize: ( -- w h ) </a></b></pre><p>Get the size (width and height) of the window. ! </p><pre><b><a name="0">:M Width: ( -- width ) </a></b></pre><p>Get the width of the window. ! </p><pre><b><a name="0">:M Height: ( -- height ) </a></b></pre><p>Get the height of the window. ! </p><pre><b><a name="0">:M SetSize: ( w h -- ) </a></b></pre><p>Set the size (width and height) of the window. <br /> Note: The window itself will not be resized. ! </p><pre><b><a name="0">:M On_Size: ( -- ) </a></b></pre><p>User windows should override the On_Size: method. When this method is called, the variables Width and Height will have already been set. <br /> Default does nothing ! </p><pre><b><a name="0">:M MinSize: ( -- width height ) </a></b></pre><p>To change the minimum window size, override the MinSize: method. Default is 10 by 10. ! </p><pre><b><a name="0">:M MaxSize: ( -- width height ) </a></b></pre><p>To change the maximum window size, override the MaxSize: method. Default is 8192 by 8192. ! </p><pre><b><a name="0">:M StartSize: ( -- width height ) </a></b></pre><p>To change the size of the window when it's created, override the StartSize: method or call the SetSize: method before you create the window. ! </p><pre><b><a name="0">:M SetOrigin: ( x y -- ) </a></b></pre><p>To set the upper left corner of the window when it's created call the SetOrigin: method before you create the window. ! </p><pre><b><a name="0">:M StartPos: ( -- left top ) </a></b></pre><p>User windows should override the StartPos: method to set the upper left corner of the window when it's created. </p><h3>Window creation ! </h3><pre><b><a name="0">:M On_Init: ( -- ) </a></b></pre><p>Thing's to do during creation of the window. Default does nothing. ! </p><pre><b><a name="0">:M On_Done: ( -- ) </a></b></pre><p>Thing's to do when the window will be destroyed. Default does nothing. </p><pre>Your On_Init: and On_Done: methods should look like this: --- 20,56 ---- </h2><pre><b><a name="0">:CLASS Window <SUPER Generic-Window </a></b></pre><p>Base class for window objects. ! </p><pre><b><a name="1">:M ClassInit: ( -- ) </a></b></pre><p>Initialise the class. </p><h3>Window sizing ! </h3><pre><b><a name="2">:M GetSize: ( -- w h ) </a></b></pre><p>Get the size (width and height) of the window. ! </p><pre><b><a name="3">:M Width: ( -- width ) </a></b></pre><p>Get the width of the window. ! </p><pre><b><a name="4">:M Height: ( -- height ) </a></b></pre><p>Get the height of the window. ! </p><pre><b><a name="5">:M SetSize: ( w h -- ) </a></b></pre><p>Set the size (width and height) of the window. <br /> Note: The window itself will not be resized. ! </p><pre><b><a name="6">:M On_Size: ( -- ) </a></b></pre><p>User windows should override the On_Size: method. When this method is called, the variables Width and Height will have already been set. <br /> Default does nothing ! </p><pre><b><a name="7">:M MinSize: ( -- width height ) </a></b></pre><p>To change the minimum window size, override the MinSize: method. Default is 10 by 10. ! </p><pre><b><a name="8">:M MaxSize: ( -- width height ) </a></b></pre><p>To change the maximum window size, override the MaxSize: method. Default is 8192 by 8192. ! </p><pre><b><a name="9">:M StartSize: ( -- width height ) </a></b></pre><p>To change the size of the window when it's created, override the StartSize: method or call the SetSize: method before you create the window. ! </p><pre><b><a name="10">:M SetOrigin: ( x y -- ) </a></b></pre><p>To set the upper left corner of the window when it's created call the SetOrigin: method before you create the window. ! </p><pre><b><a name="11">:M StartPos: ( -- left top ) </a></b></pre><p>User windows should override the StartPos: method to set the upper left corner of the window when it's created. </p><h3>Window creation ! </h3><pre><b><a name="12">:M On_Init: ( -- ) </a></b></pre><p>Thing's to do during creation of the window. Default does nothing. ! </p><pre><b><a name="13">:M On_Done: ( -- ) </a></b></pre><p>Thing's to do when the window will be destroyed. Default does nothing. </p><pre>Your On_Init: and On_Done: methods should look like this: *************** *** 88,129 **** On_Done: super \ cleanup the super class 0 ;M ! </pre><pre><b><a name="0">:M SetClassName: ( adr len -- ) </a></b></pre><p>User windows should override the SetClassName: method to set the window class name. ! </p><pre><b><a name="0">:M GetClassName: ( -- adr len ) </a></b></pre><p>Get the window class name. ! </p><pre><b><a name="0">:M SetParent: ( hwndParent -- ) </a></b></pre><p>Set owner window (0 if no parent). ! </p><pre><b><a name="0">:M ParentWindow: ( -- hwndparent | 0 if no parent ) </a></b></pre><p>Get owner window. ! </p><pre><b><a name="0">:M DefaultCursor: ( -- cursor-id ) </a></b></pre><p>User windows should override the DefaultCursor: method to set the default cursor for window. Default is IDC_ARROW. ! </p><pre><b><a name="0">:M DefaultIcon: ( -- hIcon ) </a></b></pre><p>User windows should override the WindowStyle: method to set the default icon handle for window. Default is the W32F icon. ! </p><pre><b><a name="0">:M WindowStyle: ( -- style ) </a></b></pre><p>User windows should override the WindowStyle: method to set the window style. Default is WS_OVERLAPPEDWINDOW. ! </p><pre><b><a name="0">:M ExWindowStyle: ( -- extended_style ) </a></b></pre><p>User windows should override the ExWindowStyle: method to set the extended window style. Default is null. ! </p><pre><b><a name="0">:M WindowTitle: ( -- Zstring ) </a></b></pre><p>User windows should override the WindowTitle: method to set the window caption. Default is Window. </p><h3>Painting ! </h3><pre><b><a name="0">WinDC dc </a></b></pre><p>The window's device context. <br /> It will be valid only when handling the WM_PAINT message (see On_Paint: method) ! </p><pre><b><a name="0">Record: &ps </a></b></pre><p>The PAINTSTRUCT for Begin- and EndPaint <br /> It will be valid only when handling the WM_PAINT message (see On_Paint: method) ! </p><pre><b><a name="0">:M On_EraseBackground: ( hwnd msg wparam lparam -- res ) </a></b></pre><p>User windows should override the On_EraseBackground: method to handle WM_ERASEBKGND messages. <br /> Default does nothing. ! </p><pre><b><a name="0">:M On_Paint: ( -- ) </a></b></pre><p>User windows should override the On_Paint: method to handle WM_PAINT messages. <br /> Before this method is called BeginPaint will be called so that the PAINTSTRUCT --- 88,129 ---- On_Done: super \ cleanup the super class 0 ;M ! </pre><pre><b><a name="14">:M SetClassName: ( adr len -- ) </a></b></pre><p>User windows should override the SetClassName: method to set the window class name. ! </p><pre><b><a name="15">:M GetClassName: ( -- adr len ) </a></b></pre><p>Get the window class name. ! </p><pre><b><a name="16">:M SetParent: ( hwndParent -- ) </a></b></pre><p>Set owner window (0 if no parent). ! </p><pre><b><a name="17">:M ParentWindow: ( -- hwndparent | 0 if no parent ) </a></b></pre><p>Get owner window. ! </p><pre><b><a name="18">:M DefaultCursor: ( -- cursor-id ) </a></b></pre><p>User windows should override the DefaultCursor: method to set the default cursor fo... [truncated message content] |