Simplify touch device settings

This commit is contained in:
Deve 2017-07-05 20:43:57 +02:00
parent 2bf99aef1d
commit 2cda14686d
2 changed files with 34 additions and 79 deletions

View File

@ -23,29 +23,11 @@
</div>
</div>
<label width="100%" I18N="In the multitouch settings screen" text="Accelerometer"/>
<div width="75%" layout="horizontal-row" proportion="1">
<label proportion="1" align="center" text_align="right" I18N="In the multitouch settings screen" text="Disabled"/>
<label proportion="1" align="center" text_align="right" I18N="In the multitouch settings screen" text="Accelerometer"/>
<div proportion="1" align="center" height="fit" layout="horizontal-row" >
<spacer width="40" height="10" />
<checkbox id="accelerometer_disabled"/>
</div>
</div>
<div width="75%" layout="horizontal-row" proportion="1">
<label proportion="1" align="center" text_align="right" I18N="In the multitouch settings screen" text="Phone"/>
<div proportion="1" align="center" height="fit" layout="horizontal-row" >
<spacer width="40" height="10" />
<checkbox id="accelerometer_phone"/>
</div>
</div>
<div width="75%" layout="horizontal-row" proportion="1">
<label proportion="1" align="center" text_align="right" I18N="In the multitouch settings screen" text="Tablet"/>
<div proportion="1" align="center" height="fit" layout="horizontal-row" >
<spacer width="40" height="10" />
<checkbox id="accelerometer_tablet"/>
<spinner id="accelerometer" proportion="1"/>
</div>
</div>

View File

@ -51,6 +51,17 @@ MultitouchSettingsDialog::~MultitouchSettingsDialog()
void MultitouchSettingsDialog::beforeAddingWidgets()
{
SpinnerWidget* accelerometer = getWidget<SpinnerWidget>("accelerometer");
assert(accelerometer != NULL);
accelerometer->m_properties[PROP_WRAP_AROUND] = "true";
accelerometer->clearLabels();
accelerometer->addLabel(_("Disabled"));
accelerometer->addLabel(_("Tablet"));
accelerometer->addLabel(_("Phone"));
accelerometer->m_properties[GUIEngine::PROP_MIN_VALUE] = "0";
accelerometer->m_properties[GUIEngine::PROP_MAX_VALUE] = "2";
updateValues();
}
@ -64,47 +75,34 @@ GUIEngine::EventPropagation MultitouchSettingsDialog::processEvent(
SpinnerWidget* scale = getWidget<SpinnerWidget>("scale");
assert(scale != NULL);
UserConfigParams::m_multitouch_scale = (float)scale->getValue() / 100.0f;
SpinnerWidget* deadzone_edge = getWidget<SpinnerWidget>("deadzone_edge");
assert(deadzone_edge != NULL);
UserConfigParams::m_multitouch_deadzone_edge =
UserConfigParams::m_multitouch_deadzone_edge =
(float)deadzone_edge->getValue() / 100.0f;
SpinnerWidget* deadzone_center = getWidget<SpinnerWidget>("deadzone_center");
assert(deadzone_center != NULL);
UserConfigParams::m_multitouch_deadzone_center =
UserConfigParams::m_multitouch_deadzone_center =
(float)deadzone_center->getValue() / 100.0f;
CheckBoxWidget* buttons_en = getWidget<CheckBoxWidget>("buttons_enabled");
assert(buttons_en != NULL);
UserConfigParams::m_multitouch_mode = buttons_en->getState() ? 1 : 0;
CheckBoxWidget* accel = getWidget<CheckBoxWidget>("accelerometer_tablet");
assert(accel != NULL);
CheckBoxWidget* accel2 = getWidget<CheckBoxWidget>("accelerometer_phone");
assert(accel2 != NULL);
if (accel->getState())
{
UserConfigParams::m_multitouch_accelerometer = 1;
}
else if (accel2->getState())
{
UserConfigParams::m_multitouch_accelerometer = 2;
}
else
{
UserConfigParams::m_multitouch_accelerometer = 0;
}
SpinnerWidget* accelerometer = getWidget<SpinnerWidget>("accelerometer");
assert(accelerometer != NULL);
UserConfigParams::m_multitouch_accelerometer = accelerometer->getValue();
MultitouchDevice* touch_device = input_manager->getDeviceManager()->
getMultitouchDevice();
if (touch_device != NULL)
{
touch_device->updateConfigParams();
}
user_config->saveConfig();
ModalDialog::dismiss();
@ -117,25 +115,9 @@ GUIEngine::EventPropagation MultitouchSettingsDialog::processEvent(
UserConfigParams::m_multitouch_deadzone_center.revertToDefaults();
UserConfigParams::m_multitouch_mode.revertToDefaults();
UserConfigParams::m_multitouch_accelerometer.revertToDefaults();
updateValues();
return GUIEngine::EVENT_BLOCK;
}
else if (eventSource == "accelerometer_disabled" ||
eventSource == "accelerometer_tablet" ||
eventSource == "accelerometer_phone")
{
CheckBoxWidget* accel = getWidget<CheckBoxWidget>("accelerometer_disabled");
assert(accel != NULL);
accel->setState(eventSource == accel->m_properties[PROP_ID]);
accel = getWidget<CheckBoxWidget>("accelerometer_tablet");
assert(accel != NULL);
accel->setState(eventSource == accel->m_properties[PROP_ID]);
accel = getWidget<CheckBoxWidget>("accelerometer_phone");
assert(accel != NULL);
accel->setState(eventSource == accel->m_properties[PROP_ID]);
return GUIEngine::EVENT_BLOCK;
}
@ -149,33 +131,24 @@ void MultitouchSettingsDialog::updateValues()
SpinnerWidget* scale = getWidget<SpinnerWidget>("scale");
assert(scale != NULL);
scale->setValue((int)(UserConfigParams::m_multitouch_scale * 100.0f));
SpinnerWidget* deadzone_edge = getWidget<SpinnerWidget>("deadzone_edge");
assert(deadzone_edge != NULL);
deadzone_edge->setValue(
(int)(UserConfigParams::m_multitouch_deadzone_edge * 100.0f));
SpinnerWidget* deadzone_center = getWidget<SpinnerWidget>("deadzone_center");
assert(deadzone_center != NULL);
deadzone_center->setValue(
(int)(UserConfigParams::m_multitouch_deadzone_center * 100.0f));
CheckBoxWidget* buttons_en = getWidget<CheckBoxWidget>("buttons_enabled");
assert(buttons_en != NULL);
buttons_en->setState(UserConfigParams::m_multitouch_mode!=0);
CheckBoxWidget* accelerometer;
accelerometer = getWidget<CheckBoxWidget>("accelerometer_disabled");
SpinnerWidget* accelerometer = getWidget<SpinnerWidget>("accelerometer");
assert(accelerometer != NULL);
accelerometer->setState(UserConfigParams::m_multitouch_accelerometer == 0);
accelerometer = getWidget<CheckBoxWidget>("accelerometer_tablet");
assert(accelerometer != NULL);
accelerometer->setState(UserConfigParams::m_multitouch_accelerometer == 1);
accelerometer = getWidget<CheckBoxWidget>("accelerometer_phone");
assert(accelerometer != NULL);
accelerometer->setState(UserConfigParams::m_multitouch_accelerometer == 2);
accelerometer->setValue(UserConfigParams::m_multitouch_accelerometer);
}
// -----------------------------------------------------------------------------