mirror of
https://github.com/Relintai/pandemonium_engine.git
synced 2024-12-26 13:47:12 +01:00
Add Android project settings for gesture support
- Include project setting to enable long press for Android devices - Include project setting to enable pan and scale gestures on Android devices
This commit is contained in:
parent
ae3b43f6ca
commit
6713693291
@ -3,6 +3,7 @@
|
|||||||
<brief_description>
|
<brief_description>
|
||||||
</brief_description>
|
</brief_description>
|
||||||
<description>
|
<description>
|
||||||
|
[b]Note:[/b] On Android, this requires the [member ProjectSettings.input_devices/pointing/android/enable_pan_and_scale_gestures] project setting to be enabled.
|
||||||
</description>
|
</description>
|
||||||
<tutorials>
|
<tutorials>
|
||||||
</tutorials>
|
</tutorials>
|
||||||
|
@ -3,6 +3,7 @@
|
|||||||
<brief_description>
|
<brief_description>
|
||||||
</brief_description>
|
</brief_description>
|
||||||
<description>
|
<description>
|
||||||
|
[b]Note:[/b] On Android, this requires the [member ProjectSettings.input_devices/pointing/android/enable_pan_and_scale_gestures] project setting to be enabled.
|
||||||
</description>
|
</description>
|
||||||
<tutorials>
|
<tutorials>
|
||||||
</tutorials>
|
</tutorials>
|
||||||
|
@ -808,6 +808,12 @@
|
|||||||
If [code]false[/code], no input will be lost.
|
If [code]false[/code], no input will be lost.
|
||||||
[b]Note:[/b] You should in nearly all cases prefer the [code]false[/code] setting. The legacy behavior is to enable supporting old projects that rely on the old logic, without changes to script.
|
[b]Note:[/b] You should in nearly all cases prefer the [code]false[/code] setting. The legacy behavior is to enable supporting old projects that rely on the old logic, without changes to script.
|
||||||
</member>
|
</member>
|
||||||
|
<member name="input_devices/pointing/android/enable_long_press_as_right_click" type="bool" setter="" getter="" default="false">
|
||||||
|
If [code]true[/code], long press events on an Android touchscreen are transformed into right click events.
|
||||||
|
</member>
|
||||||
|
<member name="input_devices/pointing/android/enable_pan_and_scale_gestures" type="bool" setter="" getter="" default="false">
|
||||||
|
If [code]true[/code], multi-touch pan and scale gestures are enabled on Android devices.
|
||||||
|
</member>
|
||||||
<member name="input_devices/pointing/emulate_mouse_from_touch" type="bool" setter="" getter="" default="true">
|
<member name="input_devices/pointing/emulate_mouse_from_touch" type="bool" setter="" getter="" default="true">
|
||||||
If [code]true[/code], sends mouse input events when tapping or swiping on the touchscreen.
|
If [code]true[/code], sends mouse input events when tapping or swiping on the touchscreen.
|
||||||
</member>
|
</member>
|
||||||
|
@ -1619,6 +1619,9 @@ Error Main::setup2(Thread::ID p_main_tid_override) {
|
|||||||
id->set_emulate_mouse_from_touch(bool(GLOBAL_DEF("input_devices/pointing/emulate_mouse_from_touch", true)));
|
id->set_emulate_mouse_from_touch(bool(GLOBAL_DEF("input_devices/pointing/emulate_mouse_from_touch", true)));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
GLOBAL_DEF("input_devices/pointing/android/enable_long_press_as_right_click", false);
|
||||||
|
GLOBAL_DEF("input_devices/pointing/android/enable_pan_and_scale_gestures", false);
|
||||||
|
|
||||||
MAIN_PRINT("Main: Load Translations and Remaps");
|
MAIN_PRINT("Main: Load Translations and Remaps");
|
||||||
|
|
||||||
translation_server->setup(); //register translations, load them, etc.
|
translation_server->setup(); //register translations, load them, etc.
|
||||||
|
@ -120,6 +120,7 @@ import org.pandemoniumengine.pandemonium.plugin.PandemoniumPluginRegistry;
|
|||||||
import org.pandemoniumengine.pandemonium.utils.BenchmarkUtils;
|
import org.pandemoniumengine.pandemonium.utils.BenchmarkUtils;
|
||||||
import org.pandemoniumengine.pandemonium.utils.PandemoniumNetUtils;
|
import org.pandemoniumengine.pandemonium.utils.PandemoniumNetUtils;
|
||||||
import org.pandemoniumengine.pandemonium.utils.PermissionsUtil;
|
import org.pandemoniumengine.pandemonium.utils.PermissionsUtil;
|
||||||
|
import org.pandemoniumengine.pandemonium.input.PandemoniumInputHandler;
|
||||||
|
|
||||||
public class Pandemonium extends Fragment implements SensorEventListener, IDownloaderClient {
|
public class Pandemonium extends Fragment implements SensorEventListener, IDownloaderClient {
|
||||||
private static final String TAG = Pandemonium.class.getSimpleName();
|
private static final String TAG = Pandemonium.class.getSimpleName();
|
||||||
@ -331,6 +332,21 @@ public class Pandemonium extends Fragment implements SensorEventListener, IDownl
|
|||||||
*/
|
*/
|
||||||
@CallSuper
|
@CallSuper
|
||||||
protected void onPandemoniumSetupCompleted() {
|
protected void onPandemoniumSetupCompleted() {
|
||||||
|
Log.d(TAG, "onPandemoniumSetupCompleted");
|
||||||
|
|
||||||
|
// These properties are defined after Godot setup completion, so we retrieve them here.
|
||||||
|
boolean longPressEnabled = Boolean.parseBoolean(PandemoniumLib.getGlobal("input_devices/pointing/android/enable_long_press_as_right_click"));
|
||||||
|
boolean panScaleEnabled = Boolean.parseBoolean(PandemoniumLib.getGlobal("input_devices/pointing/android/enable_pan_and_scale_gestures"));
|
||||||
|
|
||||||
|
runOnUiThread(() -> {
|
||||||
|
PandemoniumView renderView = getRenderView();
|
||||||
|
PandemoniumInputHandler inputHandler = renderView != null ? renderView.getInputHandler() : null;
|
||||||
|
if (inputHandler != null) {
|
||||||
|
inputHandler.enableLongPress(longPressEnabled);
|
||||||
|
inputHandler.enablePanningAndScalingGestures(panScaleEnabled);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
for (PandemoniumPlugin plugin : pluginRegistry.getAllPlugins()) {
|
for (PandemoniumPlugin plugin : pluginRegistry.getAllPlugins()) {
|
||||||
plugin.onPandemoniumSetupCompleted();
|
plugin.onPandemoniumSetupCompleted();
|
||||||
}
|
}
|
||||||
@ -345,6 +361,8 @@ public class Pandemonium extends Fragment implements SensorEventListener, IDownl
|
|||||||
*/
|
*/
|
||||||
@CallSuper
|
@CallSuper
|
||||||
protected void onPandemoniumMainLoopStarted() {
|
protected void onPandemoniumMainLoopStarted() {
|
||||||
|
Log.d(TAG, "onPandemoniumMainLoopStarted");
|
||||||
|
|
||||||
for (PandemoniumPlugin plugin : pluginRegistry.getAllPlugins()) {
|
for (PandemoniumPlugin plugin : pluginRegistry.getAllPlugins()) {
|
||||||
plugin.onPandemoniumMainLoopStarted();
|
plugin.onPandemoniumMainLoopStarted();
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user