From 211f0dada40e40729bfeaaf30f6fd9f33426c74b Mon Sep 17 00:00:00 2001 From: Tomasz Sowa Date: Wed, 28 Feb 2007 17:52:09 +0000 Subject: [PATCH] fixed: CalculationsProcedure - the 'main_window' must be set later (in the loop) fixed: the program didn't save the current language into the configuration file added: buttons Sgn, Mod changed: now the 'error' button is active only when there's actually an error git-svn-id: svn://ttmath.org/publicrep/ttcalc/trunk@18 e52654a7-88a9-db11-a3e9-0013d4bc506e --- CHANGELOG | 11 +++++- src/Makefile | 2 +- src/calculation.cpp | 3 +- src/compileconfig.h | 2 +- src/languages.cpp | 4 +-- src/mainwindow.cpp | 14 +++++++- src/programresources.cpp | 14 ++++++-- src/resource.h | 7 ++++ src/resource.rc | 77 ++++++++++++++++++++++------------------ src/tabs.cpp | 45 +++++++++++++++++++++++ src/winmain.cpp | 3 ++ 11 files changed, 138 insertions(+), 44 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index 17afe19..c9755fd 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,6 +1,15 @@ +Version 0.7.2 (2007.02.28): + * added buttons Sgn and Mod + * the button 'err' is active when there's actually an error now + * added buttons: ASin, ACos, ATan, ACTan + * fixed: the program didn't save the current language into the configuration file + * fixed: the second thread didn't read the main window correctly and it caused + small problems when an user was typing into the first edit control + Version 0.7.1 (2007.02.08): * added a button 'err' (error) on the first tab * the input edit can have 2048 characters now * added remembering the vertical size into the config file * fixed a problem with the 'tab' key - * added a message 'Calculating...' when an user clicks on the 'err' button during calculating something + * added a message 'Calculating...' when an user clicks on the 'err' button + during calculating something diff --git a/src/Makefile b/src/Makefile index d382cb1..f930729 100644 --- a/src/Makefile +++ b/src/Makefile @@ -1,6 +1,6 @@ CC = g++ o = resource.o calculation.o functions.o iniparser.o languages.o mainwindow.o parsermanager.o programresources.o tabs.o variables.o winmain.o -CFLAGS = -Wall -pedantic -s -O1 -mwindows -mthreads -I../../../ttmath +CFLAGS = -Wall -pedantic -s -O3 -mwindows -mthreads -I../../../ttmath name = ttcalc.exe diff --git a/src/calculation.cpp b/src/calculation.cpp index c7d446e..3cff508 100644 --- a/src/calculation.cpp +++ b/src/calculation.cpp @@ -46,12 +46,13 @@ unsigned __stdcall CalculationsProcedure(void *) { ParserManager parser_manager; - HWND main_window = GetPrgRes()->GetMainWindow(); parser_manager.Init(); // the main loop of calculations while( GetPrgRes()->GetThreadController()->WaitForCalculatingAndBlockForStop() ) { + HWND main_window = GetPrgRes()->GetMainWindow(); + // for the first we must copy all variables which we're using // (at this moment all calling from the main thread are stopped) parser_manager.MakeCopyOfVariables(); diff --git a/src/compileconfig.h b/src/compileconfig.h index e978568..f075684 100644 --- a/src/compileconfig.h +++ b/src/compileconfig.h @@ -52,7 +52,7 @@ */ #define TTCALC_MAJOR_VER 0 #define TTCALC_MINOR_VER 7 -#define TTCALC_REVISION_VER 1 +#define TTCALC_REVISION_VER 2 diff --git a/src/languages.cpp b/src/languages.cpp index 1fb9428..c6a6db1 100644 --- a/src/languages.cpp +++ b/src/languages.cpp @@ -272,7 +272,7 @@ void Languages::InitGuiMessagesTab() "Author: Tomasz Sowa\r\n" "Contact: t.sowa@slimaczek.pl\r\n" "Licence: (New) BSD licence\r\n" - "Project page: \r\n" + "Project page: http://sourceforge.net/projects/ttcalc\r\n" "Mathemathical library: TTMath %d.%d.%d\r\n" "Programming language: C++\r\n" "Compiler: %s\r\n" @@ -375,7 +375,7 @@ void Languages::InitGuiMessagesTab() "Autor: Tomasz Sowa\r\n" "Kontakt: t.sowa@slimaczek.pl\r\n" "Licencja: (New) BSD\r\n" - "Strona projektu: \r\n" + "Strona projektu: http://sourceforge.net/projects/ttcalc\r\n" "Biblioteka matematyczna: TTMath %d.%d.%d\r\n" "Jêzyk programowania: C++\r\n" "Kompilator: %s\r\n" diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 5cc027c..9a97253 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -659,7 +659,19 @@ return true; BOOL WmSetLastError(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) { - TabWindowFunctions::last_code = (ttmath::ErrorCode)wParam; +using TabWindowFunctions::last_code; + + last_code = (ttmath::ErrorCode)wParam; + + HWND button_err = GetDlgItem( GetPrgRes()->GetTabWindow( + TabWindowFunctions::tab_standard), + IDC_BUTTON_ERROR ); + + if( last_code == ttmath::err_ok || last_code == ttmath::err_nothing_has_read ) + EnableWindow(button_err, false); + else + EnableWindow(button_err, true); + return true; } diff --git a/src/programresources.cpp b/src/programresources.cpp index f2bbd9a..cd100df 100644 --- a/src/programresources.cpp +++ b/src/programresources.cpp @@ -567,6 +567,7 @@ std::string ini_value[20]; iparser.Associate( "global|disp.when.scientific", &ini_value[10] ); iparser.Associate( "global|disp.rounding", &ini_value[11] ); iparser.Associate( "global|size.y", &ini_value[12] ); + iparser.Associate( "global|language", &ini_value[13] ); iparser.Associate( "variables", &temp_variables ); iparser.Associate( "functions", &temp_functions ); @@ -610,6 +611,13 @@ std::string ini_value[20]; SetDisplayWhenScientific( atoi(ini_value[10].c_str()) ); SetDisplayRounding( atoi(ini_value[11].c_str()) ); + + if( ini_value[13] == "1" ) + languages.SetCurrentLanguage(Languages::pl); + else + languages.SetCurrentLanguage(Languages::en); + + if( err != IniParser::err_ok ) bad_line = iparser.GetBadLine(); @@ -638,19 +646,21 @@ std::ofstream file( configuration_file.c_str() ); file << "precision = " << precision << std::endl; file << "disp.input = " << base_input << std::endl; file << "disp.output = " << base_output << std::endl; + file << "language = " << static_cast(languages.GetCurrentLanguage()) + << std::endl; file << "disp.alw.scientific = " << (int)display_always_scientific << std::endl; file << "disp.when.scientific = " << display_when_scientific << std::endl; file << "disp.rounding = " << display_rounding << std::endl; - file << "\n\n[variables]\n"; + file << "\n[variables]\n"; ttmath::Objects::CIterator iv = variables.Begin(); for( ; iv != variables.End() ; ++iv ) file << iv->first.c_str() << " = " << iv->second.value.c_str() << std::endl; - file << "\n\n[functions]\n"; + file << "\n[functions]\n"; iv = functions.Begin(); for( ; iv != functions.End() ; ++iv ) diff --git a/src/resource.h b/src/resource.h index 7d12297..8e756b0 100644 --- a/src/resource.h +++ b/src/resource.h @@ -73,6 +73,13 @@ // standard tab #define IDC_BUTTON_ERROR 1070 +#define IDC_BUTTON_ASIN 1071 +#define IDC_BUTTON_ACOS 1072 +#define IDC_BUTTON_ATAN 1073 +#define IDC_BUTTON_ACTAN 1074 +#define IDC_BUTTON_SGN 1075 +#define IDC_BUTTON_MOD 1076 + // values from IDC_BUTTON_PRESS_0 to IDC_BUTTON_PRESS_9 should be with the step equal one #define IDC_BUTTON_PRESS_0 1100 diff --git a/src/resource.rc b/src/resource.rc index 68c3a02..1696733 100644 --- a/src/resource.rc +++ b/src/resource.rc @@ -78,46 +78,53 @@ BEGIN LTEXT "param:",1148,7,30,33,8 END -110 DIALOG 0, 0, 287, 90 -STYLE DS_3DLOOK |DS_FIXEDSYS |DS_SETFONT |WS_CHILD |WS_TABSTOP +110 DIALOGEX 0, 0, 264, 90 +STYLE DS_3DLOOK | DS_FIXEDSYS | WS_CHILD | WS_TABSTOP EXSTYLE WS_EX_CONTROLPARENT FONT 8, "Ms Shell Dlg" BEGIN - CONTROL "Clear",1110,"BUTTON",BS_PUSHBUTTON |BS_VCENTER |BS_CENTER |WS_CHILD |WS_TABSTOP |WS_VISIBLE ,3,3,26,14 - CONTROL "7",1107,"BUTTON",BS_PUSHBUTTON |BS_VCENTER |BS_CENTER |WS_CHILD |WS_TABSTOP |WS_VISIBLE ,3,20,26,14 - CONTROL "4",1104,"BUTTON",BS_PUSHBUTTON |BS_VCENTER |BS_CENTER |WS_CHILD |WS_TABSTOP |WS_VISIBLE ,3,37,26,14 - CONTROL "1",1101,"BUTTON",BS_PUSHBUTTON |BS_VCENTER |BS_CENTER |WS_CHILD |WS_TABSTOP |WS_VISIBLE ,3,54,26,14 - CONTROL "0",1100,"BUTTON",BS_PUSHBUTTON |BS_VCENTER |BS_CENTER |WS_CHILD |WS_TABSTOP |WS_VISIBLE ,3,71,56,14 - CONTROL "(",1111,"BUTTON",BS_PUSHBUTTON |BS_VCENTER |BS_CENTER |WS_CHILD |WS_TABSTOP |WS_VISIBLE ,33,3,26,14 - CONTROL "8",1108,"BUTTON",BS_PUSHBUTTON |BS_VCENTER |BS_CENTER |WS_CHILD |WS_TABSTOP |WS_VISIBLE ,33,20,26,14 - CONTROL "5",1105,"BUTTON",BS_PUSHBUTTON |BS_VCENTER |BS_CENTER |WS_CHILD |WS_TABSTOP |WS_VISIBLE ,33,37,26,14 - CONTROL "2",1102,"BUTTON",BS_PUSHBUTTON |BS_VCENTER |BS_CENTER |WS_CHILD |WS_TABSTOP |WS_VISIBLE ,33,54,26,14 - CONTROL ")",1112,"BUTTON",BS_PUSHBUTTON |BS_VCENTER |BS_CENTER |WS_CHILD |WS_TABSTOP |WS_VISIBLE ,62,3,26,14 - CONTROL "9",1109,"BUTTON",BS_PUSHBUTTON |BS_VCENTER |BS_CENTER |WS_CHILD |WS_TABSTOP |WS_VISIBLE ,62,20,26,14 - CONTROL "6",1106,"BUTTON",BS_PUSHBUTTON |BS_VCENTER |BS_CENTER |WS_CHILD |WS_TABSTOP |WS_VISIBLE ,62,37,26,14 - CONTROL "3",1103,"BUTTON",BS_PUSHBUTTON |BS_VCENTER |BS_CENTER |WS_CHILD |WS_TABSTOP |WS_VISIBLE ,62,54,26,14 - CONTROL ",",1117,"BUTTON",BS_PUSHBUTTON |BS_VCENTER |BS_CENTER |WS_CHILD |WS_TABSTOP |WS_VISIBLE ,62,71,26,14 - CONTROL "^",1128,"BUTTON",BS_PUSHBUTTON |BS_BOTTOM |BS_CENTER |WS_CHILD |WS_TABSTOP |WS_VISIBLE ,91,3,26,14 - CONTROL "/",1113,"BUTTON",BS_PUSHBUTTON |BS_VCENTER |BS_CENTER |WS_CHILD |WS_TABSTOP |WS_VISIBLE ,91,20,26,14 - CONTROL "*",1114,"BUTTON",BS_PUSHBUTTON |BS_BOTTOM |BS_CENTER |WS_CHILD |WS_TABSTOP |WS_VISIBLE ,91,37,26,14 - CONTROL "-",1115,"BUTTON",BS_PUSHBUTTON |BS_VCENTER |BS_CENTER |WS_CHILD |WS_TABSTOP |WS_VISIBLE ,91,54,26,14 - CONTROL "+",1116,"BUTTON",BS_PUSHBUTTON |BS_VCENTER |BS_CENTER |WS_CHILD |WS_TABSTOP |WS_VISIBLE ,91,71,26,14 - CONTROL "sin",1120,"BUTTON",BS_PUSHBUTTON |BS_VCENTER |BS_CENTER |WS_CHILD |WS_TABSTOP |WS_VISIBLE ,131,3,26,14 - CONTROL "cos",1121,"BUTTON",BS_PUSHBUTTON |BS_VCENTER |BS_CENTER |WS_CHILD |WS_TABSTOP |WS_VISIBLE ,131,20,26,14 - CONTROL "tan",1122,"BUTTON",BS_PUSHBUTTON |BS_VCENTER |BS_CENTER |WS_CHILD |WS_TABSTOP |WS_VISIBLE ,131,37,26,14 - CONTROL "ctg",1123,"BUTTON",BS_PUSHBUTTON |BS_VCENTER |BS_CENTER |WS_CHILD |WS_TABSTOP |WS_VISIBLE ,131,54,26,14 - CONTROL "int",1129,"BUTTON",BS_PUSHBUTTON |BS_VCENTER |BS_CENTER |WS_CHILD |WS_TABSTOP |WS_VISIBLE ,131,71,26,14 - CONTROL "ln",1124,"BUTTON",BS_PUSHBUTTON |BS_VCENTER |BS_CENTER |WS_CHILD |WS_TABSTOP |WS_VISIBLE ,160,3,26,14 - CONTROL "log",1125,"BUTTON",BS_PUSHBUTTON |BS_VCENTER |BS_CENTER |WS_CHILD |WS_TABSTOP |WS_VISIBLE ,160,20,26,14 - CONTROL "exp",1131,"BUTTON",BS_PUSHBUTTON |BS_VCENTER |BS_CENTER |WS_CHILD |WS_TABSTOP |WS_VISIBLE ,160,37,26,14 - CONTROL "abs",1126,"BUTTON",BS_PUSHBUTTON |BS_VCENTER |BS_CENTER |WS_CHILD |WS_TABSTOP |WS_VISIBLE ,160,54,26,14 - CONTROL "round",1130,"BUTTON",BS_PUSHBUTTON |BS_VCENTER |BS_CENTER |WS_CHILD |WS_TABSTOP |WS_VISIBLE ,160,71,26,14 - CONTROL "!",1127,"BUTTON",BS_PUSHBUTTON |BS_VCENTER |BS_CENTER |WS_CHILD |WS_TABSTOP |WS_VISIBLE ,189,3,26,14 - CONTROL "e",1118,"BUTTON",BS_PUSHBUTTON |BS_VCENTER |BS_CENTER |WS_CHILD |WS_TABSTOP |WS_VISIBLE ,229,3,26,14 - CONTROL "pi",1119,"BUTTON",BS_PUSHBUTTON |BS_VCENTER |BS_CENTER |WS_CHILD |WS_TABSTOP |WS_VISIBLE ,229,20,26,14 - CONTROL "err",1070,"BUTTON",BS_PUSHBUTTON |BS_VCENTER |BS_CENTER |WS_CHILD |WS_TABSTOP |WS_VISIBLE ,229,71,26,14 + PUSHBUTTON "Clear",1110,3,3,26,14,BS_CENTER | BS_VCENTER + PUSHBUTTON "(",1111,33,3,26,14,BS_CENTER | BS_VCENTER + PUSHBUTTON ")",1112,62,3,26,14,BS_CENTER | BS_VCENTER + PUSHBUTTON "^",1128,91,3,26,14,BS_CENTER | BS_BOTTOM + PUSHBUTTON "7",1107,3,20,26,14,BS_CENTER | BS_VCENTER + PUSHBUTTON "8",1108,33,20,26,14,BS_CENTER | BS_VCENTER + PUSHBUTTON "9",1109,62,20,26,14,BS_CENTER | BS_VCENTER + PUSHBUTTON "/",1113,91,20,26,14,BS_CENTER | BS_VCENTER + PUSHBUTTON "4",1104,3,37,26,14,BS_CENTER | BS_VCENTER + PUSHBUTTON "5",1105,33,37,26,14,BS_CENTER | BS_VCENTER + PUSHBUTTON "6",1106,62,37,26,14,BS_CENTER | BS_VCENTER + PUSHBUTTON "*",1114,91,37,26,14,BS_CENTER | BS_BOTTOM + PUSHBUTTON "1",1101,3,54,26,14,BS_CENTER | BS_VCENTER + PUSHBUTTON "2",1102,33,54,26,14,BS_CENTER | BS_VCENTER + PUSHBUTTON "3",1103,62,54,26,14,BS_CENTER | BS_VCENTER + PUSHBUTTON "-",1115,91,54,26,14,BS_CENTER | BS_VCENTER + PUSHBUTTON "0",1100,3,71,56,14,BS_CENTER | BS_VCENTER + PUSHBUTTON ",",1117,62,71,26,14,BS_CENTER | BS_VCENTER + PUSHBUTTON "+",1116,91,71,26,14,BS_CENTER | BS_VCENTER + PUSHBUTTON "sin",1120,131,3,26,14,BS_CENTER | BS_VCENTER + PUSHBUTTON "asin",1071,160,3,26,14,BS_CENTER | BS_VCENTER + PUSHBUTTON "ln",1124,189,3,26,14,BS_CENTER | BS_VCENTER + PUSHBUTTON "cos",1121,131,20,26,14,BS_CENTER | BS_VCENTER + PUSHBUTTON "acos",1072,160,20,26,14,BS_CENTER | BS_VCENTER + PUSHBUTTON "log",1125,189,20,26,14,BS_CENTER | BS_VCENTER + PUSHBUTTON "tan",1122,131,37,26,14,BS_CENTER | BS_VCENTER + PUSHBUTTON "atan",1073,160,37,26,14,BS_CENTER | BS_VCENTER + PUSHBUTTON "exp",1131,189,37,26,14,BS_CENTER | BS_VCENTER + PUSHBUTTON "ctan",1123,131,54,26,14,BS_CENTER | BS_VCENTER + PUSHBUTTON "actan",1074,160,54,26,14,BS_CENTER | BS_VCENTER + PUSHBUTTON "abs",1126,189,54,26,14,BS_CENTER | BS_VCENTER + PUSHBUTTON "int",1129,131,71,26,14,BS_CENTER | BS_VCENTER + PUSHBUTTON "round",1130,160,71,26,14,BS_CENTER | BS_VCENTER + PUSHBUTTON "!",1127,189,71,26,14,BS_CENTER | BS_VCENTER + PUSHBUTTON "sgn",1075,229,3,26,14,BS_CENTER | BS_VCENTER + PUSHBUTTON "mod",1076,229,20,26,14,BS_CENTER | BS_VCENTER + PUSHBUTTON "e",1118,229,37,26,14,BS_CENTER | BS_VCENTER + PUSHBUTTON "pi",1119,229,54,26,14,BS_CENTER | BS_VCENTER + PUSHBUTTON "err",1070,229,71,26,14,BS_CENTER | BS_VCENTER END + 111 DIALOG 0, 0, 287, 90 STYLE DS_3DLOOK |DS_FIXEDSYS |DS_SETFONT |WS_CHILD EXSTYLE WS_EX_CONTROLPARENT diff --git a/src/tabs.cpp b/src/tabs.cpp index a9dd241..a3738e1 100644 --- a/src/tabs.cpp +++ b/src/tabs.cpp @@ -242,6 +242,45 @@ return true; } +BOOL WmTabCommand_Press_asin(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) +{ + InsertText("asin()",-1); + +return true; +} + +BOOL WmTabCommand_Press_acos(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) +{ + InsertText("acos()",-1); + +return true; +} +BOOL WmTabCommand_Press_atan(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) +{ + InsertText("atan()",-1); + +return true; +} +BOOL WmTabCommand_Press_actan(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) +{ + InsertText("actan()",-1); + +return true; +} +BOOL WmTabCommand_Press_sgn(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) +{ + InsertText("sgn()",-1); + +return true; +} +BOOL WmTabCommand_Press_mod(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) +{ + InsertText("mod(;)",-2); + +return true; +} + + BOOL WmTabCommand_Press_power(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) { InsertText("^",0); @@ -631,6 +670,12 @@ void CreateTabCommandMessagesTable(Messages & cmessages) cmessages.Associate(IDC_BUTTON_CLEAR, WmTabCommand_Press_clear); cmessages.Associate(IDC_BUTTON_ERROR, WmTabCommand_Press_error); + cmessages.Associate(IDC_BUTTON_ASIN, WmTabCommand_Press_asin); + cmessages.Associate(IDC_BUTTON_ACOS, WmTabCommand_Press_acos); + cmessages.Associate(IDC_BUTTON_ATAN, WmTabCommand_Press_atan); + cmessages.Associate(IDC_BUTTON_ACTAN, WmTabCommand_Press_actan); + cmessages.Associate(IDC_BUTTON_SGN, WmTabCommand_Press_sgn); + cmessages.Associate(IDC_BUTTON_MOD, WmTabCommand_Press_mod); cmessages.Associate(IDC_BUTTON_POWER, WmTabCommand_Press_power); diff --git a/src/winmain.cpp b/src/winmain.cpp index a3aac69..17e07c9 100644 --- a/src/winmain.cpp +++ b/src/winmain.cpp @@ -45,6 +45,9 @@ #include +#include + + /*!