diff --git a/mono/Assistance/MainWindow.cs b/mono/Assistance/MainWindow.cs index 4c71d61..62aba73 100644 --- a/mono/Assistance/MainWindow.cs +++ b/mono/Assistance/MainWindow.cs @@ -98,7 +98,7 @@ namespace Assistance { private void beginTrack(Gdk.Device device) { endDragAndTrack(); - track = new Track(device); + track = new Track(Track.getTouchId(), device); ticksStart = Timer.ticks(); } diff --git a/mono/Assistance/Tool.cs b/mono/Assistance/Tool.cs index f592f3d..8c7e7fd 100644 --- a/mono/Assistance/Tool.cs +++ b/mono/Assistance/Tool.cs @@ -9,21 +9,21 @@ namespace Assistance { Multiline = 4 }; - public class Tool { + public class MotionHandler { + public bool paint_begin() { return false; } + public void paint_track_begin(Track track) { } + public void paint_track_point(Track track) { } + public void paint_track_end(Track track) { } + public bool paint_apply() { return false; } + public void paint_cancel() { } + } + + public class Tool: MotionHandler { public void activate() { } - public int getAvailableStackSize() - { return 1; } - public bool getIsCancellable() - { return false; } public Modifiers getAvailableModifiers() { return Modifiers.None; } - public bool paint_begin(Track track) { return false; } - public void paint_point(TrackPoint point, Track track) { } - public bool paint_apply() { return false; } - public void paint_cancel() { } - public void disactivate() { } } } diff --git a/mono/Assistance/Track.cs b/mono/Assistance/Track.cs index 0454046..8e6cc0c 100644 --- a/mono/Assistance/Track.cs +++ b/mono/Assistance/Track.cs @@ -7,20 +7,26 @@ namespace Assistance { public static readonly Pen pen = new Pen("Dark Green", 3.0); public static readonly Pen penSpecial = new Pen("Blue", 3.0); public static readonly Pen penPreview = new Pen("Dark Green", 1.0, 0.25); - + + private static long lastTouchId; + + public long touchId; public readonly Gdk.Device device; public readonly List points = new List(); private readonly List parents = new List(); private readonly List transformFuncs = new List(); - public Track(Gdk.Device device) + public static long getTouchId() { return ++lastTouchId; } + + public Track(long touchId, Gdk.Device device) { + this.touchId = touchId; this.device = device; } public Track(Track parent, Geometry.TransformFunc transformFunc): - this(parent.device) + this(parent.touchId, parent.device) { parents.AddRange(parent.parents); parents.Add(parent);