From 0216e435a21753dddccfd3e31b2a487994dca53f Mon Sep 17 00:00:00 2001
From: Tobisaninfo <thinkdifferent055@gmail.com>
Date: Wed, 24 Aug 2016 23:03:33 +0200
Subject: [PATCH] Add touch events to TouchMode

---
 PlayWall/.classpath                           | 37 ++++++++++---------
 .../src/de/tobias/playpad/PlayPadMain.java    |  3 +-
 .../playpad/layout/touch/TouchPadView.java    | 12 +++++-
 .../layout/touch/TouchPadViewController.java  | 15 ++++++--
 .../awakeplugin/impl/AwakePluginImpl.java     |  2 +-
 5 files changed, 44 insertions(+), 25 deletions(-)

diff --git a/PlayWall/.classpath b/PlayWall/.classpath
index d6c36775..37d7d014 100644
--- a/PlayWall/.classpath
+++ b/PlayWall/.classpath
@@ -1,18 +1,19 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry excluding="**/.DS_Store|**/.gitignore|icon.icns|icon.ico|de/tobias/playpad/viewcontroller/main/MainMenuBarController.java|de/tobias/playpad/viewcontroller/main/MainToolbarController.java|de/tobias/playpad/viewcontroller/main/MainViewController.java|de/tobias/playpad/viewcontroller/pad/PadViewController.java|de/tobias/playpad/view/PadView.java" kind="src" path="src"/>
-	<classpathentry excluding="**/.gitignor|de/tobias/playpad/assets/files/dialogDnD.pxm" kind="src" path="assets"/>
-	<classpathentry kind="src" path="test"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.USER_LIBRARY/ControlFx"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.USER_LIBRARY/XML"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.USER_LIBRARY/YML"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.USER_LIBRARY/HTML Builder"/>
-	<classpathentry combineaccessrules="false" kind="src" path="/libUtils"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.USER_LIBRARY/Plugins"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.USER_LIBRARY/TinySound"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.USER_LIBRARY/JLayer"/>
-	<classpathentry combineaccessrules="false" kind="src" path="/PlayWallCore"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.junit.JUNIT_CONTAINER/4"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry excluding="**/.DS_Store|**/.gitignore|icon.icns|icon.ico|de/tobias/playpad/viewcontroller/main/MainMenuBarController.java|de/tobias/playpad/viewcontroller/main/MainToolbarController.java|de/tobias/playpad/viewcontroller/main/MainViewController.java|de/tobias/playpad/viewcontroller/pad/PadViewController.java|de/tobias/playpad/view/PadView.java" kind="src" path="src"/>
+	<classpathentry excluding="**/.gitignor|de/tobias/playpad/assets/files/dialogDnD.pxm" kind="src" path="assets"/>
+	<classpathentry kind="src" path="test"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.USER_LIBRARY/ControlFx"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.USER_LIBRARY/XML"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.USER_LIBRARY/YML"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.USER_LIBRARY/HTML Builder"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.USER_LIBRARY/JNA"/>
+	<classpathentry combineaccessrules="false" kind="src" path="/libUtils"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.USER_LIBRARY/Plugins"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.USER_LIBRARY/TinySound"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.USER_LIBRARY/JLayer"/>
+	<classpathentry combineaccessrules="false" kind="src" path="/PlayWallCore"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.junit.JUNIT_CONTAINER/4"/>
+	<classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/PlayWall/src/de/tobias/playpad/PlayPadMain.java b/PlayWall/src/de/tobias/playpad/PlayPadMain.java
index cdf17287..94eb0f52 100644
--- a/PlayWall/src/de/tobias/playpad/PlayPadMain.java
+++ b/PlayWall/src/de/tobias/playpad/PlayPadMain.java
@@ -29,6 +29,7 @@ import de.tobias.utils.util.Localization.LocalizationDelegate;
 import de.tobias.utils.util.OS;
 import de.tobias.utils.util.OS.OSType;
 import de.tobias.utils.util.Worker;
+import de.tobias.utils.util.win.User32X;
 import javafx.application.Application;
 import javafx.application.Platform;
 import javafx.scene.control.ButtonType;
@@ -60,7 +61,7 @@ public class PlayPadMain extends Application implements LocalizationDelegate {
 
 	private static PlayPadImpl impl;
 	private static PlayPadUpdater updater;
-
+	
 	public static ResourceBundle getUiResourceBundle() {
 		return uiResourceBundle;
 	}
diff --git a/PlayWall/src/de/tobias/playpad/layout/touch/TouchPadView.java b/PlayWall/src/de/tobias/playpad/layout/touch/TouchPadView.java
index f99a12de..068de5a1 100644
--- a/PlayWall/src/de/tobias/playpad/layout/touch/TouchPadView.java
+++ b/PlayWall/src/de/tobias/playpad/layout/touch/TouchPadView.java
@@ -1,5 +1,6 @@
 package de.tobias.playpad.layout.touch;
 
+import de.tobias.playpad.PlayPadMain;
 import de.tobias.playpad.PlayPadPlugin;
 import de.tobias.playpad.PseudoClasses;
 import de.tobias.playpad.pad.Pad;
@@ -13,6 +14,8 @@ import de.tobias.playpad.view.EmptyPadView;
 import de.tobias.utils.ui.icon.FontAwesomeType;
 import de.tobias.utils.ui.icon.FontIcon;
 import de.tobias.utils.ui.scene.BusyView;
+import de.tobias.utils.util.OS;
+import de.tobias.utils.util.win.User32X;
 import javafx.beans.property.Property;
 import javafx.css.PseudoClass;
 import javafx.geometry.Pos;
@@ -86,8 +89,13 @@ public class TouchPadView implements IPadViewV2 {
 		root.getChildren().addAll(infoBox, preview, playBar);
 		superRoot.getChildren().addAll(root);
 
-		superRoot.setOnMouseClicked(controller);
-		playBar.setOnMouseClicked(controller);
+		if (OS.isWindows() && User32X.isTouchAvailable()) {
+			superRoot.setOnTouchPressed(controller);
+			playBar.setOnTouchPressed(controller);
+		} else {
+			superRoot.setOnMouseClicked(controller);
+			playBar.setOnMouseClicked(controller);
+		}
 	}
 
 	@Override
diff --git a/PlayWall/src/de/tobias/playpad/layout/touch/TouchPadViewController.java b/PlayWall/src/de/tobias/playpad/layout/touch/TouchPadViewController.java
index 0e93545f..ff8e4684 100644
--- a/PlayWall/src/de/tobias/playpad/layout/touch/TouchPadViewController.java
+++ b/PlayWall/src/de/tobias/playpad/layout/touch/TouchPadViewController.java
@@ -20,6 +20,7 @@ import javafx.event.Event;
 import javafx.event.EventHandler;
 import javafx.scene.input.MouseButton;
 import javafx.scene.input.MouseEvent;
+import javafx.scene.input.TouchEvent;
 import javafx.util.Duration;
 
 public class TouchPadViewController implements IPadViewControllerV2, EventHandler<Event> {
@@ -47,7 +48,8 @@ public class TouchPadViewController implements IPadViewControllerV2, EventHandle
 		padDurationListener = new PadDurationListener(this);
 		padPositionListener = new PadPositionListener(this);
 
-		// Listener muss nur einmal hier hinzugefügt werden, weil bei einem neuen Profile, werden neue PadViewController
+		// Listener muss nur einmal hier hinzugefügt werden, weil bei einem
+		// neuen Profile, werden neue PadViewController
 		// erzeugt
 		ProfileSettings profileSettings = Profile.currentProfile().getProfileSettings();
 		profileSettings.lockedProperty().addListener(padLockedListener);
@@ -85,7 +87,9 @@ public class TouchPadViewController implements IPadViewControllerV2, EventHandle
 			pad.statusProperty().addListener(padStatusListener);
 
 			// First Listener call with new data
-			padContentListener.changed(null, null, pad.getContent()); // Add Duration listener
+			padContentListener.changed(null, null, pad.getContent()); // Add
+																		// Duration
+																		// listener
 			padStatusListener.changed(null, null, pad.getStatus());
 
 			padDragListener = new PadDragListener(pad, padView);
@@ -142,7 +146,12 @@ public class TouchPadViewController implements IPadViewControllerV2, EventHandle
 					}
 				}
 			}
-
+		} else if (event instanceof TouchEvent) {
+			if (pad.getStatus() == PadStatus.PLAY) {
+				onStop();
+			} else {
+				onPlay();
+			}
 		}
 	}
 
diff --git a/PlayWallPlugins/awakeplugin/de/tobias/playpad/awakeplugin/impl/AwakePluginImpl.java b/PlayWallPlugins/awakeplugin/de/tobias/playpad/awakeplugin/impl/AwakePluginImpl.java
index 7d6d1646..ead13c66 100644
--- a/PlayWallPlugins/awakeplugin/de/tobias/playpad/awakeplugin/impl/AwakePluginImpl.java
+++ b/PlayWallPlugins/awakeplugin/de/tobias/playpad/awakeplugin/impl/AwakePluginImpl.java
@@ -25,10 +25,10 @@ import de.tobias.utils.ui.icon.FontAwesomeType;
 import de.tobias.utils.ui.icon.FontIcon;
 import de.tobias.utils.util.AwakeUtils;
 import de.tobias.utils.util.IOUtils;
-import de.tobias.utils.util.Kernel32;
 import de.tobias.utils.util.Localization;
 import de.tobias.utils.util.OS;
 import de.tobias.utils.util.OS.OSType;
+import de.tobias.utils.util.win.Kernel32;
 import javafx.event.ActionEvent;
 import javafx.event.EventHandler;
 import javafx.scene.control.CheckMenuItem;
-- 
GitLab