You can subscribe to this list here.
2006 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
(36) |
Sep
(44) |
Oct
(25) |
Nov
(2) |
Dec
(5) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2007 |
Jan
(1) |
Feb
(1) |
Mar
|
Apr
|
May
(9) |
Jun
|
Jul
(4) |
Aug
(8) |
Sep
(16) |
Oct
|
Nov
(2) |
Dec
(28) |
2008 |
Jan
|
Feb
(2) |
Mar
|
Apr
|
May
(11) |
Jun
|
Jul
|
Aug
|
Sep
(2) |
Oct
|
Nov
|
Dec
|
2009 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
(33) |
Jul
(5) |
Aug
(7) |
Sep
(9) |
Oct
(31) |
Nov
(25) |
Dec
(21) |
2011 |
Jan
(2) |
Feb
(12) |
Mar
|
Apr
(7) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: Mapi B. <ma...@us...> - 2009-12-24 16:39:57
|
Update of /cvsroot/easycalc/PPCport/langs/merge In directory sfp-cvsdas-1.v30.ch3.sourceforge.com:/tmp/cvs-serv17676 Modified Files: lang.rcp Log Message: 1.25f, full skin support Index: lang.rcp =================================================================== RCS file: /cvsroot/easycalc/PPCport/langs/merge/lang.rcp,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** lang.rcp 15 Dec 2009 21:38:45 -0000 1.9 --- lang.rcp 24 Dec 2009 16:39:47 -0000 1.10 *************** *** 903,907 **** "$$DYNAMIC MOUSE" = "Dynamic mouse" "$$SKIN" = "Skin" ! "$$DEFAULT SKIN" = "Default Skin" "$$CALCULATIONS" = "Calculations" "$$FORMAT NUMBERS" = "Format numbers" --- 903,907 ---- "$$DYNAMIC MOUSE" = "Dynamic mouse" "$$SKIN" = "Skin" ! "$$CURRENT SKIN" = "Current Skin" "$$CALCULATIONS" = "Calculations" "$$FORMAT NUMBERS" = "Format numbers" *************** *** 1040,1045 **** "$$BAD VALUES" = "Bad values." "$$NO STATE FILE" = "No or wrong version state file. Reinitializing with defaults." ! "$$NO LAYOUT FILE" = "Missing .layout file." ! "$$ERROR LOADING GIF"= "Missing skin .gif file." "$$ERROR SAVING STATE"= "Could not save state to file, state will be lost for next session." --- 1040,1045 ---- "$$BAD VALUES" = "Bad values." "$$NO STATE FILE" = "No or wrong version state file. Reinitializing with defaults." ! "$$NO LAYOUT FILE" = "Missing ^1.layout file." ! "$$ERROR LOADING GIF"= "Missing skin ^1.gif file." "$$ERROR SAVING STATE"= "Could not save state to file, state will be lost for next session." *************** *** 1383,1387 **** "$$DYNAMIC MOUSE" = "Souris dynamique" "$$SKIN" = "Skin" ! "$$DEFAULT SKIN" = "Skin par défaut" "$$CALCULATIONS" = "Calculs" "$$FORMAT NUMBERS" = "Formattage des nombres" --- 1383,1387 ---- "$$DYNAMIC MOUSE" = "Souris dynamique" "$$SKIN" = "Skin" ! "$$CURRENT SKIN" = "Skin courante" "$$CALCULATIONS" = "Calculs" "$$FORMAT NUMBERS" = "Formattage des nombres" *************** *** 1521,1526 **** "$$BAD VALUES" = "Valeurs incorrectes." "$$NO STATE FILE" = "Pas de fichier state, ou mauvaise version. Reinitialisation aux défauts." ! "$$NO LAYOUT FILE" = "Fichier .layout manquant." ! "$$ERROR LOADING GIF"= "Fichier de Skin .gif manquant." "$$ERROR SAVING STATE"= "Impossible de sauver dans le fichier state, l'état sera perdu pour la prochaine session." --- 1521,1526 ---- "$$BAD VALUES" = "Valeurs incorrectes." "$$NO STATE FILE" = "Pas de fichier state, ou mauvaise version. Reinitialisation aux défauts." ! "$$NO LAYOUT FILE" = "Fichier ^1.layout manquant." ! "$$ERROR LOADING GIF"= "Fichier de Skin ^1.gif manquant." "$$ERROR SAVING STATE"= "Impossible de sauver dans le fichier state, l'état sera perdu pour la prochaine session." |
From: Mapi B. <ma...@us...> - 2009-12-24 16:39:42
|
Update of /cvsroot/easycalc/PPCport/langs In directory sfp-cvsdas-1.v30.ch3.sourceforge.com:/tmp/cvs-serv17654 Modified Files: en.rcp fr.rcp Log Message: 1.25f, full skin support Index: en.rcp =================================================================== RCS file: /cvsroot/easycalc/PPCport/langs/en.rcp,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** en.rcp 15 Dec 2009 21:38:26 -0000 1.7 --- en.rcp 24 Dec 2009 16:39:29 -0000 1.8 *************** *** 38,42 **** "$$DYNAMIC MOUSE" = "Dynamic mouse" "$$SKIN" = "Skin" ! "$$DEFAULT SKIN" = "Default Skin" "$$CALCULATIONS" = "Calculations" "$$FORMAT NUMBERS" = "Format numbers" --- 38,42 ---- "$$DYNAMIC MOUSE" = "Dynamic mouse" "$$SKIN" = "Skin" ! "$$CURRENT SKIN" = "Current Skin" "$$CALCULATIONS" = "Calculations" "$$FORMAT NUMBERS" = "Format numbers" *************** *** 175,180 **** "$$BAD VALUES" = "Bad values." "$$NO STATE FILE" = "No or wrong version state file. Reinitializing with defaults." ! "$$NO LAYOUT FILE" = "Missing .layout file." ! "$$ERROR LOADING GIF"= "Missing skin .gif file." "$$ERROR SAVING STATE"= "Could not save state to file, state will be lost for next session." --- 175,180 ---- "$$BAD VALUES" = "Bad values." "$$NO STATE FILE" = "No or wrong version state file. Reinitializing with defaults." ! "$$NO LAYOUT FILE" = "Missing ^1.layout file." ! "$$ERROR LOADING GIF"= "Missing skin ^1.gif file." "$$ERROR SAVING STATE"= "Could not save state to file, state will be lost for next session." Index: fr.rcp =================================================================== RCS file: /cvsroot/easycalc/PPCport/langs/fr.rcp,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** fr.rcp 15 Dec 2009 21:38:26 -0000 1.7 --- fr.rcp 24 Dec 2009 16:39:29 -0000 1.8 *************** *** 46,50 **** "$$DYNAMIC MOUSE" = "Souris dynamique" "$$SKIN" = "Skin" ! "$$DEFAULT SKIN" = "Skin par défaut" "$$CALCULATIONS" = "Calculs" "$$FORMAT NUMBERS" = "Formattage des nombres" --- 46,50 ---- "$$DYNAMIC MOUSE" = "Souris dynamique" "$$SKIN" = "Skin" ! "$$CURRENT SKIN" = "Skin courante" "$$CALCULATIONS" = "Calculs" "$$FORMAT NUMBERS" = "Formattage des nombres" *************** *** 184,189 **** "$$BAD VALUES" = "Valeurs incorrectes." "$$NO STATE FILE" = "Pas de fichier state, ou mauvaise version. Reinitialisation aux défauts." ! "$$NO LAYOUT FILE" = "Fichier .layout manquant." ! "$$ERROR LOADING GIF"= "Fichier de Skin .gif manquant." "$$ERROR SAVING STATE"= "Impossible de sauver dans le fichier state, l'état sera perdu pour la prochaine session." --- 184,189 ---- "$$BAD VALUES" = "Valeurs incorrectes." "$$NO STATE FILE" = "Pas de fichier state, ou mauvaise version. Reinitialisation aux défauts." ! "$$NO LAYOUT FILE" = "Fichier ^1.layout manquant." ! "$$ERROR LOADING GIF"= "Fichier de Skin ^1.gif manquant." "$$ERROR SAVING STATE"= "Impossible de sauver dans le fichier state, l'état sera perdu pour la prochaine session." |
Update of /cvsroot/easycalc/PPCport/docs/images In directory sfp-cvsdas-1.v30.ch3.sourceforge.com:/tmp/cvs-serv17580 Added Files: AskMyfact.png BasicMainScreen.png Carloan.png Complex-1.png Complex-2.png Complex-3.png F-d2dx.png F-romberg.png F-zero.png FftPrefSignal.png FftPrefSpectrum.png FftSetupSignal.png FftSetupSpectrum.png FftSignal.png FftSpectrum.png Function-f-1.png Function-f-2.png GraphComputingResult.png GraphPreferences-1.png GraphPreferences-2.png GraphPreferences-3.png GraphSpeed.png Matrix-1.png Matrix-2.png MPopupMenu.png Preferences.png Qrq-1.png Qrq-2.png Qrqqrr-1.png Qrqqrr-2.png Qrqqrr-3.png Qrr-1.png Qrr-2.png Qrr-3.png Rref-1.png Rref-2.png Rref-3.png RtopExample.png SetupGraphs.png Solver-1.png Solver-2.png Solver-3.png Solver-4.png Solver-5.png Stylus.png TableMode.png Title-1.png Title-2.png Title-3.png Title-4.png TracePolar.png Trig-DMS-1.png Trig-DMS-2.png Trig-DMS-3.png VPopupMenu.png Log Message: 1.25f, full skin support --- NEW FILE: SetupGraphs.png --- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <!-- ViewVC - http://viewvc.org/ by Greg Stein - mailto:gs...@ly... --> <head> <title>SourceForge.net Repository - [easycalc] View of /easycalc/manual/images/SetupGraphs.png</title> <meta name="generator" content="ViewVC 1.0.3" /> <link rel="stylesheet" href="/*docroot*/styles.css" type="text/css" /> </head> <body> <table style="padding:0.1em;"> <tr> <td> <strong> <a href="/easycalc/"> [easycalc]</a> / <a href="/easycalc/easycalc/"> easycalc</a> / <a href="/easycalc/easycalc/manual/"> manual</a> / <a href="/easycalc/easycalc/manual/images/"> images</a> / <a href="/easycalc/easycalc/manual/images/SetupGraphs.png?view=log"> SetupGraphs.png</a> </strong> </td> </tr> </table> <div style="float: right; padding: 5px;"><a href="http://sourceforge.net"><img src="/*docroot*/images/sflogo-210pxtrans.png" alt="(logo)" border=0 width=210 height=62></a></div> <h1>View of /easycalc/manual/images/SetupGraphs.png</h1> <p style="margin:0;"> <a href="/easycalc/easycalc/manual/images/"><img src="/*docroot*/images/back_small.png" width="16" height="16" alt="Parent Directory" /> Parent Directory</a> | <a href="/easycalc/easycalc/manual/images/SetupGraphs.png?view=log#rev1.1"><img src="/*docroot*/images/log.png" width="16" height="16" alt="Revision Log" /> Revision Log</a> </p> <hr /> <div class="vc_summary"> Revision <strong>1.1</strong> - (<a href="/*checkout*/easycalc/easycalc/manual/images/SetupGraphs.png?revision=1.1"><strong>download</strong></a>) (<a href="/*checkout*/easycalc/easycalc/manual/images/SetupGraphs.png?revision=1.1&content-type=text%2Fplain"><strong>as text</strong></a>) (<a href="/easycalc/easycalc/manual/images/SetupGraphs.png?annotate=1.1"><strong>annotate</strong></a>) <br /><em>Sun Sep 2 00:59:50 2007 UTC</em> (4 months ago) by <em>tvoverbe</em> <br />Branch: <strong>MAIN</strong> <br />CVS Tags: <strong>stable_1_25, HEAD</strong> <pre class="vc_log">Added new manual derived from <halliday at users.sourceforge.net> contribution and Ondrap's original tutuorial. Also a Plucker version. </pre> </div> <div id="vc_markup"><pre><img src="/*checkout*/easycalc/easycalc/manual/images/SetupGraphs.png?revision=1.1" alt="" /><br /></pre></div> <hr /> <table> <tr> <td> <address><a href="http://sourceforge.net/">Back to SourceForge.net</a></address><br /> Powered by <a href="http://viewvc.tigris.org/">ViewVC 1.0.3</a> </td> <td style="text-align:right;"> <h3><a href="/*docroot*/help_rootview.html">ViewVC and Help</a></h3> </td> </tr> </table> </body> </html> --- NEW FILE: Qrr-1.png --- (This appears to be a binary file; contents omitted.) --- NEW FILE: Qrr-3.png --- (This appears to be a binary file; contents omitted.) --- NEW FILE: GraphComputingResult.png --- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <!-- ViewVC - http://viewvc.org/ by Greg Stein - mailto:gs...@ly... --> <head> <title>SourceForge.net Repository - [easycalc] View of /easycalc/manual/images/GraphComputingResult.png</title> <meta name="generator" content="ViewVC 1.0.3" /> <link rel="stylesheet" href="/*docroot*/styles.css" type="text/css" /> </head> <body> <table style="padding:0.1em;"> <tr> <td> <strong> <a href="/easycalc/"> [easycalc]</a> / <a href="/easycalc/easycalc/"> easycalc</a> / <a href="/easycalc/easycalc/manual/"> manual</a> / <a href="/easycalc/easycalc/manual/images/"> images</a> / <a href="/easycalc/easycalc/manual/images/GraphComputingResult.png?view=log"> GraphComputingResult.png</a> </strong> </td> </tr> </table> <div style="float: right; padding: 5px;"><a href="http://sourceforge.net"><img src="/*docroot*/images/sflogo-210pxtrans.png" alt="(logo)" border=0 width=210 height=62></a></div> <h1>View of /easycalc/manual/images/GraphComputingResult.png</h1> <p style="margin:0;"> <a href="/easycalc/easycalc/manual/images/"><img src="/*docroot*/images/back_small.png" width="16" height="16" alt="Parent Directory" /> Parent Directory</a> | <a href="/easycalc/easycalc/manual/images/GraphComputingResult.png?view=log#rev1.1"><img src="/*docroot*/images/log.png" width="16" height="16" alt="Revision Log" /> Revision Log</a> </p> <hr /> <div class="vc_summary"> Revision <strong>1.1</strong> - (<a href="/*checkout*/easycalc/easycalc/manual/images/GraphComputingResult.png?revision=1.1"><strong>download</strong></a>) (<a href="/*checkout*/easycalc/easycalc/manual/images/GraphComputingResult.png?revision=1.1&content-type=text%2Fplain"><strong>as text</strong></a>) (<a href="/easycalc/easycalc/manual/images/GraphComputingResult.png?annotate=1.1"><strong>annotate</strong></a>) <br /><em>Sun Sep 2 00:59:49 2007 UTC</em> (4 months ago) by <em>tvoverbe</em> <br />Branch: <strong>MAIN</strong> <br />CVS Tags: <strong>stable_1_25, HEAD</strong> <pre class="vc_log">Added new manual derived from <halliday at users.sourceforge.net> contribution and Ondrap's original tutuorial. Also a Plucker version. </pre> </div> <div id="vc_markup"><pre><img src="/*checkout*/easycalc/easycalc/manual/images/GraphComputingResult.png?revision=1.1" alt="" /><br /></pre></div> <hr /> <table> <tr> <td> <address><a href="http://sourceforge.net/">Back to SourceForge.net</a></address><br /> Powered by <a href="http://viewvc.tigris.org/">ViewVC 1.0.3</a> </td> <td style="text-align:right;"> <h3><a href="/*docroot*/help_rootview.html">ViewVC and Help</a></h3> </td> </tr> </table> </body> </html> --- NEW FILE: Complex-2.png --- (This appears to be a binary file; contents omitted.) --- NEW FILE: FftSetupSpectrum.png --- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <!-- ViewVC - http://viewvc.org/ by Greg Stein - mailto:gs...@ly... --> <head> <title>SourceForge.net Repository - [easycalc] View of /easycalc/manual/images/FftSetupSpectrum.png</title> <meta name="generator" content="ViewVC 1.0.3" /> <link rel="stylesheet" href="/*docroot*/styles.css" type="text/css" /> </head> <body> <table style="padding:0.1em;"> <tr> <td> <strong> <a href="/easycalc/"> [easycalc]</a> / <a href="/easycalc/easycalc/"> easycalc</a> / <a href="/easycalc/easycalc/manual/"> manual</a> / <a href="/easycalc/easycalc/manual/images/"> images</a> / <a href="/easycalc/easycalc/manual/images/FftSetupSpectrum.png?view=log"> FftSetupSpectrum.png</a> </strong> </td> </tr> </table> <div style="float: right; padding: 5px;"><a href="http://sourceforge.net"><img src="/*docroot*/images/sflogo-210pxtrans.png" alt="(logo)" border=0 width=210 height=62></a></div> <h1>View of /easycalc/manual/images/FftSetupSpectrum.png</h1> <p style="margin:0;"> <a href="/easycalc/easycalc/manual/images/"><img src="/*docroot*/images/back_small.png" width="16" height="16" alt="Parent Directory" /> Parent Directory</a> | <a href="/easycalc/easycalc/manual/images/FftSetupSpectrum.png?view=log#rev1.1"><img src="/*docroot*/images/log.png" width="16" height="16" alt="Revision Log" /> Revision Log</a> </p> <hr /> <div class="vc_summary"> Revision <strong>1.1</strong> - (<a href="/*checkout*/easycalc/easycalc/manual/images/FftSetupSpectrum.png?revision=1.1"><strong>download</strong></a>) (<a href="/*checkout*/easycalc/easycalc/manual/images/FftSetupSpectrum.png?revision=1.1&content-type=text%2Fplain"><strong>as text</strong></a>) (<a href="/easycalc/easycalc/manual/images/FftSetupSpectrum.png?annotate=1.1"><strong>annotate</strong></a>) <br /><em>Sun Sep 2 00:59:48 2007 UTC</em> (4 months ago) by <em>tvoverbe</em> <br />Branch: <strong>MAIN</strong> <br />CVS Tags: <strong>stable_1_25, HEAD</strong> <pre class="vc_log">Added new manual derived from <halliday at users.sourceforge.net> contribution and Ondrap's original tutuorial. Also a Plucker version. </pre> </div> <div id="vc_markup"><pre><img src="/*checkout*/easycalc/easycalc/manual/images/FftSetupSpectrum.png?revision=1.1" alt="" /><br /></pre></div> <hr /> <table> <tr> <td> <address><a href="http://sourceforge.net/">Back to SourceForge.net</a></address><br /> Powered by <a href="http://viewvc.tigris.org/">ViewVC 1.0.3</a> </td> <td style="text-align:right;"> <h3><a href="/*docroot*/help_rootview.html">ViewVC and Help</a></h3> </td> </tr> </table> </body> </html> --- NEW FILE: VPopupMenu.png --- (This appears to be a binary file; contents omitted.) --- NEW FILE: F-d2dx.png --- (This appears to be a binary file; contents omitted.) --- NEW FILE: GraphPreferences-3.png --- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <!-- ViewVC - http://viewvc.org/ by Greg Stein - mailto:gs...@ly... --> <head> <title>SourceForge.net Repository - [easycalc] View of /easycalc/manual/images/GraphPreferences-3.png</title> <meta name="generator" content="ViewVC 1.0.3" /> <link rel="stylesheet" href="/*docroot*/styles.css" type="text/css" /> </head> <body> <table style="padding:0.1em;"> <tr> <td> <strong> <a href="/easycalc/"> [easycalc]</a> / <a href="/easycalc/easycalc/"> easycalc</a> / <a href="/easycalc/easycalc/manual/"> manual</a> / <a href="/easycalc/easycalc/manual/images/"> images</a> / <a href="/easycalc/easycalc/manual/images/GraphPreferences-3.png?view=log"> GraphPreferences-3.png</a> </strong> </td> </tr> </table> <div style="float: right; padding: 5px;"><a href="http://sourceforge.net"><img src="/*docroot*/images/sflogo-210pxtrans.png" alt="(logo)" border=0 width=210 height=62></a></div> <h1>View of /easycalc/manual/images/GraphPreferences-3.png</h1> <p style="margin:0;"> <a href="/easycalc/easycalc/manual/images/"><img src="/*docroot*/images/back_small.png" width="16" height="16" alt="Parent Directory" /> Parent Directory</a> | <a href="/easycalc/easycalc/manual/images/GraphPreferences-3.png?view=log#rev1.1"><img src="/*docroot*/images/log.png" width="16" height="16" alt="Revision Log" /> Revision Log</a> </p> <hr /> <div class="vc_summary"> Revision <strong>1.1</strong> - (<a href="/*checkout*/easycalc/easycalc/manual/images/GraphPreferences-3.png?revision=1.1"><strong>download</strong></a>) (<a href="/*checkout*/easycalc/easycalc/manual/images/GraphPreferences-3.png?revision=1.1&content-type=text%2Fplain"><strong>as text</strong></a>) (<a href="/easycalc/easycalc/manual/images/GraphPreferences-3.png?annotate=1.1"><strong>annotate</strong></a>) <br /><em>Sun Sep 2 00:59:49 2007 UTC</em> (4 months ago) by <em>tvoverbe</em> <br />Branch: <strong>MAIN</strong> <br />CVS Tags: <strong>stable_1_25, HEAD</strong> <pre class="vc_log">Added new manual derived from <halliday at users.sourceforge.net> contribution and Ondrap's original tutuorial. Also a Plucker version. </pre> </div> <div id="vc_markup"><pre><img src="/*checkout*/easycalc/easycalc/manual/images/GraphPreferences-3.png?revision=1.1" alt="" /><br /></pre></div> <hr /> <table> <tr> <td> <address><a href="http://sourceforge.net/">Back to SourceForge.net</a></address><br /> Powered by <a href="http://viewvc.tigris.org/">ViewVC 1.0.3</a> </td> <td style="text-align:right;"> <h3><a href="/*docroot*/help_rootview.html">ViewVC and Help</a></h3> </td> </tr> </table> </body> </html> --- NEW FILE: Qrqqrr-3.png --- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <!-- ViewVC - http://viewvc.org/ by Greg Stein - mailto:gs...@ly... --> <head> <title>SourceForge.net Repository - [easycalc] View of /easycalc/manual/images/Qrqqrr-3.png</title> <meta name="generator" content="ViewVC 1.0.3" /> <link rel="stylesheet" href="/*docroot*/styles.css" type="text/css" /> </head> <body> <table style="padding:0.1em;"> <tr> <td> <strong> <a href="/easycalc/"> [easycalc]</a> / <a href="/easycalc/easycalc/"> easycalc</a> / <a href="/easycalc/easycalc/manual/"> manual</a> / <a href="/easycalc/easycalc/manual/images/"> images</a> / <a href="/easycalc/easycalc/manual/images/Qrqqrr-3.png?view=log"> Qrqqrr-3.png</a> </strong> </td> </tr> </table> <div style="float: right; padding: 5px;"><a href="http://sourceforge.net"><img src="/*docroot*/images/sflogo-210pxtrans.png" alt="(logo)" border=0 width=210 height=62></a></div> <h1>View of /easycalc/manual/images/Qrqqrr-3.png</h1> <p style="margin:0;"> <a href="/easycalc/easycalc/manual/images/"><img src="/*docroot*/images/back_small.png" width="16" height="16" alt="Parent Directory" /> Parent Directory</a> | <a href="/easycalc/easycalc/manual/images/Qrqqrr-3.png?view=log#rev1.1"><img src="/*docroot*/images/log.png" width="16" height="16" alt="Revision Log" /> Revision Log</a> </p> <hr /> <div class="vc_summary"> Revision <strong>1.1</strong> - (<a href="/*checkout*/easycalc/easycalc/manual/images/Qrqqrr-3.png?revision=1.1"><strong>download</strong></a>) (<a href="/*checkout*/easycalc/easycalc/manual/images/Qrqqrr-3.png?revision=1.1&content-type=text%2Fplain"><strong>as text</strong></a>) (<a href="/easycalc/easycalc/manual/images/Qrqqrr-3.png?annotate=1.1"><strong>annotate</strong></a>) <br /><em>Sun Sep 2 00:59:50 2007 UTC</em> (4 months ago) by <em>tvoverbe</em> <br />Branch: <strong>MAIN</strong> <br />CVS Tags: <strong>stable_1_25, HEAD</strong> <pre class="vc_log">Added new manual derived from <halliday at users.sourceforge.net> contribution and Ondrap's original tutuorial. Also a Plucker version. </pre> </div> <div id="vc_markup"><pre><img src="/*checkout*/easycalc/easycalc/manual/images/Qrqqrr-3.png?revision=1.1" alt="" /><br /></pre></div> <hr /> <table> <tr> <td> <address><a href="http://sourceforge.net/">Back to SourceForge.net</a></address><br /> Powered by <a href="http://viewvc.tigris.org/">ViewVC 1.0.3</a> </td> <td style="text-align:right;"> <h3><a href="/*docroot*/help_rootview.html">ViewVC and Help</a></h3> </td> </tr> </table> </body> </html> --- NEW FILE: TableMode.png --- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <!-- ViewVC - http://viewvc.org/ by Greg Stein - mailto:gs...@ly... --> <head> <title>SourceForge.net Repository - [easycalc] View of /easycalc/manual/images/TableMode.png</title> <meta name="generator" content="ViewVC 1.0.3" /> <link rel="stylesheet" href="/*docroot*/styles.css" type="text/css" /> </head> <body> <table style="padding:0.1em;"> <tr> <td> <strong> <a href="/easycalc/"> [easycalc]</a> / <a href="/easycalc/easycalc/"> easycalc</a> / <a href="/easycalc/easycalc/manual/"> manual</a> / <a href="/easycalc/easycalc/manual/images/"> images</a> / <a href="/easycalc/easycalc/manual/images/TableMode.png?view=log"> TableMode.png</a> </strong> </td> </tr> </table> <div style="float: right; padding: 5px;"><a href="http://sourceforge.net"><img src="/*docroot*/images/sflogo-210pxtrans.png" alt="(logo)" border=0 width=210 height=62></a></div> <h1>View of /easycalc/manual/images/TableMode.png</h1> <p style="margin:0;"> <a href="/easycalc/easycalc/manual/images/"><img src="/*docroot*/images/back_small.png" width="16" height="16" alt="Parent Directory" /> Parent Directory</a> | <a href="/easycalc/easycalc/manual/images/TableMode.png?view=log#rev1.1"><img src="/*docroot*/images/log.png" width="16" height="16" alt="Revision Log" /> Revision Log</a> </p> <hr /> <div class="vc_summary"> Revision <strong>1.1</strong> - (<a href="/*checkout*/easycalc/easycalc/manual/images/TableMode.png?revision=1.1"><strong>download</strong></a>) (<a href="/*checkout*/easycalc/easycalc/manual/images/TableMode.png?revision=1.1&content-type=text%2Fplain"><strong>as text</strong></a>) (<a href="/easycalc/easycalc/manual/images/TableMode.png?annotate=1.1"><strong>annotate</strong></a>) <br /><em>Sun Sep 2 00:59:51 2007 UTC</em> (4 months ago) by <em>tvoverbe</em> <br />Branch: <strong>MAIN</strong> <br />CVS Tags: <strong>stable_1_25, HEAD</strong> <pre class="vc_log">Added new manual derived from <halliday at users.sourceforge.net> contribution and Ondrap's original tutuorial. Also a Plucker version. </pre> </div> <div id="vc_markup"><pre><img src="/*checkout*/easycalc/easycalc/manual/images/TableMode.png?revision=1.1" alt="" /><br /></pre></div> <hr /> <table> <tr> <td> <address><a href="http://sourceforge.net/">Back to SourceForge.net</a></address><br /> Powered by <a href="http://viewvc.tigris.org/">ViewVC 1.0.3</a> </td> <td style="text-align:right;"> <h3><a href="/*docroot*/help_rootview.html">ViewVC and Help</a></h3> </td> </tr> </table> </body> </html> --- NEW FILE: Trig-DMS-2.png --- (This appears to be a binary file; contents omitted.) --- NEW FILE: Stylus.png --- (This appears to be a binary file; contents omitted.) --- NEW FILE: Title-3.png --- (This appears to be a binary file; contents omitted.) --- NEW FILE: Title-2.png --- (This appears to be a binary file; contents omitted.) --- NEW FILE: MPopupMenu.png --- (This appears to be a binary file; contents omitted.) --- NEW FILE: GraphPreferences-2.png --- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <!-- ViewVC - http://viewvc.org/ by Greg Stein - mailto:gs...@ly... --> <head> <title>SourceForge.net Repository - [easycalc] View of /easycalc/manual/images/GraphPreferences-2.png</title> <meta name="generator" content="ViewVC 1.0.3" /> <link rel="stylesheet" href="/*docroot*/styles.css" type="text/css" /> </head> <body> <table style="padding:0.1em;"> <tr> <td> <strong> <a href="/easycalc/"> [easycalc]</a> / <a href="/easycalc/easycalc/"> easycalc</a> / <a href="/easycalc/easycalc/manual/"> manual</a> / <a href="/easycalc/easycalc/manual/images/"> images</a> / <a href="/easycalc/easycalc/manual/images/GraphPreferences-2.png?view=log"> GraphPreferences-2.png</a> </strong> </td> </tr> </table> <div style="float: right; padding: 5px;"><a href="http://sourceforge.net"><img src="/*docroot*/images/sflogo-210pxtrans.png" alt="(logo)" border=0 width=210 height=62></a></div> <h1>View of /easycalc/manual/images/GraphPreferences-2.png</h1> <p style="margin:0;"> <a href="/easycalc/easycalc/manual/images/"><img src="/*docroot*/images/back_small.png" width="16" height="16" alt="Parent Directory" /> Parent Directory</a> | <a href="/easycalc/easycalc/manual/images/GraphPreferences-2.png?view=log#rev1.1"><img src="/*docroot*/images/log.png" width="16" height="16" alt="Revision Log" /> Revision Log</a> </p> <hr /> <div class="vc_summary"> Revision <strong>1.1</strong> - (<a href="/*checkout*/easycalc/easycalc/manual/images/GraphPreferences-2.png?revision=1.1"><strong>download</strong></a>) (<a href="/*checkout*/easycalc/easycalc/manual/images/GraphPreferences-2.png?revision=1.1&content-type=text%2Fplain"><strong>as text</strong></a>) (<a href="/easycalc/easycalc/manual/images/GraphPreferences-2.png?annotate=1.1"><strong>annotate</strong></a>) <br /><em>Sun Sep 2 00:59:49 2007 UTC</em> (4 months ago) by <em>tvoverbe</em> <br />Branch: <strong>MAIN</strong> <br />CVS Tags: <strong>stable_1_25, HEAD</strong> <pre class="vc_log">Added new manual derived from <halliday at users.sourceforge.net> contribution and Ondrap's original tutuorial. Also a Plucker version. </pre> </div> <div id="vc_markup"><pre><img src="/*checkout*/easycalc/easycalc/manual/images/GraphPreferences-2.png?revision=1.1" alt="" /><br /></pre></div> <hr /> <table> <tr> <td> <address><a href="http://sourceforge.net/">Back to SourceForge.net</a></address><br /> Powered by <a href="http://viewvc.tigris.org/">ViewVC 1.0.3</a> </td> <td style="text-align:right;"> <h3><a href="/*docroot*/help_rootview.html">ViewVC and Help</a></h3> </td> </tr> </table> </body> </html> --- NEW FILE: Qrr-2.png --- (This appears to be a binary file; contents omitted.) --- NEW FILE: GraphPreferences-1.png --- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <!-- ViewVC - http://viewvc.org/ by Greg Stein - mailto:gs...@ly... --> <head> <title>SourceForge.net Repository - [easycalc] View of /easycalc/manual/images/GraphPreferences-1.png</title> <meta name="generator" content="ViewVC 1.0.3" /> <link rel="stylesheet" href="/*docroot*/styles.css" type="text/css" /> </head> <body> <table style="padding:0.1em;"> <tr> <td> <strong> <a href="/easycalc/"> [easycalc]</a> / <a href="/easycalc/easycalc/"> easycalc</a> / <a href="/easycalc/easycalc/manual/"> manual</a> / <a href="/easycalc/easycalc/manual/images/"> images</a> / <a href="/easycalc/easycalc/manual/images/GraphPreferences-1.png?view=log"> GraphPreferences-1.png</a> </strong> </td> </tr> </table> <div style="float: right; padding: 5px;"><a href="http://sourceforge.net"><img src="/*docroot*/images/sflogo-210pxtrans.png" alt="(logo)" border=0 width=210 height=62></a></div> <h1>View of /easycalc/manual/images/GraphPreferences-1.png</h1> <p style="margin:0;"> <a href="/easycalc/easycalc/manual/images/"><img src="/*docroot*/images/back_small.png" width="16" height="16" alt="Parent Directory" /> Parent Directory</a> | <a href="/easycalc/easycalc/manual/images/GraphPreferences-1.png?view=log#rev1.1"><img src="/*docroot*/images/log.png" width="16" height="16" alt="Revision Log" /> Revision Log</a> </p> <hr /> <div class="vc_summary"> Revision <strong>1.1</strong> - (<a href="/*checkout*/easycalc/easycalc/manual/images/GraphPreferences-1.png?revision=1.1"><strong>download</strong></a>) (<a href="/*checkout*/easycalc/easycalc/manual/images/GraphPreferences-1.png?revision=1.1&content-type=text%2Fplain"><strong>as text</strong></a>) (<a href="/easycalc/easycalc/manual/images/GraphPreferences-1.png?annotate=1.1"><strong>annotate</strong></a>) <br /><em>Sun Sep 2 00:59:49 2007 UTC</em> (4 months ago) by <em>tvoverbe</em> <br />Branch: <strong>MAIN</strong> <br />CVS Tags: <strong>stable_1_25, HEAD</strong> <pre class="vc_log">Added new manual derived from <halliday at users.sourceforge.net> contribution and Ondrap's original tutuorial. Also a Plucker version. </pre> </div> <div id="vc_markup"><pre><img src="/*checkout*/easycalc/easycalc/manual/images/GraphPreferences-1.png?revision=1.1" alt="" /><br /></pre></div> <hr /> <table> <tr> <td> <address><a href="http://sourceforge.net/">Back to SourceForge.net</a></address><br /> Powered by <a href="http://viewvc.tigris.org/">ViewVC 1.0.3</a> </td> <td style="text-align:right;"> <h3><a href="/*docroot*/help_rootview.html">ViewVC and Help</a></h3> </td> </tr> </table> </body> </html> --- NEW FILE: Complex-3.png --- (This appears to be a binary file; contents omitted.) --- NEW FILE: FftSignal.png --- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <!-- ViewVC - http://viewvc.org/ by Greg Stein - mailto:gs...@ly... --> <head> <title>SourceForge.net Repository - [easycalc] View of /easycalc/manual/images/FftSignal.png</title> <meta name="generator" content="ViewVC 1.0.3" /> <link rel="stylesheet" href="/*docroot*/styles.css" type="text/css" /> </head> <body> <table style="padding:0.1em;"> <tr> <td> <strong> <a href="/easycalc/"> [easycalc]</a> / <a href="/easycalc/easycalc/"> easycalc</a> / <a href="/easycalc/easycalc/manual/"> manual</a> / <a href="/easycalc/easycalc/manual/images/"> images</a> / <a href="/easycalc/easycalc/manual/images/FftSignal.png?view=log"> FftSignal.png</a> </strong> </td> </tr> </table> <div style="float: right; padding: 5px;"><a href="http://sourceforge.net"><img src="/*docroot*/images/sflogo-210pxtrans.png" alt="(logo)" border=0 width=210 height=62></a></div> <h1>View of /easycalc/manual/images/FftSignal.png</h1> <p style="margin:0;"> <a href="/easycalc/easycalc/manual/images/"><img src="/*docroot*/images/back_small.png" width="16" height="16" alt="Parent Directory" /> Parent Directory</a> | <a href="/easycalc/easycalc/manual/images/FftSignal.png?view=log#rev1.1"><img src="/*docroot*/images/log.png" width="16" height="16" alt="Revision Log" /> Revision Log</a> </p> <hr /> <div class="vc_summary"> Revision <strong>1.1</strong> - (<a href="/*checkout*/easycalc/easycalc/manual/images/FftSignal.png?revision=1.1"><strong>download</strong></a>) (<a href="/*checkout*/easycalc/easycalc/manual/images/FftSignal.png?revision=1.1&content-type=text%2Fplain"><strong>as text</strong></a>) (<a href="/easycalc/easycalc/manual/images/FftSignal.png?annotate=1.1"><strong>annotate</strong></a>) <br /><em>Sun Sep 2 00:59:48 2007 UTC</em> (4 months ago) by <em>tvoverbe</em> <br />Branch: <strong>MAIN</strong> <br />CVS Tags: <strong>stable_1_25, HEAD</strong> <pre class="vc_log">Added new manual derived from <halliday at users.sourceforge.net> contribution and Ondrap's original tutuorial. Also a Plucker version. </pre> </div> <div id="vc_markup"><pre><img src="/*checkout*/easycalc/easycalc/manual/images/FftSignal.png?revision=1.1" alt="" /><br /></pre></div> <hr /> <table> <tr> <td> <address><a href="http://sourceforge.net/">Back to SourceForge.net</a></address><br /> Powered by <a href="http://viewvc.tigris.org/">ViewVC 1.0.3</a> </td> <td style="text-align:right;"> <h3><a href="/*docroot*/help_rootview.html">ViewVC and Help</a></h3> </td> </tr> </table> </body> </html> --- NEW FILE: Solver-2.png --- (This appears to be a binary file; contents omitted.) --- NEW FILE: Title-1.png --- (This appears to be a binary file; contents omitted.) --- NEW FILE: FftSpectrum.png --- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <!-- ViewVC - http://viewvc.org/ by Greg Stein - mailto:gs...@ly... --> <head> <title>SourceForge.net Repository - [easycalc] View of /easycalc/manual/images/FftSpectrum.png</title> <meta name="generator" content="ViewVC 1.0.3" /> <link rel="stylesheet" href="/*docroot*/styles.css" type="text/css" /> </head> <body> <table style="padding:0.1em;"> <tr> <td> <strong> <a href="/easycalc/"> [easycalc]</a> / <a href="/easycalc/easycalc/"> easycalc</a> / <a href="/easycalc/easycalc/manual/"> manual</a> / <a href="/easycalc/easycalc/manual/images/"> images</a> / <a href="/easycalc/easycalc/manual/images/FftSpectrum.png?view=log"> FftSpectrum.png</a> </strong> </td> </tr> </table> <div style="float: right; padding: 5px;"><a href="http://sourceforge.net"><img src="/*docroot*/images/sflogo-210pxtrans.png" alt="(logo)" border=0 width=210 height=62></a></div> <h1>View of /easycalc/manual/images/FftSpectrum.png</h1> <p style="margin:0;"> <a href="/easycalc/easycalc/manual/images/"><img src="/*docroot*/images/back_small.png" width="16" height="16" alt="Parent Directory" /> Parent Directory</a> | <a href="/easycalc/easycalc/manual/images/FftSpectrum.png?view=log#rev1.1"><img src="/*docroot*/images/log.png" width="16" height="16" alt="Revision Log" /> Revision Log</a> </p> <hr /> <div class="vc_summary"> Revision <strong>1.1</strong> - (<a href="/*checkout*/easycalc/easycalc/manual/images/FftSpectrum.png?revision=1.1"><strong>download</strong></a>) (<a href="/*checkout*/easycalc/easycalc/manual/images/FftSpectrum.png?revision=1.1&content-type=text%2Fplain"><strong>as text</strong></a>) (<a href="/easycalc/easycalc/manual/images/FftSpectrum.png?annotate=1.1"><strong>annotate</strong></a>) <br /><em>Sun Sep 2 00:59:48 2007 UTC</em> (4 months ago) by <em>tvoverbe</em> <br />Branch: <strong>MAIN</strong> <br />CVS Tags: <strong>stable_1_25, HEAD</strong> <pre class="vc_log">Added new manual derived from <halliday at users.sourceforge.net> contribution and Ondrap's original tutuorial. Also a Plucker version. </pre> </div> <div id="vc_markup"><pre><img src="/*checkout*/easycalc/easycalc/manual/images/FftSpectrum.png?revision=1.1" alt="" /><br /></pre></div> <hr /> <table> <tr> <td> <address><a href="http://sourceforge.net/">Back to SourceForge.net</a></address><br /> Powered by <a href="http://viewvc.tigris.org/">ViewVC 1.0.3</a> </td> <td style="text-align:right;"> <h3><a href="/*docroot*/help_rootview.html">ViewVC and Help</a></h3> </td> </tr> </table> </body> </html> --- NEW FILE: FftSetupSignal.png --- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <!-- ViewVC - http://viewvc.org/ by Greg Stein - mailto:gs...@ly... --> <head> <title>SourceForge.net Repository - [easycalc] View of /easycalc/manual/images/FftSetupSignal.png</title> <meta name="generator" content="ViewVC 1.0.3" /> <link rel="stylesheet" href="/*docroot*/styles.css" type="text/css" /> </head> <body> <table style="padding:0.1em;"> <tr> <td> <strong> <a href="/easycalc/"> [easycalc]</a> / <a href="/easycalc/easycalc/"> easycalc</a> / <a href="/easycalc/easycalc/manual/"> manual</a> / <a href="/easycalc/easycalc/manual/images/"> images</a> / <a href="/easycalc/easycalc/manual/images/FftSetupSignal.png?view=log"> FftSetupSignal.png</a> </strong> </td> </tr> </table> <div style="float: right; padding: 5px;"><a href="http://sourceforge.net"><img src="/*docroot*/images/sflogo-210pxtrans.png" alt="(logo)" border=0 width=210 height=62></a></div> <h1>View of /easycalc/manual/images/FftSetupSignal.png</h1> <p style="margin:0;"> <a href="/easycalc/easycalc/manual/images/"><img src="/*docroot*/images/back_small.png" width="16" height="16" alt="Parent Directory" /> Parent Directory</a> | <a href="/easycalc/easycalc/manual/images/FftSetupSignal.png?view=log#rev1.1"><img src="/*docroot*/images/log.png" width="16" height="16" alt="Revision Log" /> Revision Log</a> </p> <hr /> <div class="vc_summary"> Revision <strong>1.1</strong> - (<a href="/*checkout*/easycalc/easycalc/manual/images/FftSetupSignal.png?revision=1.1"><strong>download</strong></a>) (<a href="/*checkout*/easycalc/easycalc/manual/images/FftSetupSignal.png?revision=1.1&content-type=text%2Fplain"><strong>as text</strong></a>) (<a href="/easycalc/easycalc/manual/images/FftSetupSignal.png?annotate=1.1"><strong>annotate</strong></a>) <br /><em>Sun Sep 2 00:59:46 2007 UTC</em> (4 months ago) by <em>tvoverbe</em> <br />Branch: <strong>MAIN</strong> <br />CVS Tags: <strong>stable_1_25, HEAD</strong> <pre class="vc_log">Added new manual derived from <halliday at users.sourceforge.net> contribution and Ondrap's original tutuorial. Also a Plucker version. </pre> </div> <div id="vc_markup"><pre><img src="/*checkout*/easycalc/easycalc/manual/images/FftSetupSignal.png?revision=1.1" alt="" /><br /></pre></div> <hr /> <table> <tr> <td> <address><a href="http://sourceforge.net/">Back to SourceForge.net</a></address><br /> Powered by <a href="http://viewvc.tigris.org/">ViewVC 1.0.3</a> </td> <td style="text-align:right;"> <h3><a href="/*docroot*/help_rootview.html">ViewVC and Help</a></h3> </td> </tr> </table> </body> </html> --- NEW FILE: FftPrefSignal.png --- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <!-- ViewVC - http://viewvc.org/ by Greg Stein - mailto:gs...@ly... --> <head> <title>SourceForge.net Repository - [easycalc] View of /easycalc/manual/images/FftPrefSignal.png</title> <meta name="generator" content="ViewVC 1.0.3" /> <link rel="stylesheet" href="/*docroot*/styles.css" type="text/css" /> </head> <body> <table style="padding:0.1em;"> <tr> <td> <strong> <a href="/easycalc/"> [easycalc]</a> / <a href="/easycalc/easycalc/"> easycalc</a> / <a href="/easycalc/easycalc/manual/"> manual</a> / <a href="/easycalc/easycalc/manual/images/"> images</a> / <a href="/easycalc/easycalc/manual/images/FftPrefSignal.png?view=log"> FftPrefSignal.png</a> </strong> </td> </tr> </table> <div style="float: right; padding: 5px;"><a href="http://sourceforge.net"><img src="/*docroot*/images/sflogo-210pxtrans.png" alt="(logo)" border=0 width=210 height=62></a></div> <h1>View of /easycalc/manual/images/FftPrefSignal.png</h1> <p style="margin:0;"> <a href="/easycalc/easycalc/manual/images/"><img src="/*docroot*/images/back_small.png" width="16" height="16" alt="Parent Directory" /> Parent Directory</a> | <a href="/easycalc/easycalc/manual/images/FftPrefSignal.png?view=log#rev1.1"><img src="/*docroot*/images/log.png" width="16" height="16" alt="Revision Log" /> Revision Log</a> </p> <hr /> <div class="vc_summary"> Revision <strong>1.1</strong> - (<a href="/*checkout*/easycalc/easycalc/manual/images/FftPrefSignal.png?revision=1.1"><strong>download</strong></a>) (<a href="/*checkout*/easycalc/easycalc/manual/images/FftPrefSignal.png?revision=1.1&content-type=text%2Fplain"><strong>as text</strong></a>) (<a href="/easycalc/easycalc/manual/images/FftPrefSignal.png?annotate=1.1"><strong>annotate</strong></a>) <br /><em>Sun Sep 2 00:59:46 2007 UTC</em> (4 months ago) by <em>tvoverbe</em> <br />Branch: <strong>MAIN</strong> <br />CVS Tags: <strong>stable_1_25, HEAD</strong> <pre class="vc_log">Added new manual derived from <halliday at users.sourceforge.net> contribution and Ondrap's original tutuorial. Also a Plucker version. </pre> </div> <div id="vc_markup"><pre><img src="/*checkout*/easycalc/easycalc/manual/images/FftPrefSignal.png?revision=1.1" alt="" /><br /></pre></div> <hr /> <table> <tr> <td> <address><a href="http://sourceforge.net/">Back to SourceForge.net</a></address><br /> Powered by <a href="http://viewvc.tigris.org/">ViewVC 1.0.3</a> </td> <td style="text-align:right;"> <h3><a href="/*docroot*/help_rootview.html">ViewVC and Help</a></h3> </td> </tr> </table> </body> </html> --- NEW FILE: Complex-1.png --- (This appears to be a binary file; contents omitted.) --- NEW FILE: GraphSpeed.png --- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <!-- ViewVC - http://viewvc.org/ by Greg Stein - mailto:gs...@ly... --> <head> <title>SourceForge.net Repository - [easycalc] View of /easycalc/manual/images/GraphSpeed.png</title> <meta name="generator" content="ViewVC 1.0.3" /> <link rel="stylesheet" href="/*docroot*/styles.css" type="text/css" /> </head> <body> <table style="padding:0.1em;"> <tr> <td> <strong> <a href="/easycalc/"> [easycalc]</a> / <a href="/easycalc/easycalc/"> easycalc</a> / <a href="/easycalc/easycalc/manual/"> manual</a> / <a href="/easycalc/easycalc/manual/images/"> images</a> / <a href="/easycalc/easycalc/manual/images/GraphSpeed.png?view=log"> GraphSpeed.png</a> </strong> </td> </tr> </table> <div style="float: right; padding: 5px;"><a href="http://sourceforge.net"><img src="/*docroot*/images/sflogo-210pxtrans.png" alt="(logo)" border=0 width=210 height=62></a></div> <h1>View of /easycalc/manual/images/GraphSpeed.png</h1> <p style="margin:0;"> <a href="/easycalc/easycalc/manual/images/"><img src="/*docroot*/images/back_small.png" width="16" height="16" alt="Parent Directory" /> Parent Directory</a> | <a href="/easycalc/easycalc/manual/images/GraphSpeed.png?view=log#rev1.1"><img src="/*docroot*/images/log.png" width="16" height="16" alt="Revision Log" /> Revision Log</a> </p> <hr /> <div class="vc_summary"> Revision <strong>1.1</strong> - (<a href="/*checkout*/easycalc/easycalc/manual/images/GraphSpeed.png?revision=1.1"><strong>download</strong></a>) (<a href="/*checkout*/easycalc/easycalc/manual/images/GraphSpeed.png?revision=1.1&content-type=text%2Fplain"><strong>as text</strong></a>) (<a href="/easycalc/easycalc/manual/images/GraphSpeed.png?annotate=1.1"><strong>annotate</strong></a>) <br /><em>Sun Sep 2 00:59:49 2007 UTC</em> (4 months ago) by <em>tvoverbe</em> <br />Branch: <strong>MAIN</strong> <br />CVS Tags: <strong>stable_1_25, HEAD</strong> <pre class="vc_log">Added new manual derived from <halliday at users.sourceforge.net> contribution and Ondrap's original tutuorial. Also a Plucker version. </pre> </div> <div id="vc_markup"><pre><img src="/*checkout*/easycalc/easycalc/manual/images/GraphSpeed.png?revision=1.1" alt="" /><br /></pre></div> <hr /> <table> <tr> <td> <address><a href="http://sourceforge.net/">Back to SourceForge.net</a></address><br /> Powered by <a href="http://viewvc.tigris.org/">ViewVC 1.0.3</a> </td> <td style="text-align:right;"> <h3><a href="/*docroot*/help_rootview.html">ViewVC and Help</a></h3> </td> </tr> </table> </body> </html> --- NEW FILE: Qrq-2.png --- (This appears to be a binary file; contents omitted.) --- NEW FILE: Solver-1.png --- (This appears to be a binary file; contents omitted.) --- NEW FILE: Qrqqrr-2.png --- (This appears to be a binary file; contents omitted.) --- NEW FILE: Rref-1.png --- (This appears to be a binary file; contents omitted.) --- NEW FILE: Function-f-1.png --- (This appears to be a binary file; contents omitted.) --- NEW FILE: Matrix-2.png --- (This appears to be a binary file; contents omitted.) --- NEW FILE: Matrix-1.png --- (This appears to be a binary file; contents omitted.) --- NEW FILE: TracePolar.png --- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <!-- ViewVC - http://viewvc.org/ by Greg Stein - mailto:gs...@ly... --> <head> <title>SourceForge.net Repository - [easycalc] View of /easycalc/manual/images/TracePolar.png</title> <meta name="generator" content="ViewVC 1.0.3" /> <link rel="stylesheet" href="/*docroot*/styles.css" type="text/css" /> </head> <body> <table style="padding:0.1em;"> <tr> <td> <strong> <a href="/easycalc/"> [easycalc]</a> / <a href="/easycalc/easycalc/"> easycalc</a> / <a href="/easycalc/easycalc/manual/"> manual</a> / <a href="/easycalc/easycalc/manual/images/"> images</a> / <a href="/easycalc/easycalc/manual/images/TracePolar.png?view=log"> TracePolar.png</a> </strong> </td> </tr> </table> <div style="float: right; padding: 5px;"><a href="http://sourceforge.net"><img src="/*docroot*/images/sflogo-210pxtrans.png" alt="(logo)" border=0 width=210 height=62></a></div> <h1>View of /easycalc/manual/images/TracePolar.png</h1> <p style="margin:0;"> <a href="/easycalc/easycalc/manual/images/"><img src="/*docroot*/images/back_small.png" width="16" height="16" alt="Parent Directory" /> Parent Directory</a> | <a href="/easycalc/easycalc/manual/images/TracePolar.png?view=log#rev1.1"><img src="/*docroot*/images/log.png" width="16" height="16" alt="Revision Log" /> Revision Log</a> </p> <hr /> <div class="vc_summary"> Revision <strong>1.1</strong> - (<a href="/*checkout*/easycalc/easycalc/manual/images/TracePolar.png?revision=1.1"><strong>download</strong></a>) (<a href="/*checkout*/easycalc/easycalc/manual/images/TracePolar.png?revision=1.1&content-type=text%2Fplain"><strong>as text</strong></a>) (<a href="/easycalc/easycalc/manual/images/TracePolar.png?annotate=1.1"><strong>annotate</strong></a>) <br /><em>Sun Sep 2 00:59:51 2007 UTC</em> (4 months ago) by <em>tvoverbe</em> <br />Branch: <strong>MAIN</strong> <br />CVS Tags: <strong>stable_1_25, HEAD</strong> <pre class="vc_log">Added new manual derived from <halliday at users.sourceforge.net> contribution and Ondrap's original tutuorial. Also a Plucker version. </pre> </div> <div id="vc_markup"><pre><img src="/*checkout*/easycalc/easycalc/manual/images/TracePolar.png?revision=1.1" alt="" /><br /></pre></div> <hr /> <table> <tr> <td> <address><a href="http://sourceforge.net/">Back to SourceForge.net</a></address><br /> Powered by <a href="http://viewvc.tigris.org/">ViewVC 1.0.3</a> </td> <td style="text-align:right;"> <h3><a href="/*docroot*/help_rootview.html">ViewVC and Help</a></h3> </td> </tr> </table> </body> </html> --- NEW FILE: FftPrefSpectrum.png --- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <!-- ViewVC - http://viewvc.org/ by Greg Stein - mailto:gs...@ly... --> <head> <title>SourceForge.net Repository - [easycalc] View of /easycalc/manual/images/FftPrefSpectrum.png</title> <meta name="generator" content="ViewVC 1.0.3" /> <link rel="stylesheet" href="/*docroot*/styles.css" type="text/css" /> </head> <body> <table style="padding:0.1em;"> <tr> <td> <strong> <a href="/easycalc/"> [easycalc]</a> / <a href="/easycalc/easycalc/"> easycalc</a> / <a href="/easycalc/easycalc/manual/"> manual</a> / <a href="/easycalc/easycalc/manual/images/"> images</a> / <a href="/easycalc/easycalc/manual/images/FftPrefSpectrum.png?view=log"> FftPrefSpectrum.png</a> </strong> </td> </tr> </table> <div style="float: right; padding: 5px;"><a href="http://sourceforge.net"><img src="/*docroot*/images/sflogo-210pxtrans.png" alt="(logo)" border=0 width=210 height=62></a></div> <h1>View of /easycalc/manual/images/FftPrefSpectrum.png</h1> <p style="margin:0;"> <a href="/easycalc/easycalc/manual/images/"><img src="/*docroot*/images/back_small.png" width="16" height="16" alt="Parent Directory" /> Parent Directory</a> | <a href="/easycalc/easycalc/manual/images/FftPrefSpectrum.png?view=log#rev1.1"><img src="/*docroot*/images/log.png" width="16" height="16" alt="Revision Log" /> Revision Log</a> </p> <hr /> <div class="vc_summary"> Revision <strong>1.1</strong> - (<a href="/*checkout*/easycalc/easycalc/manual/images/FftPrefSpectrum.png?revision=1.1"><strong>download</strong></a>) (<a href="/*checkout*/easycalc/easycalc/manual/images/FftPrefSpectrum.png?revision=1.1&content-type=text%2Fplain"><strong>as text</strong></a>) (<a href="/easycalc/easycalc/manual/images/FftPrefSpectrum.png?annotate=1.1"><strong>annotate</strong></a>) <br /><em>Sun Sep 2 00:59:46 2007 UTC</em> (4 months ago) by <em>tvoverbe</em> <br />Branch: <strong>MAIN</strong> <br />CVS Tags: <strong>stable_1_25, HEAD</strong> <pre class="vc_log">Added new manual derived from <halliday at users.sourceforge.net> contribution and Ondrap's original tutuorial. Also a Plucker version. </pre> </div> <div id="vc_markup"><pre><img src="/*checkout*/easycalc/easycalc/manual/images/FftPrefSpectrum.png?revision=1.1" alt="" /><br /></pre></div> <hr /> <table> <tr> <td> <address><a href="http://sourceforge.net/">Back to SourceForge.net</a></address><br /> Powered by <a href="http://viewvc.tigris.org/">ViewVC 1.0.3</a> </td> <td style="text-align:right;"> <h3><a href="/*docroot*/help_rootview.html">ViewVC and Help</a></h3> </td> </tr> </table> </body> </html> --- NEW FILE: F-romberg.png --- (This appears to be a binary file; contents omitted.) --- NEW FILE: Rref-3.png --- (This appears to be a binary file; contents omitted.) --- NEW FILE: Preferences.png --- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <!-- ViewVC - http://viewvc.org/ by Greg Stein - mailto:gs...@ly... --> <head> <title>SourceForge.net Repository - [easycalc] View of /easycalc/manual/images/Preferences.png</title> <meta name="generator" content="ViewVC 1.0.3" /> <link rel="stylesheet" href="/*docroot*/styles.css" type="text/css" /> </head> <body> <table style="padding:0.1em;"> <tr> <td> <strong> <a href="/easycalc/"> [easycalc]</a> / <a href="/easycalc/easycalc/"> easycalc</a> / <a href="/easycalc/easycalc/manual/"> manual</a> / <a href="/easycalc/easycalc/manual/images/"> images</a> / <a href="/easycalc/easycalc/manual/images/Preferences.png?view=log"> Preferences.png</a> </strong> </td> </tr> </table> <div style="float: right; padding: 5px;"><a href="http://sourceforge.net"><img src="/*docroot*/images/sflogo-210pxtrans.png" alt="(logo)" border=0 width=210 height=62></a></div> <h1>View of /easycalc/manual/images/Preferences.png</h1> <p style="margin:0;"> <a href="/easycalc/easycalc/manual/images/"><img src="/*docroot*/images/back_small.png" width="16" height="16" alt="Parent Directory" /> Parent Directory</a> | <a href="/easycalc/easycalc/manual/images/Preferences.png?view=log#rev1.1"><img src="/*docroot*/images/log.png" width="16" height="16" alt="Revision Log" /> Revision Log</a> </p> <hr /> <div class="vc_summary"> Revision <strong>1.1</strong> - (<a href="/*checkout*/easycalc/easycalc/manual/images/Preferences.png?revision=1.1"><strong>download</strong></a>) (<a href="/*checkout*/easycalc/easycalc/manual/images/Preferences.png?revision=1.1&content-type=text%2Fplain"><strong>as text</strong></a>) (<a href="/easycalc/easycalc/manual/images/Preferences.png?annotate=1.1"><strong>annotate</strong></a>) <br /><em>Sun Sep 2 00:59:49 2007 UTC</em> (4 months ago) by <em>tvoverbe</em> <br />Branch: <strong>MAIN</strong> <br />CVS Tags: <strong>stable_1_25, HEAD</strong> <pre class="vc_log">Added new manual derived from <halliday at users.sourceforge.net> contribution and Ondrap's original tutuorial. Also a Plucker version. </pre> </div> <div id="vc_markup"><pre><img src="/*checkout*/easycalc/easycalc/manual/images/Preferences.png?revision=1.1" alt="" /><br /></pre></div> <hr /> <table> <tr> <td> <address><a href="http://sourceforge.net/">Back to SourceForge.net</a></address><br /> Powered by <a href="http://viewvc.tigris.org/">ViewVC 1.0.3</a> </td> <td style="text-align:right;"> <h3><a href="/*docroot*/help_rootview.html">ViewVC and Help</a></h3> </td> </tr> </table> </body> </html> --- NEW FILE: AskMyfact.png --- (This appears to be a binary file; contents omitted.) --- NEW FILE: Qrqqrr-1.png --- (This appears to be a binary file; contents omitted.) --- NEW FILE: Solver-3.png --- (This appears to be a binary file; contents omitted.) --- NEW FILE: Qrq-1.png --- (This appears to be a binary file; contents omitted.) --- NEW FILE: RtopExample.png --- (This appears to be a binary file; contents omitted.) --- NEW FILE: Rref-2.png --- (This appears to be a binary file; contents omitted.) --- NEW FILE: Solver-5.png --- (This appears to be a binary file; contents omitted.) --- NEW FILE: Solver-4.png --- (This appears to be a binary file; contents omitted.) --- NEW FILE: F-zero.png --- (This appears to be a binary file; contents omitted.) --- NEW FILE: Function-f-2.png --- (This appears to be a binary file; contents omitted.) --- NEW FILE: Trig-DMS-3.png --- (This appears to be a binary file; contents omitted.) --- NEW FILE: Title-4.png --- (This appears to be a binary file; contents omitted.) --- NEW FILE: Trig-DMS-1.png --- (This appears to be a binary file; contents omitted.) --- NEW FILE: Carloan.png --- (This appears to be a binary file; contents omitted.) --- NEW FILE: BasicMainScreen.png --- (This appears to be a binary file; contents omitted.) |
From: Mapi B. <ma...@us...> - 2009-12-24 16:37:33
|
Update of /cvsroot/easycalc/PPCport/docs/images In directory sfp-cvsdas-1.v30.ch3.sourceforge.com:/tmp/cvs-serv17514/images Log Message: Directory /cvsroot/easycalc/PPCport/docs/images added to the repository |
From: Mapi B. <ma...@us...> - 2009-12-24 16:36:52
|
Update of /cvsroot/easycalc/PPCport/docs In directory sfp-cvsdas-1.v30.ch3.sourceforge.com:/tmp/cvs-serv17452 Added Files: manual.html Log Message: 1.25f, full skin support --- NEW FILE: manual.html --- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title>EasyCalc Manual</title> <meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1" > <style type="text/css"> body { font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 0.9em; } tt { font-size: 1.2em; } pre { font-size: 1.2em; } blockquote.c4 {MARGIN-RIGHT: 0px} p.c3 {text-align: left} [...2150 lines suppressed...] </p> <p> Antonio Fiol Bonn_n (Antonio.FIOL at enst-bretagne.fr><br /> Added PYR support for the financial equations </p> <p> Koichi Takagi (halliday at users.sourceforge.net)<br /> Updated documentation </p> <p> For more information about the GNU General Public License: <a href="http://www.gnu.org/copyleft/gpl.html"> http://www.gnu.org/copyleft/gpl.html</a> </p> <p> For more information about the MathLib library: <a href="http://www.radiks.net/~rhuebner/mathlib.html"> http://www.radiks.net/~rhuebner/mathlib.html</a> </p><br /> <p> Back to <A href="#TOC">Contents</a> </p> |
From: Mapi B. <ma...@us...> - 2009-12-24 16:36:22
|
Update of /cvsroot/easycalc/PPCport/core/mlib In directory sfp-cvsdas-1.v30.ch3.sourceforge.com:/tmp/cvs-serv17370 Modified Files: history.cpp Log Message: 1.25f, full skin support Index: history.cpp =================================================================== RCS file: /cvsroot/easycalc/PPCport/core/mlib/history.cpp,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** history.cpp 2 Nov 2009 17:24:39 -0000 1.4 --- history.cpp 24 Dec 2009 16:36:13 -0000 1.5 *************** *** 68,71 **** --- 68,76 ---- MemPtrFree(item); + + // Limit history size to 100 items + while (DmNumRecords(dbRef) > 100) { + DmRemoveRecord(dbRef, 0); + } } |
From: Mapi B. <ma...@us...> - 2009-12-24 16:36:17
|
Update of /cvsroot/easycalc/PPCport/core In directory sfp-cvsdas-1.v30.ch3.sourceforge.com:/tmp/cvs-serv17315 Modified Files: defmgr.cpp Main.cpp Main.h varmgr.cpp Log Message: 1.25f, full skin support Index: Main.cpp =================================================================== RCS file: /cvsroot/easycalc/PPCport/core/Main.cpp,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** Main.cpp 16 Nov 2009 22:15:12 -0000 1.5 --- Main.cpp 24 Dec 2009 16:35:58 -0000 1.6 *************** *** 49,52 **** --- 49,53 ---- #include "system - UI/Skin.h" #include "Main.h" + #include "EasyCalc.h" #ifdef SUPPORT_DIA *************** *** 97,101 **** {_T("/"),true}, {_T("ans")}, ! {_T(""),false,true}, // ?? {_T("^"),true,true}, // power {_T("log"),false,true}, --- 98,102 ---- {_T("/"),true}, {_T("ans")}, ! {_T(""),false,true}, // Open + close bracket {_T("^"),true,true}, // power {_T("log"),false,true}, *************** *** 109,113 **** {_T("tan"),false,true}, {_T("exp"),false,true}, - {_T("fact"),false,true}, {_T("pi")}, {_T("°")}, // degrees --- 110,113 ---- *************** *** 129,139 **** {_T("acosh"),false,true}, {_T("atanh"),false,true}, - {_T("log"),false,true}, {_T("10^"),false,true}, {_T("log2"),false,true}, {_T("2^"),false,true}, {_T("fact"),false,true}, ! {_T("ncr"),false,true}, ! {_T("npr"),false,true}, {_T("round"),false,true,false,true}, {_T("trunc"),false,true,false,true}, --- 129,138 ---- {_T("acosh"),false,true}, {_T("atanh"),false,true}, {_T("10^"),false,true}, {_T("log2"),false,true}, {_T("2^"),false,true}, {_T("fact"),false,true}, ! {_T("ncr"),false,true,false,false,_T("n:r")}, ! {_T("npr"),false,true,false,false,_T("n:r")}, {_T("round"),false,true,false,true}, {_T("trunc"),false,true,false,true}, *************** *** 141,158 **** {_T("floor"),false,true,false,true}, {_T("gamma"),false,true,false,true}, ! {_T("beta"),false,true,false,true}, {_T("rand"),false,false}, ! {_T("rNorm"),false,false}, {_T("real"),false,true,false,true}, {_T("imag"),false,true,false,true}, {_T("conj"),false,true}, {_T("exp(i*"),false,true,true,false}, ! {_T("fzero"),false,true,false,true,_T("min:max:f[:err]")}, ! {_T("fvalue"),false,true,false,true,_T("min:max:val:f[:err]")}, {_T("fmin"),false,true,false,true,_T("min:max:f[:err]")}, {_T("fmax"),false,true,false,true,_T("min:max:f[:err]")}, ! {_T("fd_dx"),false,true,false,true,_T("x:f[:err]")}, // d/dx ! {_T("fromberg"),false,true,false,true,_T("min:max:f[:n]")}, // integ ! {_T("fd2_dx"),false,true,false,true,_T("x:f[:err]")}, // d2/dx {_T("()=\""),false,true,true,true}, {_T("\"")}, --- 140,157 ---- {_T("floor"),false,true,false,true}, {_T("gamma"),false,true,false,true}, ! {_T("beta"),false,true,false,true,_T("z:w")}, {_T("rand"),false,false}, ! {_T("fsimps"),false,true,false,true,_T("min:max:func[:error[:params]]")}, {_T("real"),false,true,false,true}, {_T("imag"),false,true,false,true}, {_T("conj"),false,true}, {_T("exp(i*"),false,true,true,false}, ! {_T("fzero"),false,true,false,true,_T("min:max:f[:err[:params]]")}, ! {_T("fvalue"),false,true,false,true,_T("min:max:val:f[:err[:params]]")}, {_T("fmin"),false,true,false,true,_T("min:max:f[:err]")}, {_T("fmax"),false,true,false,true,_T("min:max:f[:err]")}, ! {_T("fd_dx"),false,true,false,true,_T("x:f[:err[:params]]")}, // d/dx ! {_T("fromberg"),false,true,false,true,_T("min:max:func[:degree[:params]]")}, // integ ! {_T("fd2_dx"),false,true,false,true,_T("x:f[:err[:params]]")}, // d2/dx {_T("()=\""),false,true,true,true}, {_T("\"")}, *************** *** 168,172 **** {_T("stddev"),false,true,false,true}, {_T("dim"),false,true}, ! {_T("[")}, {_T("matrix"),false,true,false,true}, {_T("identity"),false,true,false,true}, --- 167,171 ---- {_T("stddev"),false,true,false,true}, {_T("dim"),false,true}, ! {_T("["),false,true,true}, // Special handling to create corresponding ] {_T("matrix"),false,true,false,true}, {_T("identity"),false,true,false,true}, *************** *** 176,180 **** {_T("qrq"),false,true}, {_T("qrr"),false,true}, ! {_T("["),true}, // x[] {_T("]")}, {_T("qBinomial"),false,true,false,true,_T("c:n:p")}, --- 175,179 ---- {_T("qrq"),false,true}, {_T("qrr"),false,true}, ! {_T("fintersect"),false,true,false,true,_T("min:max:f1:f2:[:err[:params]]")}, {_T("]")}, {_T("qBinomial"),false,true,false,true,_T("c:n:p")}, *************** *** 191,195 **** {_T("sample"),false,true,false,true,_T("data:indices")}, {_T("filter"),false,true,false,true,_T("b_coefs:a_coefs:data")}, ! {_T("conv"),false,true,false,true}, {_T("fft"),false,true,false,true,_T("data[:N]")}, {_T("ifft"),false,true,false,true,_T("data[:N]")}, --- 190,194 ---- {_T("sample"),false,true,false,true,_T("data:indices")}, {_T("filter"),false,true,false,true,_T("b_coefs:a_coefs:data")}, ! {_T("conv"),false,true,false,true,_T("x:y")}, {_T("fft"),false,true,false,true,_T("data[:N]")}, {_T("ifft"),false,true,false,true,_T("data[:N]")}, *************** *** 200,207 **** {_T("lcm"),false,true}, {_T("phi"),false,true}, ! {_T("gcdex"),false,true,false,true}, ! {_T("chinese"),false,true,false,true}, ! {_T("modinv"),false,true,false,true}, ! {_T("modpow"),false,true,false,true}, {_T("factor"),false,true,false,true}, {_T("besseli"),false,true,false,true,_T("n:x")}, --- 199,206 ---- {_T("lcm"),false,true}, {_T("phi"),false,true}, ! {_T("gcdex"),false,true,false,true,_T("a:b")}, ! {_T("chinese"),false,true,false,true,_T("a1:n1:a2:n2[:a3:n3:...]")}, ! {_T("modinv"),false,true,false,true,_T("a:b")}, ! {_T("modpow"),false,true,false,true,_T("a:b:c")}, {_T("factor"),false,true,false,true}, {_T("besseli"),false,true,false,true,_T("n:x")}, *************** *** 214,220 **** {_T("elli2"),false,true,false,true,_T("m:phi")}, {_T("euler"),false,false,false,true}, ! {_T("cn"),false,true}, ! {_T("dn"),false,true}, ! {_T("sn"),false,true}, {_T("igamma"),false,true,false,true,_T("a:x")}, {_T("ibeta"),false,true,false,true,_T("a:b:x")}, --- 213,219 ---- {_T("elli2"),false,true,false,true,_T("m:phi")}, {_T("euler"),false,false,false,true}, ! {_T("cn"),false,true,false,false,_T("m:u")}, ! {_T("dn"),false,true,false,false,_T("m:u")}, ! {_T("sn"),false,true,false,false,_T("m:u")}, {_T("igamma"),false,true,false,true,_T("a:x")}, {_T("ibeta"),false,true,false,true,_T("a:b:x")}, *************** *** 223,229 **** {_T("="),true}, {_T("Inf")}, // Infinity constant {0,NULL,false} }; ! // Currently 152 entries, not counting the last one (NULL). // Don't forget to update BUTTON_COUNT in Main.h if this evolves ! --- 222,264 ---- {_T("="),true}, {_T("Inf")}, // Infinity constant + {_T("%"),true}, // Modulo operator + {_T("j")}, // Complex_j + {_T("299792458")}, // Speed of light in vacuum (m s-1) c=299792458 + {_T("6.67428E-11")}, // Newtonian constant of gravitation (m3 kg-1 s-2) G=6.67428E-11 + {_T("9.80665")}, // Standard gravitational acc. (N kg-1) g=9.80665 + {_T("9.10938215E-31")}, // Electron mass (kg) me=9.10938215E-31 + {_T("1.672621637E-27")}, // Proton mass (kg) mp=1.672621637E-27 + {_T("1.67492729E-27")}, // Neutron mass (kg) mn=1.67492729E-27 + {_T("1.660538782E-27")}, // Unified Atomic mass unit (kg) u=1.660538782E-27 + {_T("6.62606896-34")}, // Planck constant (J s) h=6.62606896-34 + {_T("1.3806504-23")}, // Boltzmann constant (J K-1) k=1.380 6504-23 + {_T("1.2566370614E-6")}, // Magnetic permeability - vacuum (magnetic constant) (H m-1) µ0=1.2566370614E-6 + {_T("8.854187817E-12")}, // Dielectric permittivity (electric constant) (F m-1) e0=8.854187817E-12 + {_T("7.2973525376E-3")}, // Fine structure constant alpha=7.2973525376E-3 + {_T("10973731.568527")}, // Rydberg constant (m-1) r=10973731.568527 + {_T("2.8179402894E-15")}, // Classical electron radius (m) re=2.8179402894E-15 + {_T("5.2917720859E-11")}, // Bohr radius (m) a0=5.2917720859E-11 + {_T("2.067833667E-15")}, // Fluxoid quantum (magnetic flux quantum) (W b) phi0=2.067833667E-15 + {_T("9.27400915E-24")}, // Bohr magneton (J T-1) µb=9.27400915E-24 + {_T("-9.28476377E-24")}, // Electron magnetic moment (J T-1) µe=-9.28476377E-24 + {_T("5.05078324E-27")}, // Nuclear magneton (J T-1) µN=5.05078324E-27 + {_T("1.410606662E-26")}, // Proton magnetic moment (J T-1) µp=1.410606662E-26 + {_T("-9.6623641E-27")}, // Neutron magnetic moment (J T-1) µn=-9.6623641E-27 + {_T("2.4263102175E-12")}, // Compton wavelength (electron) (m) lc=2.4263102175E-12 + {_T("1.3214098446E-15")}, // Compton wavelength (proton) (m) lcp=1.3214098446E-15 + {_T("5.670400E-8")}, // Stefan-Boltzmann constant (W m-2 K-4) sigma=5.670400E-8 + {_T("6.02214179E+23")}, // Avogadro's constant (mol-1) Na=6.02214179E+23 + {_T("2.2413996E-2")}, // Ideal gas volume at STP (m3 mol-1) Vm=2.2413996E-2 + {_T("8.314472")}, // Universal molar gas constant (J mol-1 K-1) R=8.314472 + {_T("1.602176487E-19")}, // Electron charge (elementary charge) (C) e=1.602176487E-19 + {_T("96485.3399")}, // Faraday constant (C mol-1) F=96485.3399 + {_T("25812.807")}, // Quantum Hall resistance = von Klitzing constant (Ohm) Rk=25812.807 + {_T(">=")}, + {_T("<=")}, + {_T("==")}, + {_T(";")}, {0,NULL,false} }; ! // Currently 187 entries, not counting the last one (NULL). // Don't forget to update BUTTON_COUNT in Main.h if this evolves ! *************** *** 338,341 **** --- 373,378 ---- if (text[len-1] == '"') skin->insert_input_text(hwnd_edit, _T("\"")); + else if (text[len-1] == '[') + skin->insert_input_text(hwnd_edit, _T("]")); else skin->insert_input_text(hwnd_edit, _T(")")); *************** *** 344,347 **** --- 381,386 ---- if (text[len-1] == '"') skin->insert_input_text(hwnd_edit, _T("\"")); + else if (text[len-1] == '[') + skin->insert_input_text(hwnd_edit, _T("]")); else skin->insert_input_text(hwnd_edit, _T(")")); *************** *** 353,358 **** skin->select_input_text(hwnd_edit, startp, startp+_tcslen(helptext)); } ! } else skin->insert_input_text(hwnd_edit, text); } --- 392,401 ---- skin->select_input_text(hwnd_edit, startp, startp+_tcslen(helptext)); } ! } else { skin->insert_input_text(hwnd_edit, text); + if ((StrLen(text) == 1) && (StrChr(_T("()[]"), text[0]) != NULL)) { + shell_clBracket(); + } + } } Index: varmgr.cpp =================================================================== RCS file: /cvsroot/easycalc/PPCport/core/varmgr.cpp,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** varmgr.cpp 15 Dec 2009 21:36:54 -0000 1.5 --- varmgr.cpp 24 Dec 2009 16:35:58 -0000 1.6 *************** *** 137,140 **** --- 137,141 ---- if (varlist->size==0) { db_delete_list(varlist); + varlist = NULL; return; } *************** *** 182,194 **** ***********************************************************************/ TCHAR *varmgr_action(int selection) { ! TCHAR *text; ! ! text = (TCHAR *) MemPtrNew((StrLen(varlist->list[selection])+1)*sizeof(TCHAR)); ! StrCopy(text, varlist->list[selection]); ! for (int i=0 ; i<varlist->size ; i++) ! MemPtrFree(values[i]); ! MemPtrFree(values); ! db_delete_list(varlist); return (text); --- 183,198 ---- ***********************************************************************/ TCHAR *varmgr_action(int selection) { ! TCHAR *text = NULL; ! if (selection >= 0) { ! text = (TCHAR *) MemPtrNew((StrLen(varlist->list[selection])+1)*sizeof(TCHAR)); ! StrCopy(text, varlist->list[selection]); ! } ! if (varlist != NULL) { ! for (int i=0 ; i<varlist->size ; i++) ! MemPtrFree(values[i]); ! MemPtrFree(values); ! db_delete_list(varlist); ! } return (text); *************** *** 250,255 **** * ***********************************************************************/ ! void varmgr_listVar(Skin *skin, void *hWnd) IFACE; ! void varmgr_listVar(Skin *skin, void *hWnd) { varlist = db_get_list(variable); if (varlist->size == 0) { --- 254,259 ---- * ***********************************************************************/ ! void varmgr_listVar (Skin *skin, void *hWnd) IFACE; ! void varmgr_listVar (Skin *skin, void *hWnd) { varlist = db_get_list(variable); if (varlist->size == 0) { *************** *** 320,328 **** ***********************************************************************/ TCHAR *varmgr_builtinAction(int selection) { ! TCHAR *text; ! ! text = (TCHAR *) MemPtrNew((StrLen(builtins[selection])+1)*sizeof(TCHAR)); ! StrCopy(text, builtins[selection]); MemPtrFree(builtins); --- 324,333 ---- ***********************************************************************/ TCHAR *varmgr_builtinAction(int selection) { ! TCHAR *text = NULL; + if (selection >= 0) { + text = (TCHAR *) MemPtrNew((StrLen(builtins[selection])+1)*sizeof(TCHAR)); + StrCopy(text, builtins[selection]); + } MemPtrFree(builtins); Index: defmgr.cpp =================================================================== RCS file: /cvsroot/easycalc/PPCport/core/defmgr.cpp,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** defmgr.cpp 15 Dec 2009 21:36:54 -0000 1.3 --- defmgr.cpp 24 Dec 2009 16:35:58 -0000 1.4 *************** *** 80,83 **** --- 80,85 ---- skin->varDefList(text, deftext, itemNum, hWnd); MemPtrFree(text); + if (!err) + MemPtrFree(deftext); // Do not forget to free memory !! } else { text = itemText[itemNum]; Index: Main.h =================================================================== RCS file: /cvsroot/easycalc/PPCport/core/Main.h,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** Main.h 16 Nov 2009 22:15:12 -0000 1.4 --- Main.h 24 Dec 2009 16:35:58 -0000 1.5 *************** *** 39,43 **** // Number of defined buttons in Main.cpp ! #define BUTTON_COUNT 153 #ifndef _MAIN_C_ --- 39,43 ---- // Number of defined buttons in Main.cpp ! #define BUTTON_COUNT 187 #ifndef _MAIN_C_ |
From: Mapi B. <ma...@us...> - 2009-12-24 16:36:03
|
Update of /cvsroot/easycalc/PPCport/compat In directory sfp-cvsdas-1.v30.ch3.sourceforge.com:/tmp/cvs-serv17295 Modified Files: MemoryManager.cpp MemoryManager.h Log Message: 1.25f, full skin support Index: MemoryManager.h =================================================================== RCS file: /cvsroot/easycalc/PPCport/compat/MemoryManager.h,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** MemoryManager.h 15 Dec 2009 21:36:12 -0000 1.3 --- MemoryManager.h 24 Dec 2009 16:35:42 -0000 1.4 *************** *** 53,56 **** --- 53,58 ---- void init_debug_malloc(TCHAR *trcpath); void end_debug_malloc(void); + bool debug_check_allocated(bool final); + bool debug_check_free(bool final); char *debug__strdup(TCHAR *sfile, int sline, const char *strSource); TCHAR *debug__tcsdup(TCHAR *sfile, int sline, const TCHAR *strSource); Index: MemoryManager.cpp =================================================================== RCS file: /cvsroot/easycalc/PPCport/compat/MemoryManager.cpp,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** MemoryManager.cpp 15 Dec 2009 21:36:12 -0000 1.3 --- MemoryManager.cpp 24 Dec 2009 16:35:41 -0000 1.4 *************** *** 81,85 **** if ((h->memPtr = mmalloc((size+7) & 0xFFFFFFFC)) != NULL) { // Put metadata MemHandle address in allocated memory ! *((UInt32 *) h->memPtr) = (UInt32) h; h->size = size; } else { --- 81,85 ---- if ((h->memPtr = mmalloc((size+7) & 0xFFFFFFFC)) != NULL) { // Put metadata MemHandle address in allocated memory ! *((UInt32 *) (h->memPtr)) = (UInt32) h; h->size = size; } else { *************** *** 162,165 **** --- 162,174 ---- #define MEM_MAGIC_FREED 0xFCFCFCFC + struct s_debugMalloc { + int size; + struct s_debugMalloc *prec; + struct s_debugMalloc *next; + int magic; + }; + + #define DBG_ADDSIZE (sizeof(struct s_debugMalloc)+4) + #include <stdio.h> static FILE *trcfile = NULL; *************** *** 171,176 **** --- 180,192 ---- } + struct s_debugMalloc *free_chain = NULL; + struct s_debugMalloc *free_tail = NULL; + struct s_debugMalloc *alloc_chain = NULL; + struct s_debugMalloc *alloc_tail = NULL; + void end_debug_malloc (void) { + debug_check_allocated(true); fclose(trcfile); + debug_check_free(true); } *************** *** 179,186 **** int size = strlen(strSource) + 1; int wrounded_size = ((size+3) & 0xFFFFFFFC); ! int *p = (int *) malloc(wrounded_size+8); int alloc_size = _msize(p); ! *p = MEM_MAGIC_ALLOC; ! _ftprintf(trcfile, _T("malloc(_strdup)\t0x%08X\t%d\t%s\t%d\n"), (int) p, alloc_size, sfile, sline); memcpy(p+1, strSource, size); *((int *)(((byte *)p)+alloc_size-4)) = MEM_MAGIC_ALLOC; --- 195,209 ---- int size = strlen(strSource) + 1; int wrounded_size = ((size+3) & 0xFFFFFFFC); ! struct s_debugMalloc *p = (struct s_debugMalloc *) malloc(wrounded_size+DBG_ADDSIZE); int alloc_size = _msize(p); ! p->size = size; ! p->prec = alloc_tail; ! if (alloc_chain == NULL) ! alloc_tail = alloc_chain = p; ! else ! alloc_tail = alloc_tail->next = p; ! p->next = NULL; ! p->magic = MEM_MAGIC_ALLOC; ! _ftprintf(trcfile, _T("malloc(_strdup)\t0x%08X\t%d\t%s\t%d\n"), (int) (p+1), alloc_size, sfile, sline); memcpy(p+1, strSource, size); *((int *)(((byte *)p)+alloc_size-4)) = MEM_MAGIC_ALLOC; *************** *** 193,200 **** int size = (_tcslen(strSource) + 1) * sizeof(TCHAR); int wrounded_size = ((size+3) & 0xFFFFFFFC); ! int *p = (int *) malloc(wrounded_size+8); int alloc_size = _msize(p); ! *p = MEM_MAGIC_ALLOC; ! _ftprintf(trcfile, _T("malloc(_tcsdup)\t0x%08X\t%d\t%s\t%d\n"), (int) p, alloc_size, sfile, sline); memcpy(p+1, strSource, size); *((int *)(((byte *)p)+alloc_size-4)) = MEM_MAGIC_ALLOC; --- 216,230 ---- int size = (_tcslen(strSource) + 1) * sizeof(TCHAR); int wrounded_size = ((size+3) & 0xFFFFFFFC); ! struct s_debugMalloc *p = (struct s_debugMalloc *) malloc(wrounded_size+DBG_ADDSIZE); int alloc_size = _msize(p); ! p->size = size; ! p->prec = alloc_tail; ! if (alloc_chain == NULL) ! alloc_tail = alloc_chain = p; ! else ! alloc_tail = alloc_tail->next = p; ! p->next = NULL; ! p->magic = MEM_MAGIC_ALLOC; ! _ftprintf(trcfile, _T("malloc(_tcsdup)\t0x%08X\t%d\t%s\t%d\n"), (int) (p+1), alloc_size, sfile, sline); memcpy(p+1, strSource, size); *((int *)(((byte *)p)+alloc_size-4)) = MEM_MAGIC_ALLOC; *************** *** 205,213 **** void *debug_malloc (TCHAR *sfile, int sline, size_t size) { int wrounded_size = ((size+3) & 0xFFFFFFFC); ! int *p = (int *) malloc(wrounded_size+8); int alloc_size = _msize(p); ! *p = MEM_MAGIC_ALLOC; _ftprintf(trcfile, _T("malloc\t0x%08X\t%d\t%d\t%s\t%d\n"), (int) (p+1), alloc_size, size, sfile, sline); ! memset(p+1, 0, alloc_size-8); *((int *)(((byte *)p)+alloc_size-4)) = MEM_MAGIC_ALLOC; return((void *) (p+1)); --- 235,250 ---- void *debug_malloc (TCHAR *sfile, int sline, size_t size) { int wrounded_size = ((size+3) & 0xFFFFFFFC); ! struct s_debugMalloc *p = (struct s_debugMalloc *) malloc(wrounded_size+DBG_ADDSIZE); int alloc_size = _msize(p); ! p->size = size; ! p->prec = alloc_tail; ! if (alloc_chain == NULL) ! alloc_tail = alloc_chain = p; ! else ! alloc_tail = alloc_tail->next = p; ! p->next = NULL; ! p->magic = MEM_MAGIC_ALLOC; _ftprintf(trcfile, _T("malloc\t0x%08X\t%d\t%d\t%s\t%d\n"), (int) (p+1), alloc_size, size, sfile, sline); ! memset(p+1, 0, alloc_size-DBG_ADDSIZE); *((int *)(((byte *)p)+alloc_size-4)) = MEM_MAGIC_ALLOC; return((void *) (p+1)); *************** *** 215,225 **** size_t debug__msize(void *memblock) { ! int *p = ((int *) memblock)-1; ! return (_msize(p) - 8); } void *debug_realloc (TCHAR *sfile, int sline, void *memblock, size_t size) { size_t old_size; ! int *op; if (memblock == NULL) { old_size = 0; --- 252,262 ---- size_t debug__msize(void *memblock) { ! struct s_debugMalloc *p = ((struct s_debugMalloc *) memblock)-1; ! return (_msize(p) - DBG_ADDSIZE); } void *debug_realloc (TCHAR *sfile, int sline, void *memblock, size_t size) { size_t old_size; ! struct s_debugMalloc *op; if (memblock == NULL) { old_size = 0; *************** *** 227,244 **** } else { old_size = debug__msize(memblock); ! op = ((int *) memblock)-1; } int wrounded_size = ((size+3) & 0xFFFFFFFC); ! int *p = (int *) realloc(op, wrounded_size+8); ! int alloc_size = _msize(p); ! if (op == NULL) { ! *p = MEM_MAGIC_ALLOC; ! } else if (p != op) { // op non NULL and was freed ! *op = MEM_MAGIC_FREED; ! memset(op+1, 0, old_size); ! *((int *)(((byte *)(op+1))+old_size)) = MEM_MAGIC_FREED; } ! _ftprintf(trcfile, _T("realloc\t0x%08X\t%d\t%d\t0x%08X\t%d\t%s\t%d\n"), (int) p, alloc_size, size, (int) memblock, old_size+8, sfile, sline); ! *((int *)(((byte *)p)+alloc_size-4)) = MEM_MAGIC_ALLOC; return((void *) (p+1)); } --- 264,332 ---- } else { old_size = debug__msize(memblock); ! op = ((struct s_debugMalloc *) memblock)-1; ! ! // Verify old buffer ! int *trig_error = NULL; ! if (op->magic != MEM_MAGIC_ALLOC) { ! op->magic = *trig_error; ! } ! if (*((int *)(((byte *)(op+1))+old_size)) != MEM_MAGIC_ALLOC) { ! op->magic = *trig_error; ! } } + int wrounded_size = ((size+3) & 0xFFFFFFFC); ! int alloc_size = 0; ! // struct s_debugMalloc *p = (struct s_debugMalloc *) realloc(op, wrounded_size+DBG_ADDSIZE); ! struct s_debugMalloc *p = (struct s_debugMalloc *) malloc(wrounded_size+DBG_ADDSIZE); ! if (p != op) { // Get rid of op and prepare p ! if (op != NULL) { ! if (free_chain == NULL) { ! free_tail = free_chain = op; ! } else { ! free_tail = free_tail->next = op; ! } ! // Unchain buffer from alloc list and put it in the free list. ! if (op->prec != NULL) ! op->prec->next = op->next; ! else { ! alloc_chain = op->next; ! } ! if (op->next == NULL) { ! alloc_tail = op->prec; ! } else { ! op->next->prec = op->prec; ! op->next = NULL; ! } ! // "Free" buffer ! op->magic = MEM_MAGIC_FREED; ! memset(op+1, 0, old_size); ! *((int *)(((byte *)(op+1))+old_size)) = MEM_MAGIC_FREED; ! } ! if (p != NULL) { ! alloc_size = _msize(p); ! p->size = size; ! p->prec = alloc_tail; ! if (alloc_chain == NULL) ! alloc_tail = alloc_chain = p; ! else { ! alloc_tail = alloc_tail->next = p; ! } ! p->next = NULL; ! p->magic = MEM_MAGIC_ALLOC; ! *((int *)(((byte *)p)+alloc_size-4)) = MEM_MAGIC_ALLOC; ! } ! } else { // p and op are both NULL, or p == op ! if (p != NULL) { ! alloc_size = _msize(p); ! p->size = size; ! *((int *)(((byte *)p)+alloc_size-4)) = MEM_MAGIC_ALLOC; ! } } ! ! _ftprintf(trcfile, _T("realloc\t0x%08X\t%d\t%d\t0x%08X\t%d\t%s\t%d\n"), (int) (p+1), alloc_size, size, (int) memblock, old_size+DBG_ADDSIZE, sfile, sline); ! ! if (p == NULL) ! return (NULL); return((void *) (p+1)); } *************** *** 246,262 **** void debug_free (TCHAR *sfile, int sline, void *memblock) { int *trig_error = NULL; ! int *p = ((int *) memblock)-1; ! if (*p != MEM_MAGIC_ALLOC) { ! *p = *trig_error; } ! *p = MEM_MAGIC_FREED; size_t size = debug__msize(memblock); if (*((int *)(((byte *)(p+1))+size)) != MEM_MAGIC_ALLOC) { ! *p = *trig_error; } memset(p+1, 0, size); *((int *)(((byte *)(p+1))+size)) = MEM_MAGIC_FREED; ! _ftprintf(trcfile, _T("free\t0x%08X\t%d\t%d\t%s\t%d\n"), (int) memblock, size+8, size, sfile, sline); ! free(p); } #endif \ No newline at end of file --- 334,442 ---- void debug_free (TCHAR *sfile, int sline, void *memblock) { int *trig_error = NULL; ! struct s_debugMalloc *p = ((struct s_debugMalloc *) memblock)-1; ! if (p->magic != MEM_MAGIC_ALLOC) { ! p->magic = *trig_error; } ! p->magic = MEM_MAGIC_FREED; size_t size = debug__msize(memblock); if (*((int *)(((byte *)(p+1))+size)) != MEM_MAGIC_ALLOC) { ! p->magic = *trig_error; } memset(p+1, 0, size); *((int *)(((byte *)(p+1))+size)) = MEM_MAGIC_FREED; ! _ftprintf(trcfile, _T("free\t0x%08X\t%d\t%d\t%s\t%d\n"), (int) memblock, size+DBG_ADDSIZE, size, sfile, sline); ! // free(p); ! if (free_chain == NULL) { ! free_tail = free_chain = p; ! } else { ! free_tail = free_tail->next = p; ! } ! // Unchain buffer from alloc list and put it in the free list. ! if (p->prec != NULL) ! p->prec->next = p->next; ! else { ! alloc_chain = p->next; ! } ! if (p->next == NULL) { ! alloc_tail = p->prec; ! } else { ! p->next->prec = p->prec; ! p->next = NULL; ! } } + + bool debug_check_allocated (bool final) { + bool chain_ok = true; + int size; + struct s_debugMalloc *p = alloc_chain; + + while (p != NULL) { + size = debug__msize(p+1); + if (final) + _ftprintf(trcfile, _T("still allocated:\t0x%08X\t%d\t%d\n"), (int) (p+1), size+DBG_ADDSIZE, size); + // Verify allocated buffer. + if (p->magic != MEM_MAGIC_ALLOC) { + chain_ok = false; + if (final) + _fputts(_T("\tInvalid start magic !!"), trcfile); + else break; + } + if (*((int *)(((byte *)(p+1))+size)) != MEM_MAGIC_ALLOC) { + chain_ok = false; + if (final) + _fputts(_T("\tInvalid end magic !!"), trcfile); + else break; + } + + // All is ok, go to next one. + p = p->next; + } + + return (chain_ok); + } + + bool debug_check_free (bool final) { + bool chain_ok = true; + int *trig_error = NULL; + int *tmp, size; + struct s_debugMalloc *p = free_chain, *p1; + + while (p != NULL) { + // Verify "freed" buffer. + if (p->magic != MEM_MAGIC_FREED) { + chain_ok = false; + if (final) + p->magic = *trig_error; + else break; + } + size = debug__msize(p+1); + if (*((int *)(((byte *)(p+1))+size)) != MEM_MAGIC_FREED) { + chain_ok = false; + if (final) + p->magic = *trig_error; + else break; + } + tmp = (int *) (p + 1); + while (size > 0) { + if (*tmp != 0) { + chain_ok = false; + if (final) + p->magic = *trig_error; + else break; + } + tmp++; + size -= sizeof(int); + } + + // All is ok, go to next one, after really freeing it if we are in the + // final debug check. + p1 = p->next; + if (final) + free(p); + p = p1; + } + + return (chain_ok); + } + #endif \ No newline at end of file |
From: Mapi B. <ma...@us...> - 2009-12-24 16:35:39
|
Update of /cvsroot/easycalc/PPCport In directory sfp-cvsdas-1.v30.ch3.sourceforge.com:/tmp/cvs-serv17280 Modified Files: EasyCalc.vcproj.CLIENT5.Admin.user ReadMe.txt Log Message: 1.25f, full skin support Index: ReadMe.txt =================================================================== RCS file: /cvsroot/easycalc/PPCport/ReadMe.txt,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** ReadMe.txt 15 Dec 2009 21:35:51 -0000 1.8 --- ReadMe.txt 24 Dec 2009 16:35:28 -0000 1.9 *************** *** 15,18 **** --- 15,22 ---- Device" subtree. + - If you do not want to copy the contents of the docs subdirectory, you can, + but then the Help->Help menu item will start Internet Explorer with + an error as it won't find the manual.html page. + - To run the application, in your PDA or Touch Phone, use the File explorer, go to the directory where you installed it, click on EasyCalc(.exe). *************** *** 32,35 **** --- 36,54 ---- Releases: --------- + * 1.25f PPC: + - Removed some memory leaks. + - Fixed some bugs in the code. + - Added skin support, and two additional standard skins. Now 3 skins + can be accessed and switched between at any time by tapping on screen + annunciators 1, 2 and 3. + - Added a number of physics constants, accessible from skin 3. + - Added inline help strings for a number of functions. + - Added matching (, ), [ and ] highlighting on the input text area, + whether using keyboard, SIP or buttons. + - Limited history to 100 entries, as the history popup can be long to appear + when history is lengthy. If somboedy needs mode, let me know. + - Pocket PC specific documentation (in english), which can be accessed + through the Help menu. + * 1.25e PPC: - Fixed bug from legacy code where matrix[n:.] which is resulting in a *************** *** 37,41 **** by a tap on the result area. - Modified torad(), todeg(), todeg2() so that they take into account ! current trogonometric mode, and do the proper conversion. - Added tograd() function. - These toxxx functions also now bring back the value to the proper --- 56,60 ---- by a tap on the result area. - Modified torad(), todeg(), todeg2() so that they take into account ! current trigonometric mode, and do the proper conversion. - Added tograd() function. - These toxxx functions also now bring back the value to the proper *************** *** 93,97 **** ! Functional differences between 1.25e PPC and legacy Palm EasyCalc 1.25: ----------------------------------------------------------------------- - Fully skinable: one can create new skins (.gif and .layout files) to --- 112,116 ---- ! Functional differences between 1.25f PPC and legacy Palm EasyCalc 1.25: ----------------------------------------------------------------------- - Fully skinable: one can create new skins (.gif and .layout files) to *************** *** 109,112 **** --- 128,134 ---- annunciators at top of screen. + - No special menu either, this is managed through skins (we could add more + active skins to switch between if needed). + - Dynamic switch of language on the UI, by just going to the options panel. No more several versions to pick from. *************** *** 187,190 **** --- 209,221 ---- in the legacy Palm app, just an input text area). + - torad(), todeg(), todeg2() take into account the current trigonometric mode, + and do proper conversion. Added tograd() function.These functions also now + bring back the value to the proper range, i.e. ]-2pi,2pi[ for radian, + ]-360,360[ for degree and degree2, and ]-400,400[ for grad. + + - The M menu at right of result is able to call these conversion functions at + any time when there is a real or complex number in ANS, and not just function + of the trigonometric mode. + - Financial Manager: - show label of selected variable. *************** *** 202,216 **** - Import / export of equations done from main menu, and not from Solver menu. - Export is either on variables, functions or equations, but not on variables + functions. - - Sped up the display_matrix() routine for big matrices (50 x 50). ! Still missing in 1.25e: ----------------------- - - Support for multiple skins (only 1 for now) - Graphes - Support screen rotation with another set of skins (EasyCalcWide.layout + gif). - - Documentation - ... that should be all ... --- 233,287 ---- - Import / export of equations done from main menu, and not from Solver menu. + - Export is either on variables, functions or equations, but not on variables + functions. + - Sped up the display_matrix() and cvt_fltoa() routines for big matrices (50 x 50). ! - Some physical constants have been integrated, using more recent values than in ! the PalmOS manual, mostly coming from http://physics.nist.gov/cuu/Constants/index.html. ! euler gamma=0.57721 56649 01532 86060 65120 90082 40243 10421 59335 93992 ... ! Speed of light in vacuum (m s-1) c=299792458 ! Newtonian constant of gravitation (m3 kg-1 s-2) G=6.67428E-11 ! Standard gravitational acc. (N kg-1) g=9.80665 ! Electron mass (kg) me=9.10938215E-31 ! Proton mass (kg) mp=1.672621637E-27 ! Neutron mass (kg) mn=1.67492729E-27 ! Unified Atomic mass unit (kg) u=1.660538782E-27 ! Planck constant (J s) h=6.62606896-34 ! Boltzmann constant (J K-1) k=1.380 6504-23 ! Magnetic permeability - vacuum (magnetic constant) (H m-1) µ0=1.2566370614E-6 ! Dielectric permittivity (electric constant) (F m-1) e0=8.854187817E-12 ! Fine structure constant alpha=7.2973525376E-3 ! Rydberg constant (m-1) r=10973731.568527 ! Classical electron radius (m) re=2.8179402894E-15 ! Bohr radius (m) a0=5.2917720859E-11 ! Fluxoid quantum (magnetic flux quantum) (W b) phi0=2.067833667E-15 ! Bohr magneton (J T-1) µb=9.27400915E-24 ! Electron magnetic moment (J T-1) µe=-9.28476377E-24 ! Nuclear magneton (J T-1) µN=5.05078324E-27 ! Proton magnetic moment (J T-1) µp=1.410606662E-26 ! Neutron magnetic moment (J T-1) µn=-9.6623641E-27 ! Compton wavelength (electron) (m) lc=2.4263102175E-12 ! Compton wavelength (proton) (m) lcp=1.3214098446E-15 ! Stefan-Boltzmann constant (W m-2 K-4) sigma=5.670400E-8 ! Avogadro's constant (mol-1) Na=6.02214179E+23 ! Ideal gas volume at STP (m3 mol-1) Vm=2.2413996E-2 ! Universal molar gas constant (J mol-1 K-1) R=8.314472 ! Electron charge (elementary charge) (C) e=1.602176487E-19 ! Faraday constant (C mol-1) F=96485.3399 ! Quantum Hall resistance = von Klitzing constant (Ohm) Rk=25812.807 ! ! - Completed inline help strings for a number of functions. ! ! - Limited history to 100 entries, as the history popup can be long to appear ! when history is lengthy. If somboedy needs mode, let me know (this is ! unlimited in legacy code). ! ! ! Still missing in 1.25f: ----------------------- - Graphes - Support screen rotation with another set of skins (EasyCalcWide.layout + gif). - ... that should be all ... Index: EasyCalc.vcproj.CLIENT5.Admin.user =================================================================== RCS file: /cvsroot/easycalc/PPCport/EasyCalc.vcproj.CLIENT5.Admin.user,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** EasyCalc.vcproj.CLIENT5.Admin.user 21 Oct 2009 20:54:35 -0000 1.3 --- EasyCalc.vcproj.CLIENT5.Admin.user 24 Dec 2009 16:35:28 -0000 1.4 *************** *** 69,73 **** /> <DeploymentTool ! DeploymentDevice="1f261bf1-9987-41a3-ba3c-ca801816d8f3" /> <DebuggerTool --- 69,73 ---- /> <DeploymentTool ! DeploymentDevice="87e94862-f623-4aff-a51c-9ac190753a60" /> <DebuggerTool |
From: Mapi B. <ma...@us...> - 2009-12-15 21:39:27
|
Update of /cvsroot/easycalc/PPCport/system - UI In directory sfp-cvsdas-1.v30.ch3.sourceforge.com:/tmp/cvs-serv32675 Modified Files: EasyCalc.cpp EasyCalc.h EasyCalcppc.aps EasyCalcppc.rc EasyCalcppc.rc2 resourceppc.h shell_loadimage.cpp Skin.cpp Skin.h StateManager.cpp Log Message: Release 1.25e Index: EasyCalc.h =================================================================== RCS file: /cvsroot/easycalc/PPCport/system - UI/EasyCalc.h,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** EasyCalc.h 16 Nov 2009 22:18:41 -0000 1.7 --- EasyCalc.h 15 Dec 2009 21:39:18 -0000 1.8 *************** *** 53,57 **** #define BCD_SECT ! #if defined(WINDOWS) && !defined(__GNUC__) #define int8 __int64 #define uint8 unsigned __int64 --- 53,57 ---- #define BCD_SECT ! #if defined(_WINDOWS) && !defined(__GNUC__) #define int8 __int64 #define uint8 unsigned __int64 *************** *** 66,72 **** * the fact). */ ! #ifdef __cplusplus ! extern "C" { ! #endif int isnan(double x); int finite(double x); --- 66,72 ---- * the fact). */ ! //#ifdef __cplusplus ! // extern "C" { ! //#endif int isnan(double x); int finite(double x); *************** *** 81,87 **** double hypot(double x, double y); #endif ! #ifdef __cplusplus ! } ! #endif #else --- 81,87 ---- double hypot(double x, double y); #endif ! //#ifdef __cplusplus ! // } ! //#endif #else *************** *** 106,110 **** // Version of the state file #define STATE_VERSION_ORIG 1 ! #define STATE_VERSION 2 /* Magic number and version number for the state file. --- 106,110 ---- // Version of the state file #define STATE_VERSION_ORIG 1 ! #define STATE_VERSION 3 /* Magic number and version number for the state file. *************** *** 129,132 **** --- 129,135 ---- #define altErrorGifFile 12 #define altWriteStateFile 13 + #define altSolverResult 14 + #define altGraphBadVal 15 + #define altMemoImportError 16 #define FrmAlert FrmPopupForm #define FrmAlertMain(a) FrmPopupForm(a, NULL) *************** *** 172,174 **** --- 175,190 ---- void MtxEditSetRowValue(int rowNb, int colNb, TCHAR *cell); + void SlvEnableAll(Boolean enable); + void SlvSetExeButton(int cmd); + void SlvEqFldSet(TCHAR *eq); + TCHAR *SlvEqFldGet(void); + void SlvVarSetRow(int rowNb, TCHAR *label, TCHAR *value); + void SlvVarHelp(TCHAR *text); + + void FinSetRow(int rowNb, TCHAR *label, TCHAR *value); + void FinShowValue(int rowNb, TCHAR *value); + + void wait_draw(void); + void wait_erase(void); + #endif Index: shell_loadimage.cpp =================================================================== RCS file: /cvsroot/easycalc/PPCport/system - UI/shell_loadimage.cpp,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** shell_loadimage.cpp 22 Jun 2009 22:13:35 -0000 1.1 --- shell_loadimage.cpp 15 Dec 2009 21:39:18 -0000 1.2 *************** *** 128,132 **** */ ! pm->cmap = (SkinColor *) malloc(256 * sizeof(SkinColor)); // TODO - handle memory allocation failure if (has_global_cmap) { --- 128,132 ---- */ ! pm->cmap = (SkinColor *) mmalloc(256 * sizeof(SkinColor)); // TODO - handle memory allocation failure if (has_global_cmap) { *************** *** 192,196 **** size = pm->bytesperline * pm->height; ! pm->pixels = (unsigned char *) malloc(size); // TODO - handle memory allocation failure memset(pm->pixels, pm->depth == 1 ? background * 255 : background, size); --- 192,196 ---- size = pm->bytesperline * pm->height; ! pm->pixels = (unsigned char *) mmalloc(size); // TODO - handle memory allocation failure memset(pm->pixels, pm->depth == 1 ? background * 255 : background, size); *************** *** 260,264 **** lbpp = (info & 7) + 1; lncolors = 1 << lbpp; ! lcmap = (SkinColor *) malloc(256 * sizeof(SkinColor)); // TODO - handle memory allocation failure for (i=0 ; i<lncolors ; i++) { --- 260,264 ---- lbpp = (info & 7) + 1; lncolors = 1 << lbpp; ! lcmap = (SkinColor *) mmalloc(256 * sizeof(SkinColor)); // TODO - handle memory allocation failure for (i=0 ; i<lncolors ; i++) { *************** *** 277,281 **** int v, h; unsigned char *newpixels = (unsigned char *) ! malloc(newbytesperline * pm->height); // TODO - handle memory allocation failure for (v=0 ; v<pm->height ; v++) --- 277,281 ---- int v, h; unsigned char *newpixels = (unsigned char *) ! mmalloc(newbytesperline * pm->height); // TODO - handle memory allocation failure for (v=0 ; v<pm->height ; v++) *************** *** 294,298 **** newpixel[3] = pm->cmap[pixel].b; } ! free(pm->pixels); pm->pixels = newpixels; pm->bytesperline = newbytesperline; --- 294,298 ---- newpixel[3] = pm->cmap[pixel].b; } ! mfree(pm->pixels); pm->pixels = newpixels; pm->bytesperline = newbytesperline; *************** *** 492,496 **** if (lcmap != pm->cmap) ! free(lcmap); lcmap = NULL; } else if (whatnext == '!') { --- 492,496 ---- if (lcmap != pm->cmap) ! mfree(lcmap); lcmap = NULL; } else if (whatnext == '!') { *************** *** 522,532 **** done: ! if (lcmap != NULL && lcmap != pm->cmap) free(lcmap); if (pm->depth == 24) { ! free(pm->cmap); pm->cmap = NULL; } if (pm->depth == 1) { ! free(pm->cmap); pm->cmap = NULL; if (invert) --- 522,532 ---- done: ! if (lcmap != NULL && lcmap != pm->cmap) mfree(lcmap); if (pm->depth == 24) { ! mfree(pm->cmap); pm->cmap = NULL; } if (pm->depth == 1) { ! mfree(pm->cmap); pm->cmap = NULL; if (invert) *************** *** 552,557 **** /* Done writing; delete the image and return. */ ! if (pm->cmap != NULL) free(pm->cmap); ! free(pm->pixels); return (res); --- 552,557 ---- /* Done writing; delete the image and return. */ ! if (pm->cmap != NULL) mfree(pm->cmap); ! mfree(pm->pixels); return (res); *************** *** 563,573 **** failed: ! if (lcmap != NULL && lcmap != pm->cmap) free(lcmap); if (pm->cmap != NULL) { ! free(pm->cmap); pm->cmap = NULL; } if (pm->pixels != NULL) { ! free(pm->pixels); pm->pixels = NULL; } --- 563,573 ---- failed: ! if (lcmap != NULL && lcmap != pm->cmap) mfree(lcmap); if (pm->cmap != NULL) { ! mfree(pm->cmap); pm->cmap = NULL; } if (pm->pixels != NULL) { ! mfree(pm->pixels); pm->pixels = NULL; } Index: EasyCalcppc.aps =================================================================== RCS file: /cvsroot/easycalc/PPCport/system - UI/EasyCalcppc.aps,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 Binary files /tmp/cvsxHaRON and /tmp/cvsDefWAg differ Index: EasyCalc.cpp =================================================================== RCS file: /cvsroot/easycalc/PPCport/system - UI/EasyCalc.cpp,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** EasyCalc.cpp 16 Nov 2009 22:18:41 -0000 1.8 --- EasyCalc.cpp 15 Dec 2009 21:39:18 -0000 1.9 *************** *** 30,33 **** --- 30,34 ---- // too big a code (1+ MB !!). // #include "afxwin.h" + #include "compat/PalmOS.h" #define _EASYCALC_C_ *************** *** 52,55 **** --- 53,63 ---- #include "core/mtxedit.h" [...2302 lines suppressed...] HWND hWnd = GetDlgItem(hDlg, IDC_EDIT2); SendMessage(hWnd, EM_REPLACESEL, (WPARAM) TRUE, (LPARAM) lParam); ! mfree(lParam); ! SetFocus(hWnd); } processed = TRUE; *************** *** 4813,4817 **** HWND hWnd = GetDlgItem(hDlg, IDC_EDIT2); main_insert(cur_skin, hWnd, (TCHAR *) lParam, false, true, false, NULL); ! free((void *) lParam); } processed = TRUE; --- 6026,6031 ---- HWND hWnd = GetDlgItem(hDlg, IDC_EDIT2); main_insert(cur_skin, hWnd, (TCHAR *) lParam, false, true, false, NULL); ! mfree(lParam); ! SetFocus(hWnd); } processed = TRUE; Index: Skin.h =================================================================== RCS file: /cvsroot/easycalc/PPCport/system - UI/Skin.h,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** Skin.h 16 Nov 2009 22:18:41 -0000 1.9 --- Skin.h 15 Dec 2009 21:39:18 -0000 1.10 *************** *** 84,90 **** TOGONIO, ENGDISPLAY, ! TODEGREE2 }resSelection; ! #define SELECTION_COUNT 10 #define RESULTAREA_SIZE 128 --- 84,93 ---- TOGONIO, ENGDISPLAY, ! SCIDISPLAY, ! NORMDISPLAY, ! TODEGREE2, ! TOGRAD }resSelection; ! #define SELECTION_COUNT 11 #define RESULTAREA_SIZE 128 *************** *** 95,99 **** // Used while loading a skin; specifies how much to enlarge it. // This is necessary to force low-res skins to fill high-res screens. - int magnification; SkinPoint display_loc; // Description of the display in the skin --- 98,101 ---- *************** *** 132,137 **** TCHAR dispResult[RESULTAREA_SIZE]; // Contains the result area string TCHAR work_dispResult[RESULTAREA_SIZE]; // Working area for pow results ! int result_len; // Length of the result area string (-1 to ask for recalculation of result_size) bool result_pow; // Signals that we are mixing small and big fonts (exponential display) SIZE result_size; // Result "would-be" size on display without clipping int scroll_result; // DT_LEFT if scrolled left (left align), DT_RIGHT if scrolled right (right align) --- 134,140 ---- TCHAR dispResult[RESULTAREA_SIZE]; // Contains the result area string TCHAR work_dispResult[RESULTAREA_SIZE]; // Working area for pow results ! int result_len; // Length of the result area string bool result_pow; // Signals that we are mixing small and big fonts (exponential display) + bool result_size_recompute; // Ask for recalculation of result_size SIZE result_size; // Result "would-be" size on display without clipping int scroll_result; // DT_LEFT if scrolled left (left align), DT_RIGHT if scrolled right (right align) *************** *** 152,155 **** --- 155,160 ---- public: + int magnification; + Skin(); // Constructor ~Skin(); // Destructor Index: StateManager.cpp =================================================================== RCS file: /cvsroot/easycalc/PPCport/system - UI/StateManager.cpp,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** StateManager.cpp 16 Nov 2009 22:18:41 -0000 1.5 --- StateManager.cpp 15 Dec 2009 21:39:18 -0000 1.6 *************** *** 68,73 **** if (read_shell_state(hWnd_p)) { init_mode = 1; ! } else { // Could not read state file FrmPopupForm(altNoStateFile, hWnd_p); init_shell_state(-1, NULL); init_mode = 2; --- 68,77 ---- if (read_shell_state(hWnd_p)) { init_mode = 1; ! } else { // Could not read state file, create default bases and create state contents FrmPopupForm(altNoStateFile, hWnd_p); + Err error = db_open(); + ErrFatalDisplayIf(error, _T("Can't open CalcDB")); + error = history_open(); + ErrFatalDisplayIf(error, _T("Can't open History DB")); init_shell_state(-1, NULL); init_mode = 2; *************** *** 190,194 **** int4 stVersion; int4 state_size; ! DataManager *dm, *dmHist; Err error; --- 194,198 ---- int4 stVersion; int4 state_size; ! DataManager *dm, *dmHist, *dmSolv; Err error; *************** *** 247,250 **** --- 251,273 ---- ErrFatalDisplayIf(error, _T("Can't open History DB")); + if (stVersion <= 2) { // Introduced with version 3 + dmSolv = NULL; + } else { + if (shell_read_saved_state(&dmSolv, sizeof(DataManager *)) != sizeof(DataManager *)) + return (false); + + if (dmSolv != NULL) { + dmSolv = new DataManager (); + if (dmSolv->deSerialize(stateFile)) { + delete dmSolv; + return (false); + } + // Overwrite previously initialized object + if (stateMgrSolvDB != NULL) + delete stateMgrSolvDB; + stateMgrSolvDB = dmSolv; + } + } + // Initialize the parts of the shell state // that were NOT read from the state file *************** *** 286,289 **** --- 309,317 ---- if ((stateMgrHistDB != NULL) && stateMgrHistDB->serialize(stateFile)) return (false); + // Introduced with state version 3 + if (!shell_write_saved_state(&stateMgrSolvDB, sizeof(DataManager *))) + return (false); + if ((stateMgrSolvDB != NULL) && stateMgrSolvDB->serialize(stateFile)) + return (false); return (true); Index: EasyCalcppc.rc =================================================================== RCS file: /cvsroot/easycalc/PPCport/system - UI/EasyCalcppc.rc,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** EasyCalcppc.rc 16 Nov 2009 22:18:41 -0000 1.7 --- EasyCalcppc.rc 15 Dec 2009 21:39:18 -0000 1.8 *************** *** 30,34 **** // ! IDD_RES_MENU DIALOG 70, 10, 82, 100 STYLE DS_SETFONT | DS_FIXEDSYS | WS_POPUP | WS_VISIBLE | WS_BORDER FONT 8, "MS Shell Dlg" --- 30,34 ---- // ! IDD_RES_MENU DIALOG 65, 10, 82, 100 STYLE DS_SETFONT | DS_FIXEDSYS | WS_POPUP | WS_VISIBLE | WS_BORDER FONT 8, "MS Shell Dlg" *************** *** 37,50 **** END ! IDD_VARENTRY DIALOG 0, 0, 115, 45 STYLE DS_SETFONT | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU ! CAPTION "Save var as" FONT 8, "MS Shell Dlg" BEGIN ! DEFPUSHBUTTON "OK",IDOK,1,31,32,14 ! PUSHBUTTON "Cancel",IDCANCEL,73,31,41,14 LTEXT "Name:",IDC_VARNAME,3,3,35,12 ! COMBOBOX IDC_VARCOMBO,44,1,70,40,CBS_DROPDOWN | CBS_SORT | CBS_LOWERCASE | WS_VSCROLL | WS_TABSTOP ! CONTROL "SIP1",IDC_SIP,"SIPPREF",NOT WS_VISIBLE | WS_TABSTOP,47,31,14,14 END --- 37,56 ---- END ! IDD_SOLVER_CONFIG DIALOG 0, 0, 115, 79 STYLE DS_SETFONT | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU ! CAPTION "Solver config" FONT 8, "MS Shell Dlg" BEGIN ! DEFPUSHBUTTON "OK",IDOK,1,65,32,14 ! PUSHBUTTON "Cancel",IDCANCEL,73,65,41,14 LTEXT "Name:",IDC_VARNAME,3,3,35,12 ! EDITTEXT IDC_EDIT1,44,1,70,14,ES_AUTOHSCROLL ! LTEXT "Minimum:",IDC_MIN,3,19,35,12 ! EDITTEXT IDC_EDITMIN,44,17,70,14,ES_AUTOHSCROLL ! LTEXT "Maximum:",IDC_MAX,3,35,35,12 ! EDITTEXT IDC_EDITMAX,44,33,70,14,ES_AUTOHSCROLL ! LTEXT "Precision:",IDC_PREC,3,51,35,12 ! EDITTEXT IDC_EDITPREC,44,49,70,14,ES_AUTOHSCROLL ! CONTROL "SIP1",IDC_SIP,"SIPPREF",NOT WS_VISIBLE | WS_TABSTOP,47,65,14,14 END *************** *** 59,63 **** PUSHBUTTON "f",IDC_CALCF,143,66,16,14 LTEXT "Name:",IDC_VARNAME,0,4,25,8,NOT WS_GROUP ! EDITTEXT IDC_EDIT1,32,2,60,14,ES_LOWERCASE | ES_AUTOHSCROLL EDITTEXT IDC_EDIT2,0,19,159,43,ES_MULTILINE | ES_AUTOVSCROLL | WS_VSCROLL PUSHBUTTON "Cancel",IDCANCEL,33,66,50,14 --- 65,69 ---- PUSHBUTTON "f",IDC_CALCF,143,66,16,14 LTEXT "Name:",IDC_VARNAME,0,4,25,8,NOT WS_GROUP ! EDITTEXT IDC_EDIT1,32,2,60,14,ES_AUTOHSCROLL EDITTEXT IDC_EDIT2,0,19,159,43,ES_MULTILINE | ES_AUTOVSCROLL | WS_VSCROLL PUSHBUTTON "Cancel",IDCANCEL,33,66,50,14 *************** *** 88,92 **** PUSHBUTTON "f",IDC_CALCF,143,66,16,14 LTEXT "Name:",IDC_VARNAME,0,4,25,8 ! EDITTEXT IDC_EDIT1,32,2,60,14,ES_LOWERCASE | ES_AUTOHSCROLL | WS_GROUP EDITTEXT IDC_EDIT2,0,19,159,43,ES_MULTILINE | ES_AUTOVSCROLL | WS_VSCROLL EDITTEXT IDC_EDIT3,129,2,30,14,ES_AUTOHSCROLL --- 94,98 ---- PUSHBUTTON "f",IDC_CALCF,143,66,16,14 LTEXT "Name:",IDC_VARNAME,0,4,25,8 ! EDITTEXT IDC_EDIT1,32,2,60,14,ES_AUTOHSCROLL | WS_GROUP EDITTEXT IDC_EDIT2,0,19,159,43,ES_MULTILINE | ES_AUTOVSCROLL | WS_VSCROLL EDITTEXT IDC_EDIT3,129,2,30,14,ES_AUTOHSCROLL *************** *** 96,104 **** END ! IDD_LARGE_MENU DIALOG 30, 10, 102, 116 ! STYLE DS_SETFONT | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_VISIBLE FONT 8, "MS Shell Dlg" BEGIN ! LISTBOX IDC_LIST_LARGE,0,0,102,116,LBS_DISABLENOSCROLL | NOT WS_BORDER | WS_VSCROLL | WS_GROUP | WS_TABSTOP,WS_EX_DLGMODALFRAME END --- 102,110 ---- END ! IDD_LARGE_MENU DIALOG 30, 10, 102, 117 ! STYLE DS_SETFONT | DS_FIXEDSYS | WS_POPUP | WS_VISIBLE | WS_BORDER FONT 8, "MS Shell Dlg" BEGIN ! LISTBOX IDC_LIST_LARGE,0,0,102,117,LBS_DISABLENOSCROLL | NOT WS_BORDER | WS_VSCROLL | WS_GROUP | WS_TABSTOP END *************** *** 160,168 **** END ! IDD_SLIM_MENU DIALOG 30, 10, 72, 116 ! STYLE DS_SETFONT | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_VISIBLE FONT 8, "MS Shell Dlg" BEGIN ! LISTBOX IDC_LIST_SLIM,0,0,72,116,LBS_DISABLENOSCROLL | NOT WS_BORDER | WS_VSCROLL | WS_GROUP | WS_TABSTOP,WS_EX_DLGMODALFRAME END --- 166,174 ---- END ! IDD_SLIM_MENU DIALOG 40, 10, 72, 117 ! STYLE DS_SETFONT | DS_FIXEDSYS | WS_POPUP | WS_VISIBLE | WS_BORDER FONT 8, "MS Shell Dlg" BEGIN ! LISTBOX IDC_LIST_SLIM,0,0,72,117,LBS_DISABLENOSCROLL | NOT WS_BORDER | WS_VSCROLL | WS_GROUP | WS_TABSTOP END *************** *** 227,231 **** PUSHBUTTON "Cancel",IDCANCEL,73,31,41,14 LTEXT "Value:",IDC_VARNAME,3,3,35,12 ! EDITTEXT IDC_EDIT2,43,1,71,14,ES_LOWERCASE | ES_AUTOHSCROLL PUSHBUTTON "V",IDC_VAR,66,16,16,14 PUSHBUTTON "F",IDC_USERF,82,16,16,14 --- 233,237 ---- PUSHBUTTON "Cancel",IDCANCEL,73,31,41,14 LTEXT "Value:",IDC_VARNAME,3,3,35,12 ! EDITTEXT IDC_EDIT2,43,1,71,14,ES_AUTOHSCROLL PUSHBUTTON "V",IDC_VAR,66,16,16,14 PUSHBUTTON "F",IDC_USERF,82,16,16,14 *************** *** 248,251 **** --- 254,334 ---- END + IDD_SOLVER DIALOG 0, 0, 160, 165 + STYLE DS_SETFONT | DS_FIXEDSYS | DS_CONTROL | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU + CAPTION "Solver" + FONT 8, "MS Shell Dlg" + BEGIN + CONTROL "",IDC_VARLIST,"SysListView32",LVS_REPORT | LVS_SINGLESEL | LVS_SHOWSELALWAYS | LVS_ALIGNLEFT | LVS_NOSORTHEADER | WS_BORDER | WS_TABSTOP,1,85,158,63 + DEFPUSHBUTTON "OK",IDOK,0,150,30,14 + PUSHBUTTON "Modify",IDC_MODIFY,34,150,40,14 + PUSHBUTTON "Solve",IDC_SOLVE,107,150,52,14 + COMBOBOX IDC_COMBO_WKSHT,1,1,67,80,CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | WS_TABSTOP + PUSHBUTTON "Delete",IDC_DELETE,119,1,40,14 + EDITTEXT IDC_EDIT2,0,20,141,43,ES_MULTILINE | ES_AUTOVSCROLL | WS_VSCROLL + PUSHBUTTON "Update",IDC_UPDATE,74,68,40,14 + PUSHBUTTON "Config",IDC_CONFIG,74,1,40,14 + PUSHBUTTON "Notes",IDC_NOTES,119,68,40,14 + EDITTEXT IDC_VARCOMMENT,1,68,67,14,ES_AUTOHSCROLL | ES_READONLY + PUSHBUTTON "V",IDC_VAR,143,20,16,14 + PUSHBUTTON "F",IDC_USERF,143,35,16,14 + PUSHBUTTON "f",IDC_CALCF,143,49,16,14 + CONTROL "SIP1",IDC_SIP,"SIPPREF",NOT WS_VISIBLE | WS_TABSTOP,83,150,14,14 + END + + IDD_NOTES DIALOG 0, 0, 160, 165 + STYLE DS_SETFONT | DS_FIXEDSYS | DS_CONTROL | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU + CAPTION "Solver" + FONT 8, "MS Shell Dlg" + BEGIN + DEFPUSHBUTTON "OK",IDOK,0,150,30,14 + EDITTEXT IDC_EDIT2,0,1,159,146,ES_MULTILINE | ES_AUTOVSCROLL | WS_VSCROLL + CONTROL "SIP1",IDC_SIP,"SIPPREF",NOT WS_VISIBLE | WS_TABSTOP,83,150,14,14 + END + + IDD_VARENTRY DIALOG 0, 0, 115, 45 + STYLE DS_SETFONT | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU + CAPTION "Save var as" + FONT 8, "MS Shell Dlg" + BEGIN + DEFPUSHBUTTON "OK",IDOK,1,31,32,14 + PUSHBUTTON "Cancel",IDCANCEL,73,31,41,14 + LTEXT "Name:",IDC_VARNAME,3,3,35,12 + COMBOBOX IDC_VARCOMBO,44,1,70,40,CBS_DROPDOWN | CBS_SORT | WS_VSCROLL | WS_TABSTOP + CONTROL "SIP1",IDC_SIP,"SIPPREF",NOT WS_VISIBLE | WS_TABSTOP,47,31,14,14 + END + + IDD_FINANCIALS DIALOG 0, 0, 160, 124 + STYLE DS_SETFONT | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU + CAPTION "Financial calculator" + FONT 8, "MS Shell Dlg" + BEGIN + DEFPUSHBUTTON "OK",IDOK,0,108,30,14 + CONTROL "",IDC_VARLIST,"SysListView32",LVS_REPORT | LVS_SHOWSELALWAYS | LVS_ALIGNLEFT | LVS_NOCOLUMNHEADER | WS_BORDER | WS_TABSTOP,0,17,159,56 + CONTROL "Begin period",IDC_BEGINP,"Button",BS_AUTORADIOBUTTON | BS_MULTILINE | WS_GROUP,53,106,50,16 + CONTROL "End period",IDC_ENDP,"Button",BS_AUTORADIOBUTTON | BS_MULTILINE,109,106,50,16 + CONTROL "SIP1",IDC_SIP,"SIPPREF",NOT WS_VISIBLE,33,108,14,14 + EDITTEXT IDC_VARCOMMENT,0,2,159,14,ES_AUTOHSCROLL | ES_READONLY + LTEXT "Total payment",IDC_VARNAME3,0,77,87,12 + EDITTEXT IDC_EDIT3,89,75,70,14,ES_AUTOHSCROLL | ES_READONLY + LTEXT "Total cost",IDC_VARNAME4,0,92,87,12 + EDITTEXT IDC_EDIT4,89,90,70,14,ES_AUTOHSCROLL | ES_READONLY + END + + IDD_FINANCIALS1 DIALOG 0, 0, 160, 124 + STYLE DS_SETFONT | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU + CAPTION "Financial calculator" + FONT 8, "MS Shell Dlg" + BEGIN + DEFPUSHBUTTON "OK",IDOK,0,108,30,14 + CONTROL "",IDC_VARLIST,"SysListView32",LVS_REPORT | LVS_SHOWSELALWAYS | LVS_ALIGNLEFT | LVS_NOCOLUMNHEADER | WS_BORDER | WS_TABSTOP,0,17,159,56 + CONTROL "Begin period",IDC_BEGINP,"Button",BS_AUTORADIOBUTTON | BS_MULTILINE | WS_GROUP,53,106,50,16 + CONTROL "End period",IDC_ENDP,"Button",BS_AUTORADIOBUTTON | BS_MULTILINE,109,106,50,16 + CONTROL "SIP1",IDC_SIP,"SIPPREF",NOT WS_VISIBLE,33,108,14,14 + EDITTEXT IDC_VARCOMMENT,0,2,159,14,ES_AUTOHSCROLL | ES_READONLY + EDITTEXT IDC_EDIT3,89,75,70,14,ES_AUTOHSCROLL | ES_READONLY + EDITTEXT IDC_EDIT4,89,90,70,14,ES_AUTOHSCROLL | ES_READONLY + CONTROL "",IDC_TREE1,"SysTreeView32",TVS_HASBUTTONS | TVS_HASLINES | TVS_LINESATROOT | WS_BORDER | WS_HSCROLL | WS_TABSTOP,22,73,60,50 + END + ///////////////////////////////////////////////////////////////////////////// *************** *** 257,264 **** GUIDELINES DESIGNINFO BEGIN ! IDD_VARENTRY, DIALOG BEGIN RIGHTMARGIN, 114 TOPMARGIN, 1 END --- 340,348 ---- GUIDELINES DESIGNINFO BEGIN ! IDD_SOLVER_CONFIG, DIALOG BEGIN RIGHTMARGIN, 114 TOPMARGIN, 1 + BOTTOMMARGIN, 45 END *************** *** 285,288 **** --- 369,377 ---- END + IDD_LARGE_MENU, DIALOG + BEGIN + BOTTOMMARGIN, 116 + END + IDD_OPT_GENERAL, DIALOG BEGIN *************** *** 345,348 **** --- 434,471 ---- BOTTOMMARGIN, 164 END + + IDD_SOLVER, DIALOG + BEGIN + LEFTMARGIN, 1 + RIGHTMARGIN, 159 + TOPMARGIN, 1 + BOTTOMMARGIN, 164 + END + + IDD_NOTES, DIALOG + BEGIN + LEFTMARGIN, 1 + RIGHTMARGIN, 159 + TOPMARGIN, 1 + BOTTOMMARGIN, 164 + END + + IDD_VARENTRY, DIALOG + BEGIN + RIGHTMARGIN, 114 + TOPMARGIN, 1 + END + + IDD_FINANCIALS, DIALOG + BEGIN + RIGHTMARGIN, 159 + TOPMARGIN, 2 + END + + IDD_FINANCIALS1, DIALOG + BEGIN + RIGHTMARGIN, 159 + TOPMARGIN, 2 + END END #endif // APSTUDIO_INVOKED *************** *** 368,371 **** --- 491,503 ---- BEGIN MENUITEM "Options", IDM_FILE_OPTIONS + MENUITEM SEPARATOR + MENUITEM "Import", IDM_FILE_IMPORT + POPUP "Export" + BEGIN + MENUITEM "Variables", IDM_EXPORT_VARIABLES + MENUITEM "Functions", IDM_EXPORT_FUNCTIONS + MENUITEM "Equations", IDM_EXPORT_EQUATIONS + END + MENUITEM SEPARATOR MENUITEM "Exit", IDM_FILE_EXIT END *************** *** 378,384 **** --- 510,522 ---- MENUITEM "Clear history", IDM_EDIT_CLEARHISTORY MENUITEM SEPARATOR + MENUITEM "Data Manager", IDM_EDIT_DATAMANAGER MENUITEM "List Editor", IDM_EDIT_LISTEDITOR MENUITEM "Matrix Editor", IDM_EDIT_MATRIXEDITOR END + POPUP "Special" + BEGIN + MENUITEM "Solver", IDM_SPECIAL_SOLVER + MENUITEM "Financial calculator", IDM_SPECIAL_FINANCIALCALCULATOR + END POPUP "Help" BEGIN *************** *** 416,419 **** --- 554,558 ---- IDS_HELP "Help" IDS_EDIT "Edit" + IDS_SPECIAL "Special" END Index: EasyCalcppc.rc2 =================================================================== RCS file: /cvsroot/easycalc/PPCport/system - UI/EasyCalcppc.rc2,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** EasyCalcppc.rc2 22 Jun 2009 22:13:35 -0000 1.1 --- EasyCalcppc.rc2 15 Dec 2009 21:39:18 -0000 1.2 *************** *** 25,29 **** BEGIN IDR_MENU, ! 3, I_IMAGENONE, IDM_FILE, TBSTATE_ENABLED, TBSTYLE_DROPDOWN | TBSTYLE_AUTOSIZE, --- 25,29 ---- BEGIN IDR_MENU, ! 4, I_IMAGENONE, IDM_FILE, TBSTATE_ENABLED, TBSTYLE_DROPDOWN | TBSTYLE_AUTOSIZE, *************** *** 33,38 **** IDS_EDIT, 0, 1, I_IMAGENONE, IDM_HELP, TBSTATE_ENABLED, TBSTYLE_DROPDOWN | TBSTYLE_AUTOSIZE, ! IDS_HELP, 0, 2, END --- 33,41 ---- IDS_EDIT, 0, 1, + I_IMAGENONE, IDM_SPECIAL, TBSTATE_ENABLED, TBSTYLE_DROPDOWN | TBSTYLE_AUTOSIZE, + IDS_SPECIAL, 0, 2, + I_IMAGENONE, IDM_HELP, TBSTATE_ENABLED, TBSTYLE_DROPDOWN | TBSTYLE_AUTOSIZE, ! IDS_HELP, 0, 3, END Index: resourceppc.h =================================================================== RCS file: /cvsroot/easycalc/PPCport/system - UI/resourceppc.h,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** resourceppc.h 16 Nov 2009 22:18:41 -0000 1.7 --- resourceppc.h 15 Dec 2009 21:39:18 -0000 1.8 *************** *** 5,9 **** #define IDS_APP_TITLE 1 #define IDC_EASYCALC 2 ! #define IDC_EASYCALC_ACCEL 2 #define IDI_EASYCALC 101 #define IDR_MENU 102 --- 5,9 ---- #define IDS_APP_TITLE 1 #define IDC_EASYCALC 2 ! #define IDC_EASYCALC_ACCEL 3 #define IDI_EASYCALC 101 #define IDR_MENU 102 *************** *** 13,20 **** #define IDD_ABOUTBOX_WIDE 106 #define IDS_EDIT 107 #define IDD_OPT_GENERAL 131 #define IDD_OPT_SKINS 132 #define IDD_RES_MENU 134 ! #define IDD_VARENTRY 137 #define IDD_EDITVAR 138 #define IDD_DATAMGR 139 --- 13,22 ---- #define IDD_ABOUTBOX_WIDE 106 #define IDS_EDIT 107 + #define IDS_SPECIAL 108 #define IDD_OPT_GENERAL 131 #define IDD_OPT_SKINS 132 #define IDD_RES_MENU 134 ! #define IDD_VARENTRY 136 ! #define IDD_SOLVER_CONFIG 137 #define IDD_EDITVAR 138 #define IDD_DATAMGR 139 *************** *** 26,31 **** #define IDD_LISTEDIT 147 #define IDD_VARSTRINGENTRY 148 - #define IDD_LISTEDIT1 149 #define IDD_MATRIXEDIT 149 #define IDC_STATIC_1 201 #define IDC_STATIC_2 202 --- 28,36 ---- #define IDD_LISTEDIT 147 #define IDD_VARSTRINGENTRY 148 #define IDD_MATRIXEDIT 149 + #define IDD_SOLVER 150 + #define IDD_NOTES 151 + #define IDD_FINANCIALS 152 + #define IDD_FINANCIALS1 153 #define IDC_STATIC_1 201 #define IDC_STATIC_2 202 *************** *** 44,47 **** --- 49,55 ---- #define IDC_NEW 1044 #define IDC_MODIFY 1045 + #define IDC_UPDATE 1047 + #define IDC_CONFIG 1048 + #define IDC_NOTES 1049 #define IDC_USERF 1054 #define IDC_CALCF 1055 *************** *** 74,78 **** --- 82,91 ---- #define IDC_ASSISTGROUP 1085 #define IDC_VARNAME 1088 + #define IDC_MIN 1089 + #define IDC_VARNAME2 1089 + #define IDC_VARNAME4 1089 #define IDC_TITLE 1090 + #define IDC_MAX 1090 + #define IDC_PREC 1091 #define IDC_LANGUAGE_CB 1093 #define IDC_LANGUAGE 1094 *************** *** 87,96 **** #define IDC_DELETE 1116 #define IDC_EDIT1 1117 #define IDC_SIP 1120 #define IDC_EDITMATRIX 1128 #define IDC_COMBO_MATRIX 1129 #define IDC_COMBO_NBROWS 1130 #define IDC_COMBO_NBCOLS 1131 ! #define IDM_EXIT 32774 #define IDM_FILE_EXIT 32777 #define IDM_EDIT_CLEARHISTORY 32782 --- 100,122 ---- #define IDC_DELETE 1116 #define IDC_EDIT1 1117 + #define IDC_EDIT4 1118 + #define IDC_EDITMAX 1119 #define IDC_SIP 1120 + #define IDC_EDITPREC 1121 #define IDC_EDITMATRIX 1128 #define IDC_COMBO_MATRIX 1129 #define IDC_COMBO_NBROWS 1130 #define IDC_COMBO_NBCOLS 1131 ! #define IDC_SOLVE 1132 ! #define IDC_VARLIST 1133 ! #define IDC_COMBO_WKSHT 1134 ! #define IDC_EDITMIN 1136 ! #define IDC_VARCOMMENT 1137 ! #define IDC_LIST1 1138 ! #define IDC_ENDP 1139 ! #define IDC_BEGINP 1140 ! #define IDC_RADIO2 1142 ! #define IDC_VARNAME3 1143 ! #define IDC_TREE1 1144 #define IDM_FILE_EXIT 32777 #define IDM_EDIT_CLEARHISTORY 32782 *************** *** 100,105 **** #define IDM_EDIT_CLIPCOPY 32787 #define IDM_EDIT_LISTEDITOR 32789 - #define ID_EDIT_MATRIXEDITOR 32790 #define IDM_EDIT_MATRIXEDITOR 32791 #define IDM_OK 40000 #define IDM_HELP 40001 --- 126,143 ---- #define IDM_EDIT_CLIPCOPY 32787 #define IDM_EDIT_LISTEDITOR 32789 #define IDM_EDIT_MATRIXEDITOR 32791 + #define IDM_SPECIAL_SOLVER 32793 + #define IDM_SPECIAL_FINANCIALCALCULATOR 32794 + #define ID_FILE_IMPORT 32795 + #define ID_FILE_EXPORT 32796 + #define ID_EXPORT_VARIABLES 32797 + #define ID_EXPORT_FUNCTIONS 32798 + #define ID_EXPORT_EQUATIONS 32799 + #define IDM_FILE_IMPORT 32800 + #define IDM_EXPORT_VARIABLES 32801 + #define IDM_EXPORT_FUNCTIONS 32802 + #define IDM_EXPORT_EQUATIONS 32803 + #define ID_Menu 32804 + #define IDM_EDIT_DATAMANAGER 32805 #define IDM_OK 40000 #define IDM_HELP 40001 *************** *** 107,110 **** --- 145,149 ---- #define IDM_FILE 40003 #define IDM_EDIT 40004 + #define IDM_SPECIAL 40005 #define IDC_STATIC -1 *************** *** 114,120 **** #ifndef APSTUDIO_READONLY_SYMBOLS #define _APS_NO_MFC 1 ! #define _APS_NEXT_RESOURCE_VALUE 149 ! #define _APS_NEXT_COMMAND_VALUE 32792 ! #define _APS_NEXT_CONTROL_VALUE 1132 #define _APS_NEXT_SYMED_VALUE 112 #endif --- 153,159 ---- #ifndef APSTUDIO_READONLY_SYMBOLS #define _APS_NO_MFC 1 ! #define _APS_NEXT_RESOURCE_VALUE 152 ! #define _APS_NEXT_COMMAND_VALUE 32806 ! #define _APS_NEXT_CONTROL_VALUE 1145 #define _APS_NEXT_SYMED_VALUE 112 #endif Index: Skin.cpp =================================================================== RCS file: /cvsroot/easycalc/PPCport/system - UI/Skin.cpp,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** Skin.cpp 16 Nov 2009 22:18:41 -0000 1.9 --- Skin.cpp 15 Dec 2009 21:39:18 -0000 1.10 *************** *** 69,72 **** --- 69,73 ---- *dispResult = 0; // Empty string result_len = 0; + result_size_recompute = true; result_pow = false; scroll_result = DT_RIGHT; *************** *** 301,305 **** if (keylist != NULL) ! free(keylist); keylist = NULL; nkeys = 0; --- 302,306 ---- if (keylist != NULL) ! mfree(keylist); keylist = NULL; nkeys = 0; *************** *** 308,317 **** while (macrolist != NULL) { SkinMacro *m = macrolist->next; ! free(macrolist); macrolist = m; } if (keymap != NULL) ! free(keymap); keymap = NULL; keymap_length = 0; --- 309,318 ---- while (macrolist != NULL) { SkinMacro *m = macrolist->next; ! mfree(macrolist); macrolist = m; } if (keymap != NULL) ! mfree(keymap); keymap = NULL; keymap_length = 0; *************** *** 366,370 **** if (nkeys == keys_cap) { keys_cap += 50; ! keylist = (SkinKey *) realloc(keylist, keys_cap * sizeof(SkinKey)); // TODO - handle memory allocation failure } --- 367,371 ---- if (nkeys == keys_cap) { keys_cap += 50; ! keylist = (SkinKey *) mrealloc(keylist, keys_cap * sizeof(SkinKey)); // TODO - handle memory allocation failure } *************** *** 400,404 **** /* Not a proper number; ignore this macro */ if (macro != NULL) { ! free(macro); macro = NULL; break; --- 401,405 ---- /* Not a proper number; ignore this macro */ if (macro != NULL) { ! mfree(macro); macro = NULL; break; *************** *** 409,413 **** /* Macro code out of range; ignore this macro */ break; ! macro = (SkinMacro *) malloc(sizeof(SkinMacro)); // TODO - handle memory allocation failure macro->code = n; --- 410,414 ---- /* Macro code out of range; ignore this macro */ break; ! macro = (SkinMacro *) mmalloc(sizeof(SkinMacro)); // TODO - handle memory allocation failure macro->code = n; *************** *** 415,419 **** if (n < 1 || n > NB_KEYS) { /* Key code out of range; ignore this macro */ ! free(macro); macro = NULL; break; --- 416,420 ---- if (n < 1 || n > NB_KEYS) { /* Key code out of range; ignore this macro */ ! mfree(macro); macro = NULL; break; *************** *** 453,457 **** if (keymap_length == kmcap) { kmcap += 50; ! keymap = (keymap_entry *) realloc(keymap, kmcap * sizeof(keymap_entry)); // TODO - handle memory allocation failure } --- 454,458 ---- if (keymap_length == kmcap) { kmcap += 50; ! keymap = (keymap_entry *) mrealloc(keymap, kmcap * sizeof(keymap_entry)); // TODO - handle memory allocation failure } *************** *** 492,496 **** // on a larger screen, fall back on a tidy integral scale factor // and just leave some screen space unused. ! display_scale.x = (int) (magnification * 1.67); else display_scale.x *= magnification; --- 493,498 ---- // on a larger screen, fall back on a tidy integral scale factor // and just leave some screen space unused. ! // display_scale.x = (int) (magnification * 1.67); ! display_scale.x = magnification; else display_scale.x *= magnification; *************** *** 529,533 **** display_w = 216; else ! display_w = 131 * display_scale.x; display_h = 16 * display_scale.y; } --- 531,536 ---- display_w = 216; else ! // display_w = 131 * display_scale.x; ! display_w = 216 * display_scale.x; display_h = 16 * display_scale.y; } *************** *** 558,562 **** /********************************/ if (disp_bitmap != NULL) ! free(disp_bitmap); int lcd_w, lcd_h; --- 561,565 ---- /********************************/ if (disp_bitmap != NULL) ! mfree(disp_bitmap); int lcd_w, lcd_h; *************** *** 573,577 **** disp_bytesperline = ((lcd_w * display_scale.x + 15) >> 3) & ~1; size = disp_bytesperline * lcd_h * display_scale.y; ! disp_bitmap = (unsigned char *) malloc(size); // TODO - handle memory allocation failure memset(disp_bitmap, 255, size); --- 576,580 ---- disp_bytesperline = ((lcd_w * display_scale.x + 15) >> 3) & ~1; size = disp_bytesperline * lcd_h * display_scale.y; ! disp_bitmap = (unsigned char *) mmalloc(size); // TODO - handle memory allocation failure memset(disp_bitmap, 255, size); *************** *** 586,590 **** int width, int height) { if (skin_bitmap != NULL) { ! free(skin_bitmap); skin_bitmap = NULL; } --- 589,593 ---- int width, int height) { if (skin_bitmap != NULL) { ! mfree(skin_bitmap); skin_bitmap = NULL; } *************** *** 594,598 **** } if (skin_header != NULL) { ! free(skin_header); skin_header = NULL; } --- 597,601 ---- } if (skin_header != NULL) { ! mfree(skin_header); skin_header = NULL; } *************** *** 620,624 **** } ! skin_bitmap = (unsigned char *) malloc(skin_bytesperline * height); // TODO - handle memory allocation failure skin_width = width; --- 623,627 ---- } ! skin_bitmap = (unsigned char *) mmalloc(skin_bytesperline * height); // TODO - handle memory allocation failure skin_width = width; *************** *** 744,748 **** RGBQUAD *cmap; int i; ! bh = (BITMAPINFOHEADER *) malloc(sizeof(BITMAPINFOHEADER) + skin_ncolors * sizeof(RGBQUAD)); // TODO - handle memory allocation failure cmap = (RGBQUAD *) (bh + 1); --- 747,751 ---- RGBQUAD *cmap; int i; ! bh = (BITMAPINFOHEADER *) mmalloc(sizeof(BITMAPINFOHEADER) + skin_ncolors * sizeof(RGBQUAD)); // TODO - handle memory allocation failure cmap = (RGBQUAD *) (bh + 1); *************** *** 756,760 **** RGBQUAD *cmap; int i; ! bh = (BITMAPINFOHEADER *) malloc(sizeof(BITMAPINFOHEADER) + 256 * sizeof(RGBQUAD)); // TODO - handle memory allocation failure cmap = (RGBQUAD *) (bh + 1); --- 759,763 ---- RGBQUAD *cmap; int i; ! bh = (BITMAPINFOHEADER *) mmalloc(sizeof(BITMAPINFOHEADER) + 256 * sizeof(RGBQUAD)); // TODO - handle memory allocation failure cmap = (RGBQUAD *) (bh + 1); *************** *** 764,768 **** } } else ! bh = (BITMAPINFOHEADER *) malloc(sizeof(BITMAPINFOHEADER)); // TODO - handle memory allocation failure --- 767,771 ---- } } else ! bh = (BITMAPINFOHEADER *) mmalloc(sizeof(BITMAPINFOHEADER)); // TODO - handle memory allocation failure *************** *** 819,823 **** return (0); memcpy(bits, skin_bitmap, skin_bytesperline * skin_height); ! free(skin_bitmap); skin_bitmap = NULL; } --- 822,826 ---- return (0); memcpy(bits, skin_bitmap, skin_bytesperline * skin_height); ! mfree(skin_bitmap); skin_bitmap = NULL; } *************** *** 1148,1157 **** if (hwndE != NULL) { BOOL res = MoveWindow(hwndE, ! display_loc.x, display_loc.y + 18, display_w, 30, TRUE); } else { // hwndE = CreateWindow(_T("EDIT2"), NULL, dwStyle, hwndE = CreateWindow(_T("EDIT"), NULL, dwStyle, ! display_loc.x, display_loc.y + 18, display_w, 30, hWnd_p, NULL, hinst, NULL); cedit2_obj = subclassEdit(hWnd_p, hwndE); --- 1151,1162 ---- if (hwndE != NULL) { BOOL res = MoveWindow(hwndE, ! display_loc.x, display_loc.y + 18 * magnification, ! display_w, 30 * magnification, TRUE); } else { // hwndE = CreateWindow(_T("EDIT2"), NULL, dwStyle, hwndE = CreateWindow(_T("EDIT"), NULL, dwStyle, ! display_loc.x, display_loc.y + 18 * magnification, ! display_w, 30 * magnification, hWnd_p, NULL, hinst, NULL); cedit2_obj = subclassEdit(hWnd_p, hwndE); *************** *** 1164,1168 **** // Clear out the lf structure to use when creating the font. memset(&lf, 0, sizeof(LOGFONT)); ! lf.lfHeight = 14; _tcscpy(lf.lfFaceName, _T("Tahoma")); hFont_input = CreateFontIndirect(&lf); --- 1169,1173 ---- // Clear out the lf structure to use when creating the font. memset(&lf, 0, sizeof(LOGFONT)); ! lf.lfHeight = 14 * magnification; _tcscpy(lf.lfFaceName, _T("Tahoma")); hFont_input = CreateFontIndirect(&lf); *************** *** 1294,1298 **** if (hwnd_edit == NULL) hwnd_edit = hwndE; ! BOOL res = SetWindowText (hwnd_edit, text); } --- 1299,1303 ---- if (hwnd_edit == NULL) hwnd_edit = hwndE; ! BOOL res = SetWindowText(hwnd_edit, text); } *************** *** 1301,1305 **** ********************************************************************************/ TCHAR *Skin::get_input_text() { ! int res = GetWindowText (hwndE, inputText, INPUTAREA_SIZE); return (inputText); } --- 1306,1310 ---- ********************************************************************************/ TCHAR *Skin::get_input_text() { ! int res = GetWindowText(hwndE, inputText, INPUTAREA_SIZE); return (inputText); } *************** *** 1310,1314 **** void Skin::print_result (void *hWnd_p, TCHAR *res_text) { // Save the text and call the main method ! _tcscpy (dispResult, res_text); result_pow = false; // Just a mono font result --- 1315,1325 ---- void Skin::print_result (void *hWnd_p, TCHAR *res_text) { // Save the text and call the main method ! //_tcscpy(dispResult, res_text); ! result_len = _tcslen(res_text); ! if (result_len >= RESULTAREA_SIZE) { ! result_len = RESULTAREA_SIZE - 1; ! } ! _tcsncpy(dispResult, res_text, result_len); ! dispResult[result_len] = _T('\0'); result_pow = false; // Just a mono font result *************** *** 1322,1336 **** ********************************************************************************/ void Skin::print_result (HDC hdc) { ! HBITMAP bitmap = CreateBitmap(display_w, 18, 1, 1, disp_bitmap); HDC memdc = CreateCompatibleDC(hdc); HGDIOBJ oldObject = SelectObject(memdc, bitmap); COLORREF old_bg = SetBkColor(hdc, display_bg); COLORREF old_fg = SetTextColor(hdc, display_fg); ! BitBlt(hdc, display_loc.x, display_loc.y, display_w, 18, memdc, 0, 0, SRCCOPY); SelectObject(memdc, oldObject); // Set back default object DeleteDC(memdc); DeleteObject(bitmap); ! result_len = -1; // Recalculate result_size in paint_result() scroll_result = DT_RIGHT; paint_result(hdc); --- 1333,1347 ---- ********************************************************************************/ void Skin::print_result (HDC hdc) { ! HBITMAP bitmap = CreateBitmap(display_w, 18 * magnification, 1, 1, disp_bitmap); HDC memdc = CreateCompatibleDC(hdc); HGDIOBJ oldObject = SelectObject(memdc, bitmap); COLORREF old_bg = SetBkColor(hdc, display_bg); COLORREF old_fg = SetTextColor(hdc, display_fg); ! BitBlt(hdc, display_loc.x, display_loc.y, display_w, 18 * magnification, memdc, 0, 0, SRCCOPY); SelectObject(memdc, oldObject); // Set back default object DeleteDC(memdc); DeleteObject(bitmap); ! result_size_recompute = true; // Recalculate result_size in paint_result() scroll_result = DT_RIGHT; paint_result(hdc); *************** *** 1342,1346 **** void Skin::paint_result (HDC hdc) { RECT rc = {display_loc.x, display_loc.y, ! display_loc.x + display_w, display_loc.y + 18}; // Set colors and font --- 1353,1357 ---- void Skin::paint_result (HDC hdc) { RECT rc = {display_loc.x, display_loc.y, ! display_loc.x + display_w, display_loc.y + 18 * magnification}; // Set colors and font *************** *** 1351,1355 **** // Clear out the lf structure to use when creating the font. memset(&lf, 0, sizeof(LOGFONT)); ! lf.lfHeight = 18; lf.lfWeight = FW_BOLD; _tcscpy(lf.lfFaceName, _T("Tahoma")); --- 1362,1366 ---- // Clear out the lf structure to use when creating the font. memset(&lf, 0, sizeof(LOGFONT)); ! lf.lfHeight = 18 * magnification; lf.lfWeight = FW_BOLD; _tcscpy(lf.lfFaceName, _T("Tahoma")); *************** *** 1358,1364 **** HFONT oldFont = (HFONT)SelectObject(hdc, hFontBig_display); ! if (result_len == -1) { ! result_len = _tcslen(dispResult); GetTextExtentPoint32(hdc, dispResult, result_len, &result_size); } // Display text - scroll result is either DT_LEFT or DT_RIGHT --- 1369,1375 ---- HFONT oldFont = (HFONT)SelectObject(hdc, hFontBig_display); ! if (result_size_recompute) { GetTextExtentPoint32(hdc, dispResult, result_len, &result_size); + result_size_recompute = false; } // Display text - scroll result is either DT_LEFT or DT_RIGHT *************** *** 1391,1395 **** void Skin::print_resultpow (void *hWnd_p, TCHAR *res_text) { // Save the text and call the appropriate method ! _tcscpy (dispResult, res_text); HDC hdc = GetDC((HWND) hWnd_p); --- 1402,1412 ---- void Skin::print_resultpow (void *hWnd_p, TCHAR *res_text) { // Save the text and call the appropriate method ! //_tcscpy(dispResult, res_text); ! result_len = _tcslen(res_text); ! if (result_len >= RESULTAREA_SIZE) { ! result_len = RESULTAREA_SIZE - 1; ! } ! _tcsncpy(dispResult, res_text, result_len); ! dispResult[result_len] = _T('\0'); HDC hdc = GetDC((HWND) hWnd_p); *************** *** 1408,1422 **** ********************************************************************************/ void Skin::print_resultpow (HDC hdc) { ! HBITMAP bitmap = CreateBitmap(display_w, 18, 1, 1, disp_bitmap); HDC memdc = CreateCompatibleDC(hdc); HGDIOBJ oldObject = SelectObject(memdc, bitmap); COLORREF old_bg = SetBkColor(hdc, display_bg); COLORREF old_fg = SetTextColor(hdc, display_fg); ! BitBlt(hdc, display_loc.x, display_loc.y, display_w, 18, memdc, 0, 0, SRCCOPY); SelectObject(memdc, oldObject); // Set back default object DeleteDC(memdc); DeleteObject(bitmap); ! result_len = -1; // Recalculate result_size in paint_resultpow() scroll_result = DT_RIGHT; paint_resultpow(hdc); --- 1425,1439 ---- ********************************************************************************/ void Skin::print_resultpow (HDC hdc) { ! HBITMAP bitmap = CreateBitmap(display_w, 18 * magnification, 1, 1, disp_bitmap); HDC memdc = CreateCompatibleDC(hdc); HGDIOBJ oldObject = SelectObject(memdc, bitmap); COLORREF old_bg = SetBkColor(hdc, display_bg); COLORREF old_fg = SetTextColor(hdc, display_fg); ! BitBlt(hdc, display_loc.x, display_loc.y, display_w, 18 * magnification, memdc, 0, 0, SRCCOPY); SelectObject(memdc, oldObject); // Set back default object DeleteDC(memdc); DeleteObject(bitmap); ! result_size_recompute = true; // Recalculate result_size in paint_resultpow() scroll_result = DT_RIGHT; paint_resultpow(hdc); *************** *** 1432,1436 **** int oldBg = SetBkMode(hdc, TRANSPARENT); ! if (result_len == -1) { // Calculate approximate size with big font only COLORREF oldFg = SetTextColor(hdc, display_fg); --- 1449,1453 ---- int oldBg = SetBkMode(hdc, TRANSPARENT); ! if (result_size_recompute) { // Calculate approximate size with big font only COLORREF oldFg = SetTextColor(hdc, display_fg); *************** *** 1440,1444 **** // Clear out the lf structure to use when creating the font. memset(&lf, 0, sizeof(LOGFONT)); ! lf.lfHeight = 18; lf.lfWeight = FW_BOLD; _tcscpy(lf.lfFaceName, _T("Tahoma")); --- 1457,1461 ---- // Clear out the lf structure to use when creating the font. memset(&lf, 0, sizeof(LOGFONT)); ! lf.lfHeight = 18 * magnification; lf.lfWeight = FW_BOLD; _tcscpy(lf.lfFaceName, _T("Tahoma")); *************** *** 1457,1462 **** _tcscpy(work_dispResult, dispResult); // Use a work area, since text will be altered paint_resultpow_rec(hdc, false, work_dispResult); // Start with normal text. ! if (result_len == -1) // Was left at -1 to provoke recomputation of result_size.cx ! result_len = _tcslen(dispResult); if (result_len > 0) { // Handle scroll annunciators when necessary --- 1474,1479 ---- _tcscpy(work_dispResult, dispResult); // Use a work area, since text will be altered paint_resultpow_rec(hdc, false, work_dispResult); // Start with normal text. ! if (result_size_recompute) // Was left at -1 to provoke recomputation of result_size.cx ! result_size_recompute = false; if (result_len > 0) { // Handle scroll annunciators when necessary *************** *** 1561,1565 **** // Clear out the lf structure to use when creating the font. memset(&lf, 0, sizeof(LOGFONT)); ! lf.lfHeight = 12; lf.lfWeight = FW_BOLD; _tcscpy(lf.lfFaceName, _T("Tahoma")); --- 1578,1582 ---- // Clear out the lf structure to use when creating the font. memset(&lf, 0, sizeof(LOGFONT)); ! lf.lfHeight = 12 * magnification; lf.lfWeight = FW_BOLD; _tcscpy(lf.lfFaceName, _T("Tahoma")); *************** *** 1574,1578 **** // Clear out the lf structure to use when creating the font. memset(&lf, 0, sizeof(LOGFONT)); ! lf.lfHeight = 18; lf.lfWeight = FW_BOLD; _tcscpy(lf.lfFaceName, _T("Tahoma")); --- 1591,1595 ---- // Clear out the lf structure to use when creating the font. memset(&lf, 0, sizeof(LOGFONT)); ! lf.lfHeight = 18 * magnification; lf.lfWeight = FW_BOLD; _tcscpy(lf.lfFaceName, _T("Tahoma")); *************** *** 1588,1592 **** } ! if (result_len == -1) // update result size result_size.cx += sz.cx; --- 1605,1609 ---- } ! if (result_size_recompute) // update result size result_size.cx += sz.cx; *************** *** 1598,1602 **** rc.top = display_loc.y; rc.right = display_loc.x + display_w - pow_pos; ! rc.bottom = display_loc.y + 18; pow_pos += sz.cx; } else { --- 1615,1619 ---- rc.top = display_loc.y; rc.right = display_loc.x + display_w - pow_pos; ! rc.bottom = display_loc.y + 18 * magnification; pow_pos += sz.cx; } else { *************** *** 1604,1608 **** rc.top = display_loc.y; rc.right = display_loc.x + display_w - pow_pos; ! rc.bottom = display_loc.y + 18; pow_pos = display_w; } --- 1621,1625 ---- rc.top = display_loc.y; rc.right = display_loc.x + display_w - pow_pos; ! rc.bottom = display_loc.y + 18 * magnification; pow_pos = display_w; } *************** *** 1612,1616 **** rc.top = display_loc.y; rc.right = display_loc.x + pow_pos + sz.cx; ! rc.bottom = display_loc.y + 18; pow_pos += sz.cx; } else { --- 1629,1633 ---- rc.top = display_loc.y; rc.right = display_loc.x + pow_pos + sz.cx; ! rc.bottom = display_loc.y + 18 * magnification; pow_pos += sz.cx; } else { *************** *** 1618,1622 **** rc.top = display_loc.y; rc.right = display_loc.x + display_w; ! rc.bottom = display_loc.y + 18; pow_pos = display_w; } --- 1635,1639 ---- rc.top = display_loc.y; rc.right = display_loc.x + display_w; ! rc.bottom = display_loc.y + 18 * magnification; pow_pos = display_w; } *************** *** 1635,1639 **** ********************************************************************************/ void Skin::scroll_result_left (HWND hWnd) { ! HBITMAP bitmap = CreateBitmap(display_w, 18, 1, 1, disp_bitmap); HDC hdc = GetDC(hWnd); HDC memdc = CreateCompatibleDC(hdc); --- 1652,1656 ---- ********************************************************************************/ void Skin::scroll_result_left (HWND hWnd) { ! HBITMAP bitmap = CreateBitmap(display_w, 18 * magnification, 1, 1, disp_bitmap); HDC hdc = GetDC(hWnd); HDC memdc = CreateCompatibleDC(hdc); *************** *** 1642,1646 **** COLORREF old_bg = SetBkColor(hdc, display_bg); COLORREF old_fg = SetTextColor(hdc, display_fg); ! BitBlt(hdc, display_loc.x, display_loc.y, display_w, 18, memdc, 0, 0, SRCCOPY); SelectObject(memdc, oldObject); // Set back default object --- 1659,1663 ---- COLORREF old_bg = SetBkColor(hdc, display_bg); COLORREF old_fg = SetTextColor(hdc, display_fg); ! BitBlt(hdc, display_loc.x, display_loc.y, display_w, 18 * magnification, memdc, 0, 0, SRCCOPY); SelectObject(memdc, oldObject); // Set back default object *************** *** 1660,1664 **** ********************************************************************************/ void Skin::scroll_result_right (HWND hWnd) { ! HBITMAP bitmap = CreateBitmap(display_w, 18, 1, 1, disp_bitmap); HDC hdc = GetDC(hWnd); HDC memdc = CreateCompatibleDC(hdc); --- 1677,1681 ---- ********************************************************************************/ void Skin::scroll_result_right (HWND hWnd) { ! HBITMAP bitmap = CreateBitmap(display_w, 18 * magnification, 1, 1, disp_bitmap); HDC hdc = GetDC(hWnd); HDC memdc = CreateCompatibleDC(hdc); *************** *** 1667,1671 **** COLORREF old_bg = SetBkColor(hdc, display_bg); COLORREF old_fg = SetTextColor(hdc, display_fg); ! BitBlt(hdc, display_loc.x, display_loc.y, display_w, 18, memdc, 0, 0, SRCCOPY); SelectObject(memdc, oldObject); // Set back default object --- 1684,1688 ---- COLORREF old_bg = SetBkColor(hdc, display_bg); COLORREF old_fg = SetTextColor(hdc, display_fg); ! BitBlt(hdc, display_loc.x, display_loc.y, display_w, 18 * magnification, memdc, 0, 0, SRCCOPY); SelectObject(memdc, oldObject); // Set back default object |
From: Mapi B. <ma...@us...> - 2009-12-15 21:38:55
|
Update of /cvsroot/easycalc/PPCport/langs/merge In directory sfp-cvsdas-1.v30.ch3.sourceforge.com:/tmp/cvs-serv32541 Modified Files: lang.rcp Log Message: Release 1.25e Index: lang.rcp =================================================================== RCS file: /cvsroot/easycalc/PPCport/langs/merge/lang.rcp,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** lang.rcp 16 Nov 2009 22:18:07 -0000 1.8 --- lang.rcp 15 Dec 2009 21:38:45 -0000 1.9 *************** *** 171,175 **** "$$MNDATAMGR" = "DataMgr" "$$MNGUESSIT" = "Hádej" ! "$$ENGDISPL" = "EngDisplay" "$$MNDEGREE" = "->Stupnì" "$$MNDEGREE2" = "->Stupnì2" --- 171,175 ---- "$$MNDATAMGR" = "DataMgr" "$$MNGUESSIT" = "Hádej" ! "$$ENGDISPL" = "->EngDisplay" "$$MNDEGREE" = "->Stupnì" "$$MNDEGREE2" = "->Stupnì2" *************** *** 607,611 **** "$$MNDATAMGR" = "DatenMgr" "$$MNGUESSIT" = "Erraten" ! "$$ENGDISPL" = "EngDisplay" "$$MNDEGREE" = "->Technik" "$$MNDEGREE2" = "->Technik2" --- 607,611 ---- "$$MNDATAMGR" = "DatenMgr" "$$MNGUESSIT" = "Erraten" ! "$$ENGDISPL" = "->EngDisplay" "$$MNDEGREE" = "->Technik" "$$MNDEGREE2" = "->Technik2" *************** *** 938,941 **** --- 938,949 ---- "$$BEGIN" = "Begin" "$$END" = "End" + "$$FUTURE VALUE" = "Future Value" + "$$PRESENT VALUE" = "Present Value" + "$$PAYMENT" = "Payment" + "$$NB PAYMENTS" = "Number of payments" + "$$INTEREST" = "Annual Interest Rate (%)" + "$$NB PMT PER YEAR" = "Number of payments per year" + "$$TOTAL PAYMENT" = "Total payment" + "$$TOTAL COST" = "Total cost" "$$DEFINITION TITLE" = "Data manager" *************** *** 965,969 **** "$$UPDATE" = "Update" "$$OPTIONS" = "Options" ! "$$NOTE" = "Note" "$$NEW WORKSHEET" = "New Worksheet" "$$TITLE:" = "Title:" --- 973,978 ---- "$$UPDATE" = "Update" "$$OPTIONS" = "Options" ! "$$CONFIG" = "Config" ! "$$NOTE" = "Notes" "$$NEW WORKSHEET" = "New Worksheet" "$$TITLE:" = "Title:" *************** *** 974,979 **** "$$CALCULATE" = "Calculate" "$$WORKSHEET" = "worksheet" ! "$$NEW WORKSHEET" = "New Worksheet" ! "$$SOLVER OPTIONS" = "Solver Options" "$$VARIABLE DESCR" = "Variable Description:\n" "$$UNDEFINED" = "Undefined" --- 983,987 ---- "$$CALCULATE" = "Calculate" "$$WORKSHEET" = "worksheet" ! "$$SOLVER CONFIG" = "Solver Config" "$$VARIABLE DESCR" = "Variable Description:\n" "$$UNDEFINED" = "Undefined" *************** *** 998,1002 **** "$$CLEAR HISTORY" = "Clear history" "$$EXPORT TO MEMOPAD" = "Export to memopad" ! "$$IMPORT FROM MEMOPAD" = "Import from memopad" "$$INFO" = "Info" --- 1006,1011 ---- "$$CLEAR HISTORY" = "Clear history" "$$EXPORT TO MEMOPAD" = "Export to memopad" ! "$$EXPORT" = "Export" ! "$$IMPORT" = "Import" "$$INFO" = "Info" *************** *** 1044,1049 **** "$$EXPORT MSG" = "What do you want to export?" "$$ALL" = "All" ! "$$FUNCTIONS ONLY" = "Funcs" "$$VARIABLES ONLY" = "Variables" /************************************************** --- 1053,1059 ---- "$$EXPORT MSG" = "What do you want to export?" "$$ALL" = "All" ! "$$FUNCTIONS ONLY" = "Functions" "$$VARIABLES ONLY" = "Variables" + "$$EQUATIONS ONLY" = "Equations" /************************************************** *************** *** 1061,1073 **** "$$MNCOPY" = "Copy result" ! "$$MNSAVE AS" = "Save as" ! "$$MNDATAMGR" = "DataMgr" ! "$$MNGUESSIT" = "GuessIt" ! "$$ENGDISPL" = "EngDisplay" ! "$$MNDEGREE" = "->Degree" ! "$$MNDEGREE2" = "->Degree2" ! "$$MNRADIAN" = "->Radian" "$$MNGON" = "->e^(ix)" "$$MNCIS" = "->c()+isin()" /************************************************** --- 1071,1088 ---- "$$MNCOPY" = "Copy result" ! "$$MNSAVE AS" = "Save as" ! "$$MNDATAMGR" = "DataMgr" ! "$$MNGUESSIT" = "GuessIt" ! "$$ENGDISPL" = "->Engineer display" ! "$$SCIDISPL" = "->Scientific display" ! "$$NORMDISPL" = "->Normal display" ! "$$MNDEGREE" = "->Degree" ! "$$MNDEGREE2" = "->Degree2" ! "$$MNRADIAN" = "->Radian" ! "$$MNGRAD" = "->Grad" "$$MNGON" = "->e^(ix)" "$$MNCIS" = "->c()+isin()" + "$$RESULT" = "Result" + "$$RESULT MSG" = "Result: ^1" /************************************************** *************** *** 1401,1406 **** "$$FINANCIAL TITLE" = "Calculatrice financière" ! "$$BEGIN" = "Début" ! "$$END" = "Fin" "$$DEFINITION TITLE" = "Gestionnaire de données" --- 1416,1429 ---- "$$FINANCIAL TITLE" = "Calculatrice financière" ! "$$BEGIN" = "Début de période" ! "$$END" = "Fin de période" ! "$$FUTURE VALUE" = "Valeur restante" ! "$$PRESENT VALUE" = "Valeur de départ" ! "$$PAYMENT" = "Remboursement" ! "$$NB PAYMENTS" = "Nombre de remboursements" ! "$$INTEREST" = "Taux d'intérêt annuel (%)" ! "$$NB PMT PER YEAR" = "Nb de remboursements par an" ! "$$TOTAL PAYMENT" = "Paiement total" ! "$$TOTAL COST" = "Coût total" "$$DEFINITION TITLE" = "Gestionnaire de données" *************** *** 1428,1446 **** * Solver * **************************************************/ ! "$$SOLVER" = "Solver" ! "$$UPDATE" = "Update" "$$OPTIONS" = "Options" ! "$$NOTE" = "Note" ! "$$NEW WORKSHEET" = "New Worksheet" "$$MINIMUM:" = "Minimum:" "$$MAXIMUM:" = "Maximum:" ! "$$PRECISION:" = "Precision:" ! "$$SOLVE" = "Solve" ! "$$CALCULATE" = "Calculate" ! "$$WORKSHEET" = "worksheet" ! "$$NEW WORKSHEET" = "New Worksheet" ! "$$SOLVER OPTIONS" = "Solver Options" ! "$$VARIABLE DESCR" = "Variable Description:\n" ! "$$UNDEFINED" = "Undefined" /************************************************** --- 1451,1469 ---- * Solver * **************************************************/ ! "$$SOLVER" = "Solutionneur" ! "$$UPDATE" = "Rafraîchir" "$$OPTIONS" = "Options" ! "$$CONFIG" = "Config" ! "$$NOTE" = "Notes" ! "$$NEW WORKSHEET" = "Nouv. équation" "$$MINIMUM:" = "Minimum:" "$$MAXIMUM:" = "Maximum:" ! "$$PRECISION:" = "Précision:" ! "$$SOLVE" = "Résoudre" ! "$$CALCULATE" = "Calculer" ! "$$WORKSHEET" = "Equation" ! "$$SOLVER CONFIG" = "Config. de résolution" ! "$$VARIABLE DESCR" = "Descr. de variable:\n" ! "$$UNDEFINED" = "Indéfini" /************************************************** *************** *** 1464,1467 **** --- 1487,1492 ---- "$$EXPORT TO MEMOPAD" = "Exporter vers bloc-notes" "$$IMPORT FROM MEMOPAD" = "Importer du bloc-notes" + "$$EXPORT" = "Exporter" + "$$IMPORT" = "Importer" "$$INFO" = "Info" *************** *** 1511,1516 **** "$$EXPORT MSG" = "Qu'est-ce que vous voulez exporter?" "$$ALL" = "Tout" ! "$$FUNCTIONS ONLY" = "Fonctions" ! "$$VARIABLES ONLY" = "Variables" /************************************************** --- 1536,1542 ---- "$$EXPORT MSG" = "Qu'est-ce que vous voulez exporter?" "$$ALL" = "Tout" ! "$$FUNCTIONS ONLY" = "Fonctions" ! "$$VARIABLES ONLY" = "Variables" ! "$$EQUATIONS ONLY" = "Equations" /************************************************** *************** *** 1528,1540 **** "$$MNCOPY" = "Copier résultat" ! "$$MNSAVE AS" = "Enregistrer sous" ! "$$MNDATAMGR" = "Données" ! "$$MNGUESSIT" = "Analyser/deviner" ! "$$ENGDISPL" = "EngDisplay" ! "$$MNDEGREE" = "->Degrés" ! "$$MNDEGREE2" = "->Degrés2" ! "$$MNRADIAN" = "->Radians" "$$MNGON" = "->e^(ix)" "$$MNCIS" = "->c()+isin()" /************************************************** --- 1554,1571 ---- "$$MNCOPY" = "Copier résultat" ! "$$MNSAVE AS" = "Enregistrer sous" ! "$$MNDATAMGR" = "Données" ! "$$MNGUESSIT" = "Analyser/deviner" ! "$$ENGDISPL" = "->Ingénierie" ! "$$SCIDISPL" = "->Scientifique" ! "$$NORMDISPL" = "->Normal" ! "$$MNDEGREE" = "->Degrés" ! "$$MNDEGREE2" = "->Degrés2" ! "$$MNRADIAN" = "->Radians" ! "$$MNGRAD" = "->Grades" "$$MNGON" = "->e^(ix)" "$$MNCIS" = "->c()+isin()" + "$$RESULT" = "Résultat" + "$$RESULT MSG" = "Résultat: ^1" /************************************************** *************** *** 1979,1983 **** "$$MNDATAMGR" = "Manager dati" "$$MNGUESSIT" = "Indovina" ! "$$ENGDISPL" = "EngDisplay" "$$MNDEGREE" = "->Gradi" "$$MNDEGREE2" = "->Gradi2" --- 2010,2014 ---- "$$MNDATAMGR" = "Manager dati" "$$MNGUESSIT" = "Indovina" ! "$$ENGDISPL" = "->EngDisplay" "$$MNDEGREE" = "->Gradi" "$$MNDEGREE2" = "->Gradi2" *************** *** 2420,2424 **** "$$MNDATAMGR" = "f[^Ç" "$$MNGUESSIT" = "ª·é" ! "$$ENGDISPL" = "EngDisplay" "$$MNDEGREE" = "->Degree" "$$MNDEGREE2" = "->Degree2" --- 2451,2455 ---- "$$MNDATAMGR" = "f[^Ç" "$$MNGUESSIT" = "ª·é" ! "$$ENGDISPL" = "->EngDisplay" "$$MNDEGREE" = "->Degree" "$$MNDEGREE2" = "->Degree2" *************** *** 2878,2882 **** "$$MNDATAMGR" = "AdministDados" "$$MNGUESSIT" = "Encontrar" ! "$$ENGDISPL" = "EngDisplay" "$$MNDEGREE" = "->Graus" "$$MNDEGREE2" = "->Graus2" --- 2909,2913 ---- "$$MNDATAMGR" = "AdministDados" "$$MNGUESSIT" = "Encontrar" ! "$$ENGDISPL" = "->EngDisplay" "$$MNDEGREE" = "->Graus" "$$MNDEGREE2" = "->Graus2" *************** *** 3324,3328 **** "$$MNDATAMGR" = "äÁÎÎÙÅ..." "$$MNGUESSIT" = "õÇÁÄÁÊ" ! "$$ENGDISPL" = "EngDisplay" "$$MNDEGREE" = "->çÒÁÄÕÓÙ" "$$MNDEGREE2" = "->çÒÁÄÕÓÙ2" --- 3355,3359 ---- "$$MNDATAMGR" = "äÁÎÎÙÅ..." "$$MNGUESSIT" = "õÇÁÄÁÊ" ! "$$ENGDISPL" = "->EngDisplay" "$$MNDEGREE" = "->çÒÁÄÕÓÙ" "$$MNDEGREE2" = "->çÒÁÄÕÓÙ2" *************** *** 3778,3782 **** "$$MNDATAMGR" = "Äàííûå..." "$$MNGUESSIT" = "Óãàäàé" ! "$$ENGDISPL" = "EngDisplay" "$$MNDEGREE" = "->Ãðàäóñû" "$$MNDEGREE2" = "->Ãðàäóñû2" --- 3809,3813 ---- "$$MNDATAMGR" = "Äàííûå..." "$$MNGUESSIT" = "Óãàäàé" ! "$$ENGDISPL" = "->EngDisplay" "$$MNDEGREE" = "->Ãðàäóñû" "$$MNDEGREE2" = "->Ãðàäóñû2" *************** *** 4234,4238 **** "$$MNDATAMGR" = "Administ.Datos" "$$MNGUESSIT" = "Adivinar" ! "$$ENGDISPL" = "Ingeniería" "$$MNDEGREE" = "->Grados" "$$MNDEGREE2" = "->Grados2" --- 4265,4269 ---- "$$MNDATAMGR" = "Administ.Datos" "$$MNGUESSIT" = "Adivinar" ! "$$ENGDISPL" = "->Ingeniería" "$$MNDEGREE" = "->Grados" "$$MNDEGREE2" = "->Grados2" |
Update of /cvsroot/easycalc/PPCport/langs In directory sfp-cvsdas-1.v30.ch3.sourceforge.com:/tmp/cvs-serv32417 Modified Files: cs.rcp de.rcp en.rcp fr.rcp it.rcp ja.rcp pt.rcp ru_koi8.rcp ru_win.rcp sp.rcp Log Message: Release 1.25e Index: it.rcp =================================================================== RCS file: /cvsroot/easycalc/PPCport/langs/it.rcp,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** it.rcp 17 Oct 2009 13:51:13 -0000 1.2 --- it.rcp 15 Dec 2009 21:38:26 -0000 1.3 *************** *** 176,180 **** "$$MNDATAMGR" = "Manager dati" "$$MNGUESSIT" = "Indovina" ! "$$ENGDISPL" = "EngDisplay" "$$MNDEGREE" = "->Gradi" "$$MNDEGREE2" = "->Gradi2" --- 176,180 ---- "$$MNDATAMGR" = "Manager dati" "$$MNGUESSIT" = "Indovina" ! "$$ENGDISPL" = "->EngDisplay" "$$MNDEGREE" = "->Gradi" "$$MNDEGREE2" = "->Gradi2" Index: en.rcp =================================================================== RCS file: /cvsroot/easycalc/PPCport/langs/en.rcp,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** en.rcp 16 Nov 2009 22:17:49 -0000 1.6 --- en.rcp 15 Dec 2009 21:38:26 -0000 1.7 *************** *** 73,76 **** --- 73,84 ---- "$$BEGIN" = "Begin" "$$END" = "End" + "$$FUTURE VALUE" = "Future Value" + "$$PRESENT VALUE" = "Present Value" + "$$PAYMENT" = "Payment" + "$$NB PAYMENTS" = "Number of payments" + "$$INTEREST" = "Annual Interest Rate (%)" + "$$NB PMT PER YEAR" = "Number of payments per year" + "$$TOTAL PAYMENT" = "Total payment" + "$$TOTAL COST" = "Total cost" "$$DEFINITION TITLE" = "Data manager" *************** *** 100,104 **** "$$UPDATE" = "Update" "$$OPTIONS" = "Options" ! "$$NOTE" = "Note" "$$NEW WORKSHEET" = "New Worksheet" "$$TITLE:" = "Title:" --- 108,113 ---- "$$UPDATE" = "Update" "$$OPTIONS" = "Options" ! "$$CONFIG" = "Config" ! "$$NOTE" = "Notes" "$$NEW WORKSHEET" = "New Worksheet" "$$TITLE:" = "Title:" *************** *** 109,114 **** "$$CALCULATE" = "Calculate" "$$WORKSHEET" = "worksheet" ! "$$NEW WORKSHEET" = "New Worksheet" ! "$$SOLVER OPTIONS" = "Solver Options" "$$VARIABLE DESCR" = "Variable Description:\n" "$$UNDEFINED" = "Undefined" --- 118,122 ---- "$$CALCULATE" = "Calculate" "$$WORKSHEET" = "worksheet" ! "$$SOLVER CONFIG" = "Solver Config" "$$VARIABLE DESCR" = "Variable Description:\n" "$$UNDEFINED" = "Undefined" *************** *** 133,137 **** "$$CLEAR HISTORY" = "Clear history" "$$EXPORT TO MEMOPAD" = "Export to memopad" ! "$$IMPORT FROM MEMOPAD" = "Import from memopad" "$$INFO" = "Info" --- 141,146 ---- "$$CLEAR HISTORY" = "Clear history" "$$EXPORT TO MEMOPAD" = "Export to memopad" ! "$$EXPORT" = "Export" ! "$$IMPORT" = "Import" "$$INFO" = "Info" *************** *** 179,184 **** "$$EXPORT MSG" = "What do you want to export?" "$$ALL" = "All" ! "$$FUNCTIONS ONLY" = "Funcs" "$$VARIABLES ONLY" = "Variables" /************************************************** --- 188,194 ---- "$$EXPORT MSG" = "What do you want to export?" "$$ALL" = "All" ! "$$FUNCTIONS ONLY" = "Functions" "$$VARIABLES ONLY" = "Variables" + "$$EQUATIONS ONLY" = "Equations" /************************************************** *************** *** 196,208 **** "$$MNCOPY" = "Copy result" ! "$$MNSAVE AS" = "Save as" ! "$$MNDATAMGR" = "DataMgr" ! "$$MNGUESSIT" = "GuessIt" ! "$$ENGDISPL" = "EngDisplay" ! "$$MNDEGREE" = "->Degree" ! "$$MNDEGREE2" = "->Degree2" ! "$$MNRADIAN" = "->Radian" "$$MNGON" = "->e^(ix)" "$$MNCIS" = "->c()+isin()" /************************************************** --- 206,223 ---- "$$MNCOPY" = "Copy result" ! "$$MNSAVE AS" = "Save as" ! "$$MNDATAMGR" = "DataMgr" ! "$$MNGUESSIT" = "GuessIt" ! "$$ENGDISPL" = "->Engineer display" ! "$$SCIDISPL" = "->Scientific display" ! "$$NORMDISPL" = "->Normal display" ! "$$MNDEGREE" = "->Degree" ! "$$MNDEGREE2" = "->Degree2" ! "$$MNRADIAN" = "->Radian" ! "$$MNGRAD" = "->Grad" "$$MNGON" = "->e^(ix)" "$$MNCIS" = "->c()+isin()" + "$$RESULT" = "Result" + "$$RESULT MSG" = "Result: ^1" /************************************************** Index: ru_koi8.rcp =================================================================== RCS file: /cvsroot/easycalc/PPCport/langs/ru_koi8.rcp,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** ru_koi8.rcp 17 Oct 2009 13:51:13 -0000 1.2 --- ru_koi8.rcp 15 Dec 2009 21:38:26 -0000 1.3 *************** *** 173,177 **** "$$MNDATAMGR" = "äÁÎÎÙÅ..." "$$MNGUESSIT" = "õÇÁÄÁÊ" ! "$$ENGDISPL" = "EngDisplay" "$$MNDEGREE" = "->çÒÁÄÕÓÙ" "$$MNDEGREE2" = "->çÒÁÄÕÓÙ2" --- 173,177 ---- "$$MNDATAMGR" = "äÁÎÎÙÅ..." "$$MNGUESSIT" = "õÇÁÄÁÊ" ! "$$ENGDISPL" = "->EngDisplay" "$$MNDEGREE" = "->çÒÁÄÕÓÙ" "$$MNDEGREE2" = "->çÒÁÄÕÓÙ2" Index: cs.rcp =================================================================== RCS file: /cvsroot/easycalc/PPCport/langs/cs.rcp,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** cs.rcp 17 Oct 2009 13:51:13 -0000 1.2 --- cs.rcp 15 Dec 2009 21:38:26 -0000 1.3 *************** *** 171,175 **** "$$MNDATAMGR" = "DataMgr" "$$MNGUESSIT" = "Hádej" ! "$$ENGDISPL" = "EngDisplay" "$$MNDEGREE" = "->Stupnì" "$$MNDEGREE2" = "->Stupnì2" --- 171,175 ---- "$$MNDATAMGR" = "DataMgr" "$$MNGUESSIT" = "Hádej" ! "$$ENGDISPL" = "->EngDisplay" "$$MNDEGREE" = "->Stupnì" "$$MNDEGREE2" = "->Stupnì2" Index: pt.rcp =================================================================== RCS file: /cvsroot/easycalc/PPCport/langs/pt.rcp,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** pt.rcp 17 Oct 2009 13:51:13 -0000 1.2 --- pt.rcp 15 Dec 2009 21:38:26 -0000 1.3 *************** *** 179,183 **** "$$MNDATAMGR" = "AdministDados" "$$MNGUESSIT" = "Encontrar" ! "$$ENGDISPL" = "EngDisplay" "$$MNDEGREE" = "->Graus" "$$MNDEGREE2" = "->Graus2" --- 179,183 ---- "$$MNDATAMGR" = "AdministDados" "$$MNGUESSIT" = "Encontrar" ! "$$ENGDISPL" = "->EngDisplay" "$$MNDEGREE" = "->Graus" "$$MNDEGREE2" = "->Graus2" Index: ru_win.rcp =================================================================== RCS file: /cvsroot/easycalc/PPCport/langs/ru_win.rcp,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** ru_win.rcp 17 Oct 2009 13:51:13 -0000 1.2 --- ru_win.rcp 15 Dec 2009 21:38:26 -0000 1.3 *************** *** 178,182 **** "$$MNDATAMGR" = "Äàííûå..." "$$MNGUESSIT" = "Óãàäàé" ! "$$ENGDISPL" = "EngDisplay" "$$MNDEGREE" = "->Ãðàäóñû" "$$MNDEGREE2" = "->Ãðàäóñû2" --- 178,182 ---- "$$MNDATAMGR" = "Äàííûå..." "$$MNGUESSIT" = "Óãàäàé" ! "$$ENGDISPL" = "->EngDisplay" "$$MNDEGREE" = "->Ãðàäóñû" "$$MNDEGREE2" = "->Ãðàäóñû2" Index: ja.rcp =================================================================== RCS file: /cvsroot/easycalc/PPCport/langs/ja.rcp,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** ja.rcp 17 Oct 2009 13:51:13 -0000 1.2 --- ja.rcp 15 Dec 2009 21:38:26 -0000 1.3 *************** *** 175,179 **** "$$MNDATAMGR" = "f[^Ç" "$$MNGUESSIT" = "ª·é" ! "$$ENGDISPL" = "EngDisplay" "$$MNDEGREE" = "->Degree" "$$MNDEGREE2" = "->Degree2" --- 175,179 ---- "$$MNDATAMGR" = "f[^Ç" "$$MNGUESSIT" = "ª·é" ! "$$ENGDISPL" = "->EngDisplay" "$$MNDEGREE" = "->Degree" "$$MNDEGREE2" = "->Degree2" Index: fr.rcp =================================================================== RCS file: /cvsroot/easycalc/PPCport/langs/fr.rcp,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** fr.rcp 16 Nov 2009 22:17:49 -0000 1.6 --- fr.rcp 15 Dec 2009 21:38:26 -0000 1.7 *************** *** 79,84 **** "$$FINANCIAL TITLE" = "Calculatrice financière" ! "$$BEGIN" = "Début" ! "$$END" = "Fin" "$$DEFINITION TITLE" = "Gestionnaire de données" --- 79,92 ---- "$$FINANCIAL TITLE" = "Calculatrice financière" ! "$$BEGIN" = "Début de période" ! "$$END" = "Fin de période" ! "$$FUTURE VALUE" = "Valeur restante" ! "$$PRESENT VALUE" = "Valeur de départ" ! "$$PAYMENT" = "Remboursement" ! "$$NB PAYMENTS" = "Nombre de remboursements" ! "$$INTEREST" = "Taux d'intérêt annuel (%)" ! "$$NB PMT PER YEAR" = "Nb de remboursements par an" ! "$$TOTAL PAYMENT" = "Paiement total" ! "$$TOTAL COST" = "Coût total" "$$DEFINITION TITLE" = "Gestionnaire de données" *************** *** 106,124 **** * Solver * **************************************************/ ! "$$SOLVER" = "Solver" ! "$$UPDATE" = "Update" "$$OPTIONS" = "Options" ! "$$NOTE" = "Note" ! "$$NEW WORKSHEET" = "New Worksheet" "$$MINIMUM:" = "Minimum:" "$$MAXIMUM:" = "Maximum:" ! "$$PRECISION:" = "Precision:" ! "$$SOLVE" = "Solve" ! "$$CALCULATE" = "Calculate" ! "$$WORKSHEET" = "worksheet" ! "$$NEW WORKSHEET" = "New Worksheet" ! "$$SOLVER OPTIONS" = "Solver Options" ! "$$VARIABLE DESCR" = "Variable Description:\n" ! "$$UNDEFINED" = "Undefined" /************************************************** --- 114,132 ---- * Solver * **************************************************/ ! "$$SOLVER" = "Solutionneur" ! "$$UPDATE" = "Rafraîchir" "$$OPTIONS" = "Options" ! "$$CONFIG" = "Config" ! "$$NOTE" = "Notes" ! "$$NEW WORKSHEET" = "Nouv. équation" "$$MINIMUM:" = "Minimum:" "$$MAXIMUM:" = "Maximum:" ! "$$PRECISION:" = "Précision:" ! "$$SOLVE" = "Résoudre" ! "$$CALCULATE" = "Calculer" ! "$$WORKSHEET" = "Equation" ! "$$SOLVER CONFIG" = "Config. de résolution" ! "$$VARIABLE DESCR" = "Descr. de variable:\n" ! "$$UNDEFINED" = "Indéfini" /************************************************** *************** *** 142,145 **** --- 150,155 ---- "$$EXPORT TO MEMOPAD" = "Exporter vers bloc-notes" "$$IMPORT FROM MEMOPAD" = "Importer du bloc-notes" + "$$EXPORT" = "Exporter" + "$$IMPORT" = "Importer" "$$INFO" = "Info" *************** *** 189,194 **** "$$EXPORT MSG" = "Qu'est-ce que vous voulez exporter?" "$$ALL" = "Tout" ! "$$FUNCTIONS ONLY" = "Fonctions" ! "$$VARIABLES ONLY" = "Variables" /************************************************** --- 199,205 ---- "$$EXPORT MSG" = "Qu'est-ce que vous voulez exporter?" "$$ALL" = "Tout" ! "$$FUNCTIONS ONLY" = "Fonctions" ! "$$VARIABLES ONLY" = "Variables" ! "$$EQUATIONS ONLY" = "Equations" /************************************************** *************** *** 206,218 **** "$$MNCOPY" = "Copier résultat" ! "$$MNSAVE AS" = "Enregistrer sous" ! "$$MNDATAMGR" = "Données" ! "$$MNGUESSIT" = "Analyser/deviner" ! "$$ENGDISPL" = "EngDisplay" ! "$$MNDEGREE" = "->Degrés" ! "$$MNDEGREE2" = "->Degrés2" ! "$$MNRADIAN" = "->Radians" "$$MNGON" = "->e^(ix)" "$$MNCIS" = "->c()+isin()" /************************************************** --- 217,234 ---- "$$MNCOPY" = "Copier résultat" ! "$$MNSAVE AS" = "Enregistrer sous" ! "$$MNDATAMGR" = "Données" ! "$$MNGUESSIT" = "Analyser/deviner" ! "$$ENGDISPL" = "->Ingénierie" ! "$$SCIDISPL" = "->Scientifique" ! "$$NORMDISPL" = "->Normal" ! "$$MNDEGREE" = "->Degrés" ! "$$MNDEGREE2" = "->Degrés2" ! "$$MNRADIAN" = "->Radians" ! "$$MNGRAD" = "->Grades" "$$MNGON" = "->e^(ix)" "$$MNCIS" = "->c()+isin()" + "$$RESULT" = "Résultat" + "$$RESULT MSG" = "Résultat: ^1" /************************************************** Index: sp.rcp =================================================================== RCS file: /cvsroot/easycalc/PPCport/langs/sp.rcp,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** sp.rcp 17 Oct 2009 13:51:13 -0000 1.2 --- sp.rcp 15 Dec 2009 21:38:26 -0000 1.3 *************** *** 180,184 **** "$$MNDATAMGR" = "Administ.Datos" "$$MNGUESSIT" = "Adivinar" ! "$$ENGDISPL" = "Ingeniería" "$$MNDEGREE" = "->Grados" "$$MNDEGREE2" = "->Grados2" --- 180,184 ---- "$$MNDATAMGR" = "Administ.Datos" "$$MNGUESSIT" = "Adivinar" ! "$$ENGDISPL" = "->Ingeniería" "$$MNDEGREE" = "->Grados" "$$MNDEGREE2" = "->Grados2" Index: de.rcp =================================================================== RCS file: /cvsroot/easycalc/PPCport/langs/de.rcp,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** de.rcp 17 Oct 2009 13:51:13 -0000 1.2 --- de.rcp 15 Dec 2009 21:38:26 -0000 1.3 *************** *** 181,185 **** "$$MNDATAMGR" = "DatenMgr" "$$MNGUESSIT" = "Erraten" ! "$$ENGDISPL" = "EngDisplay" "$$MNDEGREE" = "->Technik" "$$MNDEGREE2" = "->Technik2" --- 181,185 ---- "$$MNDATAMGR" = "DatenMgr" "$$MNGUESSIT" = "Erraten" ! "$$ENGDISPL" = "->EngDisplay" "$$MNDEGREE" = "->Technik" "$$MNDEGREE2" = "->Technik2" |
From: Mapi B. <ma...@us...> - 2009-12-15 21:38:11
|
Update of /cvsroot/easycalc/PPCport/discarded In directory sfp-cvsdas-1.v30.ch3.sourceforge.com:/tmp/cvs-serv32254 Modified Files: result.h Log Message: Release 1.25e |
Update of /cvsroot/easycalc/PPCport/core/mlib In directory sfp-cvsdas-1.v30.ch3.sourceforge.com:/tmp/cvs-serv32113 Modified Files: display.cpp display.h fp.cpp funcs.cpp funcs.h integ.cpp konvert.cpp mathem.cpp txtask.cpp Log Message: Release 1.25e Index: display.h =================================================================== RCS file: /cvsroot/easycalc/PPCport/core/mlib/display.h,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** display.h 17 Oct 2009 13:48:34 -0000 1.4 --- display.h 15 Dec 2009 21:37:44 -0000 1.5 *************** *** 54,58 **** TCHAR * display_complex(Complex number) MLIB; TCHAR * display_integer(UInt32 number,Tbase mode) MLIB; ! TCHAR * display_default(Trpn rpn,Boolean complete) MLIB; TCHAR * display_list(List *list) MLIB; --- 54,58 ---- TCHAR * display_complex(Complex number) MLIB; TCHAR * display_integer(UInt32 number,Tbase mode) MLIB; ! TCHAR * display_default(Trpn rpn,Boolean complete,rpntype *resultType) MLIB; TCHAR * display_list(List *list) MLIB; Index: funcs.cpp =================================================================== RCS file: /cvsroot/easycalc/PPCport/core/mlib/funcs.cpp,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** funcs.cpp 25 Oct 2009 17:52:34 -0000 1.6 --- funcs.cpp 15 Dec 2009 21:37:44 -0000 1.7 *************** *** 897,928 **** tmp = res; if (func->num==FUNC_RADIAN) { ! fp_print_double(res,arg/M_PIl); StrCat(res,_T("pi")); } else if (func->num==FUNC_DEGREE || func->num == FUNC_DEGREE2) { ! if (arg<0) { *tmp++=_T('-'); ! arg=-arg; } /* The numbers must be added 1E-12 to avoid cases like 1+5/60 -> 1o04' */ ! fp_print_double(tmp,trunc(arg+1E-12)); tmp+=StrLen(tmp); *tmp++=_T('°'); ! if (arg-trunc(arg)<1E-15) StrCopy(tmp,_T("0\'")); else { if (func->num == FUNC_DEGREE) { ! fp_print_double(tmp,trunc(60*(arg-trunc(arg+1E-12))+1E-12)); tmp+=StrLen(tmp); *tmp++=_T('\''); ! fp_print_double(tmp,60*(arg*60-trunc(arg*60+1E-12))); } else { /* FUNC_DEGREE2 */ ! fp_print_double(tmp,60*(arg-trunc(arg+1E-12))+1E-12); StrCat(tmp,_T("'")); } } } err = stack_add_val(stack,res,string); --- 897,969 ---- tmp = res; if (func->num==FUNC_RADIAN) { ! // Mapi: take calculator mode in account for conversion ! // Allows to convert from one unit to another and display result. ! // Also reduce to the range ]-2pi,2pi[. ! double conv; ! if (calcPrefs.trigo_mode == degree) { ! conv = fmod(arg/180.0, 2.0); ! } else if (calcPrefs.trigo_mode == radian) { ! conv = fmod(arg/M_PIl, 2.0); ! } else { // Grads ! conv = fmod(arg/200.0, 2.0); ! } ! fp_print_double(res, conv); StrCat(res,_T("pi")); } else if (func->num==FUNC_DEGREE || func->num == FUNC_DEGREE2) { ! // Mapi: take calculator mode in account for conversion ! // Allows to convert from one unit to another and display result. ! // Also reduce to the range ]-360,360[. ! double conv; ! if (calcPrefs.trigo_mode == degree) { ! conv = fmod(arg, 360.0); ! } else if (calcPrefs.trigo_mode == radian) { ! conv = fmod(arg/M_PIl*180.0, 360.0); ! } else { // Grads ! conv = fmod(arg/10.0*9.0, 360.0); ! } ! if (conv<0) { *tmp++=_T('-'); ! conv=-conv; } /* The numbers must be added 1E-12 to avoid cases like 1+5/60 -> 1o04' */ ! fp_print_double(tmp,trunc(conv+1E-12)); tmp+=StrLen(tmp); *tmp++=_T('°'); ! if (conv-trunc(conv)<1E-15) StrCopy(tmp,_T("0\'")); else { if (func->num == FUNC_DEGREE) { ! fp_print_double(tmp,trunc(60*(conv-trunc(conv+1E-12))+1E-12)); tmp+=StrLen(tmp); *tmp++=_T('\''); ! fp_print_double(tmp,60*(conv*60-trunc(conv*60+1E-12))); } else { /* FUNC_DEGREE2 */ ! fp_print_double(tmp,60*(conv-trunc(conv+1E-12))+1E-12); StrCat(tmp,_T("'")); } } } + else if (func->num==FUNC_GRAD) { + // Mapi: new function. + // Take calculator mode in account for conversion + // Allows to convert from one unit to another and display result. + // Also reduce to the range ]-400,400[. + double conv; + if (calcPrefs.trigo_mode == degree) { + conv = fmod(arg/9.0*10.0, 400.0); + } else if (calcPrefs.trigo_mode == radian) { + conv = fmod(arg/M_PIl*200.0, 400.0); + } else { // Grads + conv = fmod(arg, 400.0); + } + if (conv<0) { + *tmp++=_T('-'); + conv=-conv; + } + fp_print_double(res, conv); + } err = stack_add_val(stack,res,string); Index: funcs.h =================================================================== RCS file: /cvsroot/easycalc/PPCport/core/mlib/funcs.h,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** funcs.h 25 Oct 2009 17:52:34 -0000 1.5 --- funcs.h 15 Dec 2009 21:37:44 -0000 1.6 *************** *** 75,78 **** --- 75,79 ---- #define FUNC_TOCIS 4 #define FUNC_DEGREE2 5 + #define FUNC_GRAD 6 #define RAND_NUM ((double) SysRandom(0) / (double)sysRandomMax) Index: mathem.cpp =================================================================== RCS file: /cvsroot/easycalc/PPCport/core/mlib/mathem.cpp,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** mathem.cpp 17 Oct 2009 13:48:34 -0000 1.1 --- mathem.cpp 15 Dec 2009 21:37:44 -0000 1.2 *************** *** 972,991 **** } ! #define FIN_FV_BEGIN(I,N,PV,PMT,PYR) (-(PV*pow(1+(I/PYR/100),N)+PMT*(1+(I/PYR/100))*(pow(1+(I/PYR/100),N)-1)/(I/PYR/100))) ! #define FIN_FV_END(I,N,PV,PMT,PYR) (-(PV*pow(1+(I/PYR/100),N)+PMT*(pow(1+(I/PYR/100),N)-1)/(I/PYR/100))) ! #define FIN_FV_ZERO(I,N,PV,PMT,PYR) (-(PV+PMT*N)) ! ! #define FIN_PV_BEGIN(I,N,PMT,FV,PYR) ((-FV-PMT*(1+(I/PYR/100))*(pow(1+(I/PYR/100),N)-1)/(I/PYR/100))/pow(1+(I/PYR/100),N)) ! #define FIN_PV_END(I,N,PMT,FV,PYR) ((-FV-PMT*(pow(1+(I/PYR/100),N)-1)/(I/PYR/100))/pow(1+(I/PYR/100),N)) ! #define FIN_PV_ZERO(I,N,PMT,FV,PYR) (-PMT*N-FV) ! #define FIN_PMT_BEGIN(I,N,PV,FV,PYR) ((-FV-PV*pow(1+(I/PYR/100),N))*((I/PYR/100)/(pow(1+(I/PYR/100),N)-1)/(1+(I/PYR/100)))) ! #define FIN_PMT_END(I,N,PV,FV,PYR) ((-FV-PV*pow(1+(I/PYR/100),N))*(I/PYR/100)/(pow(1+(I/PYR/100),N)-1)) ! #define FIN_PMT_ZERO(I,N,PV,FV,PYR) (-(FV+PV)/N) ! #define FIN_N_BEGIN(I,PV,PMT,FV,PYR) (log10((-FV*(I/PYR/100)+PMT*(1+(I/PYR/100)))/(PV*(I/PYR/100)+PMT*(1+(I/PYR/100))))/log10(1+(I/PYR/100))) ! #define FIN_N_END(I,PV,PMT,FV,PYR) (log10((-FV*(I/PYR/100)+PMT)/(PV*(I/PYR/100)+PMT))/log10(1+(I/PYR/100))) ! #define FIN_N_ZERO(I,PV,PMT,FV,PYR) (-(FV+PV)/PMT) CError --- 972,1010 ---- } ! // Mapi: rewrite for better calculation precision ! //#define FIN_FV_BEGIN(I,N,PV,PMT,PYR) (-(PV*pow(1+(I/PYR/100),N)+PMT*(1+(I/PYR/100))*(pow(1+(I/PYR/100),N)-1)/(I/PYR/100))) ! //#define FIN_FV_END(I,N,PV,PMT,PYR) (-(PV*pow(1+(I/PYR/100),N)+PMT*(pow(1+(I/PYR/100),N)-1)/(I/PYR/100))) ! //#define FIN_FV_ZERO(I,N,PV,PMT,PYR) (-(PV+PMT*N)) ! // Mapi: bug correction (on global sign of formula) ! #define FIN_FV_BEGIN(I,N,PV,PMT,PYR) (-((-(PV)-(PMT)*((PYR)*100.0/(I)+1.0))*pow(1.0+(I)/100.0/(PYR),(N))+(PMT)*((PYR)*100.0/(I)+1.0))) ! #define FIN_FV_END(I,N,PV,PMT,PYR) (-((-(PV)-(PMT)*(PYR)*100.0/(I))*pow(1.0+(I)/100.0/(PYR),(N))+(PMT)*(PYR)*100.0/(I))) ! #define FIN_FV_ZERO(N,PV,PMT) (-(-(PV)-(PMT)*(N))) ! //#define FIN_PV_BEGIN(I,N,PMT,FV,PYR) ((-FV-PMT*(1+(I/PYR/100))*(pow(1+(I/PYR/100),N)-1)/(I/PYR/100))/pow(1+(I/PYR/100),N)) ! //#define FIN_PV_END(I,N,PMT,FV,PYR) ((-FV-PMT*(pow(1+(I/PYR/100),N)-1)/(I/PYR/100))/pow(1+(I/PYR/100),N)) ! //#define FIN_PV_ZERO(I,N,PMT,FV,PYR) (-PMT*N-FV) ! // Mapi: bug correction (on global sign of formula) ! #define FIN_PV_BEGIN(I,N,PMT,FV,PYR) (-((-(FV)-(PMT)*((PYR)*100.0/(I)+1.0))/pow(1.0+(I)/100.0/(PYR),(N))+(PMT)*((PYR)*100.0/(I)+1.0))) ! #define FIN_PV_END(I,N,PMT,FV,PYR) (-((-(FV)-(PMT)*(PYR)*100.0/(I))/pow(1.0+(I)/100.0/(PYR),(N))+(PMT)*(PYR)*100.0/(I))) ! // Mapi: bug correction (on sign of FV) ! #define FIN_PV_ZERO(N,PMT,FV) (-(-(FV)+(PMT)*(N))) ! //#define FIN_PMT_BEGIN(I,N,PV,FV,PYR) ((-FV-PV*pow(1+(I/PYR/100),N))*((I/PYR/100)/(pow(1+(I/PYR/100),N)-1)/(1+(I/PYR/100)))) ! //#define FIN_PMT_END(I,N,PV,FV,PYR) ((-FV-PV*pow(1+(I/PYR/100),N))*(I/PYR/100)/(pow(1+(I/PYR/100),N)-1)) ! //#define FIN_PMT_ZERO(I,N,PV,FV,PYR) (-(FV+PV)/N) ! // Mapi: bug correction (on sign of FV) ! #define FIN_PMT_BEGIN(I,N,PV,FV,PYR) (((FV)-(PV)*pow(1.0+(I)/100.0/(PYR),(N)))/(pow(1.0+(I)/100.0/(PYR),(N))-1.0)*(I)/(100.0*(PYR)+(I))) ! #define FIN_PMT_END(I,N,PV,FV,PYR) (((FV)-(PV)*pow(1.0+(I)/100.0/(PYR),(N)))/(pow(1.0+(I)/100.0/(PYR),(N))-1.0)*(I)/100.0/(PYR)) ! #define FIN_PMT_ZERO(N,PV,FV) (-((PV)-(FV))/(N)) + // Mapi: bug correction (on sign of PMT) + //#define FIN_N_BEGIN(I,PV,PMT,FV,PYR) (log10((-FV*(I/PYR/100)+PMT*(1+(I/PYR/100)))/(PV*(I/PYR/100)+PMT*(1+(I/PYR/100))))/log10(1+(I/PYR/100))) + //#define FIN_N_END(I,PV,PMT,FV,PYR) (log10((-FV*(I/PYR/100)+PMT)/(PV*(I/PYR/100)+PMT))/log10(1+(I/PYR/100))) + //#define FIN_N_ZERO(I,PV,PMT,FV,PYR) (-(FV+PV)/PMT) + // Mapi: bug correction (on sign of PV) + #define FIN_N_BEGIN(I,PV,PMT,FV,PYR) (log((-(FV)-(PMT)*((PYR)*100.0/(I)+1.0))/(-(PV)-(PMT)*((PYR)*100.0/(I)+1.0)))/log(1.0+(I)/100.0/(PYR))) + #define FIN_N_END(I,PV,PMT,FV,PYR) (log((-(FV)-(PMT)*(PYR)*100.0/(I))/(-(PV)-(PMT)*(PYR)*100.0/(I)))/log(1.0+(I)/100.0/(PYR))) + // Mapi: bug correction (on sign of FV) + #define FIN_N_ZERO(PV,PMT,FV) (-((PV)-(FV))/(PMT)) CError *************** *** 1012,1016 **** case MATH_FINPMT: if (arg[0] == 0.0) ! result = FIN_PMT_ZERO(arg[0],arg[1],arg[2],arg[3],arg[4]); else if (begin) result = FIN_PMT_BEGIN(arg[0],arg[1],arg[2],arg[3],arg[4]); --- 1031,1035 ---- case MATH_FINPMT: if (arg[0] == 0.0) ! result = FIN_PMT_ZERO(arg[1],arg[2],arg[3]); else if (begin) result = FIN_PMT_BEGIN(arg[0],arg[1],arg[2],arg[3],arg[4]); *************** *** 1020,1024 **** case MATH_FINPV: if (arg[0] == 0.0) ! result = FIN_PV_ZERO(arg[0],arg[1],arg[2],arg[3],arg[4]); else if (begin) result = FIN_PV_BEGIN(arg[0],arg[1],arg[2],arg[3],arg[4]); --- 1039,1043 ---- case MATH_FINPV: if (arg[0] == 0.0) ! result = FIN_PV_ZERO(arg[1],arg[2],arg[3]); else if (begin) result = FIN_PV_BEGIN(arg[0],arg[1],arg[2],arg[3],arg[4]); *************** *** 1028,1032 **** case MATH_FINN: if (arg[0] == 0.0) ! result = FIN_N_ZERO(arg[0],arg[1],arg[2],arg[3],arg[4]); else if (begin) result = FIN_N_BEGIN(arg[0],arg[1],arg[2],arg[3],arg[4]); --- 1047,1051 ---- case MATH_FINN: if (arg[0] == 0.0) ! result = FIN_N_ZERO(arg[1],arg[2],arg[3]); else if (begin) result = FIN_N_BEGIN(arg[0],arg[1],arg[2],arg[3],arg[4]); *************** *** 1036,1040 **** case MATH_FINFV: if (arg[0] == 0.0) ! result = FIN_FV_ZERO(arg[0],arg[1],arg[2],arg[3],arg[4]); else if (begin) result = FIN_FV_BEGIN(arg[0],arg[1],arg[2],arg[3],arg[4]); --- 1055,1059 ---- case MATH_FINFV: if (arg[0] == 0.0) ! result = FIN_FV_ZERO(arg[1],arg[2],arg[3]); else if (begin) result = FIN_FV_BEGIN(arg[0],arg[1],arg[2],arg[3],arg[4]); Index: display.cpp =================================================================== RCS file: /cvsroot/easycalc/PPCport/core/mlib/display.cpp,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** display.cpp 2 Nov 2009 17:24:39 -0000 1.6 --- display.cpp 15 Dec 2009 21:37:44 -0000 1.7 *************** *** 184,202 **** Int16 i,j; TCHAR *result,*tmp; result = (TCHAR *) MemPtrNew(((dispPrefs.decPoints+15)*m->rows*m->cols + 10)*sizeof(TCHAR)); ! StrPrintF(result,_T("[")); for (i=0;i<m->rows;i++) { ! if (i) StrCat(result,_T(":")); ! StrCat(result,_T("[")); for (j=0;j<m->cols;j++) { ! if (j) StrCat(result,_T(":")); tmp = display_real(MATRIX(m,i,j)); ! StrCat(result,tmp); MemPtrFree(tmp); } ! StrCat(result,_T("]")); } ! StrCat(result,_T("]")); return result; } --- 184,205 ---- Int16 i,j; TCHAR *result,*tmp; + int index; result = (TCHAR *) MemPtrNew(((dispPrefs.decPoints+15)*m->rows*m->cols + 10)*sizeof(TCHAR)); ! index = StrPrintF(result,_T("[")); for (i=0;i<m->rows;i++) { ! if (i) ! StrCat(result+index,_T(":")); ! StrCat(result+index,_T("[")); for (j=0;j<m->cols;j++) { ! if (j) StrCat(result+index,_T(":")); tmp = display_real(MATRIX(m,i,j)); ! StrCat(result+index,tmp); MemPtrFree(tmp); + index += StrLen(result+index); } ! StrCat(result+index,_T("]")); } ! StrCat(result+index,_T("]")); return result; } *************** *** 243,247 **** ***********************************************************************/ TCHAR * ! display_default(Trpn rpn, Boolean complete) { TCHAR *result; --- 246,250 ---- ***********************************************************************/ TCHAR * ! display_default(Trpn rpn, Boolean complete, rpntype *resultType) { TCHAR *result; *************** *** 259,262 **** --- 262,267 ---- } + if (resultType) + *resultType = rpn.type; switch (rpn.type) { case integer: Index: konvert.cpp =================================================================== RCS file: /cvsroot/easycalc/PPCport/core/mlib/konvert.cpp,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** konvert.cpp 2 Nov 2009 17:24:39 -0000 1.6 --- konvert.cpp 15 Dec 2009 21:37:44 -0000 1.7 *************** *** 160,163 **** --- 160,164 ---- {_T("atan2"),MATH_ATAN2,math_convcoord,2}, {_T("torad"),FUNC_RADIAN,convert_real_to_string,1}, + {_T("tograd"),FUNC_GRAD,convert_real_to_string,1}, {_T("togonio"),FUNC_GONIO,convert_cplx_to_string,1}, {_T("ipart"),MATH_TRUNC,math_round,1,true,true}, *************** *** 588,592 **** /* We compile the condition argument as ususal. The true and false ! * false arguments are stored as strings. They are compiled and * executed later in func_if(). This allows 'lazy evaluation' of * the if statement and recursion. --- 589,593 ---- /* We compile the condition argument as ususal. The true and false ! * arguments are stored as strings. They are compiled and * executed later in func_if(). This allows 'lazy evaluation' of * the if statement and recursion. *************** *** 601,605 **** } /* Now we have the condition argument, process it as normal */ ! lastchar = *ptr; *ptr = '\0'; if (!konvert_to_meq(buf, priority, &prmcnt1, _T(')'), err)) return 0; --- 602,607 ---- } /* Now we have the condition argument, process it as normal */ ! lastchar = *ptr; ! *ptr = _T('\0'); if (!konvert_to_meq(buf, priority, &prmcnt1, _T(')'), err)) return 0; Index: fp.cpp =================================================================== RCS file: /cvsroot/easycalc/PPCport/core/mlib/fp.cpp,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** fp.cpp 25 Oct 2009 17:52:34 -0000 1.5 --- fp.cpp 15 Dec 2009 21:37:44 -0000 1.6 *************** *** 150,153 **** --- 150,154 ---- Tdisp_mode oldmode = dispPrefs.mode; dispPrefs.mode = newmode; + fp_reread_prefs(); return oldmode; } *************** *** 170,174 **** cvt_fltoa(TCHAR *strP,double value) { ! TCHAR *cP; TCHAR tmpstr[MAX_FP_NUMBER+3]; Int16 i,ichar; --- 171,175 ---- cvt_fltoa(TCHAR *strP,double value) { ! // TCHAR *cP; TCHAR tmpstr[MAX_FP_NUMBER+3]; Int16 i,ichar; *************** *** 179,183 **** } /* We convert the number backwards */ ! for (i=MAX_FP_NUMBER-2;i>=0;i--) { ichar = (Int16)fmod(value,BASE) + _T('0'); tmpstr[i] = ichar>_T('9')?ichar-_T('9')-1+_T('A'):ichar; --- 180,186 ---- } /* We convert the number backwards */ ! // Mapi: speeding things up. ! // for (i=MAX_FP_NUMBER-2;i>=0;i--) { ! for (i=MAX_FP_NUMBER-2 ; (i>=0)&&(value!=0.0) ; i--) { ichar = (Int16)fmod(value,BASE) + _T('0'); tmpstr[i] = ichar>_T('9')?ichar-_T('9')-1+_T('A'):ichar; *************** *** 188,195 **** tmpstr[MAX_FP_NUMBER-1] = _T('\0'); ! for( cP = tmpstr; *cP && (*cP == _T('0')); ) ! ++cP; ! ! StrCopy(strP,cP); } --- 191,199 ---- tmpstr[MAX_FP_NUMBER-1] = _T('\0'); ! // for( cP = tmpstr; *cP && (*cP == _T('0')); ) ! // ++cP; ! // ! // StrCopy(strP,cP); ! StrCopy(strP,tmpstr+i+1); } *************** *** 352,356 **** Int16 mydec = dispPrefs.decPoints - 1; /* Engineer mode selected */ ! // This loops at infinity when value = 0.0 //for (ex=0;fabs(value)<0.99999999 || (ex % 3);ex++,value*=BASE) ex = 0; --- 356,360 ---- Int16 mydec = dispPrefs.decPoints - 1; /* Engineer mode selected */ ! // Mapi: this loops at infinity when value = 0.0 ! Corrected. //for (ex=0;fabs(value)<0.99999999 || (ex % 3);ex++,value*=BASE) ex = 0; Index: integ.cpp =================================================================== RCS file: /cvsroot/easycalc/PPCport/core/mlib/integ.cpp,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** integ.cpp 17 Oct 2009 13:48:34 -0000 1.1 --- integ.cpp 15 Dec 2009 21:37:44 -0000 1.2 *************** *** 620,624 **** } } else { /* funcnum = ZERO | VALUE */ ! /* partition the intrval to X parts and * try to find if the root is not in one of them */ --- 620,624 ---- } } else { /* funcnum = ZERO | VALUE */ ! /* partition the interval to X parts and * try to find if the root is not in one of them */ Index: txtask.cpp =================================================================== RCS file: /cvsroot/easycalc/PPCport/core/mlib/txtask.cpp,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** txtask.cpp 2 Nov 2009 17:24:39 -0000 1.1 --- txtask.cpp 15 Dec 2009 21:37:44 -0000 1.2 *************** *** 69,73 **** err = rpn_eval_variable(&tmpitem, tmpitem); if (!err) ! text = display_default(tmpitem, true); rpn_delete(tmpitem); } else --- 69,73 ---- err = rpn_eval_variable(&tmpitem, tmpitem); if (!err) ! text = display_default(tmpitem, true, NULL); rpn_delete(tmpitem); } else *************** *** 77,81 **** param.defaultvalue = text; res = popupAskTxt(¶m); ! MemPtrFree(text); if (res) { --- 77,82 ---- param.defaultvalue = text; res = popupAskTxt(¶m); ! if (text) ! MemPtrFree(text); if (res) { |
From: Mapi B. <ma...@us...> - 2009-12-15 21:37:06
|
Update of /cvsroot/easycalc/PPCport/core In directory sfp-cvsdas-1.v30.ch3.sourceforge.com:/tmp/cvs-serv31691 Modified Files: ansops.cpp core_display.cpp defmgr.cpp lstedit.cpp mtxedit.cpp mtxedit.h varmgr.cpp Log Message: Release 1.25e Index: mtxedit.cpp =================================================================== RCS file: /cvsroot/easycalc/PPCport/core/mtxedit.cpp,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** mtxedit.cpp 16 Nov 2009 22:15:12 -0000 1.1 --- mtxedit.cpp 15 Dec 2009 21:36:54 -0000 1.2 *************** *** 99,104 **** * ***********************************************************************/ ! CError mtxedit_get_item (Complex *cplx, int col, int row) IFACE; ! CError mtxedit_get_item (Complex *cplx, int col, int row) { CError err = c_noerror; --- 99,104 ---- * ***********************************************************************/ ! CError mtxedit_get_item (Complex *cplx, int row, int col) IFACE; ! CError mtxedit_get_item (Complex *cplx, int row, int col) { CError err = c_noerror; *************** *** 122,127 **** * ***********************************************************************/ ! CError mtxedit_replace_item (Complex *cplx, int col, int row) IFACE; ! CError mtxedit_replace_item (Complex *cplx, int col, int row) { CError err = c_noerror; --- 122,127 ---- * ***********************************************************************/ ! CError mtxedit_replace_item (Complex *cplx, int row, int col) IFACE; ! CError mtxedit_replace_item (Complex *cplx, int row, int col) { CError err = c_noerror; *************** *** 147,152 **** * ***********************************************************************/ ! int mtxedit_item_length (int col, int row) IFACE; ! int mtxedit_item_length (int col, int row) { TCHAR *text = display_complex(MATRIX(matrixValue, row, col)); int len = _tcslen(text); --- 147,152 ---- * ***********************************************************************/ ! int mtxedit_item_length (int row, int col) IFACE; ! int mtxedit_item_length (int row, int col) { TCHAR *text = display_complex(MATRIX(matrixValue, row, col)); int len = _tcslen(text); *************** *** 201,206 **** * ***********************************************************************/ ! void mtxedit_load_matrix (int *nb_cols, int *nb_rows) IFACE; ! void mtxedit_load_matrix (int *nb_cols, int *nb_rows) { Trpn item; CError err; --- 201,206 ---- * ***********************************************************************/ ! void mtxedit_load_matrix (int *nb_rows, int *nb_cols) IFACE; ! void mtxedit_load_matrix (int *nb_rows, int *nb_cols) { Trpn item; CError err; *************** *** 276,281 **** * ***********************************************************************/ ! void mtxedit_new (int cols, int rows) IFACE; ! void mtxedit_new (int cols, int rows) { if (matrixValue != NULL) cmatrix_delete(matrixValue); --- 276,281 ---- * ***********************************************************************/ ! void mtxedit_new (int rows, int cols) IFACE; ! void mtxedit_new (int rows, int cols) { if (matrixValue != NULL) cmatrix_delete(matrixValue); *************** *** 315,320 **** * ***********************************************************************/ ! void mtxedit_redim (int cols, int rows) IFACE; ! void mtxedit_redim (int cols, int rows) { if (matrixValue == NULL) return; --- 315,320 ---- * ***********************************************************************/ ! void mtxedit_redim (int rows, int cols) IFACE; ! void mtxedit_redim (int rows, int cols) { if (matrixValue == NULL) return; *************** *** 382,386 **** // LstGlueSetIncrementalSearch(slst, true); ! MemPtrFree(values); db_delete_list(matrices); db_delete_list(cmatrices); --- 382,387 ---- // LstGlueSetIncrementalSearch(slst, true); ! if (values) ! MemPtrFree(values); db_delete_list(matrices); db_delete_list(cmatrices); Index: lstedit.cpp =================================================================== RCS file: /cvsroot/easycalc/PPCport/core/lstedit.cpp,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** lstedit.cpp 16 Nov 2009 22:15:12 -0000 1.2 --- lstedit.cpp 15 Dec 2009 21:36:54 -0000 1.3 *************** *** 246,252 **** LstEditSetRow(i, i+1, text1, text2, text3); ! MemPtrFree(text1); ! MemPtrFree(text2); ! MemPtrFree(text3); } } --- 246,255 ---- LstEditSetRow(i, i+1, text1, text2, text3); ! if (text1) ! MemPtrFree(text1); ! if (text2) ! MemPtrFree(text2); ! if (text3) ! MemPtrFree(text3); } } Index: mtxedit.h =================================================================== RCS file: /cvsroot/easycalc/PPCport/core/mtxedit.h,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** mtxedit.h 16 Nov 2009 22:15:12 -0000 1.1 --- mtxedit.h 15 Dec 2009 21:36:54 -0000 1.2 *************** *** 34,45 **** void mtxedit_init(Boolean showAns); void mtxedit_select(void); ! void mtxedit_load_matrix(int* nb_cols, int *nb_rows); void mtxedit_tbl_load(void); ! void mtxedit_redim(int cols, int rows); ! CError mtxedit_get_item(Complex *cplx, int col, int row); ! CError mtxedit_replace_item(Complex *cplx, int col, int row); ! int mtxedit_item_length(int col, int row); void mtxedit_save_matrix(void); ! void mtxedit_new(int cols, int rows); void mtxedit_destroy(void); --- 34,45 ---- void mtxedit_init(Boolean showAns); void mtxedit_select(void); ! void mtxedit_load_matrix(int *nb_rows, int *nb_cols); void mtxedit_tbl_load(void); ! void mtxedit_redim(int rows, int cols); ! CError mtxedit_get_item(Complex *cplx, int row, int col); ! CError mtxedit_replace_item(Complex *cplx, int row, int col); ! int mtxedit_item_length(int row, int col); void mtxedit_save_matrix(void); ! void mtxedit_new(int rows, int cols); void mtxedit_destroy(void); Index: ansops.cpp =================================================================== RCS file: /cvsroot/easycalc/PPCport/core/ansops.cpp,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** ansops.cpp 2 Nov 2009 17:20:08 -0000 1.3 --- ansops.cpp 15 Dec 2009 21:36:54 -0000 1.4 *************** *** 70,74 **** return; - 1; //result_draw(); } --- 70,73 ---- Index: varmgr.cpp =================================================================== RCS file: /cvsroot/easycalc/PPCport/core/varmgr.cpp,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** varmgr.cpp 2 Nov 2009 17:20:08 -0000 1.4 --- varmgr.cpp 15 Dec 2009 21:36:54 -0000 1.5 *************** *** 73,77 **** if (isrpn) { item = history_get_item(i); ! text = display_default(item,false); rpn_delete(item); } else { --- 73,77 ---- if (isrpn) { item = history_get_item(i); ! text = display_default(item, false, NULL); rpn_delete(item); } else { *************** *** 102,106 **** if (history_isrpn(selection)) { Trpn item = history_get_item(selection); ! result = display_default(item,true); rpn_delete(item); if (_tcslen(result) > 25) --- 102,106 ---- if (history_isrpn(selection)) { Trpn item = history_get_item(selection); ! result = display_default(item, true, NULL); rpn_delete(item); if (_tcslen(result) > 25) *************** *** 145,149 **** item = db_read_variable(varlist->list[i],&err); if (!err) { ! text = display_default(item,false); rpn_delete(item); } --- 145,149 ---- item = db_read_variable(varlist->list[i],&err); if (!err) { ! text = display_default(item, false, NULL); rpn_delete(item); } *************** *** 255,258 **** --- 255,259 ---- if (varlist->size == 0) { db_delete_list(varlist); + varlist = NULL; return; } *************** *** 276,280 **** bool varmgr_listVar_action(TCHAR *text, void *hWnd_calc, bool saveasvar, bool fromList, bool valueAns) { ! db_delete_list(varlist); if (saveasvar) { return (varmgr_save_variable(text, hWnd_calc, fromList, valueAns)); --- 277,284 ---- bool varmgr_listVar_action(TCHAR *text, void *hWnd_calc, bool saveasvar, bool fromList, bool valueAns) { ! if (varlist) { ! db_delete_list(varlist); ! varlist = NULL; ! } if (saveasvar) { return (varmgr_save_variable(text, hWnd_calc, fromList, valueAns)); *************** *** 334,338 **** * * PARAMETERS: frm - form, from which take the values, cannot use ! * FrmGetAcitveForm, because it is called using * FrmDoDialog * others - same as for varmgr_edit --- 338,342 ---- * * PARAMETERS: frm - form, from which take the values, cannot use ! * FrmGetActiveForm, because it is called using * FrmDoDialog * others - same as for varmgr_edit *************** *** 348,352 **** item = db_read_variable(varname, &err); if (!err) { ! *varDef = display_default(item, true); if (!(*varDef)) { rpn_delete(item); --- 352,356 ---- item = db_read_variable(varname, &err); if (!err) { ! *varDef = display_default(item, true, NULL); if (!(*varDef)) { rpn_delete(item); Index: defmgr.cpp =================================================================== RCS file: /cvsroot/easycalc/PPCport/core/defmgr.cpp,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** defmgr.cpp 17 Oct 2009 13:46:30 -0000 1.2 --- defmgr.cpp 15 Dec 2009 21:36:54 -0000 1.3 *************** *** 45,49 **** static dbList *varItems=NULL; static TCHAR HORIZ_ELLIPSIS; - static Int16 selectedLine = 0; #define VARNAME_WIDTH 42 --- 45,48 ---- *************** *** 56,60 **** * as a table of 2 item, separated by space, * computes items on-the-fly, because it is faster ! * then allocating the whole thing in advance * and consumes less memory * --- 55,59 ---- * as a table of 2 item, separated by space, * computes items on-the-fly, because it is faster ! * than allocating the whole thing in advance * and consumes less memory * *************** *** 86,96 **** item = db_read_variable(varItems->list[itemNum], &err); if (!err) { ! deftext = display_default(item, false); rpn_delete(item); } else deftext = print_error(err); - skin->varDefList(text, deftext, itemNum, hWnd); } } --- 85,96 ---- item = db_read_variable(varItems->list[itemNum], &err); if (!err) { ! deftext = display_default(item, false, NULL); rpn_delete(item); } else deftext = print_error(err); skin->varDefList(text, deftext, itemNum, hWnd); + if (!err) + MemPtrFree(deftext); // Do not forget to free memory !! } } Index: core_display.cpp =================================================================== RCS file: /cvsroot/easycalc/PPCport/core/core_display.cpp,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** core_display.cpp 2 Nov 2009 17:20:08 -0000 1.3 --- core_display.cpp 15 Dec 2009 21:36:54 -0000 1.4 *************** *** 68,72 **** _T("$$MNGON"), _T("$$ENGDISPL"), ! _T("$$MNDEGREE2") }; /* Error strings to be translated */ --- 68,75 ---- _T("$$MNGON"), _T("$$ENGDISPL"), ! _T("$$SCIDISPL"), ! _T("$$NORMDISPL"), ! _T("$$MNDEGREE2"), ! _T("$$MNGRAD") }; /* Error strings to be translated */ *************** *** 141,150 **** (resultPrefs.ansType == complex)) { respopup_choices[count++] = GUESSIT; ! respopup_choices[count++] = ENGDISPLAY; ! if (calcPrefs.trigo_mode == degree) { respopup_choices[count++] = TODEGREE; respopup_choices[count++] = TODEGREE2; ! } else if (calcPrefs.trigo_mode == radian) respopup_choices[count++] = TORADIAN; } if (resultPrefs.ansType == complex) { --- 144,161 ---- (resultPrefs.ansType == complex)) { respopup_choices[count++] = GUESSIT; ! // Mapi: provide eng / sci / norm conversions all time ! //if (dispPrefs.mode != disp_eng) ! respopup_choices[count++] = ENGDISPLAY; ! //if (dispPrefs.mode != disp_sci) ! respopup_choices[count++] = SCIDISPLAY; ! //if (dispPrefs.mode != disp_normal) ! respopup_choices[count++] = NORMDISPLAY; ! // Mapi: provide trigo conversion functions all time ! //if (calcPrefs.trigo_mode == degree) { respopup_choices[count++] = TODEGREE; respopup_choices[count++] = TODEGREE2; ! //} else if (calcPrefs.trigo_mode == radian) respopup_choices[count++] = TORADIAN; + respopup_choices[count++] = TOGRAD; } if (resultPrefs.ansType == complex) { *************** *** 200,208 **** --- 211,240 ---- ans_redisplay(skin, hWnd_calc, _T("torad(ans)")); break; + case TOGRAD: + ans_redisplay(skin, hWnd_calc, _T("tograd(ans)")); + break; case ENGDISPLAY: + { Tdisp_mode oldmode; oldmode = fp_set_dispmode(disp_eng); ans_redisplay(skin, hWnd_calc, _T("ans")); fp_set_dispmode(oldmode); + } + break; + case SCIDISPLAY: + { + Tdisp_mode oldmode; + oldmode = fp_set_dispmode(disp_sci); + ans_redisplay(skin, hWnd_calc, _T("ans")); + fp_set_dispmode(oldmode); + } + break; + case NORMDISPLAY: + { + Tdisp_mode oldmode; + oldmode = fp_set_dispmode(disp_normal); + ans_redisplay(skin, hWnd_calc, _T("ans")); + fp_set_dispmode(oldmode); + } break; } *************** *** 433,443 **** /* Do not display complete matrices */ if ((((item.type == matrix) || (item.type == cmatrix)) && (item.u.matrixval->cols * item.u.matrixval->rows > 9)) || ((item.type == list) && (item.u.listval->size > 6))) ! text = display_default(item, false); else ! text = display_default(item, true); ! resultPrefs.ansType = item.type; resultPrefs.dispBase = dispPrefs.base; --- 465,479 ---- /* Do not display complete matrices */ + // Mapi: the type of value can change, especially with things like matrix[x:.] + // which create a list. + rpntype ansType; if ((((item.type == matrix) || (item.type == cmatrix)) && (item.u.matrixval->cols * item.u.matrixval->rows > 9)) || ((item.type == list) && (item.u.listval->size > 6))) ! text = display_default(item, false, &ansType); else ! text = display_default(item, true, &ansType); ! // resultPrefs.ansType = item.type; ! resultPrefs.ansType = ansType; resultPrefs.dispBase = dispPrefs.base; |
From: Mapi B. <ma...@us...> - 2009-12-15 21:36:25
|
Update of /cvsroot/easycalc/PPCport/compat In directory sfp-cvsdas-1.v30.ch3.sourceforge.com:/tmp/cvs-serv31388 Modified Files: DataManager.cpp DataManager.h Lang.cpp Lang.h MemoryManager.cpp MemoryManager.h PalmOS.h Log Message: Release 1.25e Index: Lang.cpp =================================================================== RCS file: /cvsroot/easycalc/PPCport/compat/Lang.cpp,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** Lang.cpp 2 Nov 2009 17:18:51 -0000 1.4 --- Lang.cpp 15 Dec 2009 21:36:12 -0000 1.5 *************** *** 23,28 **** #include "winnls.h" #include <locale.h> #ifdef UNICODE ! #ifdef WINCE static TCHAR _tlocaleInfo[64]; TCHAR *Lang::_tsetlocale (int category, const TCHAR *locale) { --- 23,29 ---- #include "winnls.h" #include <locale.h> + #ifdef UNICODE ! #ifdef WINCE static TCHAR _tlocaleInfo[64]; TCHAR *Lang::_tsetlocale (int category, const TCHAR *locale) { *************** *** 46,49 **** --- 47,51 ---- #endif #include <stdlib.h> + #include "PalmOS.h" *************** *** 119,128 **** // Since the string returned by setlocale can be overwritten, save a copy ! localeInfo = _tcsdup(localeInfo); } Lang::~Lang(void) { langName.clear(); translation.clear(); } --- 121,142 ---- // Since the string returned by setlocale can be overwritten, save a copy ! localeInfo = _mtcsdup(localeInfo); } Lang::~Lang(void) { + stdext::hash_map<String,String>::const_iterator res; + + // res = translation.begin(); + // while (res != translation.end()) { + // delete (res->first); + // delete (res->second); + // res++; + // } + langName.clear(); + // delete langName; translation.clear(); + // delete translation; + mfree(localeInfo); } *************** *** 260,264 **** if (strchr(ESCAPECHARS, c) != NULL) { // Escape character, keep the next one, // whatever it is (except end of line) ! s.append(1, c); lexState = LEX_IN_ESCAPE; } else if (strchr(STRINGDELIMITERS, c) != NULL) { // We're getting the end of the string --- 274,278 ---- if (strchr(ESCAPECHARS, c) != NULL) { // Escape character, keep the next one, // whatever it is (except end of line) ! clast = c; lexState = LEX_IN_ESCAPE; } else if (strchr(STRINGDELIMITERS, c) != NULL) { // We're getting the end of the string *************** *** 275,279 **** complete = true; } else { ! s.append(1, c); lexState = LEX_IN_STRING; } --- 289,310 ---- complete = true; } else { ! switch (c) { ! case 'n': ! #ifdef _WINDOWS ! s.append("\r\n"); ! #else ! s.append(1, '\n'); ! #endif ! break; ! case 'r': ! s.append(1, '\r'); ! break; ! case 't': ! s.append(1, '\t'); ! break; ! default: ! s.append(1, clast); // Keep the '\' ! s.append(1, c); ! } lexState = LEX_IN_STRING; } *************** *** 329,338 **** if (token == TOK_WORD) { const char *str = s.c_str(); ! char *strup = _strdup(str); _strupr(strup); if (strcmp(strup, "TRANSLATION") == 0) { nextToken = LANGNAME; } ! free(strup); } break; --- 360,369 ---- if (token == TOK_WORD) { const char *str = s.c_str(); ! char *strup = _mstrdup(str); _strupr(strup); if (strcmp(strup, "TRANSLATION") == 0) { nextToken = LANGNAME; } ! mfree(strup); } break; *************** *** 355,364 **** if (token == TOK_WORD) { const char *str = s.c_str(); ! char *strup = _strdup(str); _strupr(strup); if (strcmp(strup, "BEGIN") == 0) { nextToken = STRING1_OR_END; } else nextToken = TRANSLATION; ! free(strup); } else nextToken = TRANSLATION; break; --- 386,395 ---- if (token == TOK_WORD) { const char *str = s.c_str(); ! char *strup = _mstrdup(str); _strupr(strup); if (strcmp(strup, "BEGIN") == 0) { nextToken = STRING1_OR_END; } else nextToken = TRANSLATION; ! mfree(strup); } else nextToken = TRANSLATION; break; *************** *** 367,376 **** if (token == TOK_WORD) { const char *str = s.c_str(); ! char *strup = _strdup(str); _strupr(strup); if (strcmp(strup, "END") == 0) { nextToken = TRANSLATION; } ! free(strup); } else if (token == TOK_STRING) { s1.assign(s); --- 398,407 ---- if (token == TOK_WORD) { const char *str = s.c_str(); ! char *strup = _mstrdup(str); _strupr(strup); if (strcmp(strup, "END") == 0) { nextToken = TRANSLATION; } ! mfree(strup); } else if (token == TOK_STRING) { s1.assign(s); *************** *** 388,395 **** if (token == TOK_STRING) { // We have a new entry for translation ! TCHAR *str1 = _tcsdup(convert(s1.c_str())); const TCHAR *str2 = convert(s.c_str()); lang->insert(str1, str2); ! free(str1); } nextToken = STRING1_OR_END; --- 419,426 ---- if (token == TOK_STRING) { // We have a new entry for translation ! TCHAR *str1 = _mtcsdup(convert(s1.c_str())); const TCHAR *str2 = convert(s.c_str()); lang->insert(str1, str2); ! mfree(str1); } nextToken = STRING1_OR_END; *************** *** 405,409 **** --- 436,450 ---- LibLang::~LibLang(void) { + stdext::hash_map<String,Lang*>::const_iterator res; + + res = libLang.begin(); + while (res != libLang.end()) { + delete (res->second); + res++; + } libLang.clear(); + // delete libLang; + if (wcstr != NULL) + mfree(wcstr); } *************** *** 514,517 **** --- 555,559 ---- /******************************************************************************** * Convert from chars in a locale to TCHAR. * + * When the string is no more needed, it must be freed. * ********************************************************************************/ const TCHAR *LibLang::convert(const char *str) { *************** *** 519,525 **** size_t len2 = len * 2 + 2; if (len2 > allocLen) { ! if (wcstr != NULL) free(wcstr); allocLen = len2; ! wcstr = (TCHAR *) malloc(allocLen); } len2 = mbstowcs(wcstr, str, len+1); --- 561,567 ---- size_t len2 = len * 2 + 2; if (len2 > allocLen) { ! if (wcstr != NULL) mfree(wcstr); allocLen = len2; ! wcstr = (TCHAR *) mmalloc(allocLen); } len2 = mbstowcs(wcstr, str, len+1); Index: DataManager.cpp =================================================================== RCS file: /cvsroot/easycalc/PPCport/compat/DataManager.cpp,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** DataManager.cpp 17 Oct 2009 13:44:17 -0000 1.4 --- DataManager.cpp 15 Dec 2009 21:36:11 -0000 1.5 *************** *** 29,34 **** // Free all records in the DB freeDR(head); ! if (sortArray != NULL) free(sortArray); ! if (name != NULL) free(name); } --- 29,34 ---- // Free all records in the DB freeDR(head); ! if (sortArray != NULL) mfree(sortArray); ! if (name != NULL) mfree(name); } *************** *** 63,67 **** // First, the name if (name != NULL) { ! size_t siz = _msize(name); if (fwrite(&siz, sizeof(siz), 1, f) != 1) return (-1); --- 63,67 ---- // First, the name if (name != NULL) { ! size_t siz = _mmsize(name); if (fwrite(&siz, sizeof(siz), 1, f) != 1) return (-1); *************** *** 123,146 **** if (fread(&numRecords, sizeof(numRecords), 1, f) != 1) return (-1); ! if (fread(&head, sizeof(head), 1, f) != 1) return (-1); ! if (fread(&sortArray, sizeof(sortArray), 1, f) != 1) return (-1); ! if (fread(&name, sizeof(name), 1, f) != 1) return (-1); // Load elements pointed at by the object. // First, the name ! if (name != NULL) { size_t siz; if (fread(&siz, sizeof(siz), 1, f) != 1) return (-1); ! name = (TCHAR *) malloc(siz); if (fread(name, siz, 1, f) != 1) return (-1); } // Then, numbered records, storing their allocated address ! DataRecord **listArray = (DataRecord **) malloc (numRecords * sizeof(DataRecord *)); ! if (head != NULL) { DataRecord *temp1 = NULL, *temp2; for (int i=0 ; i<numRecords ; i++) { --- 123,149 ---- if (fread(&numRecords, sizeof(numRecords), 1, f) != 1) return (-1); ! void *phead; ! if (fread(&phead, sizeof(head), 1, f) != 1) return (-1); ! void *psortArray; ! if (fread(&psortArray, sizeof(sortArray), 1, f) != 1) return (-1); ! void *pname; ! if (fread(&pname, sizeof(name), 1, f) != 1) return (-1); // Load elements pointed at by the object. // First, the name ! if (pname != NULL) { size_t siz; if (fread(&siz, sizeof(siz), 1, f) != 1) return (-1); ! name = (TCHAR *) mmalloc(siz); if (fread(name, siz, 1, f) != 1) return (-1); } // Then, numbered records, storing their allocated address ! DataRecord **listArray = (DataRecord **) mmalloc(numRecords * sizeof(DataRecord *)); ! if (phead != NULL) { DataRecord *temp1 = NULL, *temp2; for (int i=0 ; i<numRecords ; i++) { *************** *** 161,165 **** } // And last, the sort array. Record numbers have been saved instead of addresses. ! if (sortArray != NULL) { size_t siz; if (fread(&siz, sizeof(siz), 1, f) != 1) --- 164,168 ---- } // And last, the sort array. Record numbers have been saved instead of addresses. ! if (psortArray != NULL) { size_t siz; if (fread(&siz, sizeof(siz), 1, f) != 1) *************** *** 168,172 **** // if (fread(sortArray, siz, 1, f) != 1) // return (-1); ! sortArray = (DataRecord **) malloc(numRecords * sizeof(DataRecord *)); int index; for (int i=0 ; i<numRecords ; i++) { --- 171,175 ---- // if (fread(sortArray, siz, 1, f) != 1) // return (-1); ! sortArray = (DataRecord **) mmalloc(numRecords * sizeof(DataRecord *)); int index; for (int i=0 ; i<numRecords ; i++) { *************** *** 178,182 **** } } ! free (listArray); // Restore previous file mode. --- 181,185 ---- } } ! mfree(listArray); // Restore previous file mode. *************** *** 186,197 **** } ! DataManager *stateMgrDB = NULL; // This one comes from CalcDB.cpp ! DataManager *stateMgrHistDB = NULL; // This one comes from EasyCalc.cpp void registerDmDatabase (UINT16 cardNo, const TCHAR *nameP, DataManager *dbId) { ! if (wcscmp (nameP, HISTORYDBNAME) == 0) { stateMgrHistDB = (DataManager *) dbId; ! } else if (wcscmp (nameP, DBNAME) == 0) { stateMgrDB = (DataManager *) dbId; } } --- 189,203 ---- } ! DataManager *stateMgrDB = NULL; // This one goes with CalcDB.cpp ! DataManager *stateMgrHistDB = NULL; // This one goes with EasyCalc.cpp ! DataManager *stateMgrSolvDB = NULL; // This one goes with solver.cpp void registerDmDatabase (UINT16 cardNo, const TCHAR *nameP, DataManager *dbId) { ! if (_tcscmp(nameP, HISTORYDBNAME) == 0) { stateMgrHistDB = (DataManager *) dbId; ! } else if (_tcscmp(nameP, DBNAME) == 0) { stateMgrDB = (DataManager *) dbId; + } else if (_tcscmp(nameP, SOLVERDBNAME) == 0) { + stateMgrSolvDB = (DataManager *) dbId; } } *************** *** 199,206 **** LocalID DmFindDatabase (UINT16 cardNo, const TCHAR *nameP) { LocalID dbId = NULL; ! if (wcscmp (nameP, HISTORYDBNAME) == 0) { dbId = (LocalID) stateMgrHistDB; ! } else if (wcscmp (nameP, DBNAME) == 0) { dbId = (LocalID) stateMgrDB; } return (dbId); --- 205,214 ---- LocalID DmFindDatabase (UINT16 cardNo, const TCHAR *nameP) { LocalID dbId = NULL; ! if (_tcscmp(nameP, HISTORYDBNAME) == 0) { dbId = (LocalID) stateMgrHistDB; ! } else if (_tcscmp(nameP, DBNAME) == 0) { dbId = (LocalID) stateMgrDB; + } else if (_tcscmp(nameP, SOLVERDBNAME) == 0) { + dbId = (LocalID) stateMgrSolvDB; } return (dbId); *************** *** 213,217 **** int rc = -1; DataManager *db = (DataManager *) dbID; ! if ((db == stateMgrHistDB) || (db == stateMgrDB)) { *attributesP = db->attr; *versionP = (UINT16) (db->version); --- 221,225 ---- int rc = -1; DataManager *db = (DataManager *) dbID; ! if ((db == stateMgrHistDB) || (db == stateMgrDB) || (db == stateMgrSolvDB)) { *attributesP = db->attr; *versionP = (UINT16) (db->version); *************** *** 233,236 **** --- 241,247 ---- stateMgrDB->attr = *attributesP; stateMgrDB->version = *versionP; + } else if (dbID == (LocalID) stateMgrSolvDB) { + stateMgrSolvDB->attr = *attributesP; + stateMgrSolvDB->version = *versionP; } return (0); *************** *** 242,245 **** --- 253,258 ---- } else if (dbID == (LocalID) stateMgrDB) { return (stateMgrDB); + } else if (dbID == (LocalID) stateMgrSolvDB) { + return (stateMgrSolvDB); } return (NULL); *************** *** 253,257 **** UINT32 type, bool resDB) { int rc = 0; ! if (wcscmp (nameP, HISTORYDBNAME) == 0) { if (stateMgrHistDB == NULL) { stateMgrHistDB = new DataManager; --- 266,270 ---- UINT32 type, bool resDB) { int rc = 0; ! if (_tcscmp(nameP, HISTORYDBNAME) == 0) { if (stateMgrHistDB == NULL) { stateMgrHistDB = new DataManager; *************** *** 259,274 **** stateMgrHistDB->type = type; int l = _tcslen(nameP); ! stateMgrHistDB->name = (TCHAR *) malloc(2*(l+1)); ! _tcscpy (stateMgrHistDB->name, nameP); } rc = 0; ! } else if (wcscmp (nameP, DBNAME) == 0) { ! if (stateMgrHistDB == NULL) { stateMgrDB = new DataManager; stateMgrDB->creator = creator; stateMgrDB->type = type; int l = _tcslen(nameP); ! stateMgrDB->name = (TCHAR *) malloc(2*(l+1)); ! _tcscpy (stateMgrDB->name, nameP); } rc = 0; --- 272,297 ---- stateMgrHistDB->type = type; int l = _tcslen(nameP); ! stateMgrHistDB->name = (TCHAR *) mmalloc(2*(l+1)); ! _tcscpy(stateMgrHistDB->name, nameP); } rc = 0; ! } else if (_tcscmp(nameP, DBNAME) == 0) { ! if (stateMgrDB == NULL) { stateMgrDB = new DataManager; stateMgrDB->creator = creator; stateMgrDB->type = type; int l = _tcslen(nameP); ! stateMgrDB->name = (TCHAR *) mmalloc(2*(l+1)); ! _tcscpy(stateMgrDB->name, nameP); ! } ! rc = 0; ! } else if (_tcscmp(nameP, SOLVERDBNAME) == 0) { ! if (stateMgrSolvDB == NULL) { ! stateMgrSolvDB = new DataManager; ! stateMgrSolvDB->creator = creator; ! stateMgrSolvDB->type = type; ! int l = _tcslen(nameP); ! stateMgrSolvDB->name = (TCHAR *) mmalloc(2*(l+1)); ! _tcscpy(stateMgrSolvDB->name, nameP); } rc = 0; *************** *** 283,288 **** int DmDeleteDatabase (UINT16 cardNo, LocalID dbID) { DataManager *db = (DataManager *) dbID; ! if ((db == stateMgrHistDB) || (db == stateMgrDB)) { if (db == stateMgrHistDB) stateMgrHistDB = NULL; else stateMgrDB = NULL; delete db; --- 306,312 ---- int DmDeleteDatabase (UINT16 cardNo, LocalID dbID) { DataManager *db = (DataManager *) dbID; ! if ((db == stateMgrHistDB) || (db == stateMgrDB) || (db == stateMgrSolvDB)) { if (db == stateMgrHistDB) stateMgrHistDB = NULL; + else if (db == stateMgrSolvDB) stateMgrSolvDB = NULL; else stateMgrDB = NULL; delete db; *************** *** 297,301 **** MemHandle DmNewRecord (DmOpenRef dbP, UInt16 *atP, UInt32 size) { MemHandle p = NULL; ! if ((dbP == stateMgrHistDB) || (dbP == stateMgrDB)) { if ((p = MemHandleNew(size)) != NULL) { DataRecord *prec = NULL; --- 321,325 ---- MemHandle DmNewRecord (DmOpenRef dbP, UInt16 *atP, UInt32 size) { MemHandle p = NULL; ! if ((dbP == stateMgrHistDB) || (dbP == stateMgrDB) || (dbP == stateMgrSolvDB)) { if ((p = MemHandleNew(size)) != NULL) { DataRecord *prec = NULL; *************** *** 309,313 **** temp = (prec = temp)->next; } else { // Maintain the sort array in sync ! DataRecord **destArray = (DataRecord **) malloc(dbP->numRecords * sizeof(DataRecord **)); if (*atP > 0) { memcpy (destArray, --- 333,337 ---- temp = (prec = temp)->next; } else { // Maintain the sort array in sync ! DataRecord **destArray = (DataRecord **) mmalloc(dbP->numRecords * sizeof(DataRecord **)); if (*atP > 0) { memcpy (destArray, *************** *** 324,328 **** temp = NULL; // Insert at end. // Switch sortArray to the new allocated array ! free(dbP->sortArray); dbP->sortArray = destArray; } --- 348,352 ---- temp = NULL; // Insert at end. // Switch sortArray to the new allocated array ! mfree(dbP->sortArray); dbP->sortArray = destArray; } *************** *** 348,352 **** int DmRemoveRecord (DmOpenRef dbP, UINT16 index) { ! if ((dbP == stateMgrHistDB) || (dbP == stateMgrDB)) { DataRecord *prec = NULL; DataRecord *temp = dbP->head; --- 372,376 ---- int DmRemoveRecord (DmOpenRef dbP, UINT16 index) { ! if ((dbP == stateMgrHistDB) || (dbP == stateMgrDB) || (dbP == stateMgrSolvDB)) { DataRecord *prec = NULL; DataRecord *temp = dbP->head; *************** *** 361,365 **** DataRecord **destArray = NULL; if (dbP->numRecords > 0) { // Do not allocate a new array if size is 0 ! destArray = (DataRecord **) malloc(dbP->numRecords * sizeof(DataRecord **)); if (index > 0) { memcpy (destArray, --- 385,389 ---- DataRecord **destArray = NULL; if (dbP->numRecords > 0) { // Do not allocate a new array if size is 0 ! destArray = (DataRecord **) mmalloc(dbP->numRecords * sizeof(DataRecord **)); if (index > 0) { memcpy (destArray, *************** *** 376,380 **** } // Switch sortArray to the new allocated array ! free(dbP->sortArray); dbP->sortArray = destArray; } --- 400,404 ---- } // Switch sortArray to the new allocated array ! mfree(dbP->sortArray); dbP->sortArray = destArray; } *************** *** 403,407 **** MemHandle DmQueryRecord (DmOpenRef dbP, UINT16 index) { MemHandle p = NULL; ! if ((dbP == stateMgrHistDB) || (dbP == stateMgrDB)) { DataRecord *temp = dbP->head; // Find record --- 427,431 ---- MemHandle DmQueryRecord (DmOpenRef dbP, UINT16 index) { MemHandle p = NULL; ! if ((dbP == stateMgrHistDB) || (dbP == stateMgrDB) || (dbP == stateMgrSolvDB)) { DataRecord *temp = dbP->head; // Find record *************** *** 526,530 **** DmComparF *compar, INT16 other) { int i = -1; ! if ((dbP == stateMgrHistDB) || (dbP == stateMgrDB)) { // If DB is empty .. do nothing ! if (dbP->numRecords == 0) --- 550,554 ---- DmComparF *compar, INT16 other) { int i = -1; ! if ((dbP == stateMgrHistDB) || (dbP == stateMgrDB) || (dbP == stateMgrSolvDB)) { // If DB is empty .. do nothing ! if (dbP->numRecords == 0) *************** *** 534,538 **** if (dbP->sortArray == NULL) { // Allocate the sort array ! dbP->sortArray = (DataRecord **) malloc(dbP->numRecords * sizeof(DataRecord **)); // Then fill it by adding elements to it in a sorted manner. // Add the first element from the list. --- 558,562 ---- if (dbP->sortArray == NULL) { // Allocate the sort array ! dbP->sortArray = (DataRecord **) mmalloc(dbP->numRecords * sizeof(DataRecord **)); // Then fill it by adding elements to it in a sorted manner. // Add the first element from the list. *************** *** 619,625 **** if (fread(&num, sizeof(num), 1, f) != 1) return (-1); ! if (fread(&h, sizeof(h), 1, f) != 1) return (-1); ! if (h != NULL) { h = new c_MemHandle (); if (h->deSerialize(f) != 0) { --- 643,650 ---- if (fread(&num, sizeof(num), 1, f) != 1) return (-1); ! void *ph; ! if (fread(&ph, sizeof(h), 1, f) != 1) return (-1); ! if (ph != NULL) { h = new c_MemHandle (); if (h->deSerialize(f) != 0) { Index: Lang.h =================================================================== RCS file: /cvsroot/easycalc/PPCport/compat/Lang.h,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** Lang.h 21 Oct 2009 20:54:50 -0000 1.3 --- Lang.h 15 Dec 2009 21:36:12 -0000 1.4 *************** *** 63,70 **** bool insertLang(Lang *lang); const Lang *getLang(const TCHAR *langName); - const TCHAR *convert(const char *str); public: LibLang(FILE *langFile); ~LibLang(void); int getNbLang(void); const TCHAR *getFirst(void); --- 63,70 ---- bool insertLang(Lang *lang); const Lang *getLang(const TCHAR *langName); public: LibLang(FILE *langFile); ~LibLang(void); + const TCHAR *convert(const char *str); int getNbLang(void); const TCHAR *getFirst(void); Index: PalmOS.h =================================================================== RCS file: /cvsroot/easycalc/PPCport/compat/PalmOS.h,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** PalmOS.h 2 Nov 2009 17:06:35 -0000 1.7 --- PalmOS.h 15 Dec 2009 21:36:12 -0000 1.8 *************** *** 46,49 **** --- 46,50 ---- #define StrCompare _tcscmp #define StrCat _tcscat + #define StrChr _tcschr #define StrPrintF _stprintf #define StrIToA(s,i) _itot(i,s,10) Index: DataManager.h =================================================================== RCS file: /cvsroot/easycalc/PPCport/compat/DataManager.h,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** DataManager.h 17 Oct 2009 13:44:17 -0000 1.4 --- DataManager.h 15 Dec 2009 21:36:12 -0000 1.5 *************** *** 91,94 **** --- 91,95 ---- extern DataManager *stateMgrDB; extern DataManager *stateMgrHistDB; + extern DataManager *stateMgrSolvDB; #endif Index: MemoryManager.h =================================================================== RCS file: /cvsroot/easycalc/PPCport/compat/MemoryManager.h,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** MemoryManager.h 17 Oct 2009 13:44:17 -0000 1.2 --- MemoryManager.h 15 Dec 2009 21:36:12 -0000 1.3 *************** *** 38,42 **** --- 38,46 ---- #ifndef _MEMORYMANAGER_C_ #define MemHandleNew c_MemHandle::MemHandleNew + #ifdef _DEBUG + #define MemHandleFree(h) {c_MemHandle::MemHandleFree(h);h=NULL;} + #else #define MemHandleFree c_MemHandle::MemHandleFree + #endif #define MemHandleLock(h) ((h)->lock()) #define MemHandleUnlock(h) ((h)->unlock()) *************** *** 45,50 **** #endif ! #define MemPtrNew malloc ! #define MemPtrFree free #endif \ No newline at end of file --- 49,80 ---- #endif ! #ifdef _DEBUG ! #define __WFILE__ _T(__FILE__) ! void init_debug_malloc(TCHAR *trcpath); ! void end_debug_malloc(void); ! char *debug__strdup(TCHAR *sfile, int sline, const char *strSource); ! TCHAR *debug__tcsdup(TCHAR *sfile, int sline, const TCHAR *strSource); ! void *debug_malloc(TCHAR *sfile, int sline, size_t size); ! size_t debug__msize(void *memblock); ! void *debug_realloc(TCHAR *sfile, int sline, void *memblock, size_t size); ! void debug_free(TCHAR *sfile, int sline, void *memblock); ! #define MemPtrNew(s) debug_malloc(__WFILE__, __LINE__, (s)) ! #define MemPtrFree(m) {debug_free(__WFILE__, __LINE__, (void *)(m));(m)=NULL;} ! #define _mstrdup(s) debug__strdup(__WFILE__, __LINE__, (s)) ! #define _mtcsdup(s) debug__tcsdup(__WFILE__, __LINE__, (s)) ! #define mmalloc(s) debug_malloc(__WFILE__, __LINE__, (s)) ! #define _mmsize debug__msize ! #define mrealloc(m,s) debug_realloc(__WFILE__, __LINE__, (void *)(m), (s)) ! #define mfree(m) {debug_free(__WFILE__, __LINE__, (void *)(m));(m)=NULL;} ! #else ! #define MemPtrNew malloc ! #define MemPtrFree free ! #define _mstrdup _strdup ! #define _mtcsdup _tcsdup ! #define mmalloc malloc ! #define _mmsize _msize ! #define mrealloc realloc ! #define mfree(m) free((void *)(m)) ! #endif #endif \ No newline at end of file Index: MemoryManager.cpp =================================================================== RCS file: /cvsroot/easycalc/PPCport/compat/MemoryManager.cpp,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** MemoryManager.cpp 17 Oct 2009 13:44:17 -0000 1.2 --- MemoryManager.cpp 15 Dec 2009 21:36:12 -0000 1.3 *************** *** 17,21 **** c_MemHandle::~c_MemHandle(void) { if (memPtr != NULL) ! free(memPtr); } --- 17,21 ---- c_MemHandle::~c_MemHandle(void) { if (memPtr != NULL) ! mfree(memPtr); } *************** *** 35,39 **** return (-1); if (memPtr != NULL) { ! size_t siz = _msize(memPtr); if (fwrite(&siz, sizeof(siz), 1, f) != 1) return (-1); --- 35,39 ---- return (-1); if (memPtr != NULL) { ! size_t siz = _mmsize(memPtr); if (fwrite(&siz, sizeof(siz), 1, f) != 1) return (-1); *************** *** 55,67 **** if (fread(&size, sizeof(size), 1, f) != 1) return (-1); ! if (fread(&memPtr, sizeof(memPtr), 1, f) != 1) return (-1); if (fread(&lockCnt, sizeof(lockCnt), 1, f) != 1) return (-1); ! if (memPtr != NULL) { size_t siz; if (fread(&siz, sizeof(siz), 1, f) != 1) return (-1); ! memPtr = malloc(siz); if (fread(memPtr, siz, 1, f) != 1) return (-1); --- 55,68 ---- if (fread(&size, sizeof(size), 1, f) != 1) return (-1); ! void *pmemPtr; ! if (fread(&pmemPtr, sizeof(memPtr), 1, f) != 1) return (-1); if (fread(&lockCnt, sizeof(lockCnt), 1, f) != 1) return (-1); ! if (pmemPtr != NULL) { size_t siz; if (fread(&siz, sizeof(siz), 1, f) != 1) return (-1); ! memPtr = mmalloc(siz); if (fread(memPtr, siz, 1, f) != 1) return (-1); *************** *** 78,82 **** if (h != NULL) { // Add 4 bytes, round up to next 4 bytes limit ! if ((h->memPtr = malloc((size+7) & 0xFFFFFFFC)) != NULL) { // Put metadata MemHandle address in allocated memory *((UInt32 *) h->memPtr) = (UInt32) h; --- 79,83 ---- if (h != NULL) { // Add 4 bytes, round up to next 4 bytes limit ! if ((h->memPtr = mmalloc((size+7) & 0xFFFFFFFC)) != NULL) { // Put metadata MemHandle address in allocated memory *((UInt32 *) h->memPtr) = (UInt32) h; *************** *** 139,148 **** return (0); if ((newSize == 0) && (this->memPtr)) { // Free existing allocated memory ! free(this->memPtr); this->memPtr = NULL; this->size = 0; } else { // Add 4 bytes, round up to next 4 bytes limit ! void *p = realloc(this->memPtr, (newSize+7) & 0xFFFFFFFC); if (p != NULL) { this->memPtr = p; --- 140,149 ---- return (0); if ((newSize == 0) && (this->memPtr)) { // Free existing allocated memory ! mfree(this->memPtr); this->memPtr = NULL; this->size = 0; } else { // Add 4 bytes, round up to next 4 bytes limit ! void *p = mrealloc(this->memPtr, (newSize+7) & 0xFFFFFFFC); if (p != NULL) { this->memPtr = p; *************** *** 156,157 **** --- 157,262 ---- return (0); } + + #ifdef _DEBUG + #define MEM_MAGIC_ALLOC 0xACACACAC + #define MEM_MAGIC_FREED 0xFCFCFCFC + + #include <stdio.h> + static FILE *trcfile = NULL; + void init_debug_malloc (TCHAR *trcpath) { + TCHAR fn[128]; + _tcscpy(fn, trcpath); + _tcscat(fn, _T("\\malloctrc.txt")); + trcfile = _tfopen(fn, _T("w")); + } + + void end_debug_malloc (void) { + fclose(trcfile); + } + + char *debug__strdup (TCHAR *sfile, int sline, const char *strSource) { + // char *s = _strdup(strSource); + int size = strlen(strSource) + 1; + int wrounded_size = ((size+3) & 0xFFFFFFFC); + int *p = (int *) malloc(wrounded_size+8); + int alloc_size = _msize(p); + *p = MEM_MAGIC_ALLOC; + _ftprintf(trcfile, _T("malloc(_strdup)\t0x%08X\t%d\t%s\t%d\n"), (int) p, alloc_size, sfile, sline); + memcpy(p+1, strSource, size); + *((int *)(((byte *)p)+alloc_size-4)) = MEM_MAGIC_ALLOC; + return((char *) (p+1)); + // return (s); + } + + TCHAR *debug__tcsdup (TCHAR *sfile, int sline, const TCHAR *strSource) { + // TCHAR *s = _tcsdup(strSource); + int size = (_tcslen(strSource) + 1) * sizeof(TCHAR); + int wrounded_size = ((size+3) & 0xFFFFFFFC); + int *p = (int *) malloc(wrounded_size+8); + int alloc_size = _msize(p); + *p = MEM_MAGIC_ALLOC; + _ftprintf(trcfile, _T("malloc(_tcsdup)\t0x%08X\t%d\t%s\t%d\n"), (int) p, alloc_size, sfile, sline); + memcpy(p+1, strSource, size); + *((int *)(((byte *)p)+alloc_size-4)) = MEM_MAGIC_ALLOC; + return((TCHAR *) (p+1)); + // return (s); + } + + void *debug_malloc (TCHAR *sfile, int sline, size_t size) { + int wrounded_size = ((size+3) & 0xFFFFFFFC); + int *p = (int *) malloc(wrounded_size+8); + int alloc_size = _msize(p); + *p = MEM_MAGIC_ALLOC; + _ftprintf(trcfile, _T("malloc\t0x%08X\t%d\t%d\t%s\t%d\n"), (int) (p+1), alloc_size, size, sfile, sline); + memset(p+1, 0, alloc_size-8); + *((int *)(((byte *)p)+alloc_size-4)) = MEM_MAGIC_ALLOC; + return((void *) (p+1)); + } + + size_t debug__msize(void *memblock) { + int *p = ((int *) memblock)-1; + return (_msize(p) - 8); + } + + void *debug_realloc (TCHAR *sfile, int sline, void *memblock, size_t size) { + size_t old_size; + int *op; + if (memblock == NULL) { + old_size = 0; + op = NULL; + } else { + old_size = debug__msize(memblock); + op = ((int *) memblock)-1; + } + int wrounded_size = ((size+3) & 0xFFFFFFFC); + int *p = (int *) realloc(op, wrounded_size+8); + int alloc_size = _msize(p); + if (op == NULL) { + *p = MEM_MAGIC_ALLOC; + } else if (p != op) { // op non NULL and was freed + *op = MEM_MAGIC_FREED; + memset(op+1, 0, old_size); + *((int *)(((byte *)(op+1))+old_size)) = MEM_MAGIC_FREED; + } + _ftprintf(trcfile, _T("realloc\t0x%08X\t%d\t%d\t0x%08X\t%d\t%s\t%d\n"), (int) p, alloc_size, size, (int) memblock, old_size+8, sfile, sline); + *((int *)(((byte *)p)+alloc_size-4)) = MEM_MAGIC_ALLOC; + return((void *) (p+1)); + } + + void debug_free (TCHAR *sfile, int sline, void *memblock) { + int *trig_error = NULL; + int *p = ((int *) memblock)-1; + if (*p != MEM_MAGIC_ALLOC) { + *p = *trig_error; + } + *p = MEM_MAGIC_FREED; + size_t size = debug__msize(memblock); + if (*((int *)(((byte *)(p+1))+size)) != MEM_MAGIC_ALLOC) { + *p = *trig_error; + } + memset(p+1, 0, size); + *((int *)(((byte *)(p+1))+size)) = MEM_MAGIC_FREED; + _ftprintf(trcfile, _T("free\t0x%08X\t%d\t%d\t%s\t%d\n"), (int) memblock, size+8, size, sfile, sline); + free(p); + } + #endif \ No newline at end of file |
From: Mapi B. <ma...@us...> - 2009-12-15 21:36:09
|
Update of /cvsroot/easycalc/PPCport In directory sfp-cvsdas-1.v30.ch3.sourceforge.com:/tmp/cvs-serv31219 Modified Files: EasyCalc.vcproj ReadMe.txt Log Message: Release 1.25e Index: EasyCalc.vcproj =================================================================== RCS file: /cvsroot/easycalc/PPCport/EasyCalc.vcproj,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -d -r1.12 -r1.13 *** EasyCalc.vcproj 16 Nov 2009 22:14:29 -0000 1.12 --- EasyCalc.vcproj 15 Dec 2009 21:35:49 -0000 1.13 *************** *** 149,152 **** --- 149,153 ---- DebugInformationFormat="3" ShowIncludes="true" + EnablePREfast="false" /> <Tool *************** *** 646,649 **** --- 647,654 ---- </File> <File + RelativePath=".\core\finance.cpp" + > + </File> + <File RelativePath=".\core\lstedit.cpp" > *************** *** 654,657 **** --- 659,666 ---- </File> <File + RelativePath=".\core\memo.cpp" + > + </File> + <File RelativePath=".\core\mtxedit.cpp" > *************** *** 662,665 **** --- 671,678 ---- </File> <File + RelativePath=".\core\solver.cpp" + > + </File> + <File RelativePath=".\core\varmgr.cpp" > *************** *** 896,899 **** --- 909,916 ---- </File> <File + RelativePath=".\core\finance.h" + > + </File> + <File RelativePath=".\core\lstedit.h" > *************** *** 904,907 **** --- 921,928 ---- </File> <File + RelativePath=".\core\memo.h" + > + </File> + <File RelativePath=".\core\mtxedit.h" > *************** *** 912,915 **** --- 933,940 ---- </File> <File + RelativePath=".\core\solver.h" + > + </File> + <File RelativePath=".\core\varmgr.h" > Index: ReadMe.txt =================================================================== RCS file: /cvsroot/easycalc/PPCport/ReadMe.txt,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** ReadMe.txt 16 Nov 2009 22:14:29 -0000 1.7 --- ReadMe.txt 15 Dec 2009 21:35:51 -0000 1.8 *************** *** 32,35 **** --- 32,62 ---- Releases: --------- + * 1.25e PPC: + - Fixed bug from legacy code where matrix[n:.] which is resulting in a + list is not recognized as a list and cannot be edited in list editor + by a tap on the result area. + - Modified torad(), todeg(), todeg2() so that they take into account + current trogonometric mode, and do the proper conversion. + - Added tograd() function. + - These toxxx functions also now bring back the value to the proper + range, i.e. ]-2pi,2pi[ for radian, ]-360,360[ for degree and degree2, + and ]-400,400[ for grad. + - Modified the M menu at right of result screen so that it is able to + call these conversion functions at any time when there is a real or + complex number in ANS, and not just function of the trigonometric mode. + - Added mouse position integration code to better filter out spurious + signals when stylus is leaving screen. This problem is mostly + happening on the Asus A639 I suppose, but that doesn't hurt, and anyway + it brings stability when hitting keys on the screen with fingers, in + case you want to use this app just as you would with a normal calculator. + - Added Solver and Solver interface. + - Added Financial Manager. + - Added Import / Export of variables, functions and equations to text + files, for exchange with other people or platforms, and backup. + - Fixed a number of bugs in the code. + - Adapt better to larger resolutions than 240 x 320 (e.g. VGA 480 x 640). + - Added feature request 2875982, extended it (be able to convert displayed + result to normal, engineer or scientific mode as needed). + * 1.25d PPC: - More stringent window handling code to fight further the few cases *************** *** 41,45 **** from normal pad and without using the SIP/keyboard. - Added the matrix editor. ! - Added documentation of special functions in the release package. * 1.25c PPC: --- 68,72 ---- from normal pad and without using the SIP/keyboard. - Added the matrix editor. ! - Added old documentation of special functions in the release package. * 1.25c PPC: *************** *** 48,52 **** which was causing x^y and x^(1/y) to select wrong length of text when at beginning of input line. ! - Added the ° (degree) and ' (minutes) keys as shift on '*' and '-' * 1.25b PPC: --- 75,79 ---- which was causing x^y and x^(1/y) to select wrong length of text when at beginning of input line. ! - Added the ° (degree) and ' (minutes) keys as shift + '*' and '-'. * 1.25b PPC: *************** *** 66,73 **** ! Functional differences between 1.25b PPC and legacy Palm EasyCalc 1.25: ----------------------------------------------------------------------- - Fully skinable: one can create new skins (.gif and .layout files) to ! customize EasyCalc look as they want, including redesigning buttons and their function or placement, "à-la" free42. This doesn't require recompilation nor special skills, except some --- 93,100 ---- ! Functional differences between 1.25e PPC and legacy Palm EasyCalc 1.25: ----------------------------------------------------------------------- - Fully skinable: one can create new skins (.gif and .layout files) to ! customize EasyCalc look as one wants, including redesigning buttons and their function or placement, "à-la" free42. This doesn't require recompilation nor special skills, except some *************** *** 79,88 **** - The old B / S / I approach has been abandonned as being too specific. Any skin including the standard supplied one can have up to 3 customizable ! panels + graph, which can be accessed at any time by a tap on screen. - Dynamic switch of language on the UI, by just going to the options panel. No more several versions to pick from. When starting for the first time, EasyCalc PPC determines the user ! language and adopts it if it knows it. - Adding or modifying a language doesn't require re-compilation, just a --- 106,117 ---- - The old B / S / I approach has been abandonned as being too specific. Any skin including the standard supplied one can have up to 3 customizable ! panels + graph, which can be accessed at any time by a tap on corresponding ! annunciators at top of screen. - Dynamic switch of language on the UI, by just going to the options panel. No more several versions to pick from. When starting for the first time, EasyCalc PPC determines the user ! language from the system, and adopts it if it knows it, else defaults ! to english. - Adding or modifying a language doesn't require re-compilation, just a *************** *** 91,98 **** where EasyCalc PPC is installed on your PDA, and next time it starts, the new or modified language will be available and taken into account. ! Note: if you modify a language file or add a new one, please post it ! in the Feature Requests Tracker of EasyCalc on SourceForge ! http://sourceforge.net/tracker/?group_id=13138&atid=363138 ! so that can be accounted for in the next release of EasyCalc PPC. - Not yet translated objects in a chosen language appear on the UI --- 120,132 ---- where EasyCalc PPC is installed on your PDA, and next time it starts, the new or modified language will be available and taken into account. ! Notes: a) If you modify a language file or add a new one, please post it ! in the Feature Requests Tracker of EasyCalc on SourceForge ! http://sourceforge.net/tracker/?group_id=13138&atid=363138 ! so that can be accounted for in the next release of EasyCalc PPC. ! b) For now, I didn't include in the package the merge.bat file ! nor all the separate language files. Signal your will to ! translate in the forum or in the feature requests tracker, ! and we will convene on a way to get your input in the release ! package. - Not yet translated objects in a chosen language appear on the UI *************** *** 104,108 **** - An imprecision on sqrt() with negative or complex numbers is resolved: ! sqrt(-1) returned a complex value which had a non 0 real part, whose value was depending on the precision of float / double / math means used behind calculations. I.e., sqrt(-1) was returning 6.12303176911E-17 + 1i --- 138,142 ---- - An imprecision on sqrt() with negative or complex numbers is resolved: ! sqrt(-1) was returning a complex value which had a non 0 real part, whose value was depending on the precision of float / double / math means used behind calculations. I.e., sqrt(-1) was returning 6.12303176911E-17 + 1i *************** *** 132,138 **** in the legacy Palm app, just an input text area). ! - The history popup does not align differently (left or right) text coming from results or input areas. Windows doesn't allow that in standard list ! boxes, items must be all the same. - In List Editor, added an Append button in addition to Insert, to add item(s) --- 166,172 ---- in the legacy Palm app, just an input text area). ! - The history popup does not align differently (left and right) text coming from results or input areas. Windows doesn't allow that in standard list ! boxes, items must be aligned all the same. - In List Editor, added an Append button in addition to Insert, to add item(s) *************** *** 145,159 **** - Viewing results longer than the result display size is not done by a tap and drag, but by clicking on the arrows at left or right of the screen. ! Will see how to do the tap and drag thing also in PocketPC version later. ! Still missing in 1.25d: ----------------------- - - Solver interface - - Financial Manager - - Import / export to notepad (memopad in PalmOS) - Support for multiple skins (only 1 for now) - Graphes - Support screen rotation with another set of skins (EasyCalcWide.layout + gif). - ... that should be all ... --- 179,216 ---- - Viewing results longer than the result display size is not done by a tap and drag, but by clicking on the arrows at left or right of the screen. ! Will see how to do the tap and drag thing also in the PocketPC version later. + - matrix[n:.] which is resulting in a list is recognized as a list by the PPC + version and can be edited in list editor by a tap on the result area. ! - Solver interface has the classical V, F and f buttons to enter text (no button ! in the legacy Palm app, just an input text area). ! ! - Financial Manager: ! - show label of selected variable. ! - Require double tap, or tap again, on variable value to edit it, instead ! of single tap. ! - Show total payment and total cost (= total payment + remaining - initial value). ! - Fixed bugs on the sign of formulae or on Present and Future values in ! some calculations. ! - Improved precision on some calculations. ! - No change on PYR value when clicking on it, if I = 0. ! ! - Integrated solution from lizzybarham to feature request 2875982, and extended ! it to be able to convert displayed result to normal, engineer or scientific mode ! as needed (feature request was only for scientific). ! ! - Import / export of equations done from main menu, and not from Solver menu. ! - Export is either on variables, functions or equations, but not on ! variables + functions. ! - Sped up the display_matrix() routine for big matrices (50 x 50). ! ! ! Still missing in 1.25e: ----------------------- - Support for multiple skins (only 1 for now) - Graphes - Support screen rotation with another set of skins (EasyCalcWide.layout + gif). + - Documentation - ... that should be all ... |
From: Mapi B. <ma...@us...> - 2009-11-16 22:18:53
|
Update of /cvsroot/easycalc/PPCport/system - UI In directory 23jxhf1.ch3.sourceforge.com:/tmp/cvs-serv23096 Modified Files: EasyCalc.cpp EasyCalc.gif EasyCalc.h EasyCalc.layout EasyCalcppc.aps EasyCalcppc.rc resourceppc.h Skin.cpp Skin.h StateManager.cpp StateManager.h Log Message: 1.25d, matrix editor and other bug fixes/additional functions Index: EasyCalc.layout =================================================================== RCS file: /cvsroot/easycalc/PPCport/system - UI/EasyCalc.layout,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** EasyCalc.layout 3 Nov 2009 10:04:52 -0000 1.8 --- EasyCalc.layout 16 Nov 2009 22:18:41 -0000 1.9 *************** *** 188,192 **** # 149 -> erf # 150 -> erfc ! # 151 -> Inf // Infinity constant # # 1st row --- 188,193 ---- # 149 -> erf # 150 -> erfc ! # 151 -> = ! # 152 -> Inf // Infinity constant # # 1st row *************** *** 237,245 **** Key: 26 196,199,40,29 201,204,30,19 201,203 # 6th row ! # +Inf x : ! # 0 -/+ . + = ! Key: 0,151 6,236,40,29 11,241,30,19 11,240 Key: 23,87 53,236,40,29 58,241,30,19 58,240 Key: -4,47 101,236,40,29 106,241,30,19 106,240 Key: 21 148,236,40,29 153,241,30,19 153,240 ! Key: -3 196,236,40,29 201,241,30,19 201,240 --- 238,246 ---- Key: 26 196,199,40,29 201,204,30,19 201,203 # 6th row ! # +Inf x : = ! # 0 -/+ . + EXE ! Key: 0,152 6,236,40,29 11,241,30,19 11,240 Key: 23,87 53,236,40,29 58,241,30,19 58,240 Key: -4,47 101,236,40,29 106,241,30,19 106,240 Key: 21 148,236,40,29 153,241,30,19 153,240 ! Key: -3,151 196,236,40,29 201,241,30,19 201,240 Index: EasyCalc.h =================================================================== RCS file: /cvsroot/easycalc/PPCport/system - UI/EasyCalc.h,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** EasyCalc.h 2 Nov 2009 17:36:50 -0000 1.6 --- EasyCalc.h 16 Nov 2009 22:18:41 -0000 1.7 *************** *** 104,109 **** #endif ! // Version of the shell file ! #define SHELL_VERSION 1 /* Magic number and version number for the state file. --- 104,110 ---- #endif ! // Version of the state file ! #define STATE_VERSION_ORIG 1 ! #define STATE_VERSION 2 /* Magic number and version number for the state file. *************** *** 152,155 **** --- 153,158 ---- #include "core/mlib/konvert.h" + void *subclassEdit(HWND hWnd_p, HWND hWndE); + void unsubclassEdit(HWND hWndE, void *cedit2_obj); void read_state (void); void save_state (void); *************** *** 166,168 **** --- 169,174 ---- void LstEditDeselect(void); + void MtxEditSetRowLabel(int rowNb, int value); + void MtxEditSetRowValue(int rowNb, int colNb, TCHAR *cell); + #endif Index: EasyCalcppc.aps =================================================================== RCS file: /cvsroot/easycalc/PPCport/system - UI/EasyCalcppc.aps,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 Binary files /tmp/cvsJA4iOE and /tmp/cvsfgPZbZ differ Index: EasyCalc.cpp =================================================================== RCS file: /cvsroot/easycalc/PPCport/system - UI/EasyCalc.cpp,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** EasyCalc.cpp 3 Nov 2009 10:04:52 -0000 1.7 --- EasyCalc.cpp 16 Nov 2009 22:18:41 -0000 1.8 *************** *** 50,53 **** --- 50,55 ---- #include "core/mlib/funcs.h" #include "core/mlib/stack.h" + #include "core/mtxedit.h" + #include "core/mlib/matrix.h" *************** *** 58,62 **** #define MAX_LOADSTRING 100 [...4043 lines suppressed...] ! return (FALSE); } --- 4815,4830 ---- free((void *) lParam); } ! processed = TRUE; ! break; case WM_CLOSE: EndDialog(hDlg, 0); ! processed = TRUE; ! break; } ! if (processed) // Send back message specific return value ! SetWindowLong(hDlg, DWL_MSGRESULT, res); ! return (processed); } Index: Skin.h =================================================================== RCS file: /cvsroot/easycalc/PPCport/system - UI/Skin.h,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** Skin.h 2 Nov 2009 17:36:50 -0000 1.8 --- Skin.h 16 Nov 2009 22:18:41 -0000 1.9 *************** *** 138,142 **** TCHAR inputText[INPUTAREA_SIZE]; // Used to get the input area string int pow_pos; // Current position when writing power text. ! HWND hwndE; // The handle to the edit control input area bool landscape; --- 138,143 ---- TCHAR inputText[INPUTAREA_SIZE]; // Used to get the input area string int pow_pos; // Current position when writing power text. ! void *cedit2_obj; // Input area subclassing object. ! HWND hwndE; // The handle to the edit control input area. bool landscape; *************** *** 152,155 **** --- 153,157 ---- public: Skin(); // Constructor + ~Skin(); // Destructor int load(TCHAR *skinname, const TCHAR *basedir, int width, int height); Index: StateManager.cpp =================================================================== RCS file: /cvsroot/easycalc/PPCport/system - UI/StateManager.cpp,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** StateManager.cpp 2 Nov 2009 17:36:50 -0000 1.4 --- StateManager.cpp 16 Nov 2009 22:18:41 -0000 1.5 *************** *** 7,11 **** #include "EasyCalc.h" ! StateManager::StateManager(void) { // Set interface and calculator options to their defaults stateFile = NULL; --- 7,11 ---- #include "EasyCalc.h" ! StateManager::StateManager (void) { // Set interface and calculator options to their defaults stateFile = NULL; *************** *** 19,30 **** state.listPrefs.list[1][0] = _T('\0'); state.listPrefs.list[2][0] = _T('\0'); historyDB.in_state = false; } ! StateManager::~StateManager(void) { } ! void StateManager::initCalcPrefs() { /* Coming from prefs.c */ state.calcPrefs.version = PREF_VERSION; --- 19,31 ---- state.listPrefs.list[1][0] = _T('\0'); state.listPrefs.list[2][0] = _T('\0'); + state.matrixName[0] = _T('\0'); historyDB.in_state = false; } ! StateManager::~StateManager (void) { } ! void StateManager::initCalcPrefs (void) { /* Coming from prefs.c */ state.calcPrefs.version = PREF_VERSION; *************** *** 57,82 **** } ! t_state *StateManager::getState(void) { return (&state); } ! void StateManager::init(TCHAR *fn, void *hWnd_p) { stateFilename = fn; stateFile = _tfopen(fn, _T("rb")); if (stateFile != NULL) { ! if (read_shell_state(&version)) { init_mode = 1; - if (state.calcPrefs.version != PREF_VERSION) { - // Incorrect version/contents, create the state contents - FrmPopupForm(altNoStateFile, hWnd_p); - initCalcPrefs(); - } else { - // Publish calcPrefs and dispPrefs for old core modules - calcPrefs = state.calcPrefs; - dispPrefs = state.calcPrefs.dispPrefs; - } } else { // Could not read state file FrmPopupForm(altNoStateFile, hWnd_p); ! init_shell_state(-1); init_mode = 2; } --- 58,74 ---- } ! t_state *StateManager::getState (void) { return (&state); } ! void StateManager::init (TCHAR *fn, void *hWnd_p) { stateFilename = fn; stateFile = _tfopen(fn, _T("rb")); if (stateFile != NULL) { ! if (read_shell_state(hWnd_p)) { init_mode = 1; } else { // Could not read state file FrmPopupForm(altNoStateFile, hWnd_p); ! init_shell_state(-1, NULL); init_mode = 2; } *************** *** 90,94 **** error = history_open(); ErrFatalDisplayIf(error, _T("Can't open History DB")); ! init_shell_state(-1); init_mode = 0; } --- 82,86 ---- error = history_open(); ErrFatalDisplayIf(error, _T("Can't open History DB")); ! init_shell_state(-1, NULL); init_mode = 0; } *************** *** 120,136 **** ********************************************************************************/ /* private */ ! void StateManager::init_shell_state(int4 version) { ! switch (version) { ! case -1: ! // Set interface and calculator options to their defaults ! initCalcPrefs(); ! // fall through ! case SHELL_VERSION: ! // current version, ! // so nothing to do here since everything ! // was initialized from the state file. ! ; } } --- 112,139 ---- ********************************************************************************/ /* private */ ! void StateManager::init_shell_state (int4 stVersion, void *hWnd_p) { ! if (stVersion == -1) { ! // Set interface and calculator options to their defaults ! initCalcPrefs(); ! } else { ! switch (stVersion-STATE_VERSION_ORIG) { ! case 0: // Version 1 to 2 ! state.matrixName[0] = _T('\0'); ! // Fall through migration steps ... ! } ! if (state.calcPrefs.version != PREF_VERSION) { ! // Incorrect version/contents, create the state contents ! FrmPopupForm(altNoStateFile, hWnd_p); ! initCalcPrefs(); ! } else { ! // Publish calcPrefs and dispPrefs for old core modules ! // as done by initCalcPrefs(). ! calcPrefs = state.calcPrefs; ! dispPrefs = state.calcPrefs.dispPrefs; ! } } + + state_version = STATE_VERSION; } *************** *** 141,145 **** ********************************************************************************/ /* private */ ! int4 StateManager::shell_read_saved_state(void *buf, int4 bufsize) { if (stateFile == NULL) return (-1); --- 144,148 ---- ********************************************************************************/ /* private */ ! int4 StateManager::shell_read_saved_state (void *buf, int4 bufsize) { if (stateFile == NULL) return (-1); *************** *** 160,164 **** ********************************************************************************/ /* private */ ! bool StateManager::shell_write_saved_state(const void *buf, int4 nbytes) { if (stateFile == NULL) return (false); --- 163,167 ---- ********************************************************************************/ /* private */ ! bool StateManager::shell_write_saved_state (const void *buf, int4 nbytes) { if (stateFile == NULL) return (false); *************** *** 178,190 **** /******************************************************************************** ! * FUNCTION: read_shell_state(*int4) * * Read the state module structure from file * ********************************************************************************/ /* private */ ! bool StateManager::read_shell_state(int4 *ver) { int4 magic; int4 version; int4 state_size; - int4 state_version; DataManager *dm, *dmHist; Err error; --- 181,193 ---- /******************************************************************************** ! * FUNCTION: read_shell_state() * * Read the state module structure from file * ********************************************************************************/ /* private */ ! bool StateManager::read_shell_state (void *hWnd_p) { int4 magic; int4 version; + int4 stVersion; int4 state_size; DataManager *dm, *dmHist; Err error; *************** *** 204,210 **** if (shell_read_saved_state(&state_size, sizeof(int4)) != sizeof(int4)) return (false); ! if (shell_read_saved_state(&state_version, sizeof(int4)) != sizeof(int4)) return (false); ! if ((state_version < 0) || (state_version > SHELL_VERSION)) /* Unknown shell state version */ return (false); --- 207,213 ---- if (shell_read_saved_state(&state_size, sizeof(int4)) != sizeof(int4)) return (false); ! if (shell_read_saved_state(&stVersion, sizeof(int4)) != sizeof(int4)) return (false); ! if ((stVersion < STATE_VERSION_ORIG) || (stVersion > STATE_VERSION)) /* Unknown shell state version */ return (false); *************** *** 246,255 **** // Initialize the parts of the shell state // that were NOT read from the state file ! init_shell_state(state_version); } else { // Version 0 ! init_shell_state(-1); } - *ver = version; return (true); } --- 249,257 ---- // Initialize the parts of the shell state // that were NOT read from the state file ! init_shell_state(stVersion, hWnd_p); } else { // Version 0 ! init_shell_state(-1, NULL); } return (true); } *************** *** 260,268 **** ********************************************************************************/ /* private */ ! bool StateManager::write_shell_state() { int4 magic = EASYCALC_MAGIC; int4 version = EASYCALC_VERSION; int4 state_size = sizeof(t_state); ! int4 state_version = SHELL_VERSION; if (!shell_write_saved_state(&magic, sizeof(int4))) --- 262,270 ---- ********************************************************************************/ /* private */ ! bool StateManager::write_shell_state (void) { int4 magic = EASYCALC_MAGIC; int4 version = EASYCALC_VERSION; int4 state_size = sizeof(t_state); ! int4 state_version = STATE_VERSION; if (!shell_write_saved_state(&magic, sizeof(int4))) Index: EasyCalcppc.rc =================================================================== RCS file: /cvsroot/easycalc/PPCport/system - UI/EasyCalcppc.rc,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** EasyCalcppc.rc 2 Nov 2009 17:36:50 -0000 1.6 --- EasyCalcppc.rc 16 Nov 2009 22:18:41 -0000 1.7 *************** *** 45,49 **** PUSHBUTTON "Cancel",IDCANCEL,73,31,41,14 LTEXT "Name:",IDC_VARNAME,3,3,35,12 ! COMBOBOX IDC_VARCOMBO,44,1,70,40,CBS_DROPDOWN | CBS_SORT | WS_VSCROLL | WS_TABSTOP CONTROL "SIP1",IDC_SIP,"SIPPREF",NOT WS_VISIBLE | WS_TABSTOP,47,31,14,14 END --- 45,49 ---- PUSHBUTTON "Cancel",IDCANCEL,73,31,41,14 LTEXT "Name:",IDC_VARNAME,3,3,35,12 ! COMBOBOX IDC_VARCOMBO,44,1,70,40,CBS_DROPDOWN | CBS_SORT | CBS_LOWERCASE | WS_VSCROLL | WS_TABSTOP CONTROL "SIP1",IDC_SIP,"SIPPREF",NOT WS_VISIBLE | WS_TABSTOP,47,31,14,14 END *************** *** 71,75 **** BEGIN LISTBOX IDC_LIST_FV,33,132,40,27,NOT WS_VISIBLE | NOT WS_BORDER | WS_VSCROLL | WS_TABSTOP,WS_EX_DLGMODALFRAME ! CONTROL "",IDC_DATALIST,"SysListView32",LVS_REPORT | LVS_SINGLESEL | LVS_SHOWSELALWAYS | LVS_ALIGNLEFT | LVS_NOCOLUMNHEADER | LVS_NOSORTHEADER | WS_BORDER | WS_TABSTOP,1,1,158,147 DEFPUSHBUTTON "OK",IDOK,0,150,30,14 PUSHBUTTON "New",IDC_NEW,33,150,40,14 --- 71,75 ---- BEGIN LISTBOX IDC_LIST_FV,33,132,40,27,NOT WS_VISIBLE | NOT WS_BORDER | WS_VSCROLL | WS_TABSTOP,WS_EX_DLGMODALFRAME ! CONTROL "",IDC_DATALIST,"SysListView32",LVS_REPORT | LVS_SINGLESEL | LVS_SHOWSELALWAYS | LVS_ALIGNLEFT | LVS_NOSORTHEADER | WS_BORDER | WS_TABSTOP,1,1,158,147 DEFPUSHBUTTON "OK",IDOK,0,150,30,14 PUSHBUTTON "New",IDC_NEW,33,150,40,14 *************** *** 90,96 **** EDITTEXT IDC_EDIT1,32,2,60,14,ES_LOWERCASE | ES_AUTOHSCROLL | WS_GROUP EDITTEXT IDC_EDIT2,0,19,159,43,ES_MULTILINE | ES_AUTOVSCROLL | WS_VSCROLL PUSHBUTTON "Cancel",IDCANCEL,33,66,50,14 LTEXT "Param:",IDC_PARAM,97,4,30,8 - EDITTEXT IDC_EDIT3,129,2,30,14,ES_AUTOHSCROLL CONTROL "SIP1",IDC_SIP,"SIPPREF",NOT WS_VISIBLE,91,66,14,14 END --- 90,96 ---- EDITTEXT IDC_EDIT1,32,2,60,14,ES_LOWERCASE | ES_AUTOHSCROLL | WS_GROUP EDITTEXT IDC_EDIT2,0,19,159,43,ES_MULTILINE | ES_AUTOVSCROLL | WS_VSCROLL + EDITTEXT IDC_EDIT3,129,2,30,14,ES_AUTOHSCROLL PUSHBUTTON "Cancel",IDCANCEL,33,66,50,14 LTEXT "Param:",IDC_PARAM,97,4,30,8 CONTROL "SIP1",IDC_SIP,"SIPPREF",NOT WS_VISIBLE,91,66,14,14 END *************** *** 234,237 **** --- 234,251 ---- END + IDD_MATRIXEDIT DIALOG 0, 0, 160, 165 + STYLE DS_SETFONT | DS_FIXEDSYS | DS_CONTROL | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU + CAPTION "Matrix Editor" + FONT 8, "MS Shell Dlg" + BEGIN + CONTROL "",IDC_EDITMATRIX,"SysListView32",LVS_REPORT | LVS_SINGLESEL | LVS_SHOWSELALWAYS | LVS_EDITLABELS | LVS_ALIGNLEFT | LVS_NOSORTHEADER | WS_BORDER | WS_TABSTOP,1,15,158,133 + DEFPUSHBUTTON "OK",IDOK,0,150,30,14 + LTEXT "x",IDC_STATIC,111,3,8,8 + COMBOBOX IDC_COMBO_MATRIX,17,1,45,80,CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | WS_TABSTOP + COMBOBOX IDC_COMBO_NBROWS,76,1,30,163,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + COMBOBOX IDC_COMBO_NBCOLS,120,1,30,163,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + CONTROL "SIP1",IDC_SIP,"SIPPREF",NOT WS_VISIBLE | WS_TABSTOP,1,1,14,14 + END + ///////////////////////////////////////////////////////////////////////////// *************** *** 323,326 **** --- 337,348 ---- TOPMARGIN, 1 END + + IDD_MATRIXEDIT, DIALOG + BEGIN + LEFTMARGIN, 1 + RIGHTMARGIN, 159 + TOPMARGIN, 1 + BOTTOMMARGIN, 164 + END END #endif // APSTUDIO_INVOKED *************** *** 357,360 **** --- 379,383 ---- MENUITEM SEPARATOR MENUITEM "List Editor", IDM_EDIT_LISTEDITOR + MENUITEM "Matrix Editor", IDM_EDIT_MATRIXEDITOR END POPUP "Help" Index: StateManager.h =================================================================== RCS file: /cvsroot/easycalc/PPCport/system - UI/StateManager.h,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** StateManager.h 2 Nov 2009 17:36:50 -0000 1.5 --- StateManager.h 16 Nov 2009 22:18:41 -0000 1.6 *************** *** 18,21 **** --- 18,23 ---- tPrefs calcPrefs; tlistPrefs listPrefs; + TCHAR matrixName[MAX_FUNCNAME+1]; + // Always add new fields at end, for kepping version migration simple } t_state; *************** *** 26,39 **** int init_mode; ! void init_shell_state(int4 version); int4 shell_read_saved_state(void *buf, int4 bufsize); bool shell_write_saved_state(const void *buf, int4 nbytes); ! bool read_shell_state(int4 *ver); ! bool write_shell_state(); ! void initCalcPrefs(); public: t_state state; ! int4 version; DataManager historyDB; DataManager calcDB; --- 28,41 ---- int init_mode; ! void init_shell_state(int4 stVersion, void *hWnd_p); int4 shell_read_saved_state(void *buf, int4 bufsize); bool shell_write_saved_state(const void *buf, int4 nbytes); ! bool read_shell_state(void *hWnd_p); ! bool write_shell_state(void); ! void initCalcPrefs(void); public: t_state state; ! int4 state_version; DataManager historyDB; DataManager calcDB; Index: EasyCalc.gif =================================================================== RCS file: /cvsroot/easycalc/PPCport/system - UI/EasyCalc.gif,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 Binary files /tmp/cvsDbEbyK and /tmp/cvsuMZW24 differ Index: resourceppc.h =================================================================== RCS file: /cvsroot/easycalc/PPCport/system - UI/resourceppc.h,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** resourceppc.h 2 Nov 2009 17:36:50 -0000 1.6 --- resourceppc.h 16 Nov 2009 22:18:41 -0000 1.7 *************** *** 26,29 **** --- 26,31 ---- #define IDD_LISTEDIT 147 #define IDD_VARSTRINGENTRY 148 + #define IDD_LISTEDIT1 149 + #define IDD_MATRIXEDIT 149 #define IDC_STATIC_1 201 #define IDC_STATIC_2 202 *************** *** 86,89 **** --- 88,95 ---- #define IDC_EDIT1 1117 #define IDC_SIP 1120 + #define IDC_EDITMATRIX 1128 + #define IDC_COMBO_MATRIX 1129 + #define IDC_COMBO_NBROWS 1130 + #define IDC_COMBO_NBCOLS 1131 #define IDM_EXIT 32774 #define IDM_FILE_EXIT 32777 *************** *** 94,97 **** --- 100,105 ---- #define IDM_EDIT_CLIPCOPY 32787 #define IDM_EDIT_LISTEDITOR 32789 + #define ID_EDIT_MATRIXEDITOR 32790 + #define IDM_EDIT_MATRIXEDITOR 32791 #define IDM_OK 40000 #define IDM_HELP 40001 *************** *** 99,102 **** --- 107,111 ---- #define IDM_FILE 40003 #define IDM_EDIT 40004 + #define IDC_STATIC -1 // Next default values for new objects *************** *** 106,111 **** #define _APS_NO_MFC 1 #define _APS_NEXT_RESOURCE_VALUE 149 ! #define _APS_NEXT_COMMAND_VALUE 32790 ! #define _APS_NEXT_CONTROL_VALUE 1128 #define _APS_NEXT_SYMED_VALUE 112 #endif --- 115,120 ---- #define _APS_NO_MFC 1 #define _APS_NEXT_RESOURCE_VALUE 149 ! #define _APS_NEXT_COMMAND_VALUE 32792 ! #define _APS_NEXT_CONTROL_VALUE 1132 #define _APS_NEXT_SYMED_VALUE 112 #endif Index: Skin.cpp =================================================================== RCS file: /cvsroot/easycalc/PPCport/system - UI/Skin.cpp,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** Skin.cpp 2 Nov 2009 17:36:50 -0000 1.8 --- Skin.cpp 16 Nov 2009 22:18:41 -0000 1.9 *************** *** 53,57 **** /*------------------------------------------------------------------------------- ! - Constructor. - -------------------------------------------------------------------------------*/ Skin::Skin() { --- 53,57 ---- /*------------------------------------------------------------------------------- ! - Constructor and destructor. - -------------------------------------------------------------------------------*/ Skin::Skin() { *************** *** 71,74 **** --- 71,75 ---- result_pow = false; scroll_result = DT_RIGHT; + cedit2_obj = NULL; hwndE = NULL; hFontBig_display = hFontSmall_display = hFont_input = NULL; *************** *** 76,79 **** --- 77,87 ---- } + Skin::~Skin() { + if (cedit2_obj != NULL) { + unsubclassEdit(hwndE, cedit2_obj); + cedit2_obj = NULL; + } + } + /*------------------------------------------------------------------------------- - Methods. - *************** *** 316,325 **** continue; if (_strnicmp(line, "skin:", 5) == 0) { ! int x, y, width, height; ! if (sscanf(line + 5, " %d,%d,%d,%d", &x, &y, &width, &height) == 4){ skin.x = x; skin.y = y; ! skin.width = width; ! skin.height = height; } } else if (_strnicmp(line, "display:", 8) == 0) { --- 324,333 ---- continue; if (_strnicmp(line, "skin:", 5) == 0) { ! int x, y, skin_width, skin_height; ! if (sscanf(line + 5, " %d,%d,%d,%d", &x, &y, &skin_width, &skin_height) == 4){ skin.x = x; skin.y = y; ! skin.width = skin_width; ! skin.height = skin_height; } } else if (_strnicmp(line, "display:", 8) == 0) { *************** *** 924,928 **** if (!make_dib(memdc)) return; ! SelectObject(memdc, skin_dib); if (skin_type == IMGTYPE_MONO) { old_bg = SetBkColor(hdc, 0x00ffffff); --- 932,936 ---- if (!make_dib(memdc)) return; ! HGDIOBJ oldObject = SelectObject(memdc, skin_dib); if (skin_type == IMGTYPE_MONO) { old_bg = SetBkColor(hdc, 0x00ffffff); *************** *** 934,937 **** --- 942,946 ---- SetTextColor(hdc, old_fg); } + SelectObject(memdc, oldObject); // Set back default object } *************** *** 946,950 **** if (!make_dib(memdc)) return; ! SelectObject(memdc, skin_dib); if (skin_type == IMGTYPE_MONO) { old_bg = SetBkColor(hdc, 0x00ffffff); --- 955,959 ---- if (!make_dib(memdc)) return; ! HGDIOBJ oldObject = SelectObject(memdc, skin_dib); if (skin_type == IMGTYPE_MONO) { old_bg = SetBkColor(hdc, 0x00ffffff); *************** *** 971,974 **** --- 980,984 ---- SetTextColor(hdc, old_fg); } + SelectObject(memdc, oldObject); // Set back default object } *************** *** 984,988 **** if (!make_dib(memdc)) return; ! SelectObject(memdc, skin_dib); k = keylist + key; if (skin_type == IMGTYPE_MONO) { --- 994,998 ---- if (!make_dib(memdc)) return; ! HGDIOBJ oldObject = SelectObject(memdc, skin_dib); k = keylist + key; if (skin_type == IMGTYPE_MONO) { *************** *** 1000,1003 **** --- 1010,1014 ---- SetTextColor(hdc, old_fg); } + SelectObject(memdc, oldObject); // Set back default object } *************** *** 1062,1069 **** HDC memdc = CreateCompatibleDC(hdc); HBITMAP bitmap = CreateBitmap(sx == 0 ? 219 : (disp_w * sx), disp_h * sy, 1, 1, disp_bitmap); ! SelectObject(memdc, bitmap); ! COLORREF old_bg = SetBkColor(hdc, display_bg); COLORREF old_fg = SetTextColor(hdc, display_fg); int bx, bw; if (sx == 0) { --- 1073,1080 ---- HDC memdc = CreateCompatibleDC(hdc); HBITMAP bitmap = CreateBitmap(sx == 0 ? 219 : (disp_w * sx), disp_h * sy, 1, 1, disp_bitmap); ! HGDIOBJ oldObject = SelectObject(memdc, bitmap); COLORREF old_bg = SetBkColor(hdc, display_bg); COLORREF old_fg = SetTextColor(hdc, display_fg); + int bx, bw; if (sx == 0) { *************** *** 1086,1094 **** BitBlt(hdc, display_loc.x + bx, display_loc.y + y * sy, bw, height * sy, memdc, bx, y * sy, SRCCOPY); SetBkColor(hdc, old_bg); SetTextColor(hdc, old_fg); ! ! DeleteDC(memdc); DeleteObject(bitmap); } } --- 1097,1106 ---- BitBlt(hdc, display_loc.x + bx, display_loc.y + y * sy, bw, height * sy, memdc, bx, y * sy, SRCCOPY); + SetBkColor(hdc, old_bg); SetTextColor(hdc, old_fg); ! SelectObject(memdc, oldObject); // Set back default object DeleteObject(bitmap); + DeleteDC(memdc); } } *************** *** 1102,1106 **** HBITMAP bitmap = CreateBitmap(display_w, display_h, 1, 1, disp_bitmap); ! SelectObject(memdc, bitmap); COLORREF old_bg = SetBkColor(hdc, display_bg); COLORREF old_fg = SetTextColor(hdc, display_fg); --- 1114,1118 ---- HBITMAP bitmap = CreateBitmap(display_w, display_h, 1, 1, disp_bitmap); ! HGDIOBJ oldObject = SelectObject(memdc, bitmap); COLORREF old_bg = SetBkColor(hdc, display_bg); COLORREF old_fg = SetTextColor(hdc, display_fg); *************** *** 1112,1115 **** --- 1124,1128 ---- else paint_result(hdc); + SelectObject(memdc, oldObject); // Set back default object } *************** *** 1138,1144 **** TRUE); } else { ! hwndE = CreateWindow(_T("EDIT2"), NULL, dwStyle, display_loc.x, display_loc.y + 18, display_w, 30, hWnd_p, NULL, hinst, NULL); } Edit_SetExtendedStyle(hwndE, 0xFFFFFFFF, Edit_GetExtendedStyle(hwndE) | ES_EX_FOCUSBORDERDISABLED); --- 1151,1159 ---- TRUE); } else { ! // hwndE = CreateWindow(_T("EDIT2"), NULL, dwStyle, ! hwndE = CreateWindow(_T("EDIT"), NULL, dwStyle, display_loc.x, display_loc.y + 18, display_w, 30, hWnd_p, NULL, hinst, NULL); + cedit2_obj = subclassEdit(hWnd_p, hwndE); } Edit_SetExtendedStyle(hwndE, 0xFFFFFFFF, Edit_GetExtendedStyle(hwndE) | ES_EX_FOCUSBORDERDISABLED); *************** *** 1309,1316 **** HBITMAP bitmap = CreateBitmap(display_w, 18, 1, 1, disp_bitmap); HDC memdc = CreateCompatibleDC(hdc); ! SelectObject(memdc, bitmap); COLORREF old_bg = SetBkColor(hdc, display_bg); COLORREF old_fg = SetTextColor(hdc, display_fg); BitBlt(hdc, display_loc.x, display_loc.y, display_w, 18, memdc, 0, 0, SRCCOPY); DeleteDC(memdc); DeleteObject(bitmap); --- 1324,1332 ---- HBITMAP bitmap = CreateBitmap(display_w, 18, 1, 1, disp_bitmap); HDC memdc = CreateCompatibleDC(hdc); ! HGDIOBJ oldObject = SelectObject(memdc, bitmap); COLORREF old_bg = SetBkColor(hdc, display_bg); COLORREF old_fg = SetTextColor(hdc, display_fg); BitBlt(hdc, display_loc.x, display_loc.y, display_w, 18, memdc, 0, 0, SRCCOPY); + SelectObject(memdc, oldObject); // Set back default object DeleteDC(memdc); DeleteObject(bitmap); *************** *** 1361,1364 **** --- 1377,1382 ---- shell_scroll_annunciators(ANNVAL_SCR_NONE); } + + SelectObject(hdc, oldFont); // Set back default object } *************** *** 1392,1399 **** HBITMAP bitmap = CreateBitmap(display_w, 18, 1, 1, disp_bitmap); HDC memdc = CreateCompatibleDC(hdc); ! SelectObject(memdc, bitmap); COLORREF old_bg = SetBkColor(hdc, display_bg); COLORREF old_fg = SetTextColor(hdc, display_fg); BitBlt(hdc, display_loc.x, display_loc.y, display_w, 18, memdc, 0, 0, SRCCOPY); DeleteDC(memdc); DeleteObject(bitmap); --- 1410,1418 ---- HBITMAP bitmap = CreateBitmap(display_w, 18, 1, 1, disp_bitmap); HDC memdc = CreateCompatibleDC(hdc); ! HGDIOBJ oldObject = SelectObject(memdc, bitmap); COLORREF old_bg = SetBkColor(hdc, display_bg); COLORREF old_fg = SetTextColor(hdc, display_fg); BitBlt(hdc, display_loc.x, display_loc.y, display_w, 18, memdc, 0, 0, SRCCOPY); + SelectObject(memdc, oldObject); // Set back default object DeleteDC(memdc); DeleteObject(bitmap); *************** *** 1432,1435 **** --- 1451,1456 ---- GetTextExtentPoint32(hdc, dispResult, result_len, &result_size); result_size.cx = 0; + + SelectObject(hdc, oldFont); // Set back default object } pow_pos = 0; *************** *** 1606,1609 **** --- 1627,1632 ---- DrawText(hdc, res_piece, -1, &rc, scroll_result | DT_BOTTOM | DT_SINGLELINE | DT_NOPREFIX); } + + SelectObject(hdc, oldFont); // Set back default object } *************** *** 1613,1625 **** void Skin::scroll_result_left (HWND hWnd) { HBITMAP bitmap = CreateBitmap(display_w, 18, 1, 1, disp_bitmap); ! HDC hdc = GetDC((HWND) hWnd); HDC memdc = CreateCompatibleDC(hdc); ! ! SelectObject(memdc, bitmap); COLORREF old_bg = SetBkColor(hdc, display_bg); COLORREF old_fg = SetTextColor(hdc, display_fg); BitBlt(hdc, display_loc.x, display_loc.y, display_w, 18, memdc, 0, 0, SRCCOPY); DeleteDC(memdc); scroll_result = DT_LEFT; --- 1636,1650 ---- void Skin::scroll_result_left (HWND hWnd) { HBITMAP bitmap = CreateBitmap(display_w, 18, 1, 1, disp_bitmap); ! HDC hdc = GetDC(hWnd); HDC memdc = CreateCompatibleDC(hdc); ! HGDIOBJ oldObject = SelectObject(memdc, bitmap); COLORREF old_bg = SetBkColor(hdc, display_bg); COLORREF old_fg = SetTextColor(hdc, display_fg); BitBlt(hdc, display_loc.x, display_loc.y, display_w, 18, memdc, 0, 0, SRCCOPY); + + SelectObject(memdc, oldObject); // Set back default object DeleteDC(memdc); + DeleteObject(bitmap); scroll_result = DT_LEFT; *************** *** 1636,1648 **** void Skin::scroll_result_right (HWND hWnd) { HBITMAP bitmap = CreateBitmap(display_w, 18, 1, 1, disp_bitmap); ! HDC hdc = GetDC((HWND) hWnd); HDC memdc = CreateCompatibleDC(hdc); ! ! SelectObject(memdc, bitmap); COLORREF old_bg = SetBkColor(hdc, display_bg); COLORREF old_fg = SetTextColor(hdc, display_fg); BitBlt(hdc, display_loc.x, display_loc.y, display_w, 18, memdc, 0, 0, SRCCOPY); DeleteDC(memdc); scroll_result = DT_RIGHT; --- 1661,1675 ---- void Skin::scroll_result_right (HWND hWnd) { HBITMAP bitmap = CreateBitmap(display_w, 18, 1, 1, disp_bitmap); ! HDC hdc = GetDC(hWnd); HDC memdc = CreateCompatibleDC(hdc); ! HGDIOBJ oldObject = SelectObject(memdc, bitmap); COLORREF old_bg = SetBkColor(hdc, display_bg); COLORREF old_fg = SetTextColor(hdc, display_fg); BitBlt(hdc, display_loc.x, display_loc.y, display_w, 18, memdc, 0, 0, SRCCOPY); + + SelectObject(memdc, oldObject); // Set back default object DeleteDC(memdc); + DeleteObject(bitmap); scroll_result = DT_RIGHT; |
From: Mapi B. <ma...@us...> - 2009-11-16 22:18:15
|
Update of /cvsroot/easycalc/PPCport/langs/merge In directory 23jxhf1.ch3.sourceforge.com:/tmp/cvs-serv23000 Modified Files: lang.rcp Log Message: 1.25d, matrix editor and other bug fixes/additional functions Index: lang.rcp =================================================================== RCS file: /cvsroot/easycalc/PPCport/langs/merge/lang.rcp,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** lang.rcp 2 Nov 2009 17:34:53 -0000 1.7 --- lang.rcp 16 Nov 2009 22:18:07 -0000 1.8 *************** *** 930,933 **** --- 930,934 ---- "$$SAVE AS TITLE" = "Save variable as" "$$SAVE LST AS TITLE" = "Save list as" + "$$SAVE MTX AS TITLE" = "Save matrix as" "$$NAME:" = "Name:" "$$PARAM:" = "Prm:" *************** *** 945,958 **** "$$VARIABLE" = "variable" "$$LIST" = "list" "$$APPEND" = "Append" "$$INSERT" = "Insert" ! "$$LIST EDITOR" = "List Editor" ! "$$VALUE:" = "Value:" ! "$$REFERENCE1" = "Reference 1" "$$FIRST LIST ITEM" = "First list item" "$$LIST ITEM" = "List item" ! "$$MATRIX EDITOR" = "Matrix Editor" /************************************************** --- 946,961 ---- "$$VARIABLE" = "variable" "$$LIST" = "list" + "$$MATRIX" = "matrix" "$$APPEND" = "Append" "$$INSERT" = "Insert" ! "$$LIST EDITOR" = "List Editor" ! "$$VALUE:" = "Value:" ! "$$REFERENCE1" = "Reference 1" "$$FIRST LIST ITEM" = "First list item" "$$LIST ITEM" = "List item" ! "$$MATRIX EDITOR" = "Matrix Editor" ! "$$LIST ITEM" = "Matrix item" /************************************************** *************** *** 1392,1395 **** --- 1395,1399 ---- "$$SAVE AS TITLE" = "Enreg. variable sous" "$$SAVE LST AS TITLE" = "Enreg. liste sous" + "$$SAVE MTX AS TITLE" = "Enreg. matrice sous" "$$NAME:" = "Nom:" "$$PARAM:" = "Param.:" *************** *** 1407,1421 **** "$$VARIABLE" = "variable" "$$LIST" = "liste" "$$APPEND" = "Ajouter" "$$INSERT" = "Insérer" ! "$$LIST EDITOR" = "Éditeur de listes" ! "$$VALUE:" = "Valeur:" ! "$$REFERENCE1" = "Résumé 1" "$$FIRST LIST ITEM" = "Premier élément de liste" "$$LIST ITEM" = "Elément de liste" ! "$$MATRIX EDITOR" = "Éditeur de matrices" /************************************************** --- 1411,1427 ---- "$$VARIABLE" = "variable" "$$LIST" = "liste" + "$$MATRIX" = "matrice" "$$APPEND" = "Ajouter" "$$INSERT" = "Insérer" ! "$$LIST EDITOR" = "Éditeur de listes" ! "$$VALUE:" = "Valeur:" ! "$$REFERENCE1" = "Résumé 1" "$$FIRST LIST ITEM" = "Premier élément de liste" "$$LIST ITEM" = "Elément de liste" ! "$$MATRIX EDITOR" = "Éditeur de matrices" ! "$$MATRIX ITEM" = "Elément de matrice" /************************************************** |
From: Mapi B. <ma...@us...> - 2009-11-16 22:18:01
|
Update of /cvsroot/easycalc/PPCport/langs In directory 23jxhf1.ch3.sourceforge.com:/tmp/cvs-serv22957 Modified Files: en.rcp fr.rcp Log Message: 1.25d, matrix editor and other bug fixes/additional functions Index: en.rcp =================================================================== RCS file: /cvsroot/easycalc/PPCport/langs/en.rcp,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** en.rcp 2 Nov 2009 17:33:48 -0000 1.5 --- en.rcp 16 Nov 2009 22:17:49 -0000 1.6 *************** *** 65,68 **** --- 65,69 ---- "$$SAVE AS TITLE" = "Save variable as" "$$SAVE LST AS TITLE" = "Save list as" + "$$SAVE MTX AS TITLE" = "Save matrix as" "$$NAME:" = "Name:" "$$PARAM:" = "Prm:" *************** *** 80,93 **** "$$VARIABLE" = "variable" "$$LIST" = "list" "$$APPEND" = "Append" "$$INSERT" = "Insert" ! "$$LIST EDITOR" = "List Editor" ! "$$VALUE:" = "Value:" ! "$$REFERENCE1" = "Reference 1" "$$FIRST LIST ITEM" = "First list item" "$$LIST ITEM" = "List item" ! "$$MATRIX EDITOR" = "Matrix Editor" /************************************************** --- 81,96 ---- "$$VARIABLE" = "variable" "$$LIST" = "list" + "$$MATRIX" = "matrix" "$$APPEND" = "Append" "$$INSERT" = "Insert" ! "$$LIST EDITOR" = "List Editor" ! "$$VALUE:" = "Value:" ! "$$REFERENCE1" = "Reference 1" "$$FIRST LIST ITEM" = "First list item" "$$LIST ITEM" = "List item" ! "$$MATRIX EDITOR" = "Matrix Editor" ! "$$LIST ITEM" = "Matrix item" /************************************************** Index: fr.rcp =================================================================== RCS file: /cvsroot/easycalc/PPCport/langs/fr.rcp,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** fr.rcp 2 Nov 2009 17:33:48 -0000 1.5 --- fr.rcp 16 Nov 2009 22:17:49 -0000 1.6 *************** *** 73,76 **** --- 73,77 ---- "$$SAVE AS TITLE" = "Enreg. variable sous" "$$SAVE LST AS TITLE" = "Enreg. liste sous" + "$$SAVE MTX AS TITLE" = "Enreg. matrice sous" "$$NAME:" = "Nom:" "$$PARAM:" = "Param.:" *************** *** 88,102 **** "$$VARIABLE" = "variable" "$$LIST" = "liste" "$$APPEND" = "Ajouter" "$$INSERT" = "Insérer" ! "$$LIST EDITOR" = "Éditeur de listes" ! "$$VALUE:" = "Valeur:" ! "$$REFERENCE1" = "Résumé 1" "$$FIRST LIST ITEM" = "Premier élément de liste" "$$LIST ITEM" = "Elément de liste" ! "$$MATRIX EDITOR" = "Éditeur de matrices" /************************************************** --- 89,105 ---- "$$VARIABLE" = "variable" "$$LIST" = "liste" + "$$MATRIX" = "matrice" "$$APPEND" = "Ajouter" "$$INSERT" = "Insérer" ! "$$LIST EDITOR" = "Éditeur de listes" ! "$$VALUE:" = "Valeur:" ! "$$REFERENCE1" = "Résumé 1" "$$FIRST LIST ITEM" = "Premier élément de liste" "$$LIST ITEM" = "Elément de liste" ! "$$MATRIX EDITOR" = "Éditeur de matrices" ! "$$MATRIX ITEM" = "Elément de matrice" /************************************************** |
From: Mapi B. <ma...@us...> - 2009-11-16 22:17:47
|
Update of /cvsroot/easycalc/PPCport/docs In directory 23jxhf1.ch3.sourceforge.com:/tmp/cvs-serv22904 Added Files: COPYING CREDITS specfuncs.doc specfuncs.dvi specfuncs.pdf specfuncs.tex Log Message: 1.25d, matrix editor and other bug fixes/additional functions --- NEW FILE: specfuncs.tex --- \documentclass{article} \begin{document} \title{Special Functions Supported by EasyCalc} \author{Rafael R. Sevilla} \maketitle EasyCalc now supports a large number of ``special functions,'' which should be especially useful for those involved in mathematical physics, boundary value problems, and statistics. Most of these functions will only be available if you apply the flag \texttt{--enable-specfun} to the \texttt{configure} script for EasyCalc. These functions are for the most part based on approximations given in Chapter 6 of \emph{Numerical Recipes} \cite{press}, and the public domain Cephes code available from Netlib. More information on all of these special functions is available from Abramowitz and Stegun \cite{abramowitz}. Discussions of the theory, special properties, and applications of these functions can be found in \cite{andrews} and in \cite{whittaker}. \section*{Summary of Special Functions} \begin{center} \begin{tabular}{|l|l|}\hline Function Name & Name in EasyCalc \\\hline Euler Gamma & \texttt{gamma(z)} \\\hline Beta & \texttt{beta(z:w)} \\\hline Incomplete Gamma & \texttt{igamma(a:x)} \\\hline Error & \texttt{erf(x)} \\\hline Complementary Error & \texttt{erfc(x)} \\\hline Incomplete Beta & \texttt{ibeta(a:b:x)} \\\hline Bessel 1st Kind & \texttt{besselj(n:x)} \\\hline Bessel 2nd Kind & \texttt{bessely(n:x)} \\\hline Mod. Bessel 1st Kind & \texttt{besseli(n:x)} \\\hline Mod. Bessel 2nd Kind & \texttt{besselk(n:x)} \\\hline Inc. Elliptic Integral 1st kind & \texttt{elli1(m:phi)} \\\hline Inc. Elliptic Integral 2nd kind & \texttt{elli2(m:phi)} \\\hline Comp. Elliptic Integral 1st kind & \texttt{ellc1(m)} \\\hline Comp. Elliptic Integral 2nd kind & \texttt{ellc2(m)} \\\hline Jacobi sn & \texttt{sn(m:u)} \\\hline Jacobi cn & \texttt{cn(m:u)} \\\hline Jacobi dn & \texttt{dn(m:u)} \\\hline \end{tabular} \end{center} \section*{The Euler Gamma Function} The Euler gamma function is the only function here described that is available whether or not you set \texttt{--enable-specfun}, but if that flag is not set then you will be able to use the gamma function only for real arguments; to be able to use it for complex arguments you will need to set that flag. It is used by the factorial function to compute non-integral values for the factorial as well. The Euler gamma function is defined by the integral: \begin{equation} \Gamma(z) = \int^\infty_0 e^{-t}t^{x-1} dt \end{equation} You can call the gamma function as \texttt{gamma(\textsl{arg})}. Note that this function is automatically called implicitly whenever you do \texttt{fact(\textsl{arg})} where \texttt{\textsl{arg}} is not an integer. The Euler gamma function should not be evaluated for negative integer arguments. \section*{The Beta Function} The Beta function is defined by \begin{equation} \label{betafunc} B(z,w) = B(w,z) = \int^1_0 t^{z-1}(1-t)^{w-1} dt = \frac{\Gamma(z)\Gamma(w)}{\Gamma(z + w)} \end{equation} Call it as \texttt{beta(\textsl{z}:\textsl{w})}. It just uses the gamma function to calculate it directly. Do not call it with negative values for $z$ and/or $w$. \section*{The Incomplete Gamma Function} The incomplete gamma function is defined by \begin{equation} P(a,x) = \frac{1}{\Gamma(a)}\int^x_0 e^{-t}t^{a-1} dt \end{equation} You can access it with \texttt{igamma(\textsl{a}:\textsl{x})}. Values of $a \le 0$ or for $x < 0$ are invalid and produce an error. \section*{The Error Function and the Complementary Error Function} These functions are defined by \begin{equation} \mathrm{erf}(x) = \frac{2}{\sqrt{\pi}}\int_0^x e^{-t^2} dt \end{equation} and \begin{equation} \mathrm{erfc}(x) = 1 - \mathrm{erf}(x) = \frac{2}{\sqrt{\pi}}\int_x^\infty e^{-t^2} dt \end{equation} Call them as \texttt{erf(\textsl{x})} and \texttt{erfc(\textsl{x})}. \section*{The Incomplete Beta Function} This function is defined by \begin{equation} I_x(a, b) = \frac{1}{B(a, b)} \int_0^x t^{a-1}(1-t)^{b-1} dt \end{equation} where $B(a, b)$ is the Beta Function (Eq.~\ref{betafunc}) and can be called as \texttt{ibeta(\textsl{a}:\textsl{b}:\textsl{x})}. Both $a$ and $b$ must be greater than 0, and $0 \le x \le 1$. Do not use it for values other than these allowed. \section*{Bessel Functions of the First and Second Kinds} The Bessel functions of the first kind, $J_\nu(x)$ arise as solutions to the differential equation: \begin{equation} \label{besselde} x^2\frac{d^2y}{dx^2} - x\frac{dy}{dx} + (x^2 - \nu^2)y = 0 \end{equation} and is defined by the series representation \begin{equation} J_\nu(x) = \sum^\infty_{k=0}\frac{(-1)^k(x/2)^{2k+\nu}}{k!\Gamma(k + \nu +1)} \end{equation} You can evaluate it with EasyCalc by doing \texttt{besselj(\textsl{nu}:\textsl{x})}. The order $\nu$ of the Bessel function is restricted to nonnegative integers in this version. The Bessel functions of the second kind $Y_\nu(x)$ are the second linearly independent solutions to Eq.~\ref{besselde}. For $\nu$ \emph{not} an integer, $Y_\nu(x)$ can be expressed in terms of the Bessel functions of the first kind as: \begin{equation} Y_\nu(x) = \frac{J_\nu(x) cos(\nu\pi) - J_{-\nu}(x)}{sin(\nu\pi)} \end{equation} but it produces correct results in the limit as $\nu$ approaches an integer. You can evaluate this by doing \texttt{bessely(\textsl{nu}:\textsl{x})}. Again, the order $\nu$ is restricted to integers, and note that all the Bessel functions of the second kind possess singularities at zero, so don't try to evaluate it there. \section*{Modified Bessel functions of the First and Second Kinds} These functions, $I_\nu(x)$ and $K_\nu(x)$, arise as the linearly independent solutions to the differential equation: \begin{equation} x^2\frac{d^2y}{dx^2} + x\frac{dy}{dx} - (x^2 + \nu^2)y = 0 \end{equation} and are the regular Bessel functions $J_\nu(x)$ and $Y_\nu(x)$ evaluated for purely imaginary arguments: \begin{equation} I_\nu(x) = (-i)^\nu J_\nu(ix) \end{equation} and \begin{equation} K_\nu(x) = \frac{\pi}{2}i^{\nu+1}[J_\nu(ix) + iY_\nu(ix)] \end{equation} They are evaluated by \texttt{besseli(\textsl{nu}:\textsl{x})} and \texttt{besselk(\textsl{nu}:\textsl{x})}. Again the order $\nu$ is restricted to integers, and the $K_\nu$ functions have a singularity at zero. %\section*{Airy Functions of the First and Second Kinds} %These functions, $\mathrm{Ai}(x)$ and $\mathrm{Bi}(x)$ arise as the %linearly independent solutions to the differential equation: %\begin{equation} %\frac{d^2y}{dx^2} - xy = 0 %\end{equation} %They may be expressed in terms of the modified Bessel functions: %\begin{equation} %\mathrm{Ai}(x) = \frac{1}{\pi} \sqrt{\frac{x}{3}}K_{1/3}\left(\frac{2}{3}x^{3/2}\right) %\end{equation} %and %\begin{equation} %\mathrm{Bi}(x) = %\sqrt{\frac{x}{3}}\left[I_{-1/3}\left(\frac{2}{3}x^{3/2}\right) + % I_{1/3}\left(\frac{2}{3}x^{3/2}\right)\right] %\end{equation} %They can be computed as \texttt{airy(\textsl{x})} and %\texttt{biry(\textsl{x})} respectively. \section*{Elliptic Integrals} The incomplete elliptic integral of the first kind is defined as follows: \begin{equation} F(\phi | m) = \int^\phi_0 \frac{d\theta}{\sqrt{1 - m^2 \sin^2 \theta}} \end{equation} with eccentricity/modulus $m$ and amplitude $\phi$. You can compute this function by entering \texttt{elli1(\textsl{m}:\textsl{phi})}. The complete elliptic integral of the first kind: \begin{equation} K(m) = \int^{\pi/2}_0 \frac{d\theta}{\sqrt{1 - m^2 \sin^2 \theta}} \end{equation} and may be computed as \texttt{ellc1(\textsl{m})}. The incomplete elliptic integral of the second kind: \begin{equation} E(\phi | m) = \int^\phi_0 \sqrt{1 - m^2 \sin^2 \theta} d\theta \end{equation} may be calculated with \texttt{elli2(\textsl{m}:\textsl{phi})}, while the complete elliptic integral of the second kind \begin{equation} E(m) = \int^{\pi/2}_0 \sqrt{1 - m^2 \sin^2 \theta} d\theta \end{equation} may be computed as \texttt{ellc2(\textsl{m})}. All of these elliptic functions can be computed only with an eccentricity $m$ between 0 and 1. Values outside this are considered out of range. \section*{Jacobian Elliptic Functions} These functions are inverses of the elliptic integral of the first kind $F(\phi | m)$. The Jacobian elliptic function $\mathrm{sn}(u|m)$ is defined as \begin{equation} \mathrm{sn}(F(\phi | m) | m) = \sin \phi \end{equation} The other two functions, sn and dn, can be defined by the relations \begin{equation} \mathrm{cn}(F(\phi | m) | m) = \cos \phi \end{equation} and \begin{equation} \mathrm{dn}(F(\phi | m) | m) = \sqrt{1-m^2\sin^2 \phi} \end{equation} or equivalently, \begin{equation} \mathrm{sn}^2(u | m) + \mathrm{cn}^2(u | m) = 1 \end{equation} and \begin{equation} m^2\mathrm{sn}^2(u | m) + \mathrm{dn}^2(u | m) = 1 \end{equation} These three functions may be calculated as \texttt{sn(\textsl{m}:\textsl{u})}, \texttt{cn(\textsl{m}:\textsl{u})} and \texttt{dn(\textsl{m}:\textsl{u})}. As with the elliptic integrals, the eccentricity $m$ may only be between 0 and 1. \begin{thebibliography}{99} \bibitem{abramowitz} Abramowitz, Milton, and Irene A. Stegun. \emph{Handbook of Mathematical Functions}, Applied Mathematics Series, vol. 55. Washington: National Institute of Standards and Technology, 1968. \bibitem{andrews} Andrews, Larry C. \emph{Special Functions of Mathematics for Engineers}. New York: McGraw-Hill, Inc, 1992. \bibitem{press} Press, William H., Brian P. Flannery, Saul A. Teukolsky, and William K. Vetterling. \emph{Numerical Recipes in FORTRAN}. Cambridge: Cambridge University Press, 1986. \bibitem{whittaker} Whittaker, E. T., and G. N. Watson. \emph{A Course of Modern Analysis}. Cambridge: Cambridge University Press, 1927. \end{thebibliography} \end{document} --- NEW FILE: specfuncs.doc --- (This appears to be a binary file; contents omitted.) --- NEW FILE: CREDITS --- I send many thanks to these people for contributing to this project, many of the features that you are using wouldn't exist without their help. Rafael R. Sevilla <dido at pacific.net.ph> Added many mathematical functions and improved the old code. Richard Scott <rts4377 at yahoo.com> Contributed the Upper Tail probabilities, romberg integration code, improvements of special functions Jorge Gil Michael Schierl Recent improvements of code since 1.23. John Hodapp <bigshot at email.msn.com> Code improvements regarding matrices, UI etc. Ton van Overbeek <ton at v-overbeek.nl> PalmOS5 compatibility, hires and DIA patches Edgar Piskernik <pisker at gmx.at> Harald Lueling <Harald_Lueling at burg-waechter.de> German translation Francesco <fcroci at prodigy.net.mx> Spanish translation Carlos Irapuan Lube de Menezes <cirapuan at hotmail.com> Portuguese translation Daniel Lemire, Ph.D. <lemire at ondelette.com> French translation Ignazio Di Napoli <neclepsio at hotmail.com> Michele Mazzucchi <m.mazzucchi at linuxpratico.com> Italian translation Yoshimov <yoshimov at pobox.com> Japanese translation Pavel Kharitonov <dti17 at narod.ru> Russian translation Olga Yiparaki <yiparaki at mindspring.com> Sent me utilities for matrix functions Antonio Fiol Bonnín <Antonio.FIOL at enst-bretagne.fr> Added PYR support for the financial equations Mapi Bid <mapibid at users.sourceforge.net> Pocket PC version And many more people sending me corrections for tutorial and contibuting numerous ideas for this program. --- NEW FILE: specfuncs.dvi --- (This appears to be a binary file; contents omitted.) --- NEW FILE: COPYING --- GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Lesser General Public License instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. <one line to give the program's name and a brief idea of what it does.> Copyright (C) <year> <name of author> This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. Also add information on how to contact you by electronic and paper mail. If the program is interactive, make it output a short notice like this when it starts in an interactive mode: Gnomovision version 69, Copyright (C) year name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker. <signature of Ty Coon>, 1 April 1989 Ty Coon, President of Vice This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License. --- NEW FILE: specfuncs.pdf --- %PDF-1.3 3 0 obj << /Length 1643 /Filter /FlateDecode >> stream xÚíZKoÛ8¾ûW{Z+zæ¶Í&E»hmrKs eÙÖV¯Õ£©ûëwí4ibÄAÕgæùH«%Báú´Â0pe,´¼>ü~*KD®ÇùTÏçöYãLehg©3vî[ÎTyÂ>u¢Øª´ÏëªÃ!i k× ×ö.óÔ̽fùDwëc *Eê\¿CK7 hcá W%5±'øÚáÖ`ç#¼¹(ömòò¢ÐhÎ*W)Ö+×÷ZêÄÒ&ÍYªn×¼\ÂÿÊÈo]ÄMB M ðÜX 0ºqÈqÀTЮjGÆö¾Dv74`Dt<¡Y¹ÐèÃ2ãÁ W0Pbf°*bO[Ö®üü$ß5Ûé4' `f«:|Âog_ò·X±2M¯`º Ñ¡ ßM|#e À'J;£efw®ËL£ðì¡ËÈ_uËBc«º3Vr5¬0/=¶à,)uþÑÈyªUÌê W»|è8WkJÃ+´5n}qêu s¨w-Äq¨gEV¤M}PªÐ¡DÚ]»wà |
From: Mapi B. <ma...@us...> - 2009-11-16 22:16:05
|
Update of /cvsroot/easycalc/PPCport/docs In directory 23jxhf1.ch3.sourceforge.com:/tmp/cvs-serv22690/docs Log Message: Directory /cvsroot/easycalc/PPCport/docs added to the repository |
From: Mapi B. <ma...@us...> - 2009-11-16 22:15:47
|
Update of /cvsroot/easycalc/PPCport/core/mlib In directory 23jxhf1.ch3.sourceforge.com:/tmp/cvs-serv22646 Modified Files: defuns.h Log Message: 1.25d, matrix editor and other bug fixes/additional functions Index: defuns.h =================================================================== RCS file: /cvsroot/easycalc/PPCport/core/mlib/defuns.h,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** defuns.h 17 Oct 2009 13:48:34 -0000 1.2 --- defuns.h 16 Nov 2009 22:15:30 -0000 1.3 *************** *** 53,56 **** --- 53,57 ---- /* Change this if you are changing contents of the preferences structure */ + #define PREF_VERSION_ORIG 44 #define PREF_VERSION 44 #define PREF_RES_VERSION 2 |
From: Mapi B. <ma...@us...> - 2009-11-16 22:15:20
|
Update of /cvsroot/easycalc/PPCport/core In directory 23jxhf1.ch3.sourceforge.com:/tmp/cvs-serv22603 Modified Files: lstedit.cpp lstedit.h Main.cpp Main.h Added Files: mtxedit.cpp mtxedit.h Log Message: 1.25d, matrix editor and other bug fixes/additional functions Index: lstedit.h =================================================================== RCS file: /cvsroot/easycalc/PPCport/core/lstedit.h,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** lstedit.h 2 Nov 2009 17:20:08 -0000 1.1 --- lstedit.h 16 Nov 2009 22:15:12 -0000 1.2 *************** *** 28,34 **** #include "core/mlib/konvert.h" #define LIST_COUNT 3 ! #define LIST1 1 ! #define LIST2 2 ! #define LIST3 3 typedef struct { --- 28,34 ---- #include "core/mlib/konvert.h" #define LIST_COUNT 3 ! #define LIST1_ID 1 ! #define LIST2_ID 2 ! #define LIST3_ID 3 typedef struct { Index: lstedit.cpp =================================================================== RCS file: /cvsroot/easycalc/PPCport/core/lstedit.cpp,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** lstedit.cpp 2 Nov 2009 17:20:08 -0000 1.1 --- lstedit.cpp 16 Nov 2009 22:15:12 -0000 1.2 *************** *** 273,279 **** } // Initialize column header drop downs ! lstedit_reselect(LIST1); ! lstedit_reselect(LIST2); ! lstedit_reselect(LIST3); // Load lists and set correct values in headers lstedit_load_lists(); --- 273,279 ---- } // Initialize column header drop downs ! lstedit_reselect(LIST1_ID); ! lstedit_reselect(LIST2_ID); ! lstedit_reselect(LIST3_ID); // Load lists and set correct values in headers lstedit_load_lists(); *************** *** 350,354 **** void lstedit_init_firstitem (int controlId, Complex *cplx) PARSER; void lstedit_init_firstitem (int controlId, Complex *cplx) { ! int i = controlId - LIST1; if (loadedList[i]) MemPtrFree(loadedList[i]); --- 350,354 ---- void lstedit_init_firstitem (int controlId, Complex *cplx) PARSER; void lstedit_init_firstitem (int controlId, Complex *cplx) { ! int i = controlId - LIST1_ID; if (loadedList[i]) MemPtrFree(loadedList[i]); *************** *** 374,378 **** CError lstedit_append_item (int controlId, Complex *cplx) PARSER; CError lstedit_append_item (int controlId, Complex *cplx) { ! int row = loadedList[controlId - LIST1]->size; // Insert at end. return (lstedit_insert_item(controlId, cplx, row)); } --- 374,378 ---- CError lstedit_append_item (int controlId, Complex *cplx) PARSER; CError lstedit_append_item (int controlId, Complex *cplx) { ! int row = loadedList[controlId - LIST1_ID]->size; // Insert at end. return (lstedit_insert_item(controlId, cplx, row)); } *************** *** 391,395 **** CError lstedit_insert_item (int controlId, Complex *cplx, int row) PARSER; CError lstedit_insert_item (int controlId, Complex *cplx, int row) { ! int l = controlId - LIST1; List *lst, *oldlst; CError err = c_noerror; --- 391,395 ---- CError lstedit_insert_item (int controlId, Complex *cplx, int row) PARSER; CError lstedit_insert_item (int controlId, Complex *cplx, int row) { ! int l = controlId - LIST1_ID; List *lst, *oldlst; CError err = c_noerror; *************** *** 438,442 **** CError lstedit_get_item (int controlId, Complex *cplx, int row) PARSER; CError lstedit_get_item (int controlId, Complex *cplx, int row) { ! int l = controlId - LIST1; CError err = c_noerror; --- 438,442 ---- CError lstedit_get_item (int controlId, Complex *cplx, int row) PARSER; CError lstedit_get_item (int controlId, Complex *cplx, int row) { ! int l = controlId - LIST1_ID; CError err = c_noerror; *************** *** 461,465 **** CError lstedit_replace_item (int controlId, Complex *cplx, int row) PARSER; CError lstedit_replace_item (int controlId, Complex *cplx, int row) { ! int l = controlId - LIST1; CError err = c_noerror; --- 461,465 ---- CError lstedit_replace_item (int controlId, Complex *cplx, int row) PARSER; CError lstedit_replace_item (int controlId, Complex *cplx, int row) { ! int l = controlId - LIST1_ID; CError err = c_noerror; *************** *** 487,491 **** int lstedit_item_length (int controlId, int row) PARSER; int lstedit_item_length (int controlId, int row) { ! TCHAR *text = display_complex(loadedList[controlId-LIST1]->item[row]); int len = _tcslen(text); MemPtrFree(text); --- 487,491 ---- int lstedit_item_length (int controlId, int row) PARSER; int lstedit_item_length (int controlId, int row) { ! TCHAR *text = display_complex(loadedList[controlId-LIST1_ID]->item[row]); int len = _tcslen(text); MemPtrFree(text); *************** *** 506,510 **** int lstedit_list_length (int controlId) PARSER; int lstedit_list_length (int controlId) { ! return (loadedList[controlId-LIST1]->size); } --- 506,510 ---- int lstedit_list_length (int controlId) PARSER; int lstedit_list_length (int controlId) { ! return (loadedList[controlId-LIST1_ID]->size); } *************** *** 522,526 **** CError lstedit_delete_item (int controlId, int row) PARSER; CError lstedit_delete_item (int controlId, int row) { ! int l = controlId - LIST1; if (loadedList[l]->size == 1) --- 522,526 ---- CError lstedit_delete_item (int controlId, int row) PARSER; CError lstedit_delete_item (int controlId, int row) { ! int l = controlId - LIST1_ID; if (loadedList[l]->size == 1) *************** *** 560,564 **** values[i] = varlist->list[i]; LstEditSetListChoices(controlId, values, varlist->size); ! LstEditSetLabel(controlId, listPrefs->list[controlId-LIST1]); /* Set incremental search */ --- 560,564 ---- values[i] = varlist->list[i]; LstEditSetListChoices(controlId, values, varlist->size); ! LstEditSetLabel(controlId, listPrefs->list[controlId-LIST1_ID]); /* Set incremental search */ Index: Main.cpp =================================================================== RCS file: /cvsroot/easycalc/PPCport/core/Main.cpp,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** Main.cpp 3 Nov 2009 10:04:08 -0000 1.4 --- Main.cpp 16 Nov 2009 22:15:12 -0000 1.5 *************** *** 69,73 **** Boolean wide; const TCHAR *helptext; ! }buttonString[]={ {_T("0"),false}, {_T("1"),false}, --- 69,73 ---- Boolean wide; const TCHAR *helptext; ! }buttonString[BUTTON_COUNT+1]={ {_T("0"),false}, {_T("1"),false}, *************** *** 221,224 **** --- 221,225 ---- {_T("erf"),false,true,false,true}, {_T("erfc"),false,true,false,true}, + {_T("="),true}, {_T("Inf")}, // Infinity constant {0,NULL,false} --- NEW FILE: mtxedit.h --- /* * $Id: mtxedit.h,v 1.1 2009/11/16 22:15:12 mapibid Exp $ * * Scientific Calculator for Palms. * Copyright (C) 1999,2000,2001 Ondrej Palkovsky * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, * Boston, MA 02110-1301, USA. * * You can contact me at 'on...@pe...'. */ #ifndef _MTXEDIT_H_ #define _MTXEDIT_H_ #define MATRIX_ID 101 #ifndef _MTXEDIT_C_ extern TCHAR mtxedit_matrixName[MAX_FUNCNAME+1]; #endif void mtxedit_init(Boolean showAns); void mtxedit_select(void); void mtxedit_load_matrix(int* nb_cols, int *nb_rows); void mtxedit_tbl_load(void); void mtxedit_redim(int cols, int rows); CError mtxedit_get_item(Complex *cplx, int col, int row); CError mtxedit_replace_item(Complex *cplx, int col, int row); int mtxedit_item_length(int col, int row); void mtxedit_save_matrix(void); void mtxedit_new(int cols, int rows); void mtxedit_destroy(void); #endif Index: Main.h =================================================================== RCS file: /cvsroot/easycalc/PPCport/core/Main.h,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** Main.h 25 Oct 2009 17:52:15 -0000 1.3 --- Main.h 16 Nov 2009 22:15:12 -0000 1.4 *************** *** 39,43 **** // Number of defined buttons in Main.cpp ! #define BUTTON_COUNT 152 #ifndef _MAIN_C_ --- 39,43 ---- // Number of defined buttons in Main.cpp ! #define BUTTON_COUNT 153 #ifndef _MAIN_C_ --- NEW FILE: mtxedit.cpp --- /* * $Id: mtxedit.cpp,v 1.1 2009/11/16 22:15:12 mapibid Exp $ * * Scientific Calculator for Palms. * Copyright (C) 1999,2000,2001 Ondrej Palkovsky * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, * Boston, MA 02110-1301, USA. * * You can contact me at 'on...@pe...'. * * This editor works automatically with complex matrices and upon * save tries to convert them to the real ones. */ #include "stdafx.h" #include "compat/PalmOS.h" //#include <LstGlue.h> //#include <WinGlue.h> //#include "calcrsc.h" #include "konvert.h" #include "calc.h" #include "defuns.h" #include "compat/segment.h" #include "mtxedit.h" #include "matrix.h" #include "cmatrix.h" #include "calcDB.h" #include "stack.h" #include "display.h" #include "varmgr.h" #include "matrix.h" #include "system - UI/StateManager.h" #include "system - UI/EasyCalc.h" #ifdef SUPPORT_DIA #include "DIA.h" #endif #define _MTXEDIT_C_ TCHAR mtxedit_matrixName[MAX_FUNCNAME+1]; static CMatrix *matrixValue = NULL; static TCHAR matrixDim[MATRIX_MAX][4]; static Int16 rowPosition, colPosition; /*********************************************************************** * * FUNCTION: mtxedit_tbl_load * * DESCRIPTION: Function for drawing matrix table on screen * * PARAMETERS: * * RETURN: Nothing * ***********************************************************************/ void mtxedit_tbl_load (void) IFACE; void mtxedit_tbl_load (void) { if (matrixValue == NULL) return; int rows = matrixValue->rows; int cols = matrixValue->cols; TCHAR *text; for (int i=0 ; i<rows ; i++) { MtxEditSetRowLabel(i, i+1); for (int j=0 ; j<cols ; j++) { text = display_complex(MATRIX(matrixValue, i, j)); MtxEditSetRowValue(i, j+1, text); MemPtrFree(text); } } } /*********************************************************************** * * FUNCTION: mtxedit_get_item * * DESCRIPTION: (Mapi) Get item value from a matrix. * * PARAMETERS: Nothing * * RETURN: Nothing * ***********************************************************************/ CError mtxedit_get_item (Complex *cplx, int col, int row) IFACE; CError mtxedit_get_item (Complex *cplx, int col, int row) { CError err = c_noerror; if ((row > matrixValue->rows) || (col > matrixValue->cols)) return (c_range); // Security .. *cplx = MATRIX(matrixValue, row, col); return (err); } /*********************************************************************** * * FUNCTION: mtxedit_replace_item * * DESCRIPTION: (Mapi) Replace an item value in a matrix. * * PARAMETERS: Nothing * * RETURN: Nothing * ***********************************************************************/ CError mtxedit_replace_item (Complex *cplx, int col, int row) IFACE; CError mtxedit_replace_item (Complex *cplx, int col, int row) { CError err = c_noerror; if ((row > matrixValue->rows) || (col > matrixValue->cols)) return (c_range); // Security .. MATRIX(matrixValue, row, col) = *cplx; mtxedit_save_matrix(); return (err); } /*********************************************************************** * * FUNCTION: mtxedit_item_length * * DESCRIPTION: (Mapi) Retrieve display length of an item. * * PARAMETERS: Nothing * * RETURN: Nothing * ***********************************************************************/ int mtxedit_item_length (int col, int row) IFACE; int mtxedit_item_length (int col, int row) { TCHAR *text = display_complex(MATRIX(matrixValue, row, col)); int len = _tcslen(text); MemPtrFree(text); return (len); } /*********************************************************************** * * FUNCTION: mtxedit_save_matrix * * DESCRIPTION: Save the loaded matrix to database * * PARAMETERS: Nothing * * RETURN: Nothing * ***********************************************************************/ void mtxedit_save_matrix (void) IFACE; void mtxedit_save_matrix (void) { Trpn item; CodeStack *stack; Matrix *m; stack = stack_new(1); if (StrLen(mtxedit_matrixName)) { /* Try to scale down to normal matrix */ m = cmatrix_to_matrix(matrixValue); if (m) { stack_add_val(stack, &m, matrix); matrix_delete(m); } else stack_add_val(stack, &matrixValue, cmatrix); item = stack_pop(stack); db_write_variable(mtxedit_matrixName, item); rpn_delete(item); } stack_delete(stack); } /*********************************************************************** * * FUNCTION: mtxedit_load_matrix * * DESCRIPTION: Load the matrix specified in mtxedit_matrixName to * variable matrixValue. If it doesn't exist, set * mtxedit_matrixName to "" * * PARAMETERS: Nothing * * RETURN: Nothing * ***********************************************************************/ void mtxedit_load_matrix (int *nb_cols, int *nb_rows) IFACE; void mtxedit_load_matrix (int *nb_cols, int *nb_rows) { Trpn item; CError err; if (matrixValue != NULL) { cmatrix_delete(matrixValue); matrixValue = NULL; } if (StrLen(mtxedit_matrixName) == 0) { *nb_cols = *nb_rows = 0; return; } item = db_read_variable(mtxedit_matrixName, &err); if (err) { StrCopy(mtxedit_matrixName, _T("")); *nb_cols = *nb_rows = 0; return; } if (item.type == matrix) matrixValue = matrix_to_cmatrix(item.u.matrixval); else if (item.type == cmatrix) matrixValue = cmatrix_dup(item.u.cmatrixval); else { StrCopy(mtxedit_matrixName, _T("")); rpn_delete(item); *nb_cols = *nb_rows = 0; return; } rpn_delete(item); LstEditSetLabel(MATRIX_ID, mtxedit_matrixName); *nb_cols = matrixValue->cols; *nb_rows = matrixValue->rows; } /*********************************************************************** * * FUNCTION: mtxedit_init * * DESCRIPTION: Initialize the matrix editor * * PARAMETERS: Nothing * * RETURN: Nothing * ***********************************************************************/ void mtxedit_init (Boolean showAns) IFACE; void mtxedit_init (Boolean showAns) { if (showAns) { StrCopy(mtxedit_matrixName, _T("ans")); } else { if (stateMgr->state.matrixName[0] != _T('\0')) StrCopy(mtxedit_matrixName, stateMgr->state.matrixName); else StrCopy(mtxedit_matrixName, _T("")); } // Initialize the matrix name combo mtxedit_select(); } /*********************************************************************** * * FUNCTION: mtxedit_new * * DESCRIPTION: Create a new matrix in the matrix editor * * PARAMETERS: size of the matrix * * RETURN: Nothing * ***********************************************************************/ void mtxedit_new (int cols, int rows) IFACE; void mtxedit_new (int cols, int rows) { if (matrixValue != NULL) cmatrix_delete(matrixValue); matrixValue = cmatrix_new(1,1); } /*********************************************************************** * * FUNCTION: mtxedit_destroy * * DESCRIPTION: Destructor for matrix editor * * PARAMETERS: Nothing * * RETURN: Nothing * ***********************************************************************/ void mtxedit_destroy (void) IFACE; void mtxedit_destroy (void) { StrCopy(stateMgr->state.matrixName, mtxedit_matrixName); if (matrixValue != NULL) { cmatrix_delete(matrixValue); matrixValue = NULL; } } /*********************************************************************** * * FUNCTION: mtxedit_redim * * DESCRIPTION: Handle when user selects a new size of matrix * (reallocate data etc.) * * PARAMETERS: * * RETURN: * ***********************************************************************/ void mtxedit_redim (int cols, int rows) IFACE; void mtxedit_redim (int cols, int rows) { if (matrixValue == NULL) return; int oldrows = matrixValue->rows; int oldcols = matrixValue->cols; CMatrix *nm = cmatrix_new(rows, cols); if (!nm) return; for (int i=0 ; (i<oldrows)&&(i<rows) ; i++) for (int j=0 ; (j<oldcols)&&(j<cols) ; j++) MATRIX(nm, i, j) = MATRIX(matrixValue, i, j); cmatrix_delete(matrixValue); matrixValue = nm; } /*********************************************************************** * * FUNCTION: mtxedit_select * * DESCRIPTION: Handle the user tap on the matrix selector * allows creating new matrix, deleting etc. * * PARAMETERS: Nothing * * RETURN: true - new matrix loaded * false - no change * ***********************************************************************/ void mtxedit_select (void) IFACE; void mtxedit_select (void) { dbList *matrices, *cmatrices; TCHAR **values; Int16 i, j, k, l, compsize; matrices = db_get_list(matrix); cmatrices = db_get_list(cmatrix); compsize = matrices->size + cmatrices->size; if (compsize) values = (TCHAR **) MemPtrNew(sizeof(*values) * compsize); else values = NULL; for (j=0 ; j<matrices->size ; j++) values[j] = matrices->list[j]; /* Insert sort cmatrices */ i = j; for (j=0 ; j<cmatrices->size ; j++,i++) { for (k=0 ; (k<i) && (StrCompare(cmatrices->list[j],values[k])>0) ; k++) ; for (l=i ; l>k ; l--) values[l] = values[l-1]; values[k] = cmatrices->list[j]; } LstEditSetListChoices(MATRIX_ID, values, compsize); LstEditSetLabel(MATRIX_ID, mtxedit_matrixName); /* Set incremental search */ // No equivalent in Windows (in fact, this is done natively, but I don't know // how many chars .. (up to 5 in the Glue API). // LstGlueSetIncrementalSearch(slst, true); MemPtrFree(values); db_delete_list(matrices); db_delete_list(cmatrices); } |
From: Mapi B. <ma...@us...> - 2009-11-16 22:14:41
|
Update of /cvsroot/easycalc/PPCport In directory 23jxhf1.ch3.sourceforge.com:/tmp/cvs-serv22431 Modified Files: EasyCalc.vcproj ReadMe.txt Log Message: 1.25d, matrix editor and other bug fixes/additional functions Index: EasyCalc.vcproj =================================================================== RCS file: /cvsroot/easycalc/PPCport/EasyCalc.vcproj,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** EasyCalc.vcproj 2 Nov 2009 17:05:08 -0000 1.11 --- EasyCalc.vcproj 16 Nov 2009 22:14:29 -0000 1.12 *************** *** 654,657 **** --- 654,661 ---- </File> <File + RelativePath=".\core\mtxedit.cpp" + > + </File> + <File RelativePath=".\core\prefs.cpp" > *************** *** 900,903 **** --- 904,911 ---- </File> <File + RelativePath=".\core\mtxedit.h" + > + </File> + <File RelativePath=".\core\prefs.h" > Index: ReadMe.txt =================================================================== RCS file: /cvsroot/easycalc/PPCport/ReadMe.txt,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** ReadMe.txt 3 Nov 2009 10:03:42 -0000 1.6 --- ReadMe.txt 16 Nov 2009 22:14:29 -0000 1.7 *************** *** 32,35 **** --- 32,46 ---- Releases: --------- + * 1.25d PPC: + - More stringent window handling code to fight further the few cases + remaining where the application "disappear" when coming back from + power suspend mode. Looks more stable now. + - Modified the DataManager window to show column headings and make + them resizable by the user. + - Added "=" (press on shift + =) key to allow variable assignment directly + from normal pad and without using the SIP/keyboard. + - Added the matrix editor. + - Added documentation of special functions in the release package. + * 1.25c PPC: - Error in .layout file, EXP/EE key was pointing at ')'. *************** *** 137,143 **** ! Still missing in 1.25c: ----------------------- - - Matrix editor - Solver interface - Financial Manager --- 148,153 ---- ! Still missing in 1.25d: ----------------------- - Solver interface - Financial Manager *************** *** 145,148 **** --- 155,159 ---- - Support for multiple skins (only 1 for now) - Graphes + - Support screen rotation with another set of skins (EasyCalcWide.layout + gif). - ... that should be all ... |