added: 'decimal point' option on the display tab
git-svn-id: svn://ttmath.org/publicrep/ttcalc/trunk@59 e52654a7-88a9-db11-a3e9-0013d4bc506e
This commit is contained in:
parent
01ad539107
commit
ee05abc94d
|
@ -251,6 +251,7 @@ void Languages::InitGuiMessagesTab()
|
||||||
InsertGuiPair(display_always_scientific,"Always");
|
InsertGuiPair(display_always_scientific,"Always");
|
||||||
InsertGuiPair(display_not_always_scientific,"When the exponent is greater than:");
|
InsertGuiPair(display_not_always_scientific,"When the exponent is greater than:");
|
||||||
InsertGuiPair(display_group_scientific, "Print the result as the scientific value");
|
InsertGuiPair(display_group_scientific, "Print the result as the scientific value");
|
||||||
|
InsertGuiPair(display_decimal_point, "Decimal point");
|
||||||
InsertGuiPair(convert_type, "Type");
|
InsertGuiPair(convert_type, "Type");
|
||||||
InsertGuiPair(convert_input, "Input");
|
InsertGuiPair(convert_input, "Input");
|
||||||
InsertGuiPair(convert_output, "Output");
|
InsertGuiPair(convert_output, "Output");
|
||||||
|
@ -373,6 +374,7 @@ void Languages::InitGuiMessagesTab()
|
||||||
InsertGuiPair(display_always_scientific,"Zawsze");
|
InsertGuiPair(display_always_scientific,"Zawsze");
|
||||||
InsertGuiPair(display_not_always_scientific,"Jeœli eksponent jest wiêkszy ni¿:");
|
InsertGuiPair(display_not_always_scientific,"Jeœli eksponent jest wiêkszy ni¿:");
|
||||||
InsertGuiPair(display_group_scientific, "Wyœwietl wynik w postaci naukowej");
|
InsertGuiPair(display_group_scientific, "Wyœwietl wynik w postaci naukowej");
|
||||||
|
InsertGuiPair(display_decimal_point, "Przecinek dziesiêtny");
|
||||||
InsertGuiPair(convert_type, "Typ");
|
InsertGuiPair(convert_type, "Typ");
|
||||||
InsertGuiPair(convert_input, "Wejœcie");
|
InsertGuiPair(convert_input, "Wejœcie");
|
||||||
InsertGuiPair(convert_output, "Wyjœcie");
|
InsertGuiPair(convert_output, "Wyjœcie");
|
||||||
|
|
|
@ -100,6 +100,7 @@ public:
|
||||||
display_rounding,
|
display_rounding,
|
||||||
display_always_scientific,
|
display_always_scientific,
|
||||||
display_not_always_scientific,
|
display_not_always_scientific,
|
||||||
|
display_decimal_point,
|
||||||
convert_type,
|
convert_type,
|
||||||
convert_input,
|
convert_input,
|
||||||
convert_output,
|
convert_output,
|
||||||
|
|
|
@ -152,6 +152,12 @@ unsigned int i;
|
||||||
|
|
||||||
conv_type = GetPrgRes()->GetConvType();
|
conv_type = GetPrgRes()->GetConvType();
|
||||||
GetPrgRes()->GetConvUnit(conv_type, conv_input_unit, conv_output_unit);
|
GetPrgRes()->GetConvUnit(conv_type, conv_input_unit, conv_output_unit);
|
||||||
|
|
||||||
|
//
|
||||||
|
if( GetPrgRes()->GetDecimalPoint() == 0 )
|
||||||
|
decimal_point = '.';
|
||||||
|
else
|
||||||
|
decimal_point = ',';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -140,6 +140,7 @@ private:
|
||||||
int precision;
|
int precision;
|
||||||
Languages::Country country;
|
Languages::Country country;
|
||||||
ttmath::ErrorCode code;
|
ttmath::ErrorCode code;
|
||||||
|
char decimal_point;
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -189,6 +190,7 @@ private:
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// 1 if carry
|
// 1 if carry
|
||||||
template<class ValueType>
|
template<class ValueType>
|
||||||
int PrintResult(ttmath::Parser<ValueType> & matparser)
|
int PrintResult(ttmath::Parser<ValueType> & matparser)
|
||||||
|
@ -209,7 +211,7 @@ private:
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if( result.ToString(buffer2,base_output, always_scientific, when_scientific, rounding) )
|
if( result.ToString(buffer2,base_output, always_scientific, when_scientific, rounding, decimal_point) )
|
||||||
{
|
{
|
||||||
// we shouldn't have had this error in the new version of ToStrign(...)
|
// we shouldn't have had this error in the new version of ToStrign(...)
|
||||||
// (where we're using a bigger type for calculating)
|
// (where we're using a bigger type for calculating)
|
||||||
|
|
|
@ -260,6 +260,21 @@ int ProgramResources::GetBaseOutput()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void ProgramResources::SetDecimalPoint(int decimal)
|
||||||
|
{
|
||||||
|
decimal_point = decimal;
|
||||||
|
|
||||||
|
if( decimal_point<0 || decimal_point>1 )
|
||||||
|
decimal_point = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
int ProgramResources::GetDecimalPoint()
|
||||||
|
{
|
||||||
|
return decimal_point;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//
|
//
|
||||||
|
|
||||||
|
@ -393,6 +408,8 @@ ProgramResources::ProgramResources()
|
||||||
|
|
||||||
conv_type = 0;
|
conv_type = 0;
|
||||||
ConvUnitCheckAll();
|
ConvUnitCheckAll();
|
||||||
|
|
||||||
|
decimal_point = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -602,6 +619,7 @@ std::string ini_value[20];
|
||||||
iparser.Associate( "global|disp.rounding", &ini_value[11] );
|
iparser.Associate( "global|disp.rounding", &ini_value[11] );
|
||||||
iparser.Associate( "global|size.y", &ini_value[12] );
|
iparser.Associate( "global|size.y", &ini_value[12] );
|
||||||
iparser.Associate( "global|language", &ini_value[13] );
|
iparser.Associate( "global|language", &ini_value[13] );
|
||||||
|
iparser.Associate( "global|disp.dec.point", &ini_value[14] );
|
||||||
|
|
||||||
iparser.Associate( "variables", &temp_variables );
|
iparser.Associate( "variables", &temp_variables );
|
||||||
iparser.Associate( "functions", &temp_functions );
|
iparser.Associate( "functions", &temp_functions );
|
||||||
|
@ -647,12 +665,13 @@ std::string ini_value[20];
|
||||||
SetDisplayWhenScientific( atoi(ini_value[10].c_str()) );
|
SetDisplayWhenScientific( atoi(ini_value[10].c_str()) );
|
||||||
SetDisplayRounding( atoi(ini_value[11].c_str()) );
|
SetDisplayRounding( atoi(ini_value[11].c_str()) );
|
||||||
|
|
||||||
|
|
||||||
if( ini_value[13] == "1" )
|
if( ini_value[13] == "1" )
|
||||||
languages.SetCurrentLanguage(Languages::pl);
|
languages.SetCurrentLanguage(Languages::pl);
|
||||||
else
|
else
|
||||||
languages.SetCurrentLanguage(Languages::en);
|
languages.SetCurrentLanguage(Languages::en);
|
||||||
|
|
||||||
|
SetDecimalPoint( atoi(ini_value[14].c_str()) );
|
||||||
|
|
||||||
|
|
||||||
if( err != IniParser::err_ok )
|
if( err != IniParser::err_ok )
|
||||||
bad_line = iparser.GetBadLine();
|
bad_line = iparser.GetBadLine();
|
||||||
|
@ -688,6 +707,7 @@ std::ofstream file( configuration_file.c_str() );
|
||||||
file << "disp.alw.scientific = " << (int)display_always_scientific << std::endl;
|
file << "disp.alw.scientific = " << (int)display_always_scientific << std::endl;
|
||||||
file << "disp.when.scientific = " << display_when_scientific << std::endl;
|
file << "disp.when.scientific = " << display_when_scientific << std::endl;
|
||||||
file << "disp.rounding = " << display_rounding << std::endl;
|
file << "disp.rounding = " << display_rounding << std::endl;
|
||||||
|
file << "disp.dec.point = " << decimal_point << std::endl;
|
||||||
|
|
||||||
file << "\n[variables]\n";
|
file << "\n[variables]\n";
|
||||||
|
|
||||||
|
|
|
@ -274,7 +274,13 @@ public:
|
||||||
*/
|
*/
|
||||||
int GetBadLine();
|
int GetBadLine();
|
||||||
|
|
||||||
|
/*!
|
||||||
|
setting and returning the decimal point used during printig values
|
||||||
|
0 - '.'
|
||||||
|
1 - ','
|
||||||
|
*/
|
||||||
|
void SetDecimalPoint(int decimal);
|
||||||
|
int GetDecimalPoint();
|
||||||
|
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
|
@ -329,6 +335,8 @@ private:
|
||||||
int base_input;
|
int base_input;
|
||||||
int base_output;
|
int base_output;
|
||||||
|
|
||||||
|
int decimal_point;
|
||||||
|
|
||||||
bool display_always_scientific;
|
bool display_always_scientific;
|
||||||
int display_when_scientific;
|
int display_when_scientific;
|
||||||
int display_rounding;
|
int display_rounding;
|
||||||
|
|
|
@ -162,6 +162,9 @@
|
||||||
#define IDC_UPDOWN_DISPLAY_WHEN_SCIENTIFIC 1165
|
#define IDC_UPDOWN_DISPLAY_WHEN_SCIENTIFIC 1165
|
||||||
#define IDC_EDIT_DISPLAY_WHEN_SCIENTIFIC 1166
|
#define IDC_EDIT_DISPLAY_WHEN_SCIENTIFIC 1166
|
||||||
#define IDC_LABEL_GROUP_SCIENTIFIC 1168
|
#define IDC_LABEL_GROUP_SCIENTIFIC 1168
|
||||||
|
#define IDC_LABEL_DECIMAL_POINT 1169
|
||||||
|
#define IDC_COMBO_DECIMAL_POINT 1170
|
||||||
|
|
||||||
|
|
||||||
// convert tab
|
// convert tab
|
||||||
#define IDC_LIST_UNIT_TYPE 1200
|
#define IDC_LIST_UNIT_TYPE 1200
|
||||||
|
|
|
@ -173,23 +173,32 @@ END
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
114 DIALOG DISCARDABLE 0, 0, 255, 90
|
114 DIALOG DISCARDABLE 0, 0, 255, 90
|
||||||
STYLE DS_3DLOOK | DS_FIXEDSYS |DS_SETFONT |WS_CHILD | WS_TABSTOP |WS_GROUP
|
STYLE DS_3DLOOK | DS_FIXEDSYS | WS_CHILD | WS_CAPTION | WS_GROUP |
|
||||||
CAPTION "tab5"
|
WS_TABSTOP
|
||||||
FONT 8, "Ms Shell Dlg"
|
CAPTION "tab5"
|
||||||
BEGIN
|
FONT 8, "Ms Shell Dlg"
|
||||||
COMBOBOX 1156,58,5,63,200,CBS_DROPDOWNLIST | WS_TABSTOP | WS_GROUP
|
BEGIN
|
||||||
COMBOBOX 1157,58,19,63,200,CBS_DROPDOWNLIST | WS_TABSTOP
|
COMBOBOX 1156,58,5,63,200,CBS_DROPDOWNLIST | WS_GROUP |
|
||||||
LTEXT "Input",1162,11,7,27,8
|
WS_TABSTOP
|
||||||
LTEXT "Output",1163,11,22,29,8
|
COMBOBOX 1157,58,19,63,200,CBS_DROPDOWNLIST | WS_TABSTOP
|
||||||
LTEXT "Rounding",1164,11,36,43,8
|
LTEXT "Input",1162,11,7,27,8
|
||||||
COMBOBOX 1159,58,33,121,200,CBS_DROPDOWNLIST | WS_TABSTOP
|
LTEXT "Output",1163,11,22,29,8
|
||||||
CONTROL "Always",1160,"Button",BS_AUTORADIOBUTTON | BS_LEFT | WS_GROUP | WS_TABSTOP,19,65,44,10
|
LTEXT "Rounding",1164,11,36,43,8
|
||||||
CONTROL "When the exponent is greater than:",1161,"Button", BS_AUTORADIOBUTTON | BS_LEFT ,77,65,130,10
|
COMBOBOX 1159,58,33,121,200,CBS_DROPDOWNLIST | WS_TABSTOP
|
||||||
EDITTEXT 1166,211,63,29,14,WS_GROUP | WS_TABSTOP | ES_NUMBER
|
CONTROL "Always",1160,"Button",BS_AUTORADIOBUTTON | BS_LEFT |
|
||||||
CONTROL "",1165,"msctls_updown32",UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_ARROWKEYS ,213,37,11,14
|
WS_GROUP | WS_TABSTOP,19,65,44,10
|
||||||
GROUPBOX "Print scientific value",1168,11,51,240,31
|
CONTROL "When the exponent is greater than:",1161,"Button",
|
||||||
END
|
BS_AUTORADIOBUTTON | BS_LEFT,77,65,130,10
|
||||||
|
EDITTEXT 1166,211,63,29,14,ES_NUMBER | WS_GROUP
|
||||||
|
CONTROL "",1165,"msctls_updown32",UDS_SETBUDDYINT |
|
||||||
|
UDS_ALIGNRIGHT | UDS_ARROWKEYS,213,37,11,14
|
||||||
|
GROUPBOX "Print scientific value",1168,11,51,240,31
|
||||||
|
RTEXT "Decimal point",1169,147,22,68,8
|
||||||
|
COMBOBOX 1170,222,19,29,62,CBS_DROPDOWNLIST | WS_TABSTOP
|
||||||
|
END
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
115 DIALOG DISCARDABLE 0, 0, 260, 90
|
115 DIALOG DISCARDABLE 0, 0, 260, 90
|
||||||
STYLE DS_3DLOOK | DS_FIXEDSYS | WS_CHILD | WS_CAPTION | WS_GROUP |
|
STYLE DS_3DLOOK | DS_FIXEDSYS | WS_CHILD | WS_CAPTION | WS_GROUP |
|
||||||
|
|
23
src/tabs.cpp
23
src/tabs.cpp
|
@ -443,6 +443,9 @@ int i;
|
||||||
SetDlgItemText(hWnd, IDC_RADIO_DISPLAY_NOT_ALWAYS_SCIENTIFIC, GetPrgRes()->GetLanguages()->GuiMessage(Languages::display_not_always_scientific));
|
SetDlgItemText(hWnd, IDC_RADIO_DISPLAY_NOT_ALWAYS_SCIENTIFIC, GetPrgRes()->GetLanguages()->GuiMessage(Languages::display_not_always_scientific));
|
||||||
|
|
||||||
SetDlgItemText(hWnd, IDC_LABEL_GROUP_SCIENTIFIC, GetPrgRes()->GetLanguages()->GuiMessage(Languages::display_group_scientific));
|
SetDlgItemText(hWnd, IDC_LABEL_GROUP_SCIENTIFIC, GetPrgRes()->GetLanguages()->GuiMessage(Languages::display_group_scientific));
|
||||||
|
|
||||||
|
SetDlgItemText(hWnd, IDC_LABEL_DECIMAL_POINT, GetPrgRes()->GetLanguages()->GuiMessage(Languages::display_decimal_point));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -772,6 +775,19 @@ return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
BOOL WmTabCommand_DisplayDecimalPointChanged(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
|
||||||
|
{
|
||||||
|
if( HIWORD(wParam) != CBN_SELCHANGE )
|
||||||
|
return false;
|
||||||
|
|
||||||
|
GetPrgRes()->GetThreadController()->StopCalculating();
|
||||||
|
GetPrgRes()->SetDecimalPoint( (int)SendDlgItemMessage(hWnd, IDC_COMBO_DECIMAL_POINT, CB_GETCURSEL, 0, 0) );
|
||||||
|
GetPrgRes()->GetThreadController()->StartCalculating();
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
BOOL WmTabCommand_DisplayRoundingChanged(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
|
BOOL WmTabCommand_DisplayRoundingChanged(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
|
||||||
{
|
{
|
||||||
if( HIWORD(wParam) != CBN_SELCHANGE )
|
if( HIWORD(wParam) != CBN_SELCHANGE )
|
||||||
|
@ -944,7 +960,7 @@ void CreateTabCommandMessagesTable(Messages & cmessages)
|
||||||
cmessages.Associate(IDC_RADIO_DISPLAY_ALWAYS_SCIENTIFIC, WmTabCommand_SetDisplayAlwaysScientific);
|
cmessages.Associate(IDC_RADIO_DISPLAY_ALWAYS_SCIENTIFIC, WmTabCommand_SetDisplayAlwaysScientific);
|
||||||
cmessages.Associate(IDC_RADIO_DISPLAY_NOT_ALWAYS_SCIENTIFIC, WmTabCommand_SetDisplayNotAlwaysScientific);
|
cmessages.Associate(IDC_RADIO_DISPLAY_NOT_ALWAYS_SCIENTIFIC, WmTabCommand_SetDisplayNotAlwaysScientific);
|
||||||
cmessages.Associate(IDC_EDIT_DISPLAY_WHEN_SCIENTIFIC, WmTabCommand_SetDisplayWhenScientific);
|
cmessages.Associate(IDC_EDIT_DISPLAY_WHEN_SCIENTIFIC, WmTabCommand_SetDisplayWhenScientific);
|
||||||
|
cmessages.Associate(IDC_COMBO_DECIMAL_POINT, WmTabCommand_DisplayDecimalPointChanged);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -1202,6 +1218,11 @@ char buffer[20];
|
||||||
sprintf(buffer,"%d", GetPrgRes()->GetDisplayWhenScientific());
|
sprintf(buffer,"%d", GetPrgRes()->GetDisplayWhenScientific());
|
||||||
SetDlgItemText(hWnd, IDC_EDIT_DISPLAY_WHEN_SCIENTIFIC, buffer);
|
SetDlgItemText(hWnd, IDC_EDIT_DISPLAY_WHEN_SCIENTIFIC, buffer);
|
||||||
|
|
||||||
|
SendDlgItemMessage(hWnd, IDC_COMBO_DECIMAL_POINT, CB_ADDSTRING, 0, (LPARAM)" .");
|
||||||
|
SendDlgItemMessage(hWnd, IDC_COMBO_DECIMAL_POINT, CB_ADDSTRING, 0, (LPARAM)" ,");
|
||||||
|
|
||||||
|
SendDlgItemMessage(hWnd, IDC_COMBO_DECIMAL_POINT, CB_SETCURSEL, GetPrgRes()->GetDecimalPoint(), 0);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue