Fix radian/degree mode toggling bug in Deskcalc
I overlooked this problem in my last commit... If you select the current angle (radian/degree) mode from the menu it toggles the angle mode, fixed this to make it keep the current mode.
This commit is contained in:
@@ -245,8 +245,12 @@ CalcView::MessageReceived(BMessage* message)
|
|||||||
ToggleAudioFeedback();
|
ToggleAudioFeedback();
|
||||||
return;
|
return;
|
||||||
|
|
||||||
case MSG_OPTIONS_ANGLE_MODE:
|
case MSG_OPTIONS_ANGLE_MODE_RADIAN:
|
||||||
ToggleAngleMode();
|
SetDegreeMode(false);
|
||||||
|
return;
|
||||||
|
|
||||||
|
case MSG_OPTIONS_ANGLE_MODE_DEGREE:
|
||||||
|
SetDegreeMode(true);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -977,11 +981,11 @@ CalcView::ToggleAudioFeedback(void)
|
|||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
CalcView::ToggleAngleMode(void)
|
CalcView::SetDegreeMode(bool degrees)
|
||||||
{
|
{
|
||||||
fOptions->degree_mode = !fOptions->degree_mode;
|
fOptions->degree_mode = degrees;
|
||||||
fAngleModeRadianItem->SetMarked(!fOptions->degree_mode);
|
fAngleModeRadianItem->SetMarked(!degrees);
|
||||||
fAngleModeDegreeItem->SetMarked(fOptions->degree_mode);
|
fAngleModeDegreeItem->SetMarked(degrees);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -1273,9 +1277,9 @@ CalcView::_CreatePopUpMenu(bool addKeypadModeMenuItems)
|
|||||||
fAudioFeedbackItem = new BMenuItem(B_TRANSLATE("Audio Feedback"),
|
fAudioFeedbackItem = new BMenuItem(B_TRANSLATE("Audio Feedback"),
|
||||||
new BMessage(MSG_OPTIONS_AUDIO_FEEDBACK));
|
new BMessage(MSG_OPTIONS_AUDIO_FEEDBACK));
|
||||||
fAngleModeRadianItem = new BMenuItem(B_TRANSLATE("Radian Mode"),
|
fAngleModeRadianItem = new BMenuItem(B_TRANSLATE("Radian Mode"),
|
||||||
new BMessage(MSG_OPTIONS_ANGLE_MODE));
|
new BMessage(MSG_OPTIONS_ANGLE_MODE_RADIAN));
|
||||||
fAngleModeDegreeItem = new BMenuItem(B_TRANSLATE("Degree Mode"),
|
fAngleModeDegreeItem = new BMenuItem(B_TRANSLATE("Degree Mode"),
|
||||||
new BMessage(MSG_OPTIONS_ANGLE_MODE));
|
new BMessage(MSG_OPTIONS_ANGLE_MODE_DEGREE));
|
||||||
if (addKeypadModeMenuItems) {
|
if (addKeypadModeMenuItems) {
|
||||||
fKeypadModeCompactItem = new BMenuItem(B_TRANSLATE("Compact"),
|
fKeypadModeCompactItem = new BMenuItem(B_TRANSLATE("Compact"),
|
||||||
new BMessage(MSG_OPTIONS_KEYPAD_MODE_COMPACT), '0');
|
new BMessage(MSG_OPTIONS_KEYPAD_MODE_COMPACT), '0');
|
||||||
|
|||||||
@@ -16,7 +16,8 @@
|
|||||||
enum {
|
enum {
|
||||||
MSG_OPTIONS_AUTO_NUM_LOCK = 'oanl',
|
MSG_OPTIONS_AUTO_NUM_LOCK = 'oanl',
|
||||||
MSG_OPTIONS_AUDIO_FEEDBACK = 'oafb',
|
MSG_OPTIONS_AUDIO_FEEDBACK = 'oafb',
|
||||||
MSG_OPTIONS_ANGLE_MODE = 'oamd',
|
MSG_OPTIONS_ANGLE_MODE_RADIAN = 'oamr',
|
||||||
|
MSG_OPTIONS_ANGLE_MODE_DEGREE = 'oamd',
|
||||||
MSG_OPTIONS_KEYPAD_MODE_COMPACT = 'okmc',
|
MSG_OPTIONS_KEYPAD_MODE_COMPACT = 'okmc',
|
||||||
MSG_OPTIONS_KEYPAD_MODE_BASIC = 'okmb',
|
MSG_OPTIONS_KEYPAD_MODE_BASIC = 'okmb',
|
||||||
MSG_OPTIONS_KEYPAD_MODE_SCIENTIFIC = 'okms',
|
MSG_OPTIONS_KEYPAD_MODE_SCIENTIFIC = 'okms',
|
||||||
@@ -91,8 +92,8 @@ class CalcView : public BView {
|
|||||||
// (option currently disabled)
|
// (option currently disabled)
|
||||||
void ToggleAudioFeedback(void);
|
void ToggleAudioFeedback(void);
|
||||||
|
|
||||||
// Toggle radian/degree mode
|
// Set the angle mode to degrees or radians
|
||||||
void ToggleAngleMode(void);
|
void SetDegreeMode(bool degrees);
|
||||||
|
|
||||||
// Set the keypad mode
|
// Set the keypad mode
|
||||||
void SetKeypadMode(uint8 mode);
|
void SetKeypadMode(uint8 mode);
|
||||||
|
|||||||
@@ -88,9 +88,13 @@ CalcWindow::MessageReceived(BMessage* message)
|
|||||||
fCalcView->ToggleAudioFeedback();
|
fCalcView->ToggleAudioFeedback();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case MSG_OPTIONS_ANGLE_MODE:
|
case MSG_OPTIONS_ANGLE_MODE_RADIAN:
|
||||||
fCalcView->ToggleAngleMode();
|
fCalcView->SetDegreeMode(false);
|
||||||
break;
|
return;
|
||||||
|
|
||||||
|
case MSG_OPTIONS_ANGLE_MODE_DEGREE:
|
||||||
|
fCalcView->SetDegreeMode(true);
|
||||||
|
return;
|
||||||
|
|
||||||
case MSG_OPTIONS_KEYPAD_MODE_COMPACT:
|
case MSG_OPTIONS_KEYPAD_MODE_COMPACT:
|
||||||
fCalcView->SetKeypadMode(KEYPAD_MODE_COMPACT);
|
fCalcView->SetKeypadMode(KEYPAD_MODE_COMPACT);
|
||||||
|
|||||||
Reference in New Issue
Block a user